Vivollo
Demo

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:

  1. A variable, such as a captured answer or metafield.
  2. An operator, such as equals or contains.
  3. 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 help

Common operators

OperatorUse it when
Equals / Does not equalA value should match exactly.
Contains / Does not containText or a list should include a value.
Starts with / Ends withText should begin or end in a certain way.
Is empty / Is not emptyYou need to know whether a value is blank.
Is present / Is not presentYou need to know whether a value exists.
More than / Less thanCompare a number or the number of items in a list.
Between, Before, AfterCompare dates or times.
RegexMatch 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 return

Conditional 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
A language condition connected to Turkish and English welcome messages
Connect each language to the message that should follow.

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.