Switch Node
Switch Node
Section titled “Switch Node”Module ID: ion.action.switch
The Switch node routes data to multiple outputs based on configurable rules or expressions. Unlike Condition (binary), Switch supports any number of output paths.
Overview
Section titled “Overview”Use the Switch node when you need to route data to different branches based on complex logic. It supports two modes:
- Rules mode: Visual rule builder with multiple conditions per rule
- Expression mode: Custom expression evaluation
Handles
Section titled “Handles”| Handle | Description |
|---|---|
input | Data to evaluate |
Outputs
Section titled “Outputs”| Handle | Description |
|---|---|
[rule_name] | Dynamic output for each configured rule |
default | No rules matched |
error | Invalid configuration or evaluation error |
Configuration
Section titled “Configuration”// node.data structure{ mode: "rules" | "expression", data: RulesData | ExpressionData}Rules Mode
Section titled “Rules Mode”{ mode: "rules", data: { rules: [ { name: string, // Output handle name conditions: Condition[] // Conditions to evaluate } ] }}Expression Mode
Section titled “Expression Mode”{ mode: "expression", data: { expression: string // Expression to evaluate }}Example: Rules Mode
Section titled “Example: Rules Mode”Route orders by status:
{ "mode": "rules", "data": { "rules": [ { "name": "pending", "conditions": [ { "field": "status", "operator": "is_equal", "value": "pending" } ] }, { "name": "shipped", "conditions": [ { "field": "status", "operator": "is_equal", "value": "shipped" } ] }, { "name": "cancelled", "conditions": [ { "field": "status", "operator": "is_equal", "value": "cancelled" } ] } ] }}This creates outputs: pending, shipped, cancelled, default, error
Visual Representation
Section titled “Visual Representation” ┌── pending ──→ [Process Pending] │[Input] → [Switch] ─┼── shipped ──→ [Track Shipment] │ ├── cancelled ─→ [Refund] │ └── default ──→ [Unknown Status]Behavior
Section titled “Behavior”- Receives input data
- Parses configuration (mode + data)
- Based on mode:
- Rules: Evaluates each rule’s conditions in order
- Expression: Evaluates the expression
- Routes to matching rule’s output handle
- If no match → routes to
default - On error → routes to
error
Common Patterns
Section titled “Common Patterns”Order Fulfillment Router
Section titled “Order Fulfillment Router”[New Order] → [Switch by fulfillment_type] ├── pickup → [Prepare for Pickup] ├── delivery → [Schedule Delivery] ├── shipping → [Create Shipment] └── default → [Manual Review]Priority Handler
Section titled “Priority Handler”[Support Ticket] → [Switch by priority] ├── critical → [Page On-Call] ├── high → [Assign Senior] ├── medium → [Add to Queue] └── low → [Auto-Response]Error Cases
Section titled “Error Cases”| Error | Cause |
|---|---|
| ”Not configured node” | node.data is null |
| ”Invalid data type” | Configuration format incorrect |
| ”Invalid switch node mode” | Mode is not “rules” or “expression” |
See Also
Section titled “See Also”- Condition Node - For simple if/else logic
- Flow Nodes Overview