Skills based contact routing

Information

  • Patent Grant
  • 6832203
  • Patent Number
    6,832,203
  • Date Filed
    Friday, November 5, 1999
    25 years ago
  • Date Issued
    Tuesday, December 14, 2004
    19 years ago
Abstract
A contact (call) center technique matches the best available contact center agent with contacts requiring particular services. As contacts arrive, skills required for each service or contact are correlated with skills possessed by agents, and the best available agent is assigned to process the contact.
Description




TECHNICAL FIELD




This invention relates to call center technology, and more generally, to contact center technology which allows different types of contacts to be serviced by the agent or other contact service employee most suited to service said contact.




BACKGROUND OF THE INVENTION




Call center technology is well-known in the art and is critical to many large corporations providing service to their customer base. Call centers typically comprise a plurality of call center agents which service incoming customer inquiries, complaints, etc. A typical example of a large call center might be an airline reservation system, a credit card company, etc.




Recently, the call centers are more appropriately referred to as contact centers. This change in name is because the call centers may service more than just incoming or outgoing telephone calls. Rather, the call centers may also be involved in servicing other types of agent/customer interaction, such as web chat, e-mail, etc. Ideally, the call center architecture and logistics should provide the best possible service for all of these types of contacts.




In a large call center, there may be dozens or hundreds of different types of incoming and outgoing contacts. Additionally, complicating things more is the fact that dozens or hundreds of call center agents may have a variety of different skills. These skills permit certain agents to service particular types of contacts better or worse than other agents. In order to insure the best possible service for each contact, it is highly desirable to route contacts to agents best suited to service the particular type of need required by the particular customer that is the subject of the contact.




Some prior art systems use what is termed “skills routing” in an attempt to match calls with the agents best suited to service those calls. One common technique is to maintain different pools of agents depending upon the particular types of contacts expected. The contacts are then examined and routed to a pool of agents possessing those particular skills.




An example of the foregoing might be Spanish language. If a contact center anticipated that some callers require Spanish language agents with which to interact, then a Spanish pool might be set up. Calls coming in which indicate a Spanish speaking customer would be routed to the pool of Spanish speaking agents.




One problem with such a system is that even within the Spanish language speaking customers, there may be different types of services required. For example, there may be Spanish speaking customers calling up with questions about extra charges on their credit card, and there may be an additional group of Spanish speaking agents calling up to report lost or stolen cards. The groups of the Spanish speaking agents to handle these two types of calls may be different, and different agents may have different skills in this regard. In order to solve such a problem, the prior art call center technology would simply create two different pools of Spanish speaking agents. One for handling lost or stolen credit card reports, and another for inquiries regarding credit card charges.




One problem with the foregoing is that the number of pools of agents required grows rapidly as the number of different contacts grows. For example, a contact center requiring six different types of processes in ten different languages would require sixty pools of agents to handle those calls. Moreover, there is still no guaranty that the best agent will be assigned to the particular contact.




In view of the foregoing, there exists a need in the art for an improved technique of contact center processing which permits the optimal match between an available agent and a contact to be serviced.




Ideally, any such implementation should be flexible to allow for the addition and removal of agents, contact types, etc. Moreover, any solution should provide maximum control over the process of matching the best agents to service contacts that they are best suited to process.




SUMMARY OF THE INVENTION




The above and other problems of the prior art are overcome and a technical advance is achieved in accordance with the present invention which relates to processing contact center contacts in a manner which maps the best available agent to any particular contact. In accordance with the technique, each type of possible contact (service), corresponds to an N-dimensional service vector. Each dimension of the N-dimensional vector space represents a different skill required to process that particular type of contact or service. The magnitude of the service vector in any dimension represents the importance of the skill represented by the dimension to the processing of the contact.




Each agent is also assigned a similar vector, the agent vector representing in each dimension that particular agent's proficiency level in the skill represented by that dimension. The system then calculates a dot product between each agent vector and each service vector, the dot product being termed herein a skill score. Each agent is assigned a plurality of skill scores, one for each type of service that the agent can process. In a preferred embodiment, if an agent can not do at all any particular skill required for a service, then the agent may not be used for that service at all.




When a call arrives, the system immediately ascertains the type of service required. Thereafter, the call center assigns to process that contact or service the available agent with the highest skill score for that service.




The above technique insures that the agent assigned to the call is the available agent which has the best skills in the areas that are most important to process that call. An agent with high proficiency in a skill that is extremely important to a particular type of service will be preferably assigned to a particular contact over a different agent with slightly better proficiency in a skill which is much less important to the particular service. The system results in each contact being serviced by the agent whose profile (i.e., set of skills scores) shows that the agent is the best agent available to service that particular contact.




In various embodiments values assigned to each skill may vary, or the values of each dimension of the service vector and agent vector may be normalized to a common scale. Additionally, contacts may be of any type, including inbound calls, outbound, e mail, web chat, videoconferencing, or any other type of agent user interaction.











BRIEF DESCRIPTION OF THE DRAWINGS





FIG. 1

is a basic flow chart of functional steps of processing a contact in accordance with the present invention;





FIG. 2

is a table depicting assignments of skills proficiency levels to services and to agents; and





FIG. 3

is a plurality of service queues for use with the invention.











DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT





FIG. 1

shows a basic flow diagram of the processing of a particular contact at a contact center constructed in accordance with the techniques of the present invention. The contact center accepts the exemplary call at


101


and parses the information available from the call in order to determine the service (contact type). The block


102


may utilize ANI, account identification data entered by a user, or any other information in order to ascertain the type of service required for processing the particular call. Once that is ascertained, the best available agent is located for processing that call at block


103


. The call is then transferred for processing at block


104


.





FIG. 3

shows a plurality of service queues, one for each of the different types of services offered by the contact center. In service queue


1


, agent


15


, agent


20


and agent


4


are shown as available. Each of the other service queues shows a set of three exemplary agents also available to process contacts of the particular type represented by the service in issue.




In operation, the simplest technique of allowing block


103


of

FIG. 1

to choose the best available agent is to simply order the available agents in the queues by their skills score with respect to that service. For example, using such a technique, agent


15


, agent


20


and agent


4


have the highest, next highest, and third highest skills score with respect to service


1


, respectively, as shown in FIG.


3


. By utilizing such an ordering technique, the selection of the best agent is simply a matter of traversing the list from top to bottom and picking the first idle available agent. Thus, when a contact is to be serviced, it is immediately apparent to whom the call should be assigned. Although simple and efficient, the invention is not limited to this technique and any of a variety of other techniques may be utilized for selection of the agent with the highest skills score for a particular service.




The creation of the table shown in

FIG. 3

involves four basic steps. The first is the basic definition of the skills required, the second is the assignment of those skills to agents, the third is the definition of the skills, and the skill vector, for a particular service types, and the fourth is the calculation of N-dimensional dot products to produce the ordered table shown in FIG.


3


. We address each of these separately below.




The skills set definition steps involves defining all of the different types of possible skills required for all of the different types of services a particular contact center offers.

FIG. 2

shows a line


201


with three exemplary skills, Polish language, knowledge of replacement parts, and franchisee procedures. Each of the skills has a particular level, such as Polish where the skills are defined to be one (the worst) through ten (fluent speaking, reading and writing). The lines


201


and


202


of

FIG. 2

indicate for each skill, the different proficiency levels within that skill. Thus, with respect to knowledge of franchise procedures to process callers interested in opening a franchise, there are only two skill levels, one and two.




The arrangement of lines


201


and


202


of

FIG. 2

could be thought of conceptually as defining the N-dimensional vector space within which the process will take place. Each of the N-dimensions is represented by one of the skills.




Once the skills are defined, the agents are each given a proficiency level with respect to each skill. As shown by lines


207


and


208


of

FIG. 2

, exemplary agent


3


speaks Polish slightly better than average (6 out of 10), has minimal skills in replacement part knowledge and has top skills in franchisee procedures, scoring a 2 in this category. Lines


207


and


208


also show different skill levels for each particular agent with respect to each skill.




The third parameter which must be defined is the relative importance of each of the particular types of skills for processing each service. These values of the relative importance of each are shown in conceptual format at lines


205


,


205




a


and


206


of FIG.


2


. Each of the skills can be rated in lines


205


and


206


with a number in any range set in advance. Exemplary ranges are shown in the left-hand column of lines


205


-


206


. For example, a skill may have five values, one through five, or may have six values one, five, six, seven, eight and twenty. In the latter case, the highest skill twenty is much better than any of the other skill levels, but skill levels five, six, seven and eight differ only slightly from each other. By assigning the different possible proficiency levels to different particular skills, the system is more flexible. Specifically, the system allows for a situation where a particular agent that has a certain minimum proficiency or better at a particular skill is deemed to be much better than agents of varying proficiency levels in that skill which are below a minimum threshold.




Finally, the agents skill profile is formed by calculating a vector (dot) product between each agent and each different service vector. This provides a measure of how closely the agents skills match the skills required to handle a particular contact.




In an enhanced embodiment, an exception is made to the foregoing procedure. Specifically if an agent has zero proficiency in a particular skill, he will not be assigned to process a contact requiring that skill at any level. This prevents an agent from being assigned a contact which requires a particular skill, even at a low level, but which the agent has no ability to process. Moreover, in an additional embodiment, a minimum proficiency level for each skill is defined. Thus, whether or not an agent vector and service vector produce a large dot product, if the agent vector does not have a particular specified minimum proficiency for each particular skill required by a service, the agent will not be assigned contacts that require that service, even if the relevant agent vector and service vector produce a relatively large dot product. These additional embodiments insure that when a contact comes in, the best available agent is assigned to that contact. However, that agent is chosen from a pool of agents each of which has, at the very least, a minimum set of proficiencies in all of the relevant skills required to handle that particular contact.




Skills may be updated and amended at various times during system operation. Whenever an agent is added, the set of skills possessed by that agent will be entered into the system, and the appropriate information updated. Skills may also be added and updated when different service types are added, or when it is discovered that particular existing services require different skills or skills of differing importance as the system operates.




The contact center would typically have a supervisory terminal that permits the supervisor to add and amend skills. Also, the magnitude within each dimension can be defined by the supervisor, both for the agent vector and the service vector. One preferred way of doing this is to provide a graphical user interface (GUI) with a slidable indicator. The supervisor can then, for each skill, slide the indicator along a scale to indicate the proficiency level of an agent for a skill, the endpoints of the scale being the highest and lowest levels of proficiency. With respect to the level of importance of a skill for a particular service, a similar system can be used. Alternatively, discreet numbers or levels may be entered by the supervisor.




As still a further enhancement, the proficiency levels may be named, with relative weights of each level being assigned. For example, a skill may have three values: poor, acceptable, and excellent. The system would allow the operator to enter one of these three, and could then translate the levels into values such as one, two and three, respectively, for purposes of forming the skill score. Additionally, the system can be reconfigured to translate poor, acceptable, and excellent into 1, 3, and 10, respectively. This will cause the agent assignment algorithm to treat acceptable as only slightly better than poor, but excellent as MUCH better than either poor or acceptable.




While the above describes the preferred embodiment of the invention, various modifications and additions will be apparent to those of skill-in the art. Such modifications are intended to be covered by the following claims.



Claims
  • 1. A method of processing contacts in a contact center, each of said contacts definable as at least one of a plurality of types of contacts, each of said plurality of types of contacts requiring one or more skills to be possessed by an agent to which said contact will be assigned for processing, said method comprising the acts of:providing a plurality of agents to process contacts; defining an N-dimensional vector space, each of said N-dimensions corresponding to a particular skill required by an agent to process a contact, wherein N is greater than one; for each said plurality of agents to process contacts, defining an N-dimensional agent vector, said N-dimensional agent vector being within said N-dimensional vector space and having a magnitude in each said N-dimension indicative of said agent's skill level with respect to a skill represented by said dimension; for each said plurality of type of contact, defining a service vector, said service vector being within said N-dimensional vector space and having a magnitude in each N dimension indicative of the importance to processing of said type of contact of said skill represented by said dimension; and identifying at least one contact to be processed, in response to said identified at least one contact to be processed, performing the acts of: electronically determining a plurality of dots products, each of said plurality of dot products between a service vector, indicative of the importance to processing of said contact identified for processing of said skill represented by said dimension for the type of contact to be processed, and an agent vector containing the plurality of skills possessed by each available agent; and assigning said contact to the available agent whose agent vector produces the largest dot product with said service vector.
  • 2. The method of claim 1 further comprising ensuring that no agent with an agent vector that has a magnitude of zero in any dimension that the service vector has a magnitude of non-zero is assigned to process the contact.
  • 3. The method of claim 1 wherein the service vectors and the agent vectors are normalized.
  • 4. A method of processing contacts in a contact center, each of said contacts requiring a plurality of skills to be possessed by an agent to which said contact will be assigned, said method comprising the acts of:providing a plurality of agents to process contacts; defining an N-dimensional vector space, each of said N-dimensions corresponding to a particular skill, wherein N is greater than one; for each agent to process contacts, defining an agent vector, said agent vector being within said vector space and having a magnitude in each dimension indicative of said each agent's skill level with respect to a skill represented by said dimension; for each type of contact, defining a service vector, said service vector being within said vector space and having a magnitude in each dimension indicative of the importance to processing of said contact of said skill represented by said dimension; and electronically determining a correlation between an agent and a contact by a dot product between said agent vector containing the plurality of skills for said agent and said service vector containing the plurality of skills for said contact, wherein the dot product is indicative of how closely the agent's skill level matches the skills required to handle a particular contact.
  • 5. The method of claim 4 further comprising assigning each contact to an agent having the largest dot product between said service vector for the contact to be processed and an agent vector for each agent in prescribed group for servicing said contract.
  • 6. The method of claim 5 wherein said prescribed group comprises all available agents.
  • 7. A method for processing contacts in a contact center, each of said contacts requiring a service to be performed to satisfy the contact, wherein the service has a plurality of skills that are performed by an agent to process the contact, said method comprising the acts of:defining an N-dimensional vector space, each of said N-dimensions corresponding to a particular skill required by an agent to process a contact, wherein N is greater than one; determining all of the services that are performed in the contact center; responsive to determining the services, determining the plurality of skills required to process each of the services in the contact center; responsive to determining the plurality of skills, providing a proficiency range for each of the plurality of skills; determining a service vector for each of the plurality of skills, said service vector being within the N-dimensional vector space and having a magnitude in each N-dimension indicative of the importance to processing said type of contact of said skill represented by said dimension; responsive to determining the plurality of skills, determining an agent vector for each agent for each skill, each said agent vector representing each agent's level of proficiency for each of the skills; receiving a contact to be processed at the contact center; responsive to the acts of determining the service vector and the agent vector, electronically determining a plurality of skill scores for each agent, wherein each of the skill scores is a dot product between each agent vector and each service vector indicative of how closely the agent's skill level matches the skills required to handle a particular contact; and assigning said contact to an available agent whose agent vector produces the largest dot product with said service vector.
  • 8. The method for processing contacts in a contact center according to claim 7, further comprising the acts of:responsive to determining the plurality of skills, determining a minimum skill level for each of the skills in a particular service; and responsive to determining the minimum sill level for each skill, precluding any of the agents, having the skill level that is below the minimum skill level for any of the skills required for any of the services from handling any service that the agent had the skill level that was below the minimum skill level.
  • 9. The method for processing contacts in a contact center according to claim 7, further comprising the act of editing the skills required to process each of the services.
  • 10. The method for processing contacts in a contact center according to claim 7, further comprising the act of editing the importance level for any skill.
  • 11. The method for processing contacts in a contact center according to claim 7, further comprising the act of editing the agent's level of proficiency for any skill.
US Referenced Citations (117)
Number Name Date Kind
3333271 Robinson et al. Jul 1967 A
4066847 Giordano Jan 1978 A
4286118 Mehaffey et al. Aug 1981 A
4356348 Smith Oct 1982 A
4392129 Mehaffey et al. Jul 1983 A
4408100 Pritz et al. Oct 1983 A
4477698 Szlam et al. Oct 1984 A
4494229 Jolissaint Jan 1985 A
4510351 Costello et al. Apr 1985 A
4540855 Szlam et al. Sep 1985 A
4593273 Narcisse Jun 1986 A
4599493 Cave Jul 1986 A
4600814 Cunniff et al. Jul 1986 A
4677663 Szlam Jun 1987 A
4692858 Redford et al. Sep 1987 A
4694483 Cheung Sep 1987 A
4720853 Szlam Jan 1988 A
4742537 Jesurum May 1988 A
4742538 Szlam May 1988 A
4742539 Szlam May 1988 A
4757267 Riskin Jul 1988 A
4782463 Sanders Nov 1988 A
4782510 Szlam Nov 1988 A
4792968 Katz Dec 1988 A
4797911 Szlam et al. Jan 1989 A
4811240 Ballou et al. Mar 1989 A
4829563 Crockett et al. May 1989 A
4858120 Samuelson Aug 1989 A
4866638 Cosentino et al. Sep 1989 A
4881261 Oliphant et al. Nov 1989 A
4894857 Szlam et al. Jan 1990 A
4896345 Thorne Jan 1990 A
4933964 Girgis Jun 1990 A
4939771 Brown et al. Jul 1990 A
4939773 Katz Jul 1990 A
4988209 Davidson et al. Jan 1991 A
5021976 Wexelblat et al. Jun 1991 A
5041992 Cunningham et al. Aug 1991 A
5062103 Davidson et al. Oct 1991 A
5070525 Szlam et al. Dec 1991 A
5115501 Kerr May 1992 A
5119072 Hemingway Jun 1992 A
5119475 Smith et al. Jun 1992 A
5121477 Koopmans et al. Jun 1992 A
5175761 Ramsey et al. Dec 1992 A
5179657 Dykstal et al. Jan 1993 A
5179700 Aihara et al. Jan 1993 A
5181236 LaVallee et al. Jan 1993 A
5206903 Kohler et al. Apr 1993 A
5214688 Szlam et al. May 1993 A
5276731 Arbel et al. Jan 1994 A
5309505 Szlam et al. May 1994 A
5309513 Rose May 1994 A
5335269 Steinlicht Aug 1994 A
5345589 King et al. Sep 1994 A
5357254 Kah Oct 1994 A
5386412 Park et al. Jan 1995 A
5428827 Kasser Jun 1995 A
5430792 Jesurum et al. Jul 1995 A
5440616 Harrington et al. Aug 1995 A
5490211 Adams Feb 1996 A
5500891 Harrington et al. Mar 1996 A
5511112 Szlam Apr 1996 A
5511117 Zazzera Apr 1996 A
5519773 Dumas et al. May 1996 A
5533109 Baker Jul 1996 A
5535270 Doremus et al. Jul 1996 A
5546456 Vilsoet et al. Aug 1996 A
5553133 Perkins Sep 1996 A
5568544 Keeler et al. Oct 1996 A
5579368 Berkum Nov 1996 A
5581602 Szlam Dec 1996 A
5586178 Koenig Dec 1996 A
5588045 Locke Dec 1996 A
5594781 Kozdon et al. Jan 1997 A
5594791 Szlam et al. Jan 1997 A
5619557 Berkum Apr 1997 A
5623540 Morrison et al. Apr 1997 A
5675637 Szlam et al. Oct 1997 A
5689240 Traxler Nov 1997 A
5696818 Doremus et al. Dec 1997 A
5714932 Castellon et al. Feb 1998 A
5715307 Zazzera Feb 1998 A
5722059 Campana Feb 1998 A
5722064 Campana Feb 1998 A
5729600 Blaha Mar 1998 A
5742233 Hoffman et al. Apr 1998 A
5815565 Doremus et al. Sep 1998 A
5825283 Camhi Oct 1998 A
5825869 Brooks et al. Oct 1998 A
5828731 Szlam Oct 1998 A
5832059 Aldred et al. Nov 1998 A
5832070 Bloom et al. Nov 1998 A
5857014 Sumner et al. Jan 1999 A
5864615 Dezonno Jan 1999 A
5894857 Shimada et al. Apr 1999 A
5940494 Rafacz Aug 1999 A
5963635 Szlam et al. Oct 1999 A
RE36416 Szlam et al. Nov 1999 E
5991394 Dezonno et al. Nov 1999 A
6044146 Gisby et al. Mar 2000 A
6044355 Crockett et al. Mar 2000 A
6118763 Trumbull Sep 2000 A
6134530 Bunting et al. Oct 2000 A
6157655 Shtivelman Dec 2000 A
6269153 Carpenter et al. Jul 2001 B1
6272347 Griffith et al. Aug 2001 B1
6314089 Szlam et al. Nov 2001 B1
6359892 Szlam Mar 2002 B1
6359982 Foster et al. Mar 2002 B1
6362838 Szlam et al. Mar 2002 B1
6424709 Doyle et al. Jul 2002 B1
20020047859 Szlam et al. Apr 2002 A1
20020067822 Cohen et al. Jun 2002 A1
20020143878 Birnbaum et al. Oct 2002 A1
20020145624 Szlam et al. Oct 2002 A1
20020161896 Wen et al. Oct 2002 A1
Foreign Referenced Citations (2)
Number Date Country
0855826 Jul 1998 EP
0855826 Jul 1998 EP
Non-Patent Literature Citations (8)
Entry
Wilson, Tim. “The call center industry: wired or tired?,” Business Communications Review, v. 28 no8 p. 20. Aug. 1998.*
“Octel Network Services Saves $500,000 With Teknekron System,” Phillips Business Information (Newsletter), vol. 15, Issue 13. Jun. 25, 1996.*
“3COM: CelllT launches breakthrough multimedia call center solution based on high-speed 3Com systems,” M2 Presswire, Mar. 1998.*
“In the forefront with integrated call centers,” AT&T Technology, 1992.*
“How a travel-industry call center excels,” Telemarketing & Call Center Solutions, Sep. 1997.*
M2 Presswire, 3COM: Cell IT launches breakthrough multimedia call center solution based on high speed 3Com systems; Mar. 4, 1998; 1-3 webpages; Coventry.
AT & T Technology; In The Forefront With Integrated Call Centers; Winter 1992; 1-7 webpages; New York.
Telemarketing & Call Center Solutions; How a Travel-Industry Call Center Excels; Sep 1997; 1-2 webpages; Norwalk.