Automatic Call Distribution, or ACD, is one of the most fundamental features of any call center software. It includes taking calls, queuing them until a qualified agent it is available, and transferring the call to that agent. There are a number of components that make up ACD in UCCX, which I will address over several posts. This page assumes you have installed UCCX, and run through the UCCX initial setup.
Queues, Resource Groups, and Skills
In this post, we will deal with queues, and the ways to assign agents to them.
Resource groups are a static group of agents that can be assigned to one or more queues.
Skills based routing can be configured to require an agent to be assigned one or more skills, and at a minimum level, before calls can be routed to them, and route the calls to agents based on the skill level assigned to them. Queues can be configured to route based on a number of functions based on the agent’s skill level, high to low, low to high, and based on weighting.
In UCCX, skills are a simple text tag, and a skill level from 1 to 10. Agents can be assigned skills, and queues can be configured to require them. Agents can have multiple skills, queues can require multiple skills, and a skill can be used by multiple queues.
A Contact Service Queue is a “line” that callers can be placed in, until they are transferred to an agent. Queues can require one or more skills, or can route to a resource group.
Resource Group based queuing is much more like traditional hunt group routing, where a fixed group of resources (agents) is selected from. You lose flexibility compared to Skills Based routing, but gain some simplicity. Resource Group based queuing is best where you have a very static group of agents working with very specific queues, and no overlap. With Resource Group queuing, an ordered list of agents is created, then the system distributes to them based on the Selection Criteria you decide to use. Available Selection Criteria are:
- Longest Idle (the person who has been off the phone the longest gets the next call)
- Linear (Agent 1 always gets the call if the are available, if not, agent 2 gets the call. If neither are available, the call is delivered to agent 3, etc.)
- Circular (Agent 1 gets a call, agent 2 gets the next one, and so on, unless the next scheduled agent is not available, when is skips to the next available agent in the ordered line)
- Most Handled Contacts & Shortest Average Handle Time, (the system dynamically reorders the list based on efficiency metrics)
With skills based routing, Skills (A text tag to which a skill level from 1 to 10 can be assigned) are configured, then queues are configured to require those skill. I often see Skills and Queues configured on a 1 to 1 relationship; the queue for Widget Sales requires the skill “Widget Sales,” but much more complex selection criteria can be created. If, for instance, the company is providing support in English and French, you could create “English Widget Sales” and “French Widget Sales” as skills, or you could create “Widget Sales,” “English,” and “French” as skills, and require both the “Widget Sales” and “French” skills for the queue that people wanting to buy Widgets in French are routed to. Breaking it down even further, you could create skills “Widgets,” “Gadgets,” “Sales,” “Returns,” “Service,” “English,” and “French.” Queues can then be created that require the appropriate skills. When an agent moves from sales to returns, all that needs to be changed are the “Sales” and “Returns” skills, while brand and language skills carry over. Assigning an agent the French skill, an agent would be assigned to all the French brand queues that they have in English by adding a single skill.
1 to 1 skill to queue mapping provides a great deal of granularity, but can be more work for your contact center supervisors to manage. In the previous example, there isn’t a clean way to add an agent to a single French queue if they are a member of multiple English queues. You can increase the granularity so that an agent could be assigned only one French queue, but then they need to be added to every French queue.
It doesn’t get much easier than this. Log into the UCCX admin page, and navigate to Subsystems > RmCm > Skills. Click “Add New.” Type a name for the skill, and click Save. All the other configuration for skills are done on the queues and resources.
Assigning Skills to Queues
The first step is to create a queue, and enable skills based routing. Navigate to Subsystems > RmCm > Contact Service Queues, and click Add New. The first Contact Service Queue Configuration page displays:
Contact Service Queue Name: Assign an appropriate name to the queue
Contact Service Queue Type: Select Voice or Email. The rest of this assumes Voice, configuration for Email is similar. Agent email will be addressed in another post.
Automatic Work: When this is enabled, agents are placed in a work state after a call.
Wrapup Time: When enabled, agents will be given the configured number of seconds to wrap up a call. Times will very significantly based on the call center workflows.
Resource Selection Model: Choose Resource Skills for skills based routing, or Resource Group for Resource Group routing. The rest of this example assumes Resource Skills.
Service Level and Service Percentage: The percentage of calls that should be answered in the specified number of seconds. These metrics are used in contact center reporting, and do not change queue behavior. Contact center managers can usually provide the desired values, otherwise leave the defaults. If the Service Level and Service Percentage are changed, the reports reflect the new values from that time forward, it does not change Service Level statistics for previous calls.
Prompt: This is used for the Create CSQ Prompt step in scripts. Unless you know you need this, leave it blank.
After configuring these values, click Next.
Select a a Resource Selection Criteria. Options are:
- Longest Available. The agent that has the appropriate skills that has been in a ready state the longest. If an agent goes off hook, even without making a call, this timer resets.
- Most Handled Contacts and Shortest Average Handle Time: UCCX uses the metrics described to attempt to route to the most efficient agents.
- Most and Least skilled: Route based on the total skill value. Most skilled cause to the callers to be routed to the most experienced agents, while least skilled allows less skilled agents to take more calls. These could be combined, for instance user that enter an account number could be routed to a most skilled or least skilled queue based on service level agreements.
- Most and Least Skilled By Weight: Weight values are assigned to the skills, and the weighted skill level is calculated on Agent skill * Weight. For instance, if a queue is configured for Widgets at a weight of 1, and French at a weight of 3, an agent with Widgets = 5 and French = 2 has a combined skill level of 11, whereas a user with Widgets = 2 and French = 4 has a combined skill level of 14, and would be preferred in a Most Skilled by Weight queue.
- Most and Least Skilled By Order: Provides routing based on the order of skills. Skills can be moved up and down the ordered list, the most skilled in the first item will be chosen, in case of a tie, the next skill is evaluated.
In all cases, Longest Idle is used as a tie breaker between agents with the same skill levels. Any time more than one skill is assigned to a queue, and agent needs to meet the minimum competency in all the skills, even in the “By Order” selection criteria.
Next, select a skill from the Select Required Skills list, and click Add. A minimum skill level can be configured for each skill, and if one of the more advanced selection criteria is used, the skills can be assigned a weight or reordered.
Once you have assigned the appropriate skill requirements and selection criteria, click add, or if this was an existing queue, click save.