Routing Mechanics Overview
In this chapter, we explore the mechanics of an incoming call. Routing a call is essentially a five step process:
Each of these steps is described in further detail below. With the exception of the actual creation of the IVRs (Initial and queue), all these steps can be configured without programming via the Contact Center web based interface. Chapter 6demonstrates this configuration.
Step 1. The Caller dials an inbound number
Every inbound Campaign in the On-Demand Contact Center Platform has one or more telephone numbers associated with it. These numbers are routed by our telephony carriers to Contact Center, which in turn directs the call to the proper Campaign.
Step 2. Forwarding and Initial IVR handling
Depending on how your Campaign is configured, the incoming call can head in one of several directions.
2.1 Call Forwarding
If you have set your Campaign to forward directly to another number, the call is accepted from the carrier and then immediately forwarded to that number, bypassing any further handling by this Campaign.
2.2 Initial IVR
If you have set up an Initial (or "Pre") IVR for this campaign, the call is accepted from the carrier and then directed to the IVR. What happens next depends on how the IVR is programmed. Usually, Initial IVRs first play some audio. They can also request some input from the user in the form of touch tone ("DTMF") or voice responses. Based on the users' input, the IVR may transfer the call to another Campaign or to a telephone number, or it may transfer the call to the queue. If this Campaign has a queue IVR specified then that IVR begins. If the Campaign does not have a queue IVR, and there is no available Agent to accept the call, the call will fail and the caller will be disconnected.
Step 3. Agent Pool Selection
After any Initial IVR handling, Contact Center will immediately begin to search for an Agent. Contact Center does this by first selecting a Pool, then selecting the best available Agent from that Pool. This process is described in detail below.
During this time, the call is placed in the queue, even if just for a few seconds. (For this reason, queue IVRs generally begin by playing ringing tones, so the caller's transition to a live Agent is made smooth.) If Contact Center finds an available Agent, it initiates an outbound connection to that Agent. When the Agent answers the phone, the queue IVR is ended, and the caller's inbound leg is connected to the Agent. If the Agent fails to answer the phone, Contact Centerpauses the Agent (making the Agent unavailable for further calls), keeps the caller in the front of the queue, and continues the search for an Agent to handle the call. If Contact Center cannot find an Agent immediately, and there is a queue IVR specified for the Campaign, the call is placed into the queue until an Agent becomes available. If there is no queue IVR specified for this Campaign, and there is no available Agent to accept the call, the call will not be accepted from the carrier and the caller will hear a "fast busy" signal.
As we learned in Chapter 1, each Campaign can have one or more Agent Pools associated with it. The first step in finding a live Agent is for Contact Center to select the Pool from which that Agent will be drawn. Here's how this is done:
3.1 Select a Pool
The first Pool that Contact Center finds with at least one idle Agent in it will get the call.
If a Campaign has more than one Pool, then the Pools are selected according to their Weight, as specified in the Campaign configuration. Weighting is applied in a method informally known as the "Weighted Random Shuffle." It is a bit like dealing a card game, where each Pool is a player:
Step 4. Agent Selection
If more than one Agent is idle in the Pool selected in the step above, the idle Agents are sorted according to the Pool's Sort Agents by rules or Weighting Attribute. The top ranked Agent gets the call, based on these criteria:
Step 5. The Queue
The call queue has the following properties:
5.1 Adjusting the Queue Time Multiplier
On the surface, the Contact Center queue is a first in, first out device; that is the oldest call will be retrieved from the queue first. However, you can tell Contact Center to adjust the perceived "time in queue" by changing the Campaign's Queue Time Multiplier field value. Call Center will multiply the length of time a call has been in the queue by this value to determine which calls to take first. Setting the Queue Time Multiplier field to 2, for example, will force Contact Center to treat these calls as if they have been in queue twice as long as they really have, as shown in example 2-1.
Actual Queue Time | Queue Time Multiplier | Perceived Queue Time |
90 seconds | 2 | 180 seconds |
Example 2-1: Queue Time Multiplier Example 1
Setting the Queue Time Multiplier to 10 will cause Contact Center to think that a call that has been in queue for one minute has really been there for 10. Conversely, if you are taking calls that you don't mind sitting in queue, setting the Queue Time Multiplier to a positive number less than 1 will cause Contact Center to think the call has been in queue for less time than it really has. For example, setting the Queue Time Multiplier to .5 will cause Contact Center to treat calls in this Pool as if they were in Queue for only half the actual time,as shown in example 2-2.
Actual Queue Time | Queue Time Multiplier | Perceived Queue Time |
90 seconds | .5 | 45 seconds |
Example 2-2: Queue Time Multiplier Example 2