Skip to content

Flow Nodes

Flow nodes are the building blocks of automation workflows. Each node performs a specific action when executed, transforming data and routing it to subsequent nodes.


Generic Nodes

Core logic nodes for flow control: Condition, Iterator, Switch, Timer, Mapper.

Storage Nodes

Persistent data operations: Add, Get, Update, Delete, Search.

App Nodes

Integration-specific actions from registered apps (Shopify, FedEx, etc.).


Every node has:

  • Module ID: Unique identifier (e.g., ion.action.condition)
  • Input Handle(s): Where data enters the node
  • Output Handle(s): Where data exits (success, error, conditional)
  • Configuration: Node-specific settings stored in node.data
┌─────────────────────┐
│ │
input ─┤ Node Logic ├─ output
│ │
└─────────────────────┘
└─ error

NodeModuleDescription
Conditionion.action.conditionIf/then/else branching
Iteratorion.action.iteratorLoop through arrays
Switchion.action.switchMulti-way routing
Timerion.action.timerDelay execution
Mapperion.action.mapperTransform data visually
Flowion.action.flowExecute subflow
NodeModuleDescription
Store Addion.store.addCreate record
Store Getion.store.getRead record by key
Store Updateion.store.updateUpdate record
Store Deleteion.store.deleteDelete record
Store Checkion.store.checkCheck if exists
Store Searchion.store.searchQuery with filters
Store Countion.store.countCount records

When a flow runs:

  1. Data enters through the trigger node
  2. Each node receives data via its input handle
  3. Node executes its logic using node.data configuration
  4. Results are sent to connected output handles
  5. Process continues until no more nodes to execute
graph LR
A[Trigger] --> B[Node 1]
B --> C{Condition}
C -->|then| D[Node 2]
C -->|else| E[Node 3]
D --> F[End]
E --> F

All nodes have an error output handle. When an error occurs:

  • Error data is sent to the error handle
  • If connected, execution continues on that branch
  • If not connected, the flow records the error but continues