Method and apparatus for skills-based task routing
First Claim
1. A method of assigning tasks to agents in a service center based on agent skills required to service individual tasks, comprising;
- in response to a task to be serviced, ascertaining all agent skills required to process the task out of a set of N defined skills, representing the N skills as N separate boolean variables, determining a set X of all logical states of the boolean variables that contain the required skills, building a resume table of available agents, wherein the resume table is organized by the logical states of the N boolean variables and each agent is represented in each state that includes all skills possessed by the agent, determining from the resume table of available agents all agents qualified to service the task, disqualifying from serving the task all agents associated with a state of the agent resume table that is not within the set X, selecting an agent to service the task from the agents remaining in contention.
2 Assignments
0 Petitions
Accused Products
Abstract
An efficient algorithm is presented for selecting an agent to service a task in a skills-based routing system. A set X is determined of all states of the boolean variables that contain the required skills for a task. A resume table of available agents is built, organized by the states of the N variables; each agent is represented in each state that includes all skills possessed by the agent. All available and qualified agents are determined from the resume table; those agents associated with a state of the resume table outside of the set X are disqualified. An agent is selected from those remaining. Preferably, an agent is selected having a minimum qualification level to service the task. One preferred way of doing this is to subtract from the number of terms in a canonical form of the required skills expression a number equal to the number of times the agent appears in the set of states X and picking an agent with the lowest result. In the preferred embodiment, however, proficiency levels of each required skill are taken into account in making the final selection.
-
Citations
20 Claims
-
1. A method of assigning tasks to agents in a service center based on agent skills required to service individual tasks, comprising;
-
in response to a task to be serviced, ascertaining all agent skills required to process the task out of a set of N defined skills, representing the N skills as N separate boolean variables, determining a set X of all logical states of the boolean variables that contain the required skills, building a resume table of available agents, wherein the resume table is organized by the logical states of the N boolean variables and each agent is represented in each state that includes all skills possessed by the agent, determining from the resume table of available agents all agents qualified to service the task, disqualifying from serving the task all agents associated with a state of the agent resume table that is not within the set X, selecting an agent to service the task from the agents remaining in contention. - View Dependent Claims (2, 3, 4, 5)
selecting an agent with a minimum qualification level from among the agents remaining in contention.
-
-
3. The method of claim 2 wherein the qualification level for an agent is computed by subtracting from the number of terms in a canonical form of the required skills expression a number equal to the number of times the agent appears in the set of states X.
-
4. The method of claim 1 wherein the selecting step further comprises;
-
computing for each agent remaining in contention a number AP equal to the number of times the agent appears in the set of states X, grouping the agents remaining in contention according to their values of AP, processing the groups in the order of lowest value of AP to greatest value of AP until an agent is selected, for each group processed, searching a proficiency table containing proficiency levels for all skills possessed by the agents remaining in contention, eliminating from contention agents in the present group that do not possess the minimum proficiency level for each skill in the skills expression, calculating a normalized proficiency level for all remaining agents in the present group, selecting the agent with the smallest normalized proficiency level if there are any agents remaining in contention in the present group, and processing the next group, if any, if there are no remaining agents in the present group.
-
-
5. The method of claim 4 wherein the normalized proficiency is calculated by summing an agent'"'"'s proficiency levels for each of the skills in a qualifying skill state and subtracting from that value the sum of the required proficiencies for the same skills.
-
6. Apparatus for assigning tasks to agents in a service center based on agent skills required to service individual tasks, comprising;
-
means responsive to a task to be serviced for ascertaining all agent skills required to process the task out of a set of N defined skills, means for representing the N skills as N separate boolean variables, means for determining a set X of all logical states of the boolean variables that contain the required skills, means for determining from an agent resume table all agents qualified to service the task, wherein the agent resume table is organized by the logical states of the N boolean variables and each agent is represented in each state that includes all skills possessed by the agent, means for disqualifying from serving the task all agents associated with a state of the agent resume table that is not within the set X, means for selecting an agent to service the task from the agents remaining in contention. - View Dependent Claims (7, 8, 9, 10)
means for selecting an agent with a minimum qualification level from among the agents remaining in contention.
-
-
8. The apparatus of claim 7 wherein the selecting means further comprises;
means for computing the qualification level for an agent by subtracting from the number of terms in a canonical form of the required skills expression a number equal to the number of times the agent appears in the set of states X.
-
9. The apparatus of claim 6 wherein the selecting means further comprises;
-
means for computing for each agent remaining in contention after the disqualifying step a number AP equal to the number of times the agent appears in the set of states X, means for grouping the agents remaining in contention according to their values of AP, means for processing the groups in the order of lowest value of AP to greatest value of AP until an agent is selected, means for searching for each group processed a proficiency table containing proficiency levels for all skills possessed by the agents remaining in contention, means for eliminating from contention agents in the present group that do not possess the minimum proficiency level for each skill in the skills expression, means for calculating a normalized proficiency level for all remaining agents in the present group, means for selecting the agent with the smallest normalized proficiency level if there are any agents remaining in contention in the present group, and means for processing the next group, if any, if there are no remaining agents in the present group.
-
-
10. The apparatus of claim 9 wherein the calculating means further comprises;
means for summing an agent'"'"'s proficiency level for each of the skills in a qualifying skill state and means for subtracting from that value the sum of the required proficiencies for the same skills.
-
11. Computer program code embodied in a storage medium for controlling a computer to assign tasks to agents in a service center based on agent skills required to service individual tasks, the program code comprising;
-
a first code segment responsive to a task to be serviced for ascertaining all agent skills required to process the task out of a set of N defined skills, a second code segment for representing the N skills as N separate boolean variables, a third code segment for determining a set X of all logical states of the boolean variables that contain the required skills, a fourth code segment for determining from an agent resume table all agents qualified to service the task, wherein the agent resume table is organized by the logical states of the N boolean variables and each agent is represented in each state that includes all skills possessed by the agent, a fifth code segment for disqualifying from serving the task all agents associated with a state of the agent resume table that is not within the set X, a sixth code segment for selecting an agent to service the task from the agents remaining in contention. - View Dependent Claims (12, 13, 14, 15)
a seventh code segment for selecting an agent with a minimum qualification level from among the agents remaining in contention.
-
-
13. The program code of claim 12 wherein the seventh code segment further comprises an eighth code segment for subtracting from the number of terms in a canonical form of the required skills expression a number equal to the number of times the agent appears in the set of states X.
-
14. The program code of claim 11 wherein the sixth code segment further comprises;
-
a seventh code segment for computing for each agent remaining in contention after the disqualifying step a number AP equal to the number of times the agent appears in the set of states X, an eighth code segment for grouping the agents remaining in contention according to their values of AP, a ninth code segment for processing the groups in the order of lowest value of AP to greatest value of AP until an agent is selected, a tenth code segment for searching for each group processed a proficiency table containing proficiency levels for all skills possessed by the agents remaining in contention, an eleventh code segment for eliminating from contention agents in the present group that do not possess the minimum proficiency level for each skill in the skills expression, a twelfth code segment for calculating a normalized proficiency level for all remaining agents in the present group, a thirteenth code segment for selecting the agent with the smallest normalized proficiency level if there are any agents remaining in contention in the present group, and a fourteenth code segment for processing the next group, if any, if there are no remaining agents in the present group.
-
-
15. The program code of claim 14 wherein the twelfth code segment further comprises;
a fifteenth code segment for summing an agent'"'"'s proficiency levels for each of the skills in a qualifying skill state and subtracting from that value the sum of the required proficiencies for the same skills.
-
16. Program code embodied in a carrier wave for controlling a computer to assign tasks to agents in a service center based on agent skills required to service individual tasks, the program code comprising;
-
a first code segment responsive to a task to be serviced for ascertaining all agent skills required to process the task out of a set of N defined skills, a second code segment for representing the N skills as N separate boolean variables, a third code segment for determining a set X of all logical states of the boolean variables that contain the required skills, a fourth code segment for determining from an agent resume table all agents qualified to service the task, wherein the agent resume table is organized by the logical states of the N boolean variables and each agent is represented in each state that includes all skills possessed by the agent, a fifth code segment for disqualifying from serving the task all agents associated with a state of the agent resume table that is not within the set X, a sixth code segment for selecting an agent to service the task from the agents remaining in contention. - View Dependent Claims (17, 18, 19, 20)
a seventh code segment for selecting an agent with a minimum qualification level from among the agents remaining in contention.
-
-
18. The program code of claim 17 wherein the seventh code segment further comprises an eighth code segment for subtracting from the number of terms in a canonical form of the required skills expression a number equal to the number of times the agent appears in the set of states X.
-
19. The program code of claim 16 wherein the sixth code segment further comprises;
-
a seventh code segment for computing for each agent remaining in contention after the disqualifying step a number AP equal to the number of times the agent appears in the set of states X, an eighth code segment for grouping the agents remaining in contention according to their values of AP, a ninth code segment for processing the groups in the order of lowest value of AP to greatest value of AP until an agent is selected, a tenth code segment for searching for each group processed a proficiency table containing proficiency levels for all skills possessed by the agents remaining in contention, an eleventh code segment for eliminating from contention agents in the present group that do not possess the minimum proficiency level for each skill in the skills expression, a twelfth code segment for calculating a normalized proficiency level for all remaining agents in the present group, a thirteenth code segment for selecting the agent with the smallest normalized proficiency level if there are any agents remaining in contention in the present group, and a fourteenth code segment for processing the next group, if any, if there are no remaining agents in the present group.
-
-
20. The program code of claim 19 wherein the twelfth code segment further comprises;
a fifteenth code segment for summing an agent'"'"'s proficiency levels for each of the skills in a qualifying skill state and subtracting from that value the sum of the required proficiencies for the same skills.
Specification