All nodes/Logic & Flow/Synchronization
Merge
Combines separate exec and data inputs into a single execute_data output. Fires on the incoming exec and takes the last value from the data input.
Type in the graph: merge
Exec
An error branch can be enabled (expose_error_output) to handle failures on their own path.
Try it
Minimal working workflow
- Execute + Data
Runs as pasted
When to use it
Assembles one combined “execution + data” edge out of two separate ones: “Event” sets the moment, “Data” supplies the value. Use it when the “go” signal and the value come from different places while the next step expects a single combined edge.
Before adding the node, check the neighbours’ settings: many nodes offer “Split input ports”
and “Split output ports” toggles that do the same thing on the node itself, without an extra
box on the canvas. Reach for merge when a node has no such toggle, or when you want the
join of two branches to be a visible element of the graph.
How it works
The node fires when execution arrives at “Event” and, at that moment, takes the current value
from “Data”. That value is what leaves the output — the “Event” branch adds nothing to it — so
{{ nodes.<id>.output }} is the data-input value.
The data input only reads a result, it does not order execution: the branch it reads from has to finish earlier along the execution path. The exception is configuration nodes such as template, var and const: they have no execution input, and Flow evaluates them itself at the moment the value is needed.
Common mistakes
- Expecting the node to wait for both branches.
mergeis not a barrier: it fires on the incoming execution and takes whatever value sits on the data input right then. If the data branch finishes later, the output is empty. Waiting is what wait_all is for. - Two edges into one input. “Event” and “Data” each take a single edge; a second one makes the input ambiguous and the graph fails validation. To combine two values into one, use json_merge or a barrier.
- Expecting something from the “Event” branch on the output. That branch contributes only
the moment of firing; the source node’s result does not end up in the value. If you need it,
read it with a template:
{{ nodes.<source id>.output }}.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Eventevent | Executeexecute | — | Execution trigger |
Datadata | Datadata | — | Data payload (snapshot on trigger) |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Resultoutput | Execute + Dataexecute_data | object |
Configuration
This node has no configurable fields.
Shared fields
Every node has these three — the platform adds them, not the node author.
expose_error_output— When enabled, show an execution output to connect nodes that run if this step fails.