New to Kestra?
Use blueprints to kickstart your first workflows.
Send instant Slack alerts when any Kestra workflow execution fails or warns, using a single system flow with a Flow trigger and SlackExecution.
id: failure-alert-slack
namespace: system
tasks:
- id: send_alert
type: io.kestra.plugin.slack.notifications.SlackExecution
url: "{{ secret('SLACK_WEBHOOK') }}"
executionId: "{{ trigger.executionId }}"
triggers:
- id: on_failure
type: io.kestra.plugin.core.trigger.Flow
conditions:
- type: io.kestra.plugin.core.condition.ExecutionStatus
in:
- FAILED
- WARNING
Catch failures the moment they happen with a single, centralized Slack alerting flow. This blueprint sends a Slack notification whenever any Kestra workflow execution finishes in a FAILED or WARNING state, so your team finds out about broken pipelines from a Slack channel instead of from an angry stakeholder. It solves the noisy, scattered problem of wiring per-flow error handling: one flow watches every execution across your instance and routes failures to the right place.
io.kestra.plugin.core.trigger.Flow trigger listens for executions across your Kestra instance.io.kestra.plugin.core.condition.ExecutionStatus condition narrows the trigger so it only fires when an execution ends with status FAILED or WARNING.send_alert task, of type io.kestra.plugin.slack.notifications.SlackExecution, posts a formatted message to Slack using the incoming webhook URL and the failed executionId so the alert links straight back to the run.FAILED) and soft failures (WARNING).A scheduler can run a job, but it cannot reliably tell you when something elsewhere broke. Kestra's event-driven Flow trigger reacts to the lifecycle of every other execution on the instance, something a single tool's own scheduler cannot do. You get declarative YAML you can version control, retries and lineage on the alerting flow itself, and one source of truth for failure routing rather than copy-pasted error handlers. Slack has no awareness of your pipelines, and a cron tool has no awareness of execution status: Kestra connects the two.
SLACK_WEBHOOK: the Slack incoming webhook URL used by the send_alert task to post messages.SLACK_WEBHOOK secret in Kestra.io.kestra.plugin.core.condition.ExecutionNamespaceCondition to the trigger.send_alert to page on-call, open a ticket, or write to a log.SlackExecution task.