LogoLogo
DialoX Manual
DialoX Manual
  • Start
    • News
    • Getting Started
    • Ordering
    • Signup
    • Switcher
  • STORE
    • Marketplace Apps
      • Level 1 - Basic
        • Callback Note Basic
        • On-call Router Basic
        • Smart Group Voicemail
        • Smart IVR Basic
        • SMS Call Deflector
        • Survey Basic
        • Caller Based Router
      • Level 2 - Advanced
        • Call Deflector
        • Callback Note
        • Order Assistant
        • Smart IVR
        • Survey
        • Website Chat
      • Level 3 - Professional
        • Callback Planner
        • Appointment Planner
    • Legacy Apps
      • Survey Extension
      • Smart IVR Basic
      • Smart IVR 2.0
      • Whatsapp Calldeflector 1.0
      • Whatsapp Calldeflector 2.0
      • Social Inbox 1.0
      • Social Inbox 2.0
      • Basic Group Voicemail
      • Group Voicemail
      • Oncall Assistant
      • Web App
      • Basic Callback Note
      • Callback Note
      • Callback Planner
      • Caller Based Router
    • Skills
      • Base flows
      • Platform defaults
      • Phone flows
      • Chat flows
      • Web flows
      • LLM Flows
      • LLM Knowledge base
      • Address Flows
      • Email flows
      • Timeplans
        • How to add a flow for lunch breaks
      • On-call schedule
      • Planner
      • OAuth Flows
      • Integrations
        • Zendesk
        • Jira
        • Hubspot
  • SETTINGS
    • User Settings
      • Availability settings
      • Profile settings
      • Security
    • App Settings
      • App identity
      • Opening hours
      • Tags
      • Studio
      • Extra options
      • Backups
  • Inbox
    • Inbox
      • Assigning
      • Joining and leaving
      • Sending messages
      • Canned responses
      • Team chat
      • Watching
      • Close
      • Filter conversations
      • Multiple inboxes
    • Contacts
    • Notes
    • Today
    • Notifications
      • Notification panel
      • Notification preferences
      • Rules for notification
      • Chrome and Windows settings
      • Microsoft Teams notifications
  • Studio
    • Home
      • Customer settings
        • Settings
        • Advanced settings
        • Store settings
      • Audit Log
      • Access Request
    • Dashboard
    • Flows
      • Playbook
      • Triggers
      • Variables
      • Conditions
      • Tags
      • Languages
      • Links
      • Nodes
        • Say
        • Ask: Open
        • Ask: Choice
        • Ask: Single
        • Ask: Date
        • Ask: Name
        • Ask: Phone
        • Ask: Email
        • Ask: Form
        • Ask: Language
        • Ask: Selection
        • Ask: Time
        • Ask: Audio
        • Ask: Number
        • Ask: Custom entity
        • Ask: Address
        • Ask: Zipcode
        • Iterate
        • Iterate: LLM
        • Say: LLM
        • Say: LLM Knowledgebase
        • Iterate: LLM Knowledgebase
        • Iterate: continue
        • Show: audio
        • Show: whatsapp link
        • Show: image
        • Show: video
        • Show: file
        • Show: location
        • Control flow: branch
        • Control flow: go to flow
        • Control flow: switch language
        • Control flow: close
        • Control flow: restart
        • Control flow: pause
        • Control flow: invoke dialog
        • Dial: number
        • Dial: smart
        • Send: note
        • Send: email
        • Send: SMS
        • Send: whatsapp
        • Escalate: default
        • Escalate: smart
        • Perform: create jira ticket
        • Perform: get jira ticket
        • Plan
    • AI
      • Intents
        • LLM Intents
        • Q&A Intents
      • Knowledge bases
      • Prompts
    • Channels
      • Chatwidget
      • Whatsapp
        • How to integrate Whatsapp
        • How to change my Whatsapp profile
        • How to manage Whatsapp templates
        • How to send Whatsapp template with documents
        • How to automate outbound Whatsapp
        • How to send Whatsapp template
        • How to use Commerce Catalog
        • Whatsapp for Business
      • MS Teams
        • How to migrate new Version
        • How to change channel connection
      • Facebook Messenger
      • Phone
      • Progressive Web App (PWA)
    • Content
      • Nudges
      • Whatsapp optout
      • Voice lexicon
      • FAQs
      • Calendars
    • Visitors
    • Calendars
    • Campaigns
    • Conversations
    • Notes
    • Contacts
  • ADMINISTRATION
    • Organisation
    • Bots
    • Licenses
    • Channels
    • Orders
    • Usage
    • Users
    • Access Requests
    • Analytics
  • DESKTOP
    • Enreach Contact Desktop
  • FAQ
    • Studio
      • How to Publish
      • How to make 2FA Required
      • How to add additional columns to contactlist
      • Conversation retention time
      • How to help the bot pronounce phone numbers correctly
      • How to help the bot pronounce loose numbers correctly
    • Flow Topics
      • Skipping step based on language tag
      • Switching language using intent trigger
    • Meta
      • How to get Meta Business Suite Verification
      • How to connect Facebook page to Facebook Business Account
    • 360Dialog
      • How to give permission API access
      • How do I change my profile in 360Dialog
      • How to make 360dialog templates
      • How do I terminate my number in 360Dialog
    • Bubblescript
      • How to add a custom button
      • How to change the email template
    • Operator
      • Where are my CDRs?
      • Onboarding required
    • Google Tag Manager
    • Platform
      • Network Security Policies
    • Make
Powered by GitBook
On this page
  • What is a condition?
  • Where are conditions used?
  • Skipping a node
  • Guarding a trigger
  • Branching
  • How to build a condition
  • Rule types
  • Operators
  • Add another rule
  • Add a group

Was this helpful?

Export as PDF
  1. Studio
  2. Flows

Conditions

PreviousVariablesNextTags

Last updated 2 months ago

Was this helpful?

This section describes the working of conditions within flows. A condition is used to make certain behaviour conditional like:

  1. skipping a node

  2. guarding a trigger

  3. branching

But before going into detail on the above use cases for conditions we will explain the working of conditions.

What is a condition?

Conditions are made of one or more rules, also referred to as expressions. An expression is like an equation where two or more values are compared to each other in a predefined way.

The binary addition of the results of all rules will result in either a true or a false outcome. This outcome determines the execution of the logic bound by the condition. For instance, when the condition is used for the Skip when option of a node it will skip the node when it evaluates to true.

Where are conditions used?

Skipping a node

When you want certain flow nodes to be skipped in certain conditions you can use conditions as "skip logic". Every node in your flow has the ability to be skipped based on a condition. This features is available in the Advanced section of the properties panel of your flow node.

Guarding a trigger

Branching

How to build a condition

By clicking on the Add condition button a popup appears in which the condition can be specified. As explained, a condition exists of one or more expressions.

Rule types

A rule can be based on:

  • tags

  • channels

Rules based on tags

The way the tags are evaluated depends on which expression type is used to compare the selected tags:

Tag comparison type
Evaluates to true when…

Any of

One or more of the given tags should be set

All of

All given tags need to be set

None of

None of the provided tags should be set

So if, in this example, only one of the tags are present, the condition evaluates to true. If the use case requires both to be present you should set the expression type to All of. If on the other hand you want to check if none of these fields are present you should select None of.

Rules based on channels

Sometimes you want to execute certain logic based on the channel this conversation is running. This can easily be done using the rule type Channel.

In this example the condition will only validate true on phone channels, which prevents this logic to be executed on any of the other channels.

Rules based on variables

Operators

You already saw in the above examples the operator == being used in a rule to compare a variable to a value and to compare a channel to one of the channel options. There are also other expression operators that can be used. For instance to check if a variable doesn't equal to a certain value.

The following table describes the different operators in more detail.

Operator
Description
Example for true

==

to check A and B are the same

"info@enreach.com" == info@enreach.com

!=

to check A and B are not the same

"info@enreach.com" != info@dialox.com

Contains

to check if B is a part of A

"info@enreach.com" contains "enreach"

Not contains

to check if B is not part of A

"info@dialox.ai" not contains "enreach"

Starts with

to check if A starts with B

"info@enreach.com" Starts with "info"

Ends with

to check if A ends with B

"info@enreach.com" Ends with "com"

Is empty

to check if A has no value, often used to check if a question was not asked yet.

Email Is Empty

Is not empty

to check if A has a value, often used to check if a question is already asked

Email Is not empty

Add another rule

As explained in the beginning of this chapter, conditions exist out of one or more rules. So when you finished your first rule, feel free to try adding another rule by hovering your mouse over the rule. Now you see two buttons appear: Add rule and Add group. In this paragraph we focus on adding a new rule.

The new rule can be built in the same way, but now we also need to indicate if this rule adds to the previous rule (And) or whether the new rule applies separately (Or) in which case just one of the two rules need to evaluate to true instead of both.

Add a group

When building complex conditions you might want to use groups. A group of rules are evaluated as one. Just as with mathematical evaluations, groups work like parentheses. In this example: (1+1) x (2+2) evaluates to 2 x 4 = 8. When not using the parenthesis, the equation would lead to something completely different: 1 + 1 x 2 + 2 = 5.

A group can be added by hovering the mouse over one of the rules and click on the Add group button:

For conditions it works the same way, so consider the following example:

In this example the condition evaluates to True when either the system is online and the first name of the user is Niels OR the system is offline while the first name is not yet set.

to your flows can be guarded by conditions so you can have different entry points for different scenarios. This case you can have a different flow based on user or conversation variables. For instance.

Another way to make your flow behave conditionally is by adding a node to your flow. The branches will be executed from left to right whereas the first branched condition that evaluates to true will be executed.

any of the

The easiest and most commonly way of creating a rule is by checking the existence of certain in your conversation. Therefore the condition type is set to Tags initially:

So the above screenshot shows an example where either the user's phone number or email address need to be filled in to be evaluated to true. This works because the platform will automatically set a user tag when the user's phone number or email address are known, see .

The most sophisticated way of evaluating rules is using comparison. By using logical operators (see next paragraph) the user and/or conversation variables can be compared to certain values in order for the condition to evaluate true or false. Like for instance: when the phone number is equal to a certain number or the user name is equal to a certain name.

Triggers
variables
tags
variable
branch
Add condition as skip logic
Add condition as trigger guard When
Add condition to a branch
Expression type selection
Creating your condition
Example condition based on tags
Example condition based on channel
Example condition based on a variable
Expression operators
Add rule
And / Or
Add group
Defining complex group expressions
User tags