Skip to main content
The Conditional node acts as a decision point within your flow: it evaluates information you already have about the user and decides which path to take. Think of it as a fork in the road — depending on what the user responds or the data they have, the conversation will follow one route or another.

Key concept: paths and rules

Before configuring, it is important to understand two concepts:
  • Path: a route the conversation can follow. Each path has a descriptive name and one or more rules that must be met for it to activate.
  • Rule: an individual condition that compares a variable against a value. For example: “the user’s age is greater than or equal to 18”.
If a path has multiple rules, all of them must be met for that path to activate (AND logic). If you need it to activate when any of the conditions is met, create separate paths for each one.

Default path: “Otherwise”

Every Conditional node automatically includes a path called “Otherwise” (fallback). This path activates when none of the other paths are met. It is your safety net to ensure the conversation always has a path to follow.

Step-by-step configuration

1

Create a new path

Click “New path” to add your first condition. Give it a descriptive name that helps you quickly identify what it evaluates (for example: “Adult”, “Premium customer”, “Business hours”).
2

Configure the first rule

Each rule has three parts:
  1. Variable — the data you want to evaluate (for example, {{$memory.age}})
  2. Operator — how you want to compare that data (for example, “Greater than or equal”)
  3. Value — what you compare it against (for example, 18)
3

Add more rules if needed

If you need multiple conditions to be met at the same time, click ”+” inside the same path to add additional rules. All rules within a path are evaluated with AND logic (all must be true).
4

Create additional paths

Repeat the process for each alternative route you need. Each path is evaluated in order: the first one that is met will be the one executed.
5

Connect the following nodes

Each path (including “Otherwise”) has a connection point on the right. Drag a line from each point to the node that should execute on that route.

Available operators

Operators define how the variable is compared to the value. They are organized into four categories:

Equality comparison

OperatorDescriptionExample
EqualThe value is exactly equal{{$memory.status}} equal to active
Not equalThe value is different{{$memory.status}} not equal to cancelled

Numeric comparison

OperatorDescriptionExample
Greater thanThe value is strictly greater{{$memory.age}} greater than 18
Greater than or equalThe value is greater or equal{{$memory.score}} greater than or equal to 70
Less thanThe value is strictly less{{$memory.attempts}} less than 3
Less than or equalThe value is less or equal{{$memory.debt}} less than or equal to 0
OperatorDescriptionExample
ContainsThe text includes the word or phrase{{$message.text}} contains help
Does not containThe text does not include the word or phrase{{$message.text}} does not contain cancel
Starts withThe text begins with the value{{$user.email}} starts with admin
Does not start withThe text does not begin with the value{{$user.phone}} does not start with +593
Ends withThe text ends with the value{{$user.email}} ends with @company.com

Type validation (Is / Is not)

The Is and Is not operators allow you to verify whether a variable corresponds to a specific data type. Instead of entering a value, you select the type from a list:
TypeWhat it validates
AlphanumericLetters and numbers combined
AlphabeticLetters only
Name(s)Person name format
NumberNumeric values only
EmailEmail address format
ID numberIdentity document number
URLWeb link format
DateDate format
ImageImage file
Tax IDUnique Taxpayer Registry
LocationCoordinates or address
Example: {{$memory.email}} IsEmail verifies that what the user entered has an email address format.

Empty check

OperatorDescriptionExample
EmptyThe variable has no assigned value{{$memory.name}} is empty
Not emptyThe variable has some value{{$memory.name}} is not empty
The Empty and Not empty operators do not require a comparison value — they only evaluate whether the variable has content or not.

Regular expressions (Regex)

OperatorDescriptionExample
Regex matchMatches the regex pattern{{$message.text}} regex match ^\d{10}$
Regex not matchDoes not match the regex pattern{{$message.text}} regex not match [<>]
Regular expressions are an advanced tool. If you are not familiar with regex, the other operators cover most common scenarios.

Evaluation logic

The Conditional node evaluates paths from top to bottom, in the order they appear in the panel. The first path whose rules are met will be the one executed.
Is Path 1 met?
  └─ Yes → Execute Path 1 route
  └─ No → Is Path 2 met?
            └─ Yes → Execute Path 2 route
            └─ No → Is Path 3 met?
                      └─ Yes → Execute Path 3 route
                      └─ No → Execute "Otherwise" route (fallback)
You can reorder paths by dragging them with the grab icon (⠿) that appears to the left of each path. This is important because the order affects which one is evaluated first.

AND vs OR logic

What you needHow to configure it
All conditions met at the same timeAdd multiple rules within the same path
Any one of the conditions metCreate separate paths, one for each condition

View modes

The configuration panel offers two display modes you can toggle with the view button in the upper corner:
  • Expanded view: shows each rule as a card with descriptive labels (Variable, Operator, Value). Ideal when you are configuring conditions for the first time.
  • Compact view: shows each rule on a single horizontal line. Ideal when you already know the conditions and want a quicker overview.

Practical examples

Age verification

A flow that needs to verify whether the user is of legal age:
PathRuleVariableOperatorValue
Adult1{{$memory.age}}Greater than or equal18
Otherwise
The “Adult” path activates if the age is 18 or more. Any other case continues through “Otherwise”.

Routing by country and customer type

A flow that directs premium customers from Colombia to a special flow:
PathRuleVariableOperatorValue
Premium Colombia1{{$user.country}}EqualColombia
2{{$memory.customer_type}}Equalpremium
Regular Colombia1{{$user.country}}EqualColombia
Otherwise
In “Premium Colombia”, both rules must be met (AND): the country must be Colombia and the customer type must be premium. If only the first is met, the flow moves on to evaluate “Regular Colombia”.

Input format validation

A flow that validates whether the user entered an email address:
PathRuleVariableOperatorType
Valid email1{{$memory.email}}IsEmail
Otherwise
If the data has an email format, it continues through “Valid email”. If not, you can use the “Otherwise” path to ask the user to enter it again.

Intent detection from text

A flow that detects keywords in the user’s message:
PathRuleVariableOperatorValue
Wants to cancel1{{$message.text}}Containscancel
Wants help1{{$message.text}}Containshelp
Greeting1{{$message.text}}Containshello
Otherwise
Each path is independent (OR logic): if the message contains “cancel”, it follows the first route; if it contains “help”, the second, and so on.