Tasks are assigned to agents through Routing Rules. A task is assigned to a Routing Rule Set based on the task type as soon as it's created and whenever it's updated. Routing Rule Sets can have multiple Rules, and tasks will be evaluated against each until a match is found.

Rules are evaluated by first checking the task against each rule's Task Condition, then if the task is a match, the rule's Routing Steps will be evaluated to find an agent.

Inbound Call, Outbound Call, and Inbound SMS routing rule sets are available to be edited.

Example Routing Rule Set




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.


Properties / Default Queue

There are two settings that apply to entire routing rule sets: Reservation Timeout and Default Queue.

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.

Example Routing Rule


Routing Rules

Routing Rules are evaluated in order within a Routing Rule Set. Rules can be dragged and dropped to rearrange them. Rules are also able to be renamed for easy reference.

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

  • 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
Equals == task.taskTitle == "Scheduled Callback"
Does not equal != task.campaignID != 4
Has HAS worker.skills HAS "Outbound Call"
In IN "Outbound Call" IN worker.skills
Not In NOT IN "Trainee" NOT IN worker.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.

Task Conditions

The first component of a routing rule is a Task Condition. If a task causes a rule's Task Condition to evaluate to True, the task will be assigned to an agent using the rule's routing steps.

Task Condition matching ASAP Callback tasks



Example Task Conditions

Task Condition 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.
The task attributes that can be used in Task Conditions can be seen on the Task Slideout accessible from the Agents or Tasks pages.

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 set of agents grouped by skills, teams, or other means.

Example Routing Step


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.


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 ofworkflow_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.