New to Kestra?
Use blueprints to kickstart your first workflows.
Turn monitoring alerts into urgent Todoist tasks with Kestra. A webhook creates a task due today and confirms the task id to Slack so nothing is lost.
Alerts are easy to see and easy to lose. A Slack ping or a pager notification scrolls away, and thirty minutes later nobody remembers whether anyone picked it up. This blueprint gives every alert a durable owner: a Kestra webhook receives the alert payload, io.kestra.plugin.todoist.CreateTask creates a priority 4 task due today, and Slack gets a confirmation carrying the created task id. The alert now lives somewhere that nags until it is closed.
alert_webhook (io.kestra.plugin.core.trigger.Webhook) exposes an endpoint keyed by a shared secret string. Any monitoring tool that can POST JSON can call it.create_task (io.kestra.plugin.todoist.CreateTask) builds the task from the request body: content comes from trigger.body.title and the long description from trigger.body.description, each with a ?? fallback so a malformed payload still produces a visible task instead of a template error. The task is created with priority: 4 and dueString: today, so it lands at the top of today's list.{{ outputs.create_task.taskId }} and posted to Slack by confirm.errors block posts a distinct Slack warning when creation fails, explicitly saying the alert was not captured.?? fallbacks.Todoist has no native inbound webhook for task creation from arbitrary systems. Kestra provides the endpoint, the payload templating with safe fallbacks, the secret handling for the API token, the Slack confirmation, and an execution history that shows exactly which alert produced which task and when.
title and description fields, or adjust the expressions to your payload shape.TODOIST_API_TOKEN: Todoist personal API token.SLACK_WEBHOOK_URL: Slack incoming webhook URL.change-me-strong-webhook-key with a strong random string.{"title": "Disk 90 percent on db-1", "description": "Grows 2 percent per hour"} to the webhook URL.projectId.priority with a conditional expression instead of hardcoding 4.io.kestra.plugin.core.flow.If task to skip task creation for low-severity payloads.