Skip to content

🔀 Condition Node

Preview — not yet executed by the live assistant

The Condition node can be placed and configured in the designer and passes publish validation, but the live WhatsApp assistant does not execute it yet. A customer reaching a Condition node sees a polite "not yet supported" message instead of branching. Keep Condition nodes out of published flows until this feature goes Live — use separate Menu options to branch in the meantime.

Purpose

The Condition node checks a variable's value and branches the flow into two paths: Yes (condition is true) and No (condition is false). This lets you create personalised, intelligent conversations that respond differently based on what the customer has said or done.


Business Scenario

Use the Condition node when you need to:

  • Route by customer preference — send different product info based on their selection
  • Check if data was provided — if the customer gave their email, send a confirmation; if not, ask again
  • Personalise the experience — greet returning customers differently from new ones
  • Validate input — check if a captured value matches expected criteria

Configuration

Field Description
Title Internal name (e.g., "Check Interest Area")
Variable to Check The variable name to evaluate (use {{variable_name}} format)
Condition The comparison operator
Value The value to compare against (not shown for is_set / is_not_set)

Operators

Operator Description Example
Equals Variable exactly matches the value {{city}} equals "London"
Does not equal Variable does not match the value {{plan}} does not equal "free"
Contains Variable contains the value as a substring {{message}} contains "urgent"
Starts with Variable begins with the value {{phone}} starts with "+91"
Is set (any value) Variable has been captured (not empty) {{email}} is set
Is not set (empty) Variable hasn't been captured yet {{name}} is not set

Properties

Property Type Required Default Description
title Text No "Check Condition" Internal node name
variable Text Yes "" Variable to check (e.g., {{name}})
operator Select Yes equals Comparison type
value Text Depends "" Value to compare against (not needed for is_set/is_not_set)

Inputs

Handle Type Description
Top (↑) Target Receives a connection from any preceding node

Outputs

Handle Type Description
✓ Yes (→ right) Condition Branch Connects to the node that runs when the condition is true
✗ No (→ right, below) Condition Branch Connects to the node that runs when the condition is false

Two outputs

Unlike most nodes, the Condition node has two output handles — "Yes" and "No" — both on the right side. There is no "continue" handle at the bottom.


Connection Rules

  • ✅ Can receive connections from any node type
  • ⚠️ Should have both Yes and No paths connected (warning if either is missing)
  • ✅ Yes and No can connect to the same node if both paths lead to the same next step
  • ✅ Can connect to any node type on both branches

Example Flow Diagram

Check if Email Was Captured

flowchart TD
    A["📥 Ask Email<br/><em>What's your email?</em>"] --> B["🔀 Email Provided?<br/><em>{{email}} is set</em>"]
    B -->|"✓ Yes"| C["💬 Confirmation<br/><em>Great! We'll send details to {{email}}</em>"]
    B -->|"✗ No"| D["💬 No Problem<br/><em>No worries! Here's our website instead.</em>"]
    C --> E["📋 Main Menu"]
    D --> E

    style B fill:#fef9c3,stroke:#eab308,stroke-width:2px
    style C fill:#dbeafe,stroke:#60a5fa,stroke-width:2px
    style D fill:#dbeafe,stroke:#60a5fa,stroke-width:2px

Route by Customer Interest

flowchart TD
    A["📥 Ask Interest<br/><em>Which plan? (basic/premium)</em><br/>→ {{plan}}"] --> B["🔀 Premium?<br/><em>{{plan}} equals premium</em>"]
    B -->|"✓ Yes"| C["💬 Premium Details<br/><em>Our Premium plan includes...</em>"]
    B -->|"✗ No"| D["💬 Basic Details<br/><em>Our Basic plan includes...</em>"]

    style B fill:#fef9c3,stroke:#eab308,stroke-width:2px

Best Practices

  • ✅ Use descriptive titles — "Check if VIP Customer" is clearer than "Condition 1".
  • ✅ Use "Is set" / "Is not set" to check if a variable has been captured before using it.
  • ✅ Always connect both branches — even if one path just loops back to the menu. Missing branches cause warnings.
  • ✅ Place after a Question node — the most common pattern is Question → Condition → different responses.
  • ✅ Chain conditions for complex logic — connect a "No" branch to another Condition for if/else-if patterns.

Common Mistakes

Mistake What Happens Fix
Missing "Yes" route Warning: "Condition has no Yes route" Connect the ✓ Yes handle to a node
Missing "No" route Warning: "Condition has no No route" Connect the ✗ No handle to a node
Variable name typo Condition always evaluates to "No" Double-check the variable name matches the Question node that captures it
Forgetting {{}} around variable Literal text comparison instead of variable Use {{variable_name}} format
Using before the variable is captured Variable is always empty ("not set") Place the Question node before the Condition in the flow