Flow Trigger
Trigger flows from another flow execution.
Flow triggers allows you to trigger a flow after another flow execution, enabling event-driven patterns.
type: "io.kestra.plugin.core.trigger.Flow"
Kestra is able to trigger one flow after another one. This allows the chaining of flows without the need to update the base flows. With this capacity, you can break responsibility between different flows to different teams.
Check the Flow trigger documentation for the list of all properties.
Conditions
You can provide conditions to determine when your Flow should be executed. Along with the core trigger conditions, you can use the following:
- ExecutionFlowCondition
 - ExecutionNamespaceCondition
 - ExecutionLabelsCondition
 - ExecutionStatusCondition
 - ExecutionOutputsCondition
 - ExpressionCondition
 
Example
This flow will be triggered after each successful execution of the flow io.kestra.tests.trigger-flow and forward the uri output of the my-task task.
id: trigger-flow-listener
namespace: company.team
revision: 1
inputs:
  - id: fromParent
    type: STRING
tasks:
  - id: onlyNoInput
    type: io.kestra.plugin.core.debug.Return
    format: "v1: {{trigger.executionId}}"
triggers:
  - id: listenFlow
    type: io.kestra.plugin.core.trigger.Flow
    inputs:
      fromParent: '{{ outputs.myTask.uri }}'
    conditions:
      - type: io.kestra.plugin.core.condition.ExecutionFlowCondition
        namespace: company.team
        flowId: trigger-flow
      - type: io.kestra.plugin.core.condition.ExecutionStatusCondition
        in:
          - SUCCESS
Parent flow:
id: trigger-flow
namespace: company.team
tasks:
  - id: myTask
    type: io.kestra.plugin.core.http.Download
    uri: https://dummyjson.com/products
This flow will be triggered after the successful execution of both flows flow-a and flow-b during the current day. When the conditions are met, the counter is reset and can be re-triggered during the same day. See MultipleCondition for more details
id: trigger-multiplecondition-listener
namespace: company.team
tasks:
  - id: onlyListener
    type: io.kestra.plugin.core.debug.Return
    format: "let's go "
triggers:
  - id: multipleListenFlow
    type: io.kestra.plugin.core.trigger.Flow
    conditions:
      - id: multiple
        type: io.kestra.plugin.core.condition.MultipleCondition
        window: P1D
        windowAdvance: P0D
        conditions:
          flow-a:
            type: io.kestra.plugin.core.condition.ExecutionFlowCondition
            namespace: company.team
            flowId: trigger-multiplecondition-flow-a
          flow-b:
            type: io.kestra.plugin.core.condition.ExecutionFlowCondition
            namespace: company.team
            flowId: trigger-multiplecondition-flow-b
Simply execute the two flows below to trigger trigger-multiplecondition-listener:
id: trigger-multiplecondition-flow-a
namespace: company.team
tasks:
  - id: hello
    type: io.kestra.plugin.core.log.Log
    message: Trigger A
id: trigger-multiplecondition-flow-b
namespace: company.team
tasks:
  - id: hello
    type: io.kestra.plugin.core.log.Log
    message: Trigger B
Was this page helpful?