A routing queue or precision queue is responsible for hosting new requests (tasks) generated by a customer. In each precision queue, there are some agents to answer customer requests being queued in the precision queue. Agents become members of precision queues automatically based on their Routing Attributes which are compared to one or more Criteria known as Steps.
For instance, if a precision queue requires an agent who lives in Boston, who speaks fluent Spanish, and who is proficient in troubleshooting a specific piece of equipment, an agent with the attributes,
Boston = True, Spanish = True, and Repair = 10 automatically becomes a part of the precision queue. Therefore, a Spanish caller in Boston who needs help with the equipment is routed to that agent.
A precision queue consists of Steps which are basically criteria to associate agents to the queue. A queue can have at most 10 of these steps. Each step has a bucket or list of agents associated to it which are used to route customer requests in the queue. At implementation level it is the Step in the queue that has agents associated to it, so for example:
Lets say we have a Queue Q1 with 2 Steps S1 and S2 which are configured as follows
- S1 has associated agents → [A1, A2, A3]
- S2 has associated agents → [A4, A5]
The overall queue Q1 has agents A1 to A5 available to it to route requests. When a request comes, the routing engine first tries to assign it to the agents associated to the first step; if no agent is available in the first step, it tries to assign it to the agents associated to the second step and so on. This process is described in detail in the "Steps" section below.
Furthermore a precision queue is a multi level queue
A term compares an attribute against a value. For example, you can create the following term: Spanish == 10.
Each precision queue can have multiple attributes, and these attributes can be used in multiple terms. For example, to select an agent with an English proficiency value between 5 and 10, the admin may create one term for English > 5 and another for English<10.
An expression is a combination of one or more terms. For instance, an expression
(Boston == true) AND (Spanish == true) AND (Repair == 10) implies that agents living in BOSTON, fluent in Spanish and excellent in repairing skills are the best candidates for routing customer requests in this queue.
The expressions are by default evaluated from left to right. For instance, the following expression is evaluated as the following:
A step consists of a combination of one or multiple expressions. When a request is landed in a queue, the steps are executed to evaluate the routing logic and pick the right agent. You can add one or more steps for one queue. Each step has a step timeout in seconds which determines the time that the system waits before jumping on to the next step in the queue.
After the evaluation of the first step, if the system finds no agent matching the routing logic defined in the step, it jumps to evaluate the next step and keeps doing so until it finds an available agent. Steps are executed in the order they are created.