If/Else Branching Setup
Create personalized automation paths by routing contacts based on their data, behavior, and engagement. This guide shows you how to build conditional branches that adapt to each contact’s unique profile.
Prerequisites
Before you begin, make sure you have:
- Access to Automation > Workflows in your sub-account
- An existing workflow with at least one trigger and one action configured
- Understanding of which contact data or behaviors should determine the path (tags, custom fields, email engagement, pipeline stage, etc.)
- Custom fields or tags created if you plan to use them in your conditions
Navigate to the Workflow Canvas
Open the workflow where you want to add branching logic.
Go to Automation > Workflows in your sub-account and click the workflow you want to edit. The workflow canvas opens with your existing trigger and actions visible.
Identify the point in your workflow where you want to create a decision point. Typically, you add If/Else branching after a wait step or communication action. For example, send an email, wait 24 hours, then check whether the contact opened it.
Add the If/Else Action
Insert the branching node into your workflow.
Click the + button on the workflow line where you want the decision point. The Actions panel opens on the right side. Search for If/Else or expand the Internal Tools category and select it.
A configuration panel opens with two options: Build My Own and Recipe. Choose Build My Own to create custom conditions from scratch, or Recipe to start from a prebuilt condition template for common scenarios.
Click Build My Own to proceed with custom conditions.
Create Your First Branch
Define the condition that determines which contacts take this path.
The If/Else configuration panel shows a default branch at the top and a None branch at the bottom. The None branch is the fallback for contacts who do not match any defined condition.
Click inside the first branch to configure it. Give the branch a descriptive name like “Opened Email” or “VIP Customer” instead of leaving it as “Branch 1.” This makes your canvas easier to understand.
Click Add Segment to create your first condition. A three-part form appears where you define what to evaluate.
Configure the Condition
Define what field to check, how to compare it, and what value to match.
In the Field dropdown, select the data point you want to evaluate. Options include:
- Contact Fields: Name, email, phone, address, source
- Custom Fields: Any custom field you have created in your CRM
- Tags: Check whether a contact has or does not have specific tags
- Appointments: Filter by appointment status, calendar, date range, or assigned team member
- Email Events: Check whether a contact opened, clicked, or did not engage with a specific email
- Pipeline/Opportunity: Evaluate pipeline stage, deal value, or opportunity status
Choose the Operator from the dropdown. Common operators include:
- Equals: Exact match
- Does not equal: Exclude specific values
- Contains: Partial match (useful for text fields)
- Is empty: Field has no value
- Is not empty: Field has a value
- Is greater than / Is less than: Numeric or date comparisons
Enter or select the Comparison Value in the third field. This is the value you are checking against. For tags, select the tag name from the dropdown. For custom fields, enter the expected value.
Click Save to add the condition to the branch.
Add Multiple Conditions to a Branch
Create AND/OR logic by adding additional conditions.
If you want contacts to match all conditions in the branch, click Add Segment again and choose AND logic. Both conditions must be true for the contact to enter this branch.
If you want contacts to match any one of several conditions, click Add Segment and choose OR logic. The contact enters the branch if at least one condition is true.
You can combine AND and OR logic by creating multiple condition groups (called segments) within the same branch. Each segment is evaluated independently.
Add Additional Branches
Create multiple paths by adding more branches.
Click Add Branch at the bottom of the configuration panel to create a second conditional path. Repeat the process above to define the conditions for this new branch.
You can add up to 10 branches per If/Else action, plus the automatic None branch. Each branch represents a separate path on the workflow canvas.
Name each branch descriptively so your team understands the logic at a glance. For example, use names like “High Value Lead,” “Existing Customer,” “Did Not Respond,” and “New Prospect.”
Reorder Branches
Control which condition is evaluated first by changing branch order.
Click the Reorder Branches icon in the If/Else configuration panel. Drag and drop branches into your preferred order.
Branch order matters because contacts enter the first matching branch from top to bottom. If two branches are both true for a contact, only the first one executes. Place the most specific conditions at the top and broader conditions below.
The None branch always stays at the bottom and cannot be reordered.
Add Actions to Each Branch
Define what happens when a contact enters each path.
Click Save Action to close the If/Else configuration and add it to your workflow canvas. The If/Else node appears with separate paths for each branch.
Click the + button inside the branch you want to expand. Add actions like Send SMS, Send Email, Update Contact Field, Add Tag, or another If/Else node for nested logic.
Repeat for each branch. Each path operates independently, so you can send different messages, apply different tags, or route contacts to different workflows based on the branch they enter.
Use Dynamic Values (Advanced)
Compare contact data against values from earlier workflow steps instead of static values.
When configuring a condition, look for the Dynamic Value toggle or button in the comparison value field. Click it to switch from a static value to a dynamic reference.
Select a value from an earlier workflow step output or a stored contact field. For example, if a previous step captured a proposal amount, you can compare the contact’s deal value against that captured amount.
Dynamic values work with numeric, date, dropdown, and monetary field types. Ensure the field types match (do not compare a date against a number).
Click Save to apply the dynamic value.
Test Your Branching Logic
Verify contacts are routed correctly before going live.
Click Save to preserve your changes, then click Publish to activate the workflow. Create two or more test contacts with different data profiles. For example, one contact with the “VIP” tag and one without.
Perform the triggering action for each test contact (submit a form, add a tag, etc.). Check the Execution Logs at the bottom of the workflow screen to see which branch each contact entered.
If contacts are not routing as expected, review your conditions:
- Check that field names match exactly (tags and custom field names are case-sensitive)
- Verify operators are correct (use “contains” instead of “equals” for partial matches)
- Confirm branch order places the most specific conditions at the top
- Make sure the None branch has actions for contacts who do not match any condition
Test Your Setup
Verify your branching logic is configured correctly:
- Confirm each branch has a clear, descriptive name
- Check that conditions use the correct field names and operators
- Test with contacts who match each branch to verify routing
- Verify the None branch has actions for contacts who do not match any condition
- Review branch order to ensure the most specific conditions are evaluated first
- Monitor the Execution Logs for the first 24 hours to catch any unexpected routing
Next Steps
Now that your branching logic is live, expand your conditional workflows:
- Nest If/Else actions inside branches to create multi-level decision trees
- Combine If/Else with Wait steps to check contact behavior after giving them time to act
- Use dynamic values to compare contact data against values captured in earlier steps
- Explore the full If/Else Branching guide for advanced use cases
- Build complete automations in the Workflow Builder
- Master Triggers to start workflows at exactly the right moment