New to Kestra?
Use blueprints to kickstart your first workflows.
Send WhatsApp notifications when Kestra workflows fail or warn. A reusable system flow that turns execution status into instant mobile alerts.
Turn Kestra execution failures into instant mobile alerts with a reusable WhatsApp notifier. This system flow listens for any workflow under the company namespace that ends in FAILED or WARNING state and pushes a message to the on-call team through a WhatsApp webhook, so incidents are seen on the device people actually check. It replaces ad-hoc email rules and Slack-only alerting with a mobile-first channel that fits how distributed and on-call engineering teams actually work.
io.kestra.plugin.core.trigger.Flow) listens for executions of other flows in the same instance.io.kestra.plugin.core.condition.ExecutionStatus keeps only FAILED and WARNING runs, and io.kestra.plugin.core.condition.ExecutionNamespace with comparison: PREFIX and namespace: company keeps only flows under that namespace tree.send_notification task (io.kestra.plugin.meta.whatsapp.WhatsAppExecution) posts the alert through your WhatsApp webhook URL, with a profileName, a from phone number, a list of recipient whatsAppIds, and a payload that includes {{ trigger.executionId }} and {{ taskrun.startDate }}.company.*.WhatsApp has no native concept of "send me a message when a data pipeline fails." Kestra fills that gap: Flow triggers turn execution state changes into events, declarative YAML keeps the alerting logic in Git next to the workflows it protects, and conditions let you scope alerts by namespace, status, or labels without writing glue code. Retries, execution lineage, and full audit history mean you can prove what fired, when, and why, something a bare webhook script cannot do.
company.* namespace (adjust the prefix to match yours).WHATSAPP_WEBHOOK: the full webhook URL used to deliver messages.WHATSAPP_WEBHOOK secret to your Kestra instance.from, profileName, and whatsAppIds with your real sender and recipients.ExecutionNamespace condition to match the namespace prefix you want to monitor.system or company.alerts.io.kestra.plugin.core.execution.Fail and confirm the WhatsApp message arrives.trigger.labels and sending to different whatsAppIds.payload with the flow id, namespace, and a direct link to the execution UI.io.kestra.plugin.core.condition.ExecutionLabels to alert only on production-tagged runs.