> ## Documentation Index
> Fetch the complete documentation index at: https://help.reevo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Merge Branches in Workflows

> Bring Condition branches back into one shared path and optionally publish branch-specific values as named, typed outputs for downstream steps.

## Overview

A **Condition** sends each workflow run down exactly one branch. **Merge Branches** brings those paths back into one shared continuation, so the steps that happen after the decision only need to be built and maintained once.

For example, a workflow can assign large deals to an enterprise rep and smaller deals to an SMB rep, then rejoin the paths before sending the same welcome email, creating a follow-up task, and notifying Slack.

<Info>
  Merge Branches does not run branches in parallel or wait for every branch. One Condition branch runs for each record, and the workflow continues through the merge as soon as that branch finishes.
</Info>

***

## Why Use Merge Branches?

Without a merge, every branch needs its own copy of the shared follow-up steps. Those copies create extra work and can drift apart when one branch is updated but another is not.

Use Merge Branches to:

* Build shared follow-up steps once instead of once per branch
* Keep workflows shorter and easier to review
* Prevent copied branch steps from becoming inconsistent
* Give branch-specific values one shared name for downstream steps

A useful mental model is a fork in the road: the Condition is where the road splits, and Merge Branches is where the roads rejoin. Only one road is used during a workflow run.

***

## Add a Merge Branches Node

1. Add and configure a **Condition** node.
2. Build the steps that are different inside each Condition branch.
3. Add **Merge Branches** where the paths should rejoin.
4. Connect the final step from each branch to the Merge Branches node.
5. Add the shared continuation below the merge.

<Note>
  If the shared steps only need trigger data or values produced before the Condition, no other configuration is required.
</Note>

### Example

| Condition branch                | Branch-specific step     |
| :------------------------------ | :----------------------- |
| Deal amount is over \$50,000    | Assign an enterprise rep |
| Deal amount is \$50,000 or less | Assign an SMB rep        |

The assignment differs by branch. After both paths connect to Merge Branches, the welcome email, follow-up task, and Slack notification are built once in the shared continuation.

***

## Use Outputs for Branch-Specific Values

Sometimes a shared step needs a value that was produced differently inside each branch. Merge **outputs** let you publish those values under one shared, typed name.

For example, create these outputs on the Merge Branches node:

| Output                  | Enterprise branch                              | SMB branch                              |
| :---------------------- | :--------------------------------------------- | :-------------------------------------- |
| **Assigned rep** (user) | Rep selected by the enterprise assignment step | Rep selected by the SMB assignment step |
| **Priority** (picklist) | Fixed value: High                              | Fixed value: Normal                     |

Steps below the merge can reference **Assigned rep** and **Priority** without needing to know which branch ran.

### Configure an output

1. Open the Merge Branches configuration panel.
2. Add an output and give it a clear name.
3. Select its type, such as text, number, date, picklist, user, or a CRM record reference.
4. For each incoming branch, map the output to either:
   * A variable produced on that branch
   * A fixed value for that branch
5. Use the merge output as a variable in downstream steps.

Every incoming branch must supply every configured output. Reevo validates the mappings and types before the workflow can be activated.

<Warning>
  A step below the merge cannot directly reference a value that only exists inside one branch. Promote that value to a merge output so every possible branch supplies it.
</Warning>

### Typed output validation

Output types keep downstream values dependable:

* Picklist outputs must reference a real picklist, and fixed values must be active options from that list.
* CRM record outputs must reference the expected type of record.
* Every branch must map the same set of outputs.
* Type mismatches block activation instead of passing an invalid value to a later step.

***

## Use a Single Incoming Path

Merge Branches can also accept one incoming path. In a linear workflow, use an output to republish a deeply nested or hard-to-read value under one clear, typed name.

For example, an AI step may extract a budget value. A single-path Merge Branches node can publish it as **Budget mentioned** so every later step uses that stable name. If the upstream step changes later, only the merge mapping needs to be updated.

The output is additive: downstream steps can still use the other variables that were already available before the merge.

***

## Variables Available After the Merge

Steps below Merge Branches can use:

* Trigger data
* Values produced before the Condition
* Outputs declared by the Merge Branches node

They cannot directly use a variable that exists inside only one branch. This prevents a workflow from activating with a downstream reference that would be missing whenever another branch runs.

Each branch mapping must use a value that is available on that branch.

***

## Activation Checks

Before activation, Reevo checks that:

* The Merge Branches node has at least one incoming path
* Every connected branch supplies every configured output
* Output mappings match the declared output types
* Picklist and CRM record outputs identify the correct source type
* Incoming branches are mutually exclusive paths from a shared Condition

Nested Conditions are supported as long as the incoming paths remain mutually exclusive. Independent paths that could both run cannot feed the same merge.

Disconnecting a branch does not require you to manually clean up stale branch mappings before continuing to edit. Reevo uses the paths that are currently connected when validating the workflow.

***

## Run History

In a workflow run, the Merge Branches entry shows:

* Which branch reached the merge
* The final value of each configured output

Use this when debugging a workflow to confirm what the Condition resolved to and which values continued into the shared steps.

***

## Build Merge Branches with Ask Reevo

Ask Reevo can add and configure Merge Branches when building a workflow. Describe the decision and the shared continuation in plain language.

For example:

> If the deal is over \$50,000, assign an enterprise rep. Otherwise, assign an SMB rep. After either branch, notify the assigned rep and create a follow-up task.

Ask Reevo can also configure typed outputs and fixed per-branch values. Review any unresolved field, record type, or picklist option before activating the workflow.

***

## Troubleshooting / FAQs

<AccordionGroup>
  <Accordion title="Does Merge Branches wait for every branch?">
    No. A Condition runs exactly one branch for each record. The workflow continues through Merge Branches as soon as that chosen branch finishes.
  </Accordion>

  <Accordion title="Do I need to configure outputs?">
    No. If the shared steps only need trigger data or values created before the Condition, connect the paths and continue building below the merge.
  </Accordion>

  <Accordion title="Can different branches provide different kinds of values to one output?">
    No. An output has one declared type, and every branch must provide a value that matches that type.
  </Accordion>

  <Accordion title="Can an output use a fixed value instead of a variable?">
    Yes. For example, one branch can set a Priority output to High while another sets it to Normal.
  </Accordion>

  <Accordion title="Why can't a downstream step select a variable from one branch?">
    That branch may not run for every record. Map the branch-specific value to a merge output so every incoming path guarantees a value.
  </Accordion>

  <Accordion title="Why would I use Merge Branches with one incoming path?">
    Use a single-path merge to republish an upstream value under a clearer, typed name that remains stable for the rest of the workflow.
  </Accordion>

  <Accordion title="Can I merge branches from nested Conditions?">
    Yes, as long as the connected paths are mutually exclusive and only one can run for a given record.
  </Accordion>
</AccordionGroup>

> Still have questions? [Sign in](https://app.reevo.ai) and use Ask Reevo for instant answers or to raise a support ticket.
