Data Transformation Nodes
Data nodes shape and restructure the information flowing through your workflow. They read from upstream node outputs, apply transformations, and produce new data structures for downstream nodes to consume.
Data Node Reference
variable-assignment
Sets one or more named workflow variables that persist for the lifetime of the execution. Variables are accessible in any subsequent node via $var.{name}.
// Example: assign result of upstream API call to a variable
variableName: "invoiceTotal"
expression: "$output.httpRequest1.body.total"
json-transform
Applies a JavaScript expression to transform the input JSON into a new shape. The most powerful data node for reshaping payloads.
// Transform config (jq-like JavaScript):
expression: `({
id: $json.customerId,
fullName: $json.firstName + ' ' + $json.lastName,
totalSpend: $json.orders.reduce((sum, o) => sum + o.amount, 0)
})`
data-mapping
A visual field-mapping tool (no code required). Maps source fields to destination fields using a drag-and-drop interface in the right panel. Generates a mapping table stored in node config.
merge
Waits for multiple upstream branches and merges their outputs into a single object. Useful after parallel execution branches.
| Field | Description |
|---|---|
| Wait For | All inputs (synchronise all branches) or Any input (first to arrive wins) |
| Merge Strategy | Deep merge, shallow merge, or array concat |
split
Takes an array from the input and routes each item to the output port individually. Creates N parallel execution threads, one per item.
aggregate
Collects results from parallel threads (created by split) and assembles them back into an array. Must be paired with a split node upstream.
| Field | Description |
|---|---|
| Collect Field | Expression picking which part of each result to collect |
| Output Key | Property name in the output object for the collected array |
$json (trigger data), $output.{nodeId} (any previous node's output), $var.{name} (workflow variables), $global.{key} (tenant-level constants).