Copy icon
DiscordIncomingWebhook icon
Schedule icon

Create a Dated Sprint Retro Board from a Miro Template on a Schedule

Copy a Miro retro template into a dated sprint board on a schedule with Kestra and post the board link to Discord for the whole team.

Categories
Business

Teams that run retros on a shared template board end up with one crowded canvas where old sprints bleed into new ones, and teams that copy the template by hand forget half the time. This blueprint makes the copy automatic. io.kestra.plugin.miro.boards.Copy duplicates a prepared template board into a fresh board named with the execution date, files it into the right team, and posts the view link to Discord, so every sprint starts with a clean, dated retro board and the template itself is never touched.

How it works

  1. copy_retro_board (io.kestra.plugin.miro.boards.Copy) copies the board from the template_board_id input into the team from the team_id input. The new board's name interpolates {{ execution.startDate | date('yyyy-MM-dd') }}, producing names like Sprint Retro 2026-08-21.
  2. The task returns the new board's details, including {{ outputs.copy_retro_board.viewLink }} and {{ outputs.copy_retro_board.name }}.
  3. notify posts the dated name and view link to a Discord channel through an incoming webhook.
  4. The errors block posts a distinct Discord alert if the copy fails, so a deleted template or expired token surfaces before the meeting.
  5. A disabled-by-default Schedule trigger fires at 09:00 on the 1st and 15th of each month, a stand-in for a two-week sprint cadence you can align to your own calendar.

What you get

  • A clean retro board per sprint, named by date, with the template's frames and stickies already in place.
  • A template that stays pristine because nobody ever works on it directly.
  • The board link in the team channel before the retro starts, without a facilitator remembering to send it.
  • A dated board history that doubles as a browsable archive of past retros.

Who it's for

  • Scrum masters and team leads who copy the same retro board by hand every two weeks.
  • Agile teams whose retro template has grown careful structure worth preserving between sprints.
  • Platform teams rolling out a consistent retro format across many squads from one template.

Why orchestrate this with Kestra

The copy is one API call, but the cadence is the hard part: it has to happen every sprint, on time, with a predictable name, and someone has to hear about it when it breaks. Kestra provides the schedule, the date templating in the board name, secret management for the token, and an execution history showing exactly which board was created for which sprint.

Prerequisites

  • A prepared retro template board in Miro and its board ID.
  • A Miro OAuth access token with boards:read and boards:write scopes.
  • A Discord incoming webhook for the team channel.

Secrets

  • MIRO_ACCESS_TOKEN: Miro OAuth 2.0 access token.
  • DISCORD_WEBHOOK_URL: Discord incoming webhook URL.

Quick start

  1. Add the two secrets to your Kestra namespace.
  2. Execute the flow with your template board ID and team ID, then open the Discord link to verify the copy.
  3. Align the cron to your sprint calendar and set disabled: false on the biweekly trigger.

How to extend

  • Interpolate a sprint number into the board name by keeping a counter in Kestra's KV store.
  • Post to Slack instead by swapping the notification task, as shown in the workshop provisioner blueprint.
  • Copy several boards per sprint, planning plus retro plus demo, with the fanout pattern from the kickoff pack blueprint.
  • Add a boards.Update task after the copy to stamp the sprint goal into the board description.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.