Skip to content

Condition

The Condition component decides where a call goes by testing logical expressions. Each expression can combine variables, constants, and functions to check for a specific situation, and when an expression evaluates to true the call is passed to the component wired to that branch. Reach for it when a call flow needs to branch on a rule you can write out, for example the digit a caller entered, whether the call arrived during business hours, or a value returned by an earlier component. This page explains what the component does, how to set up its branches, and which components a branch can lead to.

The Condition component shown on the call flow canvas

Once you drop a Condition component onto the canvas, you build out its logic by adding branches. Each branch pairs an expression with a destination, and a built-in No Match branch handles calls that satisfy none of them.

  1. Click Add branch on the component to create a new branch.

    Adding a new branch to the Condition component

  2. Click the branch, enter its expression, then click Confirm.

    Entering an expression for a Condition branch

    For instance, an expression of FX_EQUAL($UserInput1.userInput,"1") routes the call to the component attached to that branch whenever the caller presses 1. Here $UserInput1.userInput is the value that a User Input component collected earlier in the flow, which is the usual way to branch on what a caller keyed in on their phone.

Click Add branch on the No Match branch to attach a component. This component runs whenever a call fails to match any of the conditions you defined.

Attaching a component to the No Match branch

Every Condition component includes the built-in No Match branch plus up to 10 branches of your own. A branch can connect to exactly one downstream component, chosen from the following.

ComponentDescription
PromptPlays one or more audio prompts or a text-to-speech message to the caller. See Prompt.
Business HoursSends calls to different destinations depending on the time of day. See Business Hours.
MenuOffers callers a set of options and routes each call by the DTMF (Dual-Tone Multi-Frequency, the tone a phone sends when a key is pressed) digit the caller keys. See Menu.
User InputCollects DTMF digits from the caller, often paired with Condition to evaluate what was entered and branch accordingly. See User Input.
LanguageSwitches the system prompt language for the components that follow in the flow. See Language.
RecordStarts recording once the caller connects to another party, with optional prompts to announce recording at the start and while it runs. It can also turn recording off for calls that would otherwise be recorded. See Record.
Dial by NumberLets callers dial a number directly to reach their destination. See Dial by Number.
Dial by NameAn end component that closes the caller’s path through the flow, letting them reach an extension user by keying the first three letters of that user’s name. See Dial by Name.
TransferAn end component that hands the caller off to a chosen destination, with optional prompts to announce the transfer. See Transfer.
Hang Up CallAn end component that disconnects the call as soon as it is reached. See Hang Up Call.
ConditionBranches calls by evaluating logical expressions. See Condition.
LoopRepeats a group of components, either a set number of times or until a condition is satisfied. See Loop.
Internal Data OpsReads from and writes to the built-in PBX (Private Branch Exchange, your phone system) database. See Get Extension Presence Status, Set Extension Presence Status, Get Queue Agent, Get Queue Info, Get Agent Status, Set Agent Status, Get System Info, Get System Capacity, Get Extension Info, and Get Company Contact Info.
Email SenderSends email from within the flow for real-time notifications, alerts, or user-specific details. See Email Sender.
Database AccessRuns SQL (Structured Query Language) operations against a database mid-flow to retrieve or update data. See Database Access.
HTTP RequestSends HTTP (Hypertext Transfer Protocol, the protocol web browsers and servers use to exchange data) requests to external web servers to exchange data with third-party services. See HTTP Request.