Skip to main content

Overview

Flow control nodes manage how workflows branch, merge, iterate, and nest.

Switch Node

Conditional branching based on data evaluation

Merge Node

Combine multiple execution paths

Subflow Node

Create reusable nested workflows

Switch Node

Purpose: Conditional branching based on data evaluation Switch nodes evaluate conditions and route execution to different paths.
Switch node visual representation
Switch node visual representation
Node Handles:
Left Side - Condition InputReceives data to evaluate against conditional branches.Accepts:
  • Workflow variables
  • Previous node outputs
  • Template expressions
  • Any data for conditional evaluation
Switch nodes support dynamic branching: you can add multiple ELIF branches for complex conditional logic. Branches are evaluated in order: IF → ELIF 1 → ELIF 2 → … → ELSE.
Condition Operators: Splox switch nodes support 14 different operators for flexible conditional logic:

String Matching (6 operators)

contains
string
Check if value contains substring (case-insensitive)Example: "Hello World" contains "world"true
not_contains
string
Check if value does not contain substringExample: "Hello World" not_contains "xyz"true
equals
string
Exact match comparison (case-insensitive)Example: "admin" equals "ADMIN"true
not_equals
string
Not equal comparisonExample: "user" not_equals "admin"true
starts_with
string
Check if value starts with prefixExample: "Hello World" starts_with "Hello"true
ends_with
string
Check if value ends with suffixExample: "file.pdf" ends_with ".pdf"true
in
string
Check if value exists in comma-separated listExample: "apple" in "apple,banana,orange"true
not_in
string
Check if value does not exist in listExample: "grape" not_in "apple,banana,orange"true
is_empty
unary
Check if value is empty, null, [], or {}Example: "" is_emptytrue
is_not_empty
unary
Check if value has contentExample: "Hello" is_not_emptytrue
is_true
unary
Check if value is truthy (true, 1, yes, y)Example: "true" is_truetrue
is_false
unary
Check if value is falsy (false, 0, no, n)Example: "false" is_falsetrue
gt
number
Greater than (numeric comparison with string fallback)Example: 10 gt 5true
lt
number
Less thanExample: 3 lt 7true
gte
number
Greater than or equalExample: 10 gte 10true
lte
number
Less than or equalExample: 5 lte 8true
Unary operators (is_empty, is_not_empty, is_true, is_false) don’t require a right operand.
Condition Logic:
All conditions must be true
if (condition1 && condition2 && condition3) {
  // Take this path
}
Use for: Strict validation, multiple requirement checks
Branching: Switch nodes support multiple branches evaluated in order:
  • IF: First condition evaluated
  • ELIF: Additional conditions (evaluated if previous failed)
  • ELSE: Default path if no conditions match
Example Use Cases:
  • Content moderation (check for inappropriate content)
  • User role routing (admin vs. user paths)
  • Error handling (check for error states)
  • A/B testing (route based on user segment)

Merge Node

Purpose: Combine data from multiple parallel paths Merge nodes wait for all incoming connections to complete, then combine their outputs.
Merge node visual representation
Merge node visual representation
Node Handles:
Left Side - Multiple InputsAccepts multiple incoming connections from parallel paths.Functionality:
  • Waits for all connected inputs to complete
  • Receives data from each parallel branch
  • Synchronizes parallel execution
Accepts:
  • Multiple node outputs
  • Parallel branch results
  • Any data to merge
Merge nodes act as synchronization points in workflows. They wait for ALL incoming connections to complete before executing the merge operation and continuing.
Merge Strategies:
Combine objects into single object
// Input 1: {name: "John"}
// Input 2: {age: 30}
// Output: {name: "John", age: 30}
Use Cases:
  • Parallel API calls with combined results
  • Multi-agent responses aggregation
  • Redundant path execution (use fastest)
  • Batch processing collection

Subflow Node

Purpose: Execute reusable workflow components Subflow nodes contain nested workflows that can be reused across multiple parent workflows.
Subflow node visual representation showing nested workflow canvas
Subflow node visual representation showing nested workflow canvas
Node Structure: Subflows contain a nested canvas with their own Start and End nodes. The image above shows:
  • Left: Start node (entry point to subflow)
  • Right: End node (exit point from subflow)
  • Canvas: Isolated workflow area for building reusable logic
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
Features:
  • 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
Agent Subflow Pattern:
The subflow loops internally until the LLM completes its task, then returns results to the parent workflow.

End Node

Purpose: Marks the end of a single iteration (in subflows) or workflow completion (in main workflows)
End node visual representation
End node visual representation
Node Handles:
Left Side - Iteration/Workflow EndReceives data marking the end of execution flow.Accepts:
  • Final output data from workflow/iteration
  • Results to return to parent workflow (in subflows)
  • Data to pass to next iteration (in loops)
Features:
  • Multiple end nodes supported (different exit points)
  • In main workflows: Marks workflow completion and returns output
  • In subflows: Marks end of one iteration, loop may continue
  • Output data passed to next iteration or parent workflow
End Node vs Stop Node in Subflows
  • End Node: Completes the current iteration. If more iterations remain, execution loops back to Start Node.
  • Stop Node: Immediately terminates the entire subflow, regardless of remaining iterations.

Stop Node

Purpose: Force-terminate subflow execution immediately Stop nodes set a ForceFinish flag that exits the subflow loop, regardless of max_iterations.
Stop node visual representation
Stop node visual representation
Node Handles:
Left Side - Force Termination TriggerReceives signal to immediately terminate subflow execution.Accepts:
  • Final output data before termination
  • Completion signal from tools (e.g., “send_final_response”)
  • Error conditions requiring immediate exit
Stop nodes have no output handles. They immediately terminate the subflow and return control to the parent workflow. Use End nodes if you need to continue workflow execution.
Features:
  • Immediate Termination: Stops all remaining iterations in the subflow
  • Return to Parent: Parent workflow continues from the node after the subflow
  • Iteration Override: Bypasses max_iterations check
  • Last Output Returned: Returns the output from the most recent completed iteration
Use Cases:
  • Agent completes task and calls “send_final_response” tool → Stop
  • Error condition requires immediate exit
  • Task completion detected (no need for more iterations)
  • Resource limits reached
Behavior:
Stops the entire subflow iteration loop
Even if max_iterations = 10, the Stop Node immediately terminates the subflowParent workflow resumes immediately from the node after the subflow
Common Pattern:


What’s Next?