Skip to main content

Logic Components

Logic components control the flow of your automation by routing data based on conditions. They allow you to create branching paths where different actions are taken depending on your data.

How Logic Components Work

Logic components evaluate conditions and output data to one of two paths:
  • True Output: Data flows here when the condition is met
  • False Output: Data flows here when the condition is not met
You can leave either output unconnected if you only need one path. For example, only send an alert when a condition is true, and do nothing otherwise.

If-Else V2

Routes data based on text/string comparisons.

Configuration

Operators

Example: Route by Account Status

Configuration:
  • Input Text: @account_data.status
  • Operator: equals
  • Match Value: Active
Result:
  • Active accounts → True Output
  • All other accounts → False Output

Example: Email Domain Check

Configuration:
  • Input Text: @contact_email
  • Operator: ends with
  • Match Value: @competitor.com
  • Case Sensitive: false
Result:
  • Competitor emails → True Output (maybe skip)
  • Other emails → False Output (proceed)

Condition V2

Routes data based on conditions evaluated against specific data fields.

Configuration

Operators

Example: High-Value Account Filter

Configuration:
  • Field: @account_data.arr
  • Operator: greater than
  • Value: 100000
Result:
  • Accounts with ARR > $100K → True Output
  • Accounts with ARR ≤ $100K → False Output

Example: Champion Status Check

Configuration:
  • Field: @contact_data.is_champion
  • Operator: boolean validator
  • Value: true
Result:
  • Champions → True Output
  • Non-champions → False Output

Iteration Tracking

Both logic components track how many times they’ve executed within a single flow run. This prevents infinite loops when your flow has cycles.

How It Works

  1. Each execution increments the iteration counter
  2. When max_iterations is reached, the component outputs to a default path
  3. The counter resets at the start of each new flow run

Configuration

If you’re hitting max iterations unexpectedly, check your flow for unintended loops or recursive patterns.

Common Patterns

Pattern: Multiple Conditions

Chain conditions for complex logic:

Pattern: Multi-Way Routing

Use multiple conditions to create several paths:
Implementation:
  1. First If-Else: Check for “Active” → True goes to Path A
  2. Second If-Else (on False output): Check for “At Risk” → True goes to Path B, False goes to Path C

Pattern: Null/Empty Check

Check if a field has a value before using it: Configuration:
  • Field: @account_data.owner_email
  • Operator: not equals
  • Value: “ (empty string)
This routes to True if the owner email exists, False if empty.

Pattern: Numeric Ranges

For range checks, chain two conditions:

Best Practices

Begin with straightforward true/false logic. Add complexity only when needed.
Rename condition nodes to describe what they check: “Is High Value?” or “Has Champion Contact?”
Even if you only care about one outcome, consider what should happen on the other path. At minimum, add logging.
Test your conditions with:
  • Empty/null values
  • Boundary values (exactly 100K when checking > 100K)
  • Different data types (string “100” vs number 100)
For multi-condition flows, add comments or descriptions explaining the overall logic.

Troubleshooting

  • Check that the field path is correct (use @ notation)
  • Verify the data type matches (string vs number)
  • Test the node individually to see the actual input values
  • Check case sensitivity settings
  • Empty strings may evaluate differently than expected
  • Check for whitespace in string comparisons
  • Verify the operator matches your intent
  • Look for loops in your flow
  • Check if a condition is always routing back to itself
  • Increase max_iterations if the loop is intentional and bounded

Next Steps

Processing Components

Transform data before conditions

Testing Flows

Test your conditional logic