- Get started
- Build
- Deploy and run
- Examples
- Reference
Merge
The Merge node waits for parallel branches to finish and combines their output variables.
Waits for all incoming parallel branches to complete before the run continues to the next node.
When to use Merge
Merge fits when the workflow splits into genuinely parallel branches (by drawing multiple connections from a single node's output port) and must continue only after all branches finish.
A Merge node is not needed after a Decision or Switch node, because those branches are mutually exclusive and not parallel. They converge naturally without a Merge node.
Configuration
The Merge node has no configuration fields. It infers the number of incoming branches from the connections on the canvas.
How it works
As branches complete, the Merge node collects their output variables. When the last branch finishes, Merge activates its single output port. All output variables from all branches are available to downstream nodes.
Examples
Parallel API calls that are then combined:
Trigger → [HTTP Request A] → Merge → Script (combine A and B results)
→ [HTTP Request B] ↗
Trigger → [HTTP Request A] → Merge → Script (combine A and B results)
→ [HTTP Request B] ↗
The Script node after Merge can reference both httpRequestA.body and httpRequestB.body.
Run three enrichment steps in parallel:
Trigger → [Enrich from CRM] ↘
→ [Enrich from billing] → Merge → Data Transform (combine all three)
→ [Enrich from support] ↗
Trigger → [Enrich from CRM] ↘
→ [Enrich from billing] → Merge → Data Transform (combine all three)
→ [Enrich from support] ↗
Common issues
| Issue | Resolution |
|---|---|
| Two branches produce a variable with the same name | The last branch to complete wins. Rename one of the conflicting output variables to avoid the collision. |
| One branch fails and the Merge never completes | If any incoming branch raises an unhandled error, Merge raises an error and stops waiting for remaining branches. Connect the error handle on failure-prone nodes in each branch so the failure is handled before it reaches the Merge. |
| Using Merge after a Decision node | Branches from a Decision node are mutually exclusive Only one fires. A Merge node after them waits forever for the second branch that never runs. Remove the Merge; the branches re-join implicitly. |
Notes
- There is no timeout on Merge. If a branch hangs, for example a Quick Form waiting for a response, the Merge waits indefinitely unless the hanging node has a timeout.
Next steps
- Control flow: the nodes that branch, repeat, and rejoin paths.
- Decision: branching on a condition.
- Error handling: handling a failure in one branch.
- Community: ask questions and share workflows with other builders on the UiPath Forum.