Branches
Branches can be added to workflows to further customize the ways in which you communicate to your customers. There are three branch items that can be placed anywhere in a workflow— a True/False Branch, a Multi-Split Branch, and a Random Cohort Branch. The three branch types appear in the ‘Workflow items’ menu in the ‘Flow Control’ group.
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 for more information about dot notation in Customer.io.


True/False Branch
The True/False Branch will allow any combination of attribute, segment, or event conditions. The person will flow down either a true or false branch depending on whether they match the conditions.


To add a True/False Branch to the workflow, drag it onto the canvas just like you would any other workflow item. Branches can be inserted anywhere in the workflow.
When dropped into the workflow, the True/False Branch will have no conditions defined.
Note: a True/False Branch with no conditions defined will default to false.
To define conditions, click on the branch item just placed. The sidebar for editing items will appear. From here, you can name your branch in a way that makes sense to you. To add conditions, click the ‘Add condition’ dropdown and choose to add an attribute, event, segment, or message condition. Define the details of the condition and click the ‘Add’ button.


Add up to 4 different conditions and click ‘Save’ to save the condition and collapse the sidebar.
Multi-Split Branch
The Multi-Split Branch allows you to send people down paths based on attributes, event attributes, or segment membership. The person will flow down the first path they match moving from left to right. If they do not match any path, they will flow down the default ‘Everyone else’ path.


To add a Multi-Split Branch to the workflow, drag it onto the canvas just like you would any other workflow item. Branches can be inserted anywhere in the workflow.
When dropped into the workflow, the Multi-Split Branch will have two empty paths and a default ‘Everyone else’ path.


Note: a path with no conditions defined will default to false. In other words, a path with no conditions will always be skipped.
To define path values, click on the branch item just placed. The sidebar for editing items will appear. From here, you can name your branch in a way that makes sense to you. There are three different data types that you can choose to split on— attributes, events (for event-triggered campaigns only), or segments.
Split based on attribute values
To split based on the value of a single attribute, click ‘Attribute’ in the ‘Choose type’ dropdown. Select the attribute you’d like to split on in the ‘Attribute name’ dropdown that just appeared. And finally, enter the values of the attribute that you’d like to split on in each of the ‘Path’ text fields. To add another path, click the ‘Add’ button. Click the ‘is equal to’ dropdown if you’d like to split based on a range of values.
Note: splits are evaluated from left to right, so make sure your conditional logic works in that order.


Add up to 20 paths if wanted and click ‘Save’ to save the paths and collapse the sidebar.
Split based on event attribute values
Note: This option is only available for campaigns triggered by events.
To split based on the value of an event attribute, click ‘Event attribute’ in the ‘Choose type’ dropdown. The event that triggered the campaign will appear in the group box along with a text field to specify which event attribute you would like to split on. Enter the event attribute name in the text field. Finally, enter the values of the event attribute that you’d like to split on in each of the ‘Path’ text fields. To add another path, click the ‘Add’ button. Click the ‘is equal to’ dropdown if you’d like to split based on a range of values.
Note: splits are evaluated from left to right, so make sure your conditional logic works in that order.


Add up to 20 paths if wanted and click ‘Save’ to save the paths and collapse the sidebar.
Split based on segment membership
To split based on a segment match, click ‘Segment’ in the ‘Choose type’ dropdown. Select the segment that you’d like to split on in each of the ‘Path’ dropdowns. To add another path, click the ‘Add’ button.


Add up to 20 paths if wanted and click ‘Save’ to save the paths and collapse the sidebar.
Random Cohort Branch
The Random Cohort Branch will randomly distribute people down its paths based on the percentage allotted.


To add a Random Cohort Branch to the workflow, drag it onto the canvas just like you would any other workflow item. Branches can be inserted anywhere in the workflow.
When dropped into the workflow, the Random Cohort Branch will have two paths. These will default to be split 50/50 when placed in an inactive campaign. For an active campaign, one path will default to 100% and the other to 0%. This allows you to edit the 0% path without people flowing through it right away.
To add paths or change the distribution, click on the branch item just placed. The sidebar for editing items will appear. Click the ‘Add path’ button for a new path. The new path will default to 0% unless you’ve previously set the paths to be evenly distributed by clicking the ‘Distribute evenly’ button. To modify the distribution of each path, use the sliders or text inputs next to the sliders. The total distribution must add up to 100% before changes can be saved.


Note: the distribution of people into each path is truly random. This means that for small sample sizes, the distribution of people might not be exactly what was set. The larger the sample size, the closer to the exact distribution of people it will become.
Add up to 20 paths if wanted and click ‘Save’ to save the changes and collapse the sidebar.
Exit Block
Exit blocks allow you to force a set of users who are following a given path to exit the campaign wherever you place the Exit block. Exit blocks can be placed anywhere in a workflow that will not orphan another workflow item. In other words, they can only be placed at the end of a branch.
Let’s assume that you have a Multi-Split Branch configured to send to anyone whose favorite color is red, yellow, or blue, but you want to make sure that everyone else does not receive messages from this campaign. Drag an Exit block into the ‘Everyone else’ branch and anyone who does not match red, yellow, or blue will flow down the ‘Everyone else’ path and exit the workflow.

Delete an Exit block
To delete an exit and reconnect the path to the workflow, click the Exit block and click the ‘Delete’ option that appears.


The ‘+’ icons will appear in all the places that the path can be reconnected to its parent branch. Click one of the reconnect points.

Moving branches
Branches can be moved like any other items in the workflow. Every item on all branch paths will move along with the branch. In other words, everything between the branch block being moved and the place where all paths reconnect will move together.

Moving delays
If a branch contains a delay that currently has people waiting in it, the people will be moved with the delay. You will get a warning before completing the move when there are people waiting in a delay that is being moved.
Deleting branches
Branches cannot be deleted until all items in the branch have been removed from it. If you need to delete a branch, first delete or move all items on every one of the branch’s paths. Then, click the branch and click ‘Delete’ in the lower-left corner of the sidebar.
Copying branches
Branches can be copied just like any other workflow item by clicking on the ‘Copy workflow items from…’ in the workflow items menu. Branch items will appear in the selection list along with the others that can be copied. Copying a branch item will only copy the branch block and its path conditions. It will not copy all child items on the branch.

