Skip to main content
The Branch action evaluates a condition and routes execution down one of two paths: Yes (condition is true) or No (condition is false). Use it when you need to make a single decision that affects what happens next.

How it works

  1. Define a condition using an expression
  2. The condition is evaluated to true or false
  3. Execution continues down the corresponding branch
  4. Each branch can have its own sequence of actions

Configuration

PropertyDescription
ConditionAn expression that evaluates to true or false

Writing conditions

Comparison operators

OperatorMeaningExample
==Equals{{nodes.start.status == "active"}}
!=Not equals{{nodes.start.tier != "free"}}
>Greater than{{nodes.score.value > 50}}
>=Greater than or equal{{nodes.enrich.employees >= 100}}
<Less than{{nodes.start.days_remaining < 7}}
<=Less than or equal{{nodes.score.value <= 30}}

Logical operators

Combine multiple conditions:
OperatorMeaningExample
&&AND{{nodes.score.value > 50 && nodes.enrich.employees > 100}}
||OR{{nodes.start.source == "inbound" || nodes.score.value > 80}}
!NOT{{!nodes.start.is_competitor}}

Checking for values

CheckExpression
Value exists{{nodes.enrich.email}}
Value is null/empty{{!nodes.enrich.email}}
Array has items{{nodes.search.results.length > 0}}
String contains{{nodes.enrich.industry.includes("Tech")}}
String starts with{{nodes.start.email.startsWith("sales@")}}

Common use cases

Qualify leads

Route based on lead score:
Condition: {{nodes.score.value >= 50}}

Yes → Add to sales sequence, Create CRM task
No  → Add to nurture campaign

Check enrichment results

Handle cases where enrichment found data vs. didn’t:
Condition: {{nodes.enrich.company_name}}

Yes → Continue with enriched data
No  → Use fallback data or skip

Handle different customer tiers

Route enterprise vs. standard customers:
Condition: {{nodes.enrich.employees >= 1000}}

Yes → Enterprise onboarding flow
No  → Self-serve onboarding flow

Validate required data

Check if required fields are present:
Condition: {{nodes.start.email && nodes.start.company_domain}}

Yes → Process the record
No  → Log error, skip processing

Check previous action success

Route based on whether a previous action succeeded:
Condition: {{nodes.api_call.success == true}}

Yes → Process response
No  → Handle error, retry, or alert

Branch vs. Switch

Choose the right action for your logic:
Use Branch when…Use Switch when…
Single yes/no decisionMultiple possible values
Binary conditionMore than two paths needed
Simple true/false checkMatching against specific values
Example:
  • “Is the score above 50?” → Branch
  • “Which tier is this lead: A, B, C, or D?” → Switch

Branch vs. Filter

Both can stop execution, but they work differently:
FeatureBranchFilter
PathsTwo paths (Yes and No)Single path (continues or stops)
Use caseDo different things based on resultStop processing if condition fails
FlexibilityHandle both outcomesOnly handles the “pass” case
Use Branch when you need to handle both outcomes. Use Filter when you just want to stop processing certain records.

Handling both branches

Always consider what should happen on each path:

Yes branch actions

  • Continue normal processing
  • Send notifications
  • Update CRM records
  • Add to campaigns

No branch actions

  • Log the skip reason
  • Send to different workflow
  • Update status to “not qualified”
  • Do nothing (explicitly)
Even if the No branch does nothing, consider adding a log or status update so you can track why records didn’t continue.

Best practices

For complex conditions, use a Variables node first to compute a boolean, then branch on that variable: {{nodes.vars.is_qualified}}
Check that values exist before comparing: {{nodes.enrich.score && nodes.enrich.score > 50}}
Name your Branch nodes descriptively: “Is Qualified Lead?” is better than “Branch 1”.
Don’t ignore the No branch. Even if you do nothing, consider logging or tracking why the condition failed.

Example: Lead qualification routing

A workflow that routes leads based on qualification: 1. Enrich → Get company data 2. Score → Calculate lead score 3. Branch: Is qualified?
  • Condition: {{nodes.score.value >= 50 && nodes.enrich.employees >= 50}}
Yes path:
  • 4a. Allocate → Assign to sales rep
  • 5a. Create HubSpot Contact → Add to CRM
  • 6a. Send Slack Notification → Alert the team
No path:
  • 4b. Add to Nurture Campaign → Long-term follow-up
  • 5b. Update Custom Column → Mark as “nurturing”