Routing Rules allow you to determine the logic for which tasks should be assigned to which agents and in what priority order.

Routing Rules are organized by: Incoming Calls, Inbound SMS, and Outbound Calls (including those triggered by Journeys/Campaigns, Scheduled Callbacks and ASAP Callbacks).

For example, when an Outbound Call task is created, it will be sent to the Outbound Call routing rules and follow the steps you set up.


Screen Shot 2023-11-21 at 1.51.44 PM.png

Clicking into the Routing Rules for Outbound Calls looks like this:


Example Routing Rules for Outbound Call


Routing Rules are evaluated in order from top to bottom. Rules can be dragged and dropped to rearrange them. Rules are also able to be renamed.

Configuring Routing Rules & Settings


  • Reservation Timeout is the amount of time a task will be reserved for an agent after a match is found. After the timeout expires, the reservation will be revoked from the agent and the task will attempt to find a new matching agent. The task will continue looking for a match at its current Routing Rule; it does not start from the top of the workflow.
  • Default Queue is the queue that a task will be assigned to if a matching agent isn't found through any of the Routing Rules. If no default queue is set for a routing rule set, the task will be created but will not be assigned unless it's updated and goes through the routing rule set again.


Clicking into the ASAP Callbacks rule looks like this:


Example Routing Rule


Expressions referenced in Routing Rules are written using a basic query language syntax.

  • Strings can be referenced with either single or double quotes ("Regal" and 'Regal' are both valid).
  • Numbers can be referenced as integers or floats (1, 1.0, 1.05 are all valid).
  • Booleans (true and false) are able to be referenced in expressions.

Values can be compared using basic comparators.

Comparator Expression Example Syntax
Equals == task.taskTitle == "Scheduled Callback"
Does not equal != task.campaignID != 4
Has HAS worker.routing.skills HAS "Outbound Call"
In IN "Outbound Call" IN worker.routing.skills
Not In NOT IN "Trainee" NOT IN worker.routing.skills
Comparators are able to be combined using NOT, AND, and OR statements, as well as parentheses. Parentheses are evaluated first, followed by NOT, AND, and OR, in that order.
Each Routing Rule is comprised of a Task Condition (criteria that determines which tasks match the rule and should be evaluated by it) and Routing Steps (which determine which agents to serve that matching task to).

Task Conditions

If a task causes a rule's Task Condition to evaluate to True, the task will be assigned to an agent using that rule's routing steps. Routing rules are evaluated from top to bottom, so it's the first Task Condition that evaluates to True that is the one that will be used for that Task.

The task condition checks against the attributes of a task. For example all ASAP Callback tasks have a task attribute of "title": "ASAP Callback", so this condition will evaluate to True for ASAP Callback tasks, but FALSE for all other kinds of tasks e.g., Scheduled Callbacks (because they have "title": "Scheduled Callback").

Task Condition matching ASAP Callback tasks



Example Task Conditions

Task Condition Syntax Explanation
title == "ASAP Callback" Identifies all ASAP Callback tasks.
campaignInfo.friendly_id == '99' Identifies tasks generated from Campaign ID 99.
regalVoicePhone IN ['+13305551234'] Identifies all tasks associated with the Regal Phone number +13305551234.
There are a certain common set of attributes that are present on tasks such as the title of the task, information about the campaign or journey the task was triggered by, the regal phone number, the target agent, and additionally we enable you to push contact attributes to tasks as well. 
For now, the best way to reference the available task attributes that can be used in Task Conditions can be seen on the Task Detail Slideout of any given task when clicked from the Agents or Tasks pages, but we are working on a better interface to see the list of available Task Attributes. And you can always contact Regal support.

Routing Steps

After using the Task Condition to find matching tasks, the task is assigned to an agent using the rule's Routing Steps.

A Queue must be selected first to route the task to. A queue is a "parking lot" for tasks (and agents are assigned to queues through queue expressions based on their skills, teams or other means you determine. See article for how to manage and create task queues.)

After selecting a queue, the task can either be routed to specific agents in the queue or any agent in the queue. If a task is to be routed to specific agents, an Agent Expression must be provided. Only agents who cause the Agent Expression to evaluate to true will be considered for the task.

In the below example, the task is being sent to the "Callbacks" queue and it can be served to any agent in the queue. There is no further filtering to a subset of agents within that queue.

Example Routing Step


Step Timeout

Step Timeout is the amount of time (in seconds) a task will wait for an agent in that Routing Step before moving to the next Routing Step or Routing Rule.

If no Step Timeout is provided, the task will remain in the Routing Step until the Task Timeout.
If the Step Timeout of a Routing Step expires and there is no next Routing Step, the task will be canceled with a reason of workflow_timeout. It will not move to the next Routing Rule.

Skip Step Timeout

If an agent isn't immediately available to be assigned a task, the Step Timeout can be skipped so that the task proceeds immediately to the next Routing Step or Routing Rule.

A Timeout Expression must be provided if the Step Timeout should be skipped. If the expression evaluates to True the Step Timeout will be skipped.

A simple way of ensuring that the Step Timeout will always be skipped if appropriate is setting the Timeout Expression to 1 == 1.



Tasks will be assigned to agents based on their Priority set through Routing Steps. Priority must be a positive integer. If no priority is set, the task will inherit priority from the previous Routing Step or Routing Rule. Higher priority tasks will be assigned to agents first.



Tasks that enter a routing rule are locked into that particular rule configuration for the task's lifetime. Changes made to routing rules will only apply to newly created tasks.

Additionally, tasks evaluate against routing rules from top to bottom once when they are first created, and then only there after when a task attribute of the task is updated.