Subflow Node
Purpose: Execute reusable workflow components Subflow nodes contain nested workflows that can be reused across multiple parent workflows.

- Left: Start node (entry point to subflow)
- Right: End node (exit point from subflow)
- Canvas: Isolated workflow area for building reusable logic
- External Handles
- Internal Nodes
Parent Workflow ConnectionWhen viewed from the parent workflow, subflow nodes have standard handles:
- Input Handle (Left): Receives data from parent workflow
- Passes data to subflow’s Start node
- Triggers subflow execution
- Output Handles (Right):
- PARALLEL: Main output after subflow completes
- Returns data from subflow’s End node
- Continues parent workflow
- ERROR: Error handling path
- Activated on subflow execution errors
- Passes error details to parent
- PARALLEL: Main output after subflow completes
- Encapsulation: Isolated execution context
- Reusability: Use same subflow in multiple places
- Iteration: Can loop within subflow (agent patterns)
- Parameters: Pass data in/out via start/end nodes
- Resizing: Adjust canvas size to fit nested workflow
Configuration
Common Configuration
Label
Label
Description: A user-defined name to identify this subflow node in your workflow.Type: StringRequired: YesExample:
Iterate Over
Iterate Over
Description: Choose what to iterate over in this subflow.Type: SelectRequired: YesOptions:
- Number of Times (Count) - Execute subflow N times
- List of Items - Execute subflow once for each item in a list
- Count: Fixed number of iterations (e.g., retry 3 times, generate 10 variations)
- Items: Process dynamic lists (e.g., batch processing, multi-item workflows)
Execution Mode
Execution Mode
Description: How iterations should be executed.Type: SelectRequired: YesOptions:
- Sequential (one after another) - Execute iterations in order, one at a time
- Parallel (all at once) - Execute all iterations simultaneously
- Sequential: When order matters, rate limiting needed, or processing depends on previous results
- Parallel: For independent tasks, faster processing, batch operations
Count-Based Iteration
These fields appear when Iterate Over = “Number of Times (Count)”
Number of Iterations
Number of Iterations
Description: How many times to execute the subflow.Type: NumberRequired: YesMinimum: 1Example:Use Cases:
- Retry mechanisms
- Bulk generation (multiple outputs)
- Fixed batch processing
- Agent thinking loops (max iterations)
Delay Between Iterations (seconds)
Delay Between Iterations (seconds)
Description: Wait time between sequential iterations.Type: NumberRequired: NoDefault: 0Minimum: 0Visibility: Only when Execution Mode = “Sequential”Example:Use Cases:
- Rate limiting (avoid API throttling)
- Polling with intervals
- Controlled execution speed
- Respect service quotas
List-Based Iteration
These fields appear when Iterate Over = “List of Items”
Items to Process
Items to Process
Description: The items to iterate over.Type: Editor (Pongo template)Required: YesHow It Works:
Provide items in the format selected below. Each item becomes one subflow execution.Supports:Example (Plain Text):
- Template variables:
{{ start.items }} - Static data
- Dynamic lists from previous nodes
Items Format
Items Format
Description: How the items are formatted.Type: SelectRequired: YesOptions:Each line = one subflow executionJSON Array Example:Each object = one subflow executionCSV Example:Each row (except header) = one subflow execution
- Plain Text (one per line) - Each line is one item
- JSON Array - Standard JSON array format
- CSV - Comma-separated values
Accessing Item Data: Inside the subflow, use
{{ start.item }} to reference the current iteration’s item.Delay Between Iterations (seconds)
Delay Between Iterations (seconds)
Description: Wait time between sequential iterations.Type: NumberRequired: NoDefault: 0Minimum: 0Visibility: Only when Execution Mode = “Sequential”Example:Use Cases:
- Process items with rate limiting
- Batch operations with controlled speed
- API calls with quotas

