New to Kestra?
Use blueprints to kickstart your first workflows.
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.
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.
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.{{ outputs.copy_retro_board.viewLink }} and {{ outputs.copy_retro_board.name }}.notify posts the dated name and view link to a Discord channel through an incoming webhook.errors block posts a distinct Discord alert if the copy fails, so a deleted template or expired token surfaces before the meeting.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.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.
boards:read and boards:write scopes.MIRO_ACCESS_TOKEN: Miro OAuth 2.0 access token.DISCORD_WEBHOOK_URL: Discord incoming webhook URL.disabled: false on the biweekly trigger.boards.Update task after the copy to stamp the sprint goal into the board description.