Conditions & branching
Send a conversation down different paths by checking customer data, answers, or language.
Use Conditional when a flow should make a decision from information it already has.
Add a condition
Each condition compares:
- A variable, such as a captured answer or metafield.
- An operator, such as equals or contains.
- A value to compare with.
Groups are checked from top to bottom. The first match is used. If nothing matches, the conversation follows the default path.
Conditional
├─ intent = refund → Refund flow
├─ intent = shipping → Order lookup
└─ otherwise → General helpCommon operators
| Operator | Use it when |
|---|---|
| Equals / Does not equal | A value should match exactly. |
| Contains / Does not contain | Text or a list should include a value. |
| Starts with / Ends with | Text should begin or end in a certain way. |
| Is empty / Is not empty | You need to know whether a value is blank. |
| Is present / Is not present | You need to know whether a value exists. |
| More than / Less than | Compare a number or the number of items in a list. |
| Between, Before, After | Compare dates or times. |
| Regex | Match an advanced text pattern. |
Match all or match any
Use Match all when every rule must be true. Use Match any when one rule is enough.
Match all: customer is VIP AND order total is over 1000
Match any: message contains refund OR returnConditional or User intent?
- Use Conditional for data you already know, such as a tag, number, language, or saved answer.
- Use User intent when AI needs to understand what the customer's message means.
See Flow control actions and AI & data actions for all settings.
Start in the customer's language
Use cs.language when the first message should match the customer's
language.
Conversation opened
→ Conditional
cs.language = Turkish → Turkish welcome
cs.language = English → English welcome
cs.language Is empty → Default welcome
Choose the language by name. Add an Is empty path for customers whose language is not known yet. See Localization for how the value is chosen.
Keep branches clear
- Put the most specific group first.
- Always connect the default path.
- Move a large branch into another flow and use Redirect to flow.
See Reusable flows & timing for splitting large flows into smaller parts.