Create icon
SlackIncomingWebhook icon
Webhook icon

Create Trello Cards from Webhook Alerts with a Due Date and Slack Confirmation

Create Trello cards from webhook alerts with Kestra. Map alert fields into a triage card with a due date and confirm the new card id in Slack.

Categories
Business

Alerts that only land in chat get scrolled past; alerts that land on a board get owners. This blueprint receives any JSON alert on a Kestra webhook and turns it into a Trello card in a triage list through io.kestra.plugin.trello.cards.Create. Every payload field has a fallback, so a minimal ping and a fully described incident both become well-formed cards, and a next-day due date keeps the card from rotting at the bottom of the column. Slack then confirms the card id so the responder can claim it immediately.

How it works

  1. The alert_webhook trigger (io.kestra.plugin.core.trigger.Webhook) accepts a JSON POST from any monitoring tool, form, or script. Replace the placeholder key with a strong random value before use.
  2. create_card (io.kestra.plugin.trello.cards.Create) builds the card. The name comes from trigger.body.title, the description assembles source, severity, details, and link lines, and each expression uses the ?? operator so missing fields degrade to readable placeholders instead of failing the flow.
  3. due is set to {{ now() | dateAdd(1, 'DAYS') }}, giving every alert card a 24-hour clock, and pos: top puts the newest alert at the top of the triage column.
  4. notify posts the alert title and {{ outputs.create_card.cardId }} to Slack, linking chat awareness back to the board.
  5. The errors block posts a distinct Slack alert when card creation fails, so an incoming alert never vanishes without a trace.

What you get

  • Every alert becomes a card with a due date and a position, not a message that scrolls away.
  • Fallbacks on every field, so the flow accepts payloads from tools you have not integrated yet.
  • The new card id surfaced in Slack for one-click follow-up.
  • A failure alert covering the case where the alert arrived but the card did not.

Who it's for

  • Ops and support teams that triage from a Trello board rather than a ticketing system.
  • Small engineering teams whose monitoring tools can POST a webhook but have no Trello integration.
  • Anyone tired of alerts acknowledged in chat and forgotten by the afternoon.

Why orchestrate this with Kestra

Trello holds the card, but something has to receive the alert, normalize an unpredictable payload, stamp the due date, and confirm the result. Kestra provides the webhook endpoint, the templating with safe fallbacks, secret management for the Trello credentials, and an execution history that shows exactly which alert produced which card.

Prerequisites

  • A Trello board with a triage list, and that list's id for the triage_list_id input.
  • A Trello API key and token from https://trello.com/power-ups/admin.
  • A Slack incoming webhook for confirmations and failure alerts.

Secrets

  • TRELLO_API_KEY: Trello API key.
  • TRELLO_API_TOKEN: Trello API token.
  • SLACK_WEBHOOK_URL: Slack incoming webhook URL.

Quick start

  1. Add the three secrets to your Kestra namespace and set triage_list_id to your list.
  2. Replace the webhook key with a strong random value.
  3. POST a JSON body with title, source, severity, details, and link fields to the webhook URL and check the new card on the board plus the Slack confirmation.

How to extend

  • Map severity to due dates by branching with io.kestra.plugin.core.flow.If before card creation.
  • Add an initial comment with runbook links using io.kestra.plugin.trello.cards.Comment after creation.
  • Route different alert sources to different lists by passing a list id in the webhook body with an input fallback.
  • Pair with the incident timeline logger blueprint to keep appending updates to the card as the incident evolves.

Links

Orchestrate with Kestra
Orchestrate Slack with Kestra
Share this Blueprint
See How

New to Kestra?

Use blueprints to kickstart your first workflows.