Skip to content

Flow Node

Module ID: ion.action.flow

The Flow node executes another flow as a subflow, enabling modular and reusable flow design.


Use the Flow node to break complex automations into smaller, reusable components. A subflow receives input from the parent flow, executes its logic, and returns results back to the parent.


HandleDescription
inputData passed to the subflow
HandleDescription
outputResult from the subflow
errorSubflow execution failed

// node.data structure
{
flow_id: string // UUID of the flow to execute
}

  1. Receives input data
  2. Loads the referenced flow by flow_id
  3. Executes the subflow with input data as initial payload
  4. Waits for subflow completion
  5. Returns subflow result to output handle
graph TB
subgraph Parent Flow
A[Start] --> B[Flow Node]
B --> C[Continue]
end
subgraph Subflow
D[Trigger] --> E[Process] --> F[End]
end
B -.->|input| D
F -.->|result| B

Parent Flow:

[Order Created] → [Process Order] → [Flow: Send Notifications]
└→ [Complete]

Subflow “Send Notifications”:

[Trigger] → [Send Email] → [Send SMS] → [End]

[Main Flow] → error → [Flow: Handle Error] → [Log]
[Order Flow] → [Flow: Sync to Shopify]
[Return Flow] → [Flow: Sync to Shopify]
[Update Flow] → [Flow: Sync to Shopify]

  1. Keep subflows focused - Each subflow should do one thing well
  2. Document inputs/outputs - Make clear what data the subflow expects
  3. Handle errors - Connect the error handle in the parent flow
  4. Avoid deep nesting - Limit subflow depth for debuggability