New to Kestra?
Use blueprints to kickstart your first workflows.
Get an outcome-aware LINE broadcast every time one specific business-critical Kestra flow reaches a terminal state, success or failure.
Monitor a single business-critical pipeline and push a LINE notification the moment it finishes, whether it
succeeds or fails. This blueprint watches one specific flow (here daily-revenue-close in the company.team
namespace) and broadcasts an outcome-aware message to your LINE Official Account followers on every terminal
state. It solves a common operational gap: stakeholders want a per-run confirmation for the one job that matters
most, not a firehose of cluster-wide alerts and not silence until something breaks. Each broadcast prefixes the
state, so a reader scanning their LINE feed can tell [SUCCESS] from [FAILED] at a glance.
on_critical_flow_terminal trigger of type io.kestra.plugin.core.trigger.Flow listens for executions
reaching the terminal states in its states list: SUCCESS, WARNING, FAILED, KILLED, and CANCELLED.io.kestra.plugin.core.condition.ExecutionFlow condition scopes the trigger to one exact target, matching
only the configured namespace (company.team) and flowId (daily-revenue-close).notify_outcome task of type io.kestra.plugin.line.LineExecution
broadcasts to the LINE Messaging API. Its customMessage prefixes [{{ trigger.state ?? 'MANUAL' }}], and
executionId resolves from {{ trigger.executionId ?? execution.id }} so the message links straight to the
run. customFields add the flow name, owner, and tier as readable context.retry (constant, 5 attempts, 10s apart) and a timeout: PT30S harden the single API call.5xx, timeouts, and 429 rate limits.LINE has no concept of your pipelines, and a tool's own scheduler cannot tell you that another flow just finished.
Kestra's event-driven Flow trigger fires the instant the watched execution transitions state, with no polling.
Declarative YAML keeps the watcher versioned and reviewable, built-in retry and timeout make delivery
resilient, and Kestra preserves the lineage from the original run to the alert through the resolved
executionId. The result is reliable cross-flow signaling that the underlying tool cannot provide on its own.
namespace and flowId in the condition to match it.LINE_CHANNEL_ACCESS_TOKEN: the Channel Access Token used to authenticate to the LINE Messaging API and
broadcast the message. Store it as a Kestra secret and never inline the token.LINE_CHANNEL_ACCESS_TOKEN.namespace and flowId in the ExecutionFlow condition to your critical flow.states list if you only want certain outcomes (for example, drop SUCCESS to alert on problems only).customMessage and customFields for the owning team, then deploy.executionId falls back to execution.id when no trigger is present.SUCCESS was observed in the expected window, covering the
missing-run case a Flow trigger alone cannot detect.customMessage with execution outputs or duration thresholds for richer context.