New to Kestra?
Use blueprints to kickstart your first workflows.
Trigger Kestra flows automatically when a specific upstream flow reaches a given state. Build event-driven dependencies with the ExecutionFlow condition.
id: flow-condition-executionflow
namespace: company.team
tasks:
- id: hello
type: io.kestra.plugin.core.log.Log
message: task of the triggered flow
triggers:
- id: flow_trigger
type: io.kestra.plugin.core.trigger.Flow
conditions:
- type: io.kestra.plugin.core.condition.ExecutionFlow
flowId: system_flow
namespace: system.prod
states:
- RUNNING
Build event-driven dependencies between workflows so a downstream flow runs automatically the moment a specific upstream flow reaches a chosen execution state. This blueprint wires a Flow trigger to the ExecutionFlow condition, letting you orchestrate cross-flow pipelines without polling, manual handoffs, or brittle time-based scheduling. Instead of guessing when an upstream job will finish, you react to its real execution events and keep dependent flows tightly coupled to the source of truth.
flow_trigger of type io.kestra.plugin.core.trigger.Flow, which listens to execution events from other flows on the Kestra instance.io.kestra.plugin.core.condition.ExecutionFlow condition scoped to a specific upstream flow with flowId: system_flow and namespace: system.prod.states attribute is set to RUNNING, so the trigger fires when the upstream system_flow execution enters that state.hello task of type io.kestra.plugin.core.log.Log, which writes a log message confirming the triggered run.Kestra treats flow executions as first-class events, so dependent flows react to real state changes rather than estimated timing. You get declarative YAML definitions, built-in retries and error handling, and full execution lineage across coupled flows in one place. A standalone scheduler can start a job at a fixed time, but it cannot natively listen for another workflow reaching a specific state and chain the next flow off that event. The ExecutionFlow condition closes that gap with event-driven, dependency-aware orchestration.
system_flow in the system.prod namespace whose executions you want to react to.secret() values.system_flow exists in namespace system.prod.system_flow and let it enter the RUNNING state.hello task logs its message.flowId and namespace at your own upstream flow.states to SUCCESS, FAILED, or other states to react to different outcomes.hello Log task with your real downstream tasks.