All Collections
Dashboard
Routing & Call Flow Design
Caller-Based Routing with Conditions
Caller-Based Routing with Conditions

Route calls based on region, contact, or other conditions using a condition splitter in your call flow

S
Written by Shelby Glynn
Updated over a week ago

Learn how to use a condition splitter in your call flow design that will route callers to different branches depending on different data associated with the caller.

User Role:

  • Admin


The Condition Splitter

A Condition splitter step allows the use of contact or call information stored in CloudTalk to decide the route a call will take in the call flow. You can set logical conditions to filter incoming calls into different subsequent actions. These filtering conditions can be based on details about a caller's phone number—like a country code—or information stored about a saved contact, such as tags, industry, our custom attributes.

Add Into Call Flow

To add a Condition splitter step to a call flow:

  1. From the dashboard, navigate to the Numbers tab. Select the blue pencil icon next to the number you want to edit or design a route for.

  2. Select the + icon on the step you want a condition splitter to follow.

  3. Choose Condition splitter. Confirm.

  4. Select the + icon on your Condition splitter step to start a new condition branch. You can set one or more optional conditions:

    1. Choose the action you want to happen when calls meet this condition.

    2. Set up the action details. Under Condition Splitter settings, select Add new.

    3. Use the Property, Operand and Value fields to create a logical statement. When this statement is True for an incoming call, the call will flow into this action branch and any branches following it.

      1. If you make more than one condition in the same step, this means the call will need to meet BOTH conditions to direct to this branch.

  5. Recommended—Always make a failover branch after you are done making your optional conditions:

    1. Select the + icon on your Condition splitter step to make another condition branch.

    2. Choose an action you want to happen to calls that don't meet any of your other conditions.

    3. Set up the action details. Under Condition Splitter settings, check the No other condition is met box.

  6. Save changes to your call flow. If possible, we recommend running some test calls to see if your condition logic is working as intended.

Condition Splitter Logic

Property

Select the data you want to observe about the call. This can be call data or contact data, if the caller is stored as a contact in CloudTalk.

When setting a Value for each Property type, make sure you enter the data in the right format. Pay attention to letter casing, spaces, and spelling. Ensure phone numbers or prefixes are in E.164 format.

Call data

  • Call - External number

  • Call - Internal number

  • Call - Waiting time (in seconds)

Contact data

  • Contact - Name

  • Contact - Title

  • Contact - Company

  • Contact - Industry

  • Contact - Address

  • Contact - City

  • Contact - ZIP Code

  • Contact - State

  • Contact - Tags

  • Contact - Custom fields

  • Contact - Type

Operand

Choosing an appropriate operand is important for your condition to run correctly. Different operands will be available for different property types.

Spaces count! When you tap the space bar, this is included as a character in the match comparison that your operand performs. Take caution, particularly when using ends with and is equal to operands.

Call flow not working for these condition types? Check:

  • Did you include a space at the end of your Value input?

  • Is it possible that a space was saved at the end of the contact's data entries being checked?—If this is a concern for you, we recommend switching to a contains operand.

Operand Type

Logic

Match Examples

Use Case Notes

is equal to

only TRUE for an exact match

Contact - ZIP Code is equal to 10100

TRUE

  • 10100

FALSE

  • 1010

  • 101000

  • ⚠️ Beware of spaces included in match comparison

  • Integer values (for string type values, contains should be used)

  • Tends to have fewer matches

is not equal to

TRUE for anything that is NOT an exact match

Contact - ZIP Code is not equal to 10100

TRUE

  • 10101

  • 18000

  • 11000

FALSE

  • 10100

  • Integer values

  • Good for filtering out callers associated with very specific data

  • Tends to have more matches

starts with

TRUE for anything that starts with the exact sequence of your Value

Call - External number starts with +420

TRUE

  • +420555500000

FALSE

  • +421555500000

  • Integer or string values

  • Good for creating call branches for different number prefixes

ends with

TRUE for anything that ends with the exact sequence of your Value

Contact - ZIP Code ends with 51

TRUE

  • 91351

FALSE

  • 91350

  • 91331

  • ⚠️ Beware of spaces included in match comparison

  • Integer or string values

  • Good for filtering numbers, addresses, or custom fields with specific end codes

contains

TRUE when the property data contains the full entry of your Value

Contact - Tags contains (select tag) VIP

TRUE

  • VIP

FALSE

  • lead

  • vip contact

  • Preferred option when looking for partial matches, words, or tags

  • More flexible for values that may not be an exact match due to extra words or characters

is set

TRUE when there is data saved in CloudTalk for the chosen property type

Contact - Name is set

TRUE

  • (caller is a contact saved in CloudTalk)

FALSE

  • (caller is NOT a contact saved in CloudTalk)

  • Used for sorting based on whether or not certain data is saved about a caller

is empty

TRUE when there is NOT data saved in CloudTalk for the chosen property type

Contact - State is empty

TRUE

  • (caller or contact does NOT have State data on their profile)

FALSE

  • (caller is a contact saved in CloudTalk and has State data on their profile)

  • Used for sorting based on whether or not certain data is saved about a caller


Have more questions? Contact our Support team. We're always happy to help!

Did this answer your question?