# Types of branches

## Flow controls and branches[](#flow-controls-and-branches)

Branches help you personalize campaigns or test different messages in a campaign. When people reach a flow-control block in your workflow, we’ll evaluate criteria to determine which path to send them down.

We offer three types of branching flow controls that you can place anywhere in your workflows:

*   [True/False Branches](/journeys/true-false): Send people go down one path if they match a condition, or down the other path if they don’t.
*   [Multi-Split Branches](/journeys/multi-split): Send people down different paths where each path has its own conditions.
*   [Random Cohort Branches](/journeys/random-cohort): Send people down different paths based on a random distribution. This is a great way to test different flows in a campaign, like a more robust version of our A/B testing feature for individual messages.

[![The left hand menu of the workflows step of a campaign. Towards the bottom is a list of branches under the section title Flow Control.](https://docs.customer.io/images/branching-workflow-items.png)](#e21bb2e9fca924a5877a0a7925b56da2-lightbox)

 You can use JSON dot notation in condition logic

If you store attributes or event data in JSON objects or arrays, you can use JSON dot notation in your branch conditions to evaluate these properties. Use `array[]` to represent any item in an array or `array[0]` to represent the first item in the array. See [Storing and using JSON](/journeys/getting-started-with-json/#referencing-json-data-dot-notation) for more information about dot notation in Customer.io.

## Walkthrough of different branch types[](#walkthrough-of-different-branch-types)

Check out this walkthrough to understand how you could use each branch type:

## Moving branches[](#moving-branches)

You can move branches like any other items in the workflow. When you click and drag a branch, you’ll carry everything along its paths. That way, wherever you drop the branch, everything stays together.

![Move branch](https://docs.customer.io/images/branching_move-branch.gif)

#### Moving delays in active campaigns[](#moving-delays-in-active-campaigns)

If a branch contains a delay that currently has people waiting in it, and you move the branch, the people in your campaign will move with the delay.

## Deleting branches[](#deleting-branches)

You can’t delete a branch until you’ve removed all items from it. If you need to delete a branch, first delete or move all items out the branch’s path. Then, select the branch and click **Delete**.

## Copying branches[](#copying-branches)

You can [copy branches to/from other workflows](/journeys/copying-workflow-items/) by clicking **Copy from workflow** at the top of the Build menu or selecting a branch then **Copy to** at the bottom.