New to Kestra?
Use blueprints to kickstart your first workflows.
Move Trello release cards automatically from CI webhooks with Kestra. Route staging and production deploys to the right column and notify Discord.
A release board that people update by hand is a release board that lies. This blueprint lets the deploy pipeline move the card itself: CI posts a small JSON payload to a Kestra webhook when a deploy finishes, an io.kestra.plugin.core.flow.If task maps the reported stage to the matching column, and io.kestra.plugin.trello.cards.Move drags the release card there. Discord gets a one-line note, so the channel sees the board change the moment the pipeline does.
ci_webhook trigger (io.kestra.plugin.core.trigger.Webhook) accepts a JSON POST from the deploy pipeline with two fields, stage and cardId. Replace the placeholder key with a strong random value.route_stage (io.kestra.plugin.core.flow.If) evaluates {{ (trigger.body.stage ?? 'staging') == 'production' }}, so an omitted stage safely defaults to the staging branch.io.kestra.plugin.trello.cards.Move with the card id from the payload, falling back to the release_card_id input when CI does not send one, and pos: top so the freshest release leads the column.notify posts the card id and stage to Discord.errors block posts a distinct Discord alert when the move fails, covering the worst failure mode, a deploy that happened while the board still shows the old state.CI knows the deploy finished and Trello holds the board, but neither speaks to the other. Kestra sits between them with a webhook endpoint, conditional routing, secret management for the Trello credentials, and an execution history that records every board move next to the payload that caused it.
TRELLO_API_KEY: Trello API key.TRELLO_API_TOKEN: Trello API token.DISCORD_WEBHOOK_URL: Discord incoming webhook URL.key with a strong random value.stage set to production and a real cardId, then watch the card jump columns and the Discord note arrive.If branches, each targeting another list id input.io.kestra.plugin.trello.cards.Comment, recording the pipeline run URL from the payload.io.kestra.plugin.trello.cards.Update and closed: true for boards that retire released cards.