Language selection

Search

Patent 2294222 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2294222
(54) English Title: SYSTEM AND METHOD FOR ENHANCED SKILLS BASED ROUTING
(54) French Title: SYSTEME ET PROCEDE SERVANT A AMELIORER L'ACHEMINEMENT DE COMMUNICATIONS EN FONCTION DES COMPETENCES
Status: Dead
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04M 3/50 (2006.01)
  • H04M 3/523 (2006.01)
(72) Inventors :
  • MUMFORD, GREGORY L. (United States of America)
(73) Owners :
  • MCI WORLDCOM, INC. (United States of America)
(71) Applicants :
  • MCI WORLDCOM, INC. (United States of America)
(74) Agent: OSLER, HOSKIN & HARCOURT LLP
(74) Associate agent:
(45) Issued:
(86) PCT Filing Date: 1998-06-16
(87) Open to Public Inspection: 1999-01-07
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/US1998/012473
(87) International Publication Number: WO1999/000966
(85) National Entry: 1999-12-16

(30) Application Priority Data:
Application No. Country/Territory Date
08/884,805 United States of America 1997-06-30

Abstracts

English Abstract




A method and system for providing enhanced skills based routing of telephone
calls is provided. The enhanced skills based routing database. In a call
center, an automated call distributor queries the skills based routing program
for an appropriate agent console to service a received call. The skills based
routing program determines the required product skills for the received call
and determines the appropriate agent console to service the call. The
determination of an appropriate agent console is based upon the proficiency
system comprises a skills based routing program and a skills based routing
agents for the required product skills. In one embodiment, the proficiency
levels for the various agents are stored in a skills based routing database
and retrieved as necessary. The proficiency levels of the agents can take into
account efficiency and throughput as well as training on particular call
center products.


French Abstract

Procédé et système servant à améliorer l'acheminement de communications téléphoniques en fonction des compétences. Ce système comprend un programme et une base de données d'acheminement en fonction des compétences. Dans un central de télécommunications, un distributeur automatique d'appels demande au programme d'acheminement une console d'agent appropriée pour traiter un appel reçu. Ce programme détermine les compétences nécessaires à l'appel reçu et, également, la console appropriée pour traiter l'appel. La détermination d'une console d'agent appropriée est basée sur les niveaux de compétence des agents correspondants à traiter un produit. Dans un mode de réalisation, les niveaux de compétence des différents agents sont mémorisés dans une base de données d'acheminement en fonction des compétences et extraits en cas de besoin. Ces niveaux de compétence des agents peuvent prendre en considération l'efficacité et le rendement, ainsi que la formation concernant des produits particuliers du central de télécommunications.

Claims

Note: Claims are shown in the official language in which they were submitted.




22

CLAIMS

1. A method in a call processing system for routing a call using
skills based routing, the call processing system having a plurality of agent
consoles,
each assigned a level of proficiency for at least one product skill, at least
one of the
plurality of agent consoles assigned levels of proficiency for multiple
product skills,
the method comprising:
receiving a call from a switching network, the received call having
associated call identification information;
determining a required product skill from the associated call
identification information;
determining an agent console that is preferred to provide the determined
product skill based upon the proficiency levels of the agent consoles and
whether the
preferred agent console is available;
when the preferred agent console is available, designating the preferred
agent console;
when the preferred agent console is not available, designating an agent
console that is less preferred to provide the determined product skill based
upon the
proficiency levels of the agent consoles; and
routing the received call directly to the designated agent console for
processing.

2. The method of claim 1 wherein the determining of the agent
console that is preferred to provide the determined product skill further
comprises:
determining an agent console assigned the highest level of proficiency
for the determined product skill;
and wherein the designating of the agent console that is less preferable
further
comprises:
determining an agent console assigned the next highest level of
proficiency for the determined product skill.



23

3. The method of claim 2, further comprising repeating the
determining of the agent console assigned the next highest level of
proficiency for the
determined product skill until an agent console is determined that is
available to
process the call or until there is no remaining next highest level of
proficiency.

4. The method of claim 2, further comprising:
when no agent console is available at a chosen level of proficiency for
the determined product skill, holding the received call on a queue until an
agent
console is made available at a chosen level of proficiency; and
setting the available agent console to be the designated agent console.

5. The method of claim 1, further comprising:
when no agent console is available at a chosen level of proficiency for
the determined product skill, holding the received call on a queue until an
agent
console is made available at a chosen level of proficiency; and
setting the available agent console to be the designated agent console.

6. The method of claim 1 wherein the determining of the agent
console that is preferred to provide the determined product skill performs a
lookup in a
table, the table associating agent consoles with product skills and storing
proficiency
information for each agent console, to identify an agent console with a chosen
level of
proficiency.

7. The method of claim 1 wherein the determining of the agent
console that is preferred to provide the determined product skill comprises:
determining an agent console assigned a chosen level of proficiency for
the determined product skill; and
determining whether the determined agent console assigned the chosen
level of proficiency is available to process the received call; and



24

wherein the designating of the agent console that is less preferred comprises:
setting a timer to a waiting period and, when the waiting period is
expired, designating an agent console assigned another level of proficiency
for the
determined product skill.

8. The method of claim 1 wherein the determining of the agent
console that is preferred to provide the determined product skill and whether
the
preferred agent console is available further comprises:
returning a list, ordered by proficiency level, of potential agent consoles
able to provide the determined product skill; and
trying each potential agent console in proficiency level order to locate an
agent console from the list that is available to service the received call.

9. The method of claim 8, further comprising, when an available
agent console is not located, repeating the returning of the list of possible
agent
consoles and trying each possible agent console, wherein each returned list
returns a
new list of agent consoles able to provide the determined product skill
ordered by next
preferred proficiency levels, until an available agent console is located or
until there
are no remaining potential agent consoles to try.

10. The method of claim 1, the call processing system having an
application processor connected by a communications network, wherein the
determining of the required product skill and determining of the agent console
that is
preferred to provide the determined product skill are performed by a skills
based
routing program executing on the application processor.

11. The method of claim 10 wherein the determining of the agent
console is performed by a database lookup using a skills based routing
database.



25

12. The method of claim 1 wherein the determining of the agent
console that is preferred to provide the determined product skill is performed
by a
skills based routing program executing on an automatic call distributor
processor.

13. The method of claim 12 wherein the determining of the agent
console is performed by a database lookup using a skills based routing
database.

14. The method of claim 1 wherein the determining of the required
product skill from the received call identification information uses at least
one of a
type of call, an area code, a called number, a carrier identifier, and a
calling number to
identify the product skill required.

15. A method in a call processing system for routing a telephone call
using a skills based routing program, the call processing system having a
plurality of
agent consoles each able to provide at least one set of product skills at an
assigned
level of proficiency, the method comprising:
providing a plurality of queues, each queue indicating a proficiency level
and a set of product skills, such that there is one queue for each proficiency
level
assigned to each set of product skills, each queue having assigned to it all
agent
consoles from among the plurality of agent consoles that can provide the
indicated set
of product skills at the indicated proficiency level;
receiving a call from a switching network, the received call having call
identification information;
determining a set of product skills from the received call identification
information; and
placing the received call on the queue associated with the highest
proficiency level for the determined set of product skills.



26

16. The method of claim 15, the call processing system having an
automated call distributor processor, wherein the plurality of queues are
managed by
the automated call distributor processor.

17. The method of claim 15, further comprising:
setting a timer to a waiting period and, when the waiting period is
expired, moving the queued call to the queue associated with a next chosen
level of
proficiency for the determined set of product skills; and
repeating the step of setting the timer and moving the queued call until
an agent console becomes available.

18. The method of claim 15 wherein the assignments of agent
consoles to queues can be dynamically changed while the call processing system
is
running.

19. The method of claim 15 wherein the determining of the set of
product skills is performed by an application processor connected to the call
processing system by a communications network.

20. The method of claim 15 wherein the determining of the set of
product skills from the received call identification information uses at least
one of a
type of call, an area code, a called number, a carrier identifier, and a
calling number to
identify the product skills required.



27

21. A method in a call processing system for routing a call using
skills based routing, the call processing system having a plurality of agent
consoles,
each assigned a level of proficiency for at least one product skill, the
method
comprising:
receiving a call from a switching network, the received call having call
identification information;
determining a product skill from the received call identification
information;
determining an agent console able to provide the determined product
skill with the highest level of proficiency;
when it is determined that the agent console with the highest level of
proficiency is not available to service the call, determining an agent console
able to
provide the determined product skill with a next highest level of proficiency;
repeating the step of determining the agent console able to provide the
determined product skill with the next highest level of proficiency until an
agent
console is determined that is available to service the call or until there is
no remaining
next highest level of proficiency for the determined product skill; and
when no agent console is available at all levels of proficiency for the
determined product skill after a selected period of time, holding the received
call on a
queue.

22. The method of claim 21 wherein the determining of the agent
console are performed by a skills based routing program executing on an
application
processor and the placing of the received call on the queue is performed by an
automated call distributor connected to the application processor via a
communications network.

23. The method of claim 21 wherein the determining of the product
skill from the received call identification information uses at least one of a
type of call,


28

an area code, a called number, a carrier identifier, and a calling number to
identify the
product skill required.

24. A skills based call processing system for routing telephone calls
to agent consoles, comprising:
a plurality of agent consoles, each assigned a proficiency level for at
least one product skill;
a skills based routing program that, upon receiving a query for a
received call,
determines a product skill appropriate to the received call;
determines, from the plurality of agents consoles, an agent
console able to provide the determined product skill based upon a chosen
proficiency
level; and
returns an indication of the determined agent console; and
an automated call distributor for receiving calls that, when a call is
received,
queries the skills based routing program for an agent console;
receives the indication of the determined agent console from the
skills based routing program; and
routes the received call directly to the indicated agent console,
without holding the received call on a queue dedicated to a type of phone
call.

25. The call processing system of claim 24, the skills based routing
program having an associated skills based routing database, wherein the
determination
of the agent console able to provide the determined product skill based upon
the
chosen proficiency level is made using the associated skills based routing
database.

26. The call processing system of claim 24 wherein the skills based
routing program executes on an application processor that is attached to the
automatic
call distributor through a communications network.



29

27. The call processing system of claim 24 wherein the determination
of the agent console is made by determining whether an agent console with a
chosen
level of proficiency for the determined product skill is available, and when
it is
determined that no agent console with the chosen level of proficiency is
available,
searching for an available agent console with another chosen level of
proficiency for
the determined product skill until an available agent console is found.

28. The call processing system of claim 27 wherein, when it is
determined that no agent console with the chosen level of proficiency is
available,
holding the received call on a non-console-specific queue until an agent
console with
the chosen level of proficiency becomes available.

29. The call processing system of claim 27 wherein a timer is set to
wait for an agent console to become available at a chosen level of proficiency
before
searching for an available agent console with another chosen level of
proficiency.

30. The call processing system of claim 24 wherein the skills based
routing program determines a list of agent consoles able to provide the
determined
product skill, the list ordered by proficiency level, returns the determined
list as the
indication of the determined agent console, and wherein the automated call
distributor,
upon receiving the indication, locates an available agent console using the
determined
list in proficiency level order and routes the received call to the located
agent console.

Description

Note: Descriptions are shown in the official language in which they were submitted.



CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
1
SYSTEM AND METHOD FOR ENHANCED SKILLS BASED ROUTING
TECHNICAL FIELD
The present invention relates generally to telephone call processing
s and, more particularly, to routing calls to telephone operators based upon
skills
and availability.
BACKGROUND OF THE INVENTION
Telecommunications carriers continually strive to provide
increasingly faster and more reliable services when a customer places a
telephone
call. Most telephone calls are direct dial calls, that is, the customer places
the
call without expecting operator intervention and the call is connected without
operator intervention. However, certain telephone calls require operator
intervention for one reason or another. Generally speaking, calls that require
is operator intervention can be grouped into (1) operator service calls, (2)
directory
assistance calls, and (3) call center application calls. An operator service
call is a
call that typically requires billing assistance. For example, a customer may
need
to orally provide billing instructions to an operator, such as when the
customer
dials "0" followed by the number to be called (e.g., 0-S55-555-5555). A
2o directory service call is a call that typically includes a request for a
phone
number. A call center application call is a call that invokes the services of
the
call center application. A call center application is an operator service
provided
on behalf of (typically) an outside vendor. A call center is, broadly
speaking, all
of the equipment, operators, buildings, property, etc., that handles inbound
and
2s outbound calls at a particular location. A call center application
typically
provides products and services based upon the telephone number dialed
(typically an 800 number). For example, a cookie company may pay fees to a
telephone company so that a call center will handle cookie orders via an 800


CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
2
telephone number. The cookie company receives orders from the call center and
is responsible for filling the orders.
A telecommunications carrier also typically services calls that may
require automated intervention. Resources such as automated voice recognition
s modules may be allocated to service a call. For example, "800-COLLECT"
phone calls are serviced by an automated system that utilizes voice
recognition
modules.
When a call that requires operator intervention is dialed, it is
important that the call be quickly routed to an operator who is able to assist
the
Io caller. All of the examples cited require certain, and perhaps, different
skills
from the operators. For example, a call that is originated in France should
preferably be routed to an operator who speaks French. Also, a call that
originates with a different long distance telecommunications carrier should be
routed to an agent who has some knowledge of that long distance
i s telecommunications carrier. Also, an operator-assisted collect call
requires
different handling procedures and knowledge from a directory assistance call,
which requires the ability to switch the call to the appropriate phone number
recording. Similarly, when a call that requires automated intervention is
dialed,
it is important that the call be quickly routed to system components with the
2o proper resources, e.g., automated voice recognition modules. For ease of
description, operators and automated resources will be referred to as "agents"
and
calls that require operator or automated intervention will be referred to as
calls
that require "agent intervention."
Figure 1 illustrates a block diagram of the logical components of a
25 typical telecommunications call center, which receives and routes telephone
calls. A typical call center routes calls that require agent intervention
through an
Automated Call Distributor (ACD). An ACD, for example, ACD 101, is a
specialized computer system that receives calls and routes the calls to agents
based on routing instructions. For the purposes of this invention, an ACD
... _... ...._.._»~_~.T.__T._ ..__.... _ _........... ...... .___._....._T..
..... .....


CA 02294222 1999-12-16
WO 99/00966 PCTNS98/12473
3
includes any intelligent call switching or distribution mechanism such as a
switch, a switch controller, or a device marketed by calling it an "ACD." The
ACD 101 is generally coupled to a switching network 103 through a voice or
data channel 106, to a call processing computer system (CP) 102, which
s provides the actual routing instructions, and to agent consoles 104 through
voice
or data channels 105. The agent consoles 104 receive calls that require agent
intervention from the ACD 101. The call processing computer system 102 may
comprise an adjunct computer system that provides intelligent call processing
or
may be integrated into the ACD 101. The components of the call center of
io Figure 1 are connected by some data communications transport, such as an
Ethernet LAN 107, WAN, SS/7, X.25, ATM or other similar transport.
When the ACD 101 receives a call from the switching network 103
through the voice or data channel 106, the ACD 101 notifies the call
processing
computer system 102 that the call has been received and provides information
1s that describes the call. The call processing computer system 102 then
generates
routing instructions based on the call information and returns the routing
instructions to the ACD 101. The ACD 101 then routes the call as instructed to
one of the agent consoles 104 via a data or voice channel 105. The operator
who
is logged onto the agent console (or resource that is connected to the
console)
2o then services the call.
Generally speaking, the call routing that is determined by an
intelligent call processing computer system such as CP 102 is based upon the
dialed number or other fields of the call description information, which
specify a
type of product for which agent services are required. Certain operators are
2s trained to service particular products and, thus, not all agent consoles
can be used
to service all phone calls that require operator intervention. Also, some call
center resources are available via certain data or voice channels, but not
others.
Hence, when no agent console is available that can service certain calls, the
ACD

i
CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
4
places the calls on queues to wait for a particular set of operators or
resources to
service the call.
Figure 2 is an example block diagram of the internal logical
architecture of an ACD. The ACD 201 contains a central processor 202, inbound
s ports 204, which are connected to the switching network, and data
communications ports 208, which are connected to agent consoles. The central
processor 202 implements several logical components, which include a
preliminary queue 203 and call queues 205, 206, and 207. The preliminary
queue 203 is used to logically track calls before they are switched to a port
or
Io before they are queued to wait for a group of agents or services on one of
the call
queues 205, 206, and 207. The preliminary queue 203 and call queues 205, 206,
and 207 are data structures within the ACD that are used to logically track
the
phone calls. A call placed on one of these queues is typically connected to a
single data or voice channel used to hold the call (e.g., a holding channel
that
~s plays background music). The calls are not "switched" (in the physical
sense) to
another channel until they are assigned an actual port.
Each agent console that is part of the call center typically has a
dedicated link to one of the voice communications ports 208 on the ACD. These
ports are logically grouped together based upon the products (types of calls)
each
2o agent console services. Further, each group of ports is assigned a call
queue. All
of the agents grouped together by virtue of their ports being connected to a
shared queue are considered to be trained to service the product represented
by
that group. For example, Figure 2 shows three groups of ports, Group 1,
Group 2, and Group 3, each corresponding to call queues 205, 206, and 207,
2s respectively. If call queue 205 (Call Queue 1 ) and Group 1 represent
directory
assistance calls, then all operators who have logged into the agent consoles
connected to the ports grouped together as Group 1 are assumed to be trained
to
handle directory assistance calls. Note that a port (hence an agent console)
is
only assigned to a single group (and queue) at any one time. Thus, once
r...r ....____ ~__... . . .._...._.._._._..T..


CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
assigned, an agent console can only service the products represented by the
assigned group, even if the agent that is logged on is actually trained to
service
other products.
In Figure 2, when the ACD 201 receives a routing instruction for a
5 call from the call processor (e.g., CP 102 in Figure 1), the instruction
typically
includes a designation of a group of ports {agent consoles) that can service
the
call. Since each group represents a different product, the call processor 102
can
determine the group designation once the requested product is determined. When
an agent console of the designated group is available, the ACD 201 simply
to switches the inbound phone call from a holding channel to the channel
corresponding to the port attached to the available console. The preliminary
queue 203 is then updated to reflect that the call is no longer waiting to be
assigned a port. Alternatively, when no agent console of the designated group
is
available, the ACD 201 logically shifts the call from the preliminary queue
203
~5 to the proper call queue 205, 206, or 207, that corresponds to the
designated
group. When an agent console that belongs to the designated group becomes
available, the call is switched from the holding channel to the channel that
corresponds to the port attached to the available console.
As a result, the efficiency of the call center and the reliability of the
2o service provided to the customer is greatly influenced by the amount of
time a
telephone call spends on a call queue waiting for a particular group of agent
consoles with appropriate agents. As call centers become larger and the
products
that they provide become more complex, the cost of training operators on
multiple products increases. Each new product potentially requires a new group
25 of dedicated ports and associated queue management. Also, the cost of
duplicating skills amongst agents to ensure that an agent is available and
trained
to handle a customer's call in an acceptable time frame is high. If a call
center
cannot route a telephone call in a timely manner, the customer will become
frustrated at the wait and may hang up. Further, if some portion of the call
center

i
CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
6
computer systems fails, then calls may be forced to be routed to a default
operator who may not even speak the language of the customer. It is also
difficult to manage peak traffic levels. To provide reasonable response time,
call
centers are typically required to staff for the highest potential traffic
volumes at a
s given time instead of for average traffic volumes. Also, not all operators
trained
in a particular product have the same level of skill and throughput.
Subsequently, operating costs in such a system are quite high because
resources,
including operators, are not utilized effectively to maximize the overall
throughput of the call center.
SUMMARY OF THE INVENTION
The present invention increases the overall throughput of a call
center by providing an enhanced call routing method and system for routing
telephone calls to agent consoles based upon the skills required to service a
~ s requested product and the proficiency of available agents. The method and
system comprises a skills based routing program. The skills based routing
program resides on or is connected via a data communications channel to an
automated call distributor. Upon receiving an incoming call, the automated
call
distributor queries the skills based routing program for an agent console to
which
2o to route the received call. The skills based routing program determines a
required set of product skills from a description of the received call, which
description may be augmented by operator or automated intervention procedures,
such as an automated menu driven selection program. The skills based routing
program then determines an available agent console that is preferred to
provide
2s the determined set of product skills. In one embodiment, the skills based
routing
program uses an adjunct intelligent call processing computer system to
determine
the required set of product skills. Once an agent console is determined by the
.
skills based routing program, an indication of the agent console is returned
in a
routing instruction to the automated call distributor. The automated call
r _. _....~___ .~,.~_.___.. _.


CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
7
distributor then routes the received call directly to the indicated agent
console for
processing.
According to one embodiment, the skills based routing program
determines which agent console is preferred to provide the determined set of
s product skills based upon the proficiency level of each agent that is able
to
provide the required set of product skills. Proficiency levels can correspond
to
the efficiency and throughput of an agent as well as training. Because many
agents may be able to service a product but at different proficiency levels,
the
skills based routing program can optimize the quality of the service provided
to
to the customer while minimizing the time a call is held waiting on a queue by
determining whether a less proficient agent is available to service the call
when
the more proficient agent is unavailable.
In another embodiment, the skills based routing program
determines an appropriate agent console based upon proficiency levels, but
is without availability information. The skills based routing program then
returns a
list of all agent consoles whose agents have proficiency in the set of product
skills required by the received call. The automated call distributor then
determines an available agent console from this list.
In another embodiment, the skills based routing program uses
2o dynamic queues to aid the routing of calls. The automated call distributor
implements a set of queues by product skill set and further by proficiency.
Agent
consoles are then assigned to any number of these queues based upon the
proficiency and training of their agents in the different sets of product
skills.
Upon receiving a call and determining the required set of product skills to
service
w 2s the call, the automated call distributor places the received call on the
appropriate
queue for the determined set of product skills based upon a chosen level of
proficiency. In yet another embodiment, the automated call distributor moves
the
received call amongst different queues, based on the different proficiency
levels

i
CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
8
for the determined set of product skills, until an available agent console is
located.
In another embodiment, the skills based routing program is used
with prior ACD queuing methods. In this embodiment, the skills based routing
s program manages product skill determinations for received calls.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 illustrates a block diagram of the logical components of a
typical telecommunications call center, which receives and routes telephone
io calls.
Figure 2 is an example block diagram of the internal logical
architecture of an ACD.
Figure 3 is an example block diagram of a skills based routing
system.
15 Figure 4 is an overview block diagram illustrating the functions of
a skills based routing system in providing enhanced skills based routing
instructions.
Figure 5 is an example block diagram of the internal logical
architecture of an ACD that uses the present invention.
2o Figure 6 is a table of an example set of database information for
multiple agents trained at different proficiency levels on multiple products.
Figure 7 provides an overview flow diagram of a typical message
loop of a skills based routing program that serves as a gateway for messages
sent
between the ACD and agent consoles.
2s Figure 8 is a flow diagram of a first method for determining an
appropriate agent to service an inbound call based upon enhanced skills based
routing.
_ . ,_ _~ .__..____. .._ .. . .. . _..__.~.r~


CA 02294222 1999-12-16
WO 99/00966 PCT/US9$/124'73
9
Figure 9 is a flow diagram of a second method for determining an
appropriate agent to service an inbound call based upon enhanced skills based
routing.
Figure 10 is a block diagram of the relationship of queues to agent
consoles based upon a dynamic queuing method.
Figure 11 is a flow diagram of a dynamic queuing method for
determining an appropriate agent to service an inbound call based upon
enhanced
skills based routing.
io DETAILED DESCRIPTION OF THE INVENTION
The present invention provides an enhanced call routing method
and system for routing telephone calls to agent consoles based upon the type
of
call and the skills of agents available to service the call. The enhanced call
routing system determines which agent console is available and has the best
skills
to handle the call and provides routing instructions that enable an ACD to
route
the call immediately to the agent console. Unlike prior systems, the call is
not
placed on a queue in the ACD to wait for an available agent from among a set
of
agent consoles designated to service only a particular type of call. Rather,
in a
preferred embodiment, the skills based routing system determines and assigns
2o agent consoles to calls as needed, based upon proficiency, and does not
provide
routing instructions to the ACD until an appropriate agent console is
available.
This procedure eliminates any need for the ACD to maintain queues dedicated to
particular types of calls. The enhanced skills based routing system can be
used
by itself to always route calls immediately to agent consoles or can be used,
2s when no agent having proficiency in the requested product is available, in
conjunction with prior methods that utilize queues.
Enhanced skills based routing is based upon the skill required, as
determined by the requested product (the type of phone call); which agents
have
that skill (training); the level of proficiency of each agent with respect to
the

CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
required skill (ability); and the availability of the agent. The eff ciency
and
throughput of each agent can be accounted for using different proficiency
ratings
for a particular skill. For example, two different agents may be trained to
speak
French but the first agent may speak French more fluently and thus be able to
5 process calls originating in France faster than the second agent. In this
case the
first agent would be assigned a higher proficiency ranking than the second
agent
for servicing calls originating in France. The enhanced skills based routing
system preferably first selects the first agent to service a call originating
in
France, but if the first agent is not available, the routing system preferably
selects
to the second agent. This preference to use a less proficient agent may be
maintained even when the second agent is more proficient in another language,
especially an infrequently utilized language. Moreover, agent skills and
proficiency levels can be designated and dynamically modified and routing
algorithms can be dynamically modified to track traffic patterns and other
call
is center management data.
To implement this enhanced routing method and system, the
present invention provides a skills based routing system. Figure 3 is an
example
block diagram of a skills based routing system. A preferred skills based
routing
system provides a skills based routing program, SBRP 301, and a skills based
2o routing database, SBRDb 302. The SBRDb 302 comprises stored data and a
database management facility. For the purposes of the present invention, the
SBRP 301 and SBRDb 302 can be implemented as part of the ACD, as part of an
adjunct call processing computer system that determines routing instructions,
e.g., CP 102 in Figure 1, or as a separate computer system, as shown in Figure
3.
- 2s Figure 3 shows a computer system 303, which comprises a central
processing
unit (CPU) 304, a display device (305), a memory 306, and other input/output
devices 307. In an example embodiment, the SBRP 301 and the SBRDb 302
reside in memory 306 and execute on the CPU 304. One skilled in the art will
also recognize that the SBRP 301 or the SBRDb 302 may be distributed across
*..T .......__._____.___.____........_....__~~.....__._. _. __. _...... .
_.._..~~_... _..._._~..


CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
11
multiple systems and that the SBRDb 302 may reside at a location remote from
the SBRP 301, or in any other such reasonable configuration.
Figure 4 is an overview block diagram illustrating the functions of
a skills based routing system in providing enhanced skills based routing
s instructions. The ACD 401 receives an incoming call from the switching
network. The ACD 401 then sends a routing query with information that
describes the incoming call to the skills based routing program SBRP 405. In
determining where to route the call, the skills based routing program, SBRP
405,
sends a skill query to the call processing computer system, CP 403, to
determine
what product skills are required to process the incoming call. The information
that describes the incoming call may also be augmented by any known
intervention mechanism, such as operator intervention or an automated
attendant,
e.g., an answering system that lets the caller choose one of several options.
The call processing computer system 403 of Figure 4 can be any
~s intelligent call processing computer system that is capable of providing
routing
instructions based upon data describing the incoming call. One such
intelligent
call processing computer system is described in copending U.S. Patent
Application Serial No. 08/752,965, filed December 2, 1996, entitled
"INTELLIGENT SERVICES NETWORK ADJUNCT PROCESSOR," which is
2o hereby incorporated by reference. That patent application describes how a
call
processing computer system (a call processor) uses tables to categorize calls
based upon the call information provided by the ACD in a routing query. For
example, the call processor described therein determines the requested product
(skill requirements) based upon the dialed telephone number. More
specifically,
2s the call processor determines whether the dialed number is an 800 number,
or
begins with a particular area code, the long distance origination carrier if
the
dialed number is a long distance call, whether the call is an international
call, or
the telephone number of the customer (an ANI).

i
CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
12
Returning to Figure 4, once the call processor 403 returns an
indication to the SBRP 405 of the required product skills, the SBRP 405, based
upon the SBRDb database 406 information, determines which agent would be
best suited to service the incoming call and sends the appropriate routing
s instruction back to the ACD 401. In a preferred embodiment, the routing
instructions are also based upon the availability of an agent, so that once
the
ACD receives routing instructions, the ACD can immediately forward the call to
the appropriate agent console. The ACD 401 forwards the call directly to the
agent console 404 that is indicated by the routing instruction. As mentioned,
the
io SBRP 405 can reside in a separate computer system, in the ACD 401, or
within
the call processing computer system 403. The determination of the availability
of an agent console and the various methods for determining the enhanced
routing instructions are discussed in further detail below with reference to
Figures 7-10.
is Figure 5 is an example block diagram of the internal logical
architecture of an ACD that uses the present invention. The central processor
501 moves an inbound call, which has been placed on the preliminary queue 502,
directly to the appropriate port 503 of the agent console that is indicated by
the
SBRP. In comparison with the diagram of the prior system illustrated in
2o Figure 2, one can observe that there are no additional (group) queues in
the ACD
upon which the inbound call is placed.
To implement the enhanced skills based routing system, each agent
in a call center is assigned one or more skills (which correspond to products,
i.e., types of phone calls). For each skill, each agent is assigned a level of
2s proficiency in the skill. One skilled in the art will appreciate that the
levels of
proficiency provide a general mechanism for ranking agents based upon any
criteria. This assignment of skills and proficiencies enables the SBRP to
route a
call preferably to the agent who is available and is most capable of handling
the
call. When such an agent is not available, the SBRP can then choose to route
the
_._._____ _ _ _..._.. ._ _..~ __..~__.. _..~_.__. . ._ _ __.___.__.~


CA 02294222 1999-12-16
WO 99/00966 PCTNS98/12473
13
call to an agent that is not quite as proficient or can choose to hold the
call for
some period of time until an agent with the desired proficiency level becomes
available. This ensures that an agent's talents and training are leveraged to
the
greatest extent possible.
s Further, a call center can adjust the methods used by the SBRP to
choose whether to wait for a particular agent or to continue with a less
proficient
agent, potentially even on a particular telephone call basis. For example, if
directory assistance type calls in general have low processing times, then the
SBRP would not want to send a directory assistance call to an agent less
proficient in handling directory assistance type calls, especially if the less
proficient agent is highly proficient in an international origin call that
typically
requires a large processing time. In this case it would be more efficient
(more
total call volume achieved) to wait for the agent most proficient in handling
directory assistance calls. The wait for that agent would be much less than
the
~s time consumed by using a less than optimal agent to process an
international call,
if one should arrive while the directory assistance call is being processed.
Thus,
total call center throughput can be optimized by careful choices. In addition,
ACDs can receive traffic flow status information updates from the call center.
Algorithms can be incorporated into the SBRP to dynamically adjust the
2o determination and assignment of available agents to respond to current
traffic
flow. Also, the call center can utilize individual capacities better by
determining
how many calls and what type of calls an individual agent can handle.
In order for the SBRP program to select an appropriate agent
console to service a determined product, the SBRP needs to track the
proficiency
2s of each agent for each product and the availability of all agents served by
the
ACD. In one embodiment, the proficiency information for each agent organized
by product (skill) is stored in a database, such as the SBRDb 302 in Figure 3.
One skilled in the art would recognize, however, that any method for storing
skill
and proficiency information could be used, such as arrays, hash tables, on
disk

i
CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
14
storage, network storage, distributed storage, etc. Further, the updating of
such
information can be performed by the SBRP or by an external program capable of
updating proficiency and skill information.
Figure 6 is a table of an example set of database information for
multiple agents trained at different proficiency levels on multiple products.
For
purposes of illustration, for each product (e.g., Product l, Product 2, . . .
Product
n), each agent is assigned a proficiency rating. For the purposes of example,
the
table indicates each level of proficiency from 1 (lowest) to 3 (highest) for
each
agent. For example, for the type of phone call designated by Product 2, Agent
2
to has the highest proficiency rating designated by a rank of "3." Similarly,
Agent 3
has the next highest proficiency rating designated by a rank of "2." Agent 1
and
Agent n have equivalent proficiency ratings of rank "1."
In addition to proficiency information , the SBRP needs to track the
availability of each agent in order to minimize the need to place an incoming
call
is on a queue. In one embodiment, the SBRP monitors and forwards all data sent
between the ACD and an agent console, acting as a "gateway" between each
agent console and the ACD. Using this method, the SBRP can detect when a call
is offered to an agent console by the ACD, thereby rendering the agent
unavailable. Also, the SBRP can detect when a call is completed, thereby
2o rendering the agent again available. Some alternative methods for
monitoring
agent availability information are for the ACD to send status updates to the
SBRP program or to integrate the SBRP program directly into the ACD such that
status data structures can be checked directly. Alternatively, the SBRP
program
can directly control the ACD and can monitor the status of all agents. One
25 skilled in the art will recognize that any method for tracking status
information
could be utilized.
Figure 7 provides an overview flow diagram of a typical message
loop of a skills based routing program that serves as a gateway for messages
sent
between the ACD and agent consoles. For purposes of the present invention the
._~,~~ e,.. _....._..______.. _.....___.._ ._...


CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
term "message" is used to generically refer to an indication. The present
methods can also be implemented using non-message based, or non-event driven
software, e.g., using polling to determine the presence of a query. In step
701,
the SBRP routine determines whether a call offered message has been sent by
the
s ACD. A "call offered message" is indication that occurs when a call is
switched
to a port. If so, the SBRP continues in step 702 to mark the designated agent
console as unavailable and forwards the message to the appropriate agent
console. Otherwise, in step 703, the SBRP determines whether a call completed
message has been sent by an agent console. If so, the SBRP routine continues
in
to step 704 to mark the designated agent console as available and forwards the
call
completed message to the ACD. Otherwise, in step 705, the SBRP determines
whether a call routing query has been received (typically from the ACD) and,
if
so, continues in step 706, else continues back to the beginning of the message
loop to continue to receive and process messages. Other processing may also be
~ s performed. In step 706, the SBRP determines the skill requirements of the
inbound call, which is described in the received call routing query. As
discussed
above, in a typical call center, this skill determination function is
performed by
an intelligent call processing computer system, which is typically an adjunct
computer system that offloads processing from the ACD. Once the type of call,
2o hence the required skills, has been determined, then in step 707, the SBRP
determines which agent is best suited to service the call based upon the
proficiency and availability of agents able to service the determined type of
call.
The SBRP then continues whatever processing is required and returns to the
beginning of the message loop in step 701.
2s The present invention provides several methods for determining the
appropriate agent to service an inbound call, as called for in step 707 of
Figure 7.
In a preferred embodiment, the SBRP always returns an indication of an _
available agent console to the ACD, although the indication may be delayed
when no appropriate console is available. According to this method, when a

i
CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
16
routing instruction is received, the ACD is assured that the inbound call can
be
placed immediately on the appropriate port for the indicated agent console
knowing the agent will be available to service the inbound call. Using this
method, queues assigned to dedicated groups of ports are completely avoided.
This method is reflected in the architectural overview illustrated by Figure
5. A
second method includes returning a list of all agent consoles that are
proficient in
a determined product and that may be available. Using this method, the SBRP
makes little if no attempt to ensure availability of the agent consoles
indicated. A
third method involves the utilization of dynamic queues. According to this
method, agent consoles are assigned to as many queues as reflect the skills
and
proficiencies of the agent. Any of these methods may be combined or may be
implemented on top of an existing system that utilizes dedicated group
queuing.
Figure 8 is a flow diagram of a first method for determining an
appropriate agent to service an inbound call based upon enhanced skills based
routing. In step 801, the SBRP consults a skills database, such as that shown
in
Figure 6, to determine which agent has the highest level of proficiency in the
skills required by the type of product determined by the call processing
computer
system. In step 802, the SBRP determines whether this agent is available. If
so,
then the SBRP returns identification of this agent to the ACD. If it is
determined
2o in step 802 that the agent is not available, then the SBRP determines in
step 803
whether there are additional agents with proficiency in the determined product
and, if so, continues back to step 801 to determine the agent with the next
highest
proficiency rating, otherwise continues in step 804. Note that "next highest
proficiency" indicates a choice to be determined by any selection algorithm,
including algorithms tailored to weighing individual skills with traffic flow
information (e.g., how many calls of a particular type are processed per
minute).
In step 804, the SBRP has determined that there are no agents proficient in
the
skills required for the product. The SBRP then holds the routing query in its
own
queue until one of the agents with proficiency in the determined product
becomes
... ..._.. ._..r.....T.... ........___ _......____._..r~_._._..~. ...
.......... ..___~_..___ _ ...._.....


CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
17
available. Recall that the SBRP is notified when a call is completed. Hence,
the
SBRP is notified when one of the agents with proficiency in the determined
product becomes available. The SBRP can then determine whether there are any
calls holding that can be serviced by the newly available agent. Thus the SBRP
s can determine when step 804 is completed. Step 804 can also be implemented
to
wait until an agent at a particular proficiency level is available. Once an
agent
becomes available, an identification of the available agent console is then
returned.
For example, referring to the database table illustrated in Figure 6
to above, if the SBRP receives a routing query from the ACD and the call
processing computer system has determined that the product designated by the
call is Product 2, then the SBRP would query the database table for agents
having
the skills required by Product 2. Since Agent 2 has the highest proficiency
rating
of rank "3" for Product 2, the SBRP would determine whether Agent 2 is
~ s available. If not, the SBRP would then try Agent 3, which has the next
highest
proficiency rating of rank "2." Similarly, if Agent 3 is unavailable, then the
SBRP would try either Agent 1 or Agent n, both of which have been rated with
the next highest proficiency rating of rank "1." In a situation such as that
between Agent 1 and Agent n, where agents have equivalent proficiency ratings,
2o any method for selecting between them can be used such as a round robin,
random choice, queue, or any other type of selection method.
There are several variations of the method illustrated by Figure 8,
which can be used to minimize the time a query is held in a waiting queue and
to
optimize the proficiency of the service provided to the customer. For example,
a
2s step of setting a timer can be inserted after step 802. Using a timer, the
SBRP
can decide to hold the routing query for the timer period until an agent with
a
higher proficiency rating becomes available before trying (in steps 803 to
801) a
next agent with a lower proficiency rating. During this timed period, it is
preferred that the SBRP is repeatedly determining whether an agent with the

I
CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
18
higher proficiency rating is available. As discussed with reference to step
804,
the SBRP, upon receiving notification that an agent console is available,
determines whether the newly available agent console can service one of the
calls
being held on the waiting queue. Similarly, the SBRP can decide to implement a
s timed waiting period using a timer between certain levels of proficiency and
not
between others. For example, the SBRP can determine that only after trying two
levels of proficiency will it set a timer to hold the query for a certain
length of
time before a lower proficiency rating is attempted. Also, the SBRP has great
flexibility in determining which proficiency level should be re-tried when a
timer
to expires. For example, if a timer is set after attempting to find available
agents at
two levels of proficiency, for example, proficiency levels 3 and 2, then the
SBRP
can decide to try the highest level of proficiency, which is level 3, or can
continue at the current level which is level 2, when the timer expires. Many
variations are possible and all reasonable variations are contemplated by the
~s presentinvention.
For example, when the SBRP queries the database for a level 3
agent and finds none available, it can set a timer. If a level 3 agent becomes
available during that time, then the call is routed to the agent console that
corresponds to that level 3 agent. Alternatively, if no level 3 agents become
2o available prior to expiration of the timer, then the SBRP can query the
database
for an available level 2 agent. Then, if no level 2 agent is available the
SBRP can
set a second timer. Thereafter, if no level 2 agents become available prior to
expiration of the second timer, then the SBRP can query the database for a
level
1 agent. Alternatively, at the expiration of the second timer (when no level 2
2s agent was available), the SBRP can instead choose to look again for a level
3
agent, which may have been made available during the search for a level 2
agent.
One skilled in the art will recognize that any combination for returning to
any
level of proficiency is possible.
_TT-. _ ....._.___.-.._...__..___......__......_..T.


CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
19
Figure 9 is a flow diagram of a second method for determining an
appropriate agent to service an inbound call based upon enhanced skills based
routing. In Figure 9, it is assumed that the SBRP does not have accessible
information regarding the availability of particular agents. Accordingly, the -

s method of Figure 9 compiles a complete list of agents that meet the skill
selection
criteria for the ACD to try. Specifically, in step 901, the SBRP compiles a
list of
all agents proficient in the requested product, and returns this list
(typically to the
ACD). The method of Figure 9 orders the agents in the list according to their
proficiency in the requested product. Thus, the ACD preferably tries each
agent
to in the list in order until an available agent console is found.
The method of Figure 9 could be implemented by providing
subsequent lists of some maximum number of agents to the ACD until an
available agent is found by the ACD. However, a preferred method provides one
list of potential agents rather than multiple subsequent lists. This technique
~5 avoids delays due to competing requests for SBRP attention when servicing
many phone calls.
A third method for determining an appropriate agent to service an
inbound call based upon enhanced skills based routing utilizes a system of
queues. However, in contrast to the queues of prior systems, the queues of
this
2o method are dynamic. Specifically, rather than an agent console being
assigned to
a single group having exactly one queue as exists in prior systems, preferably
each agent console is a member of each group that corresponds to a product for
which the corresponding agent is proficient.
Figure 10 is a block diagram of the relationship of queues to agent
2s consoles based upon a dynamic queuing method. The proficiencies for each
product of each agent console shown in Figure 6 are reflected in Figure 10.
For
example, Agent 3 in Figure 6 has a top-level proficiency (3) in the skills
required
for Product 1, has medium proficiency (2) for the skills required by Product
2,
and has some proficiency ( 1 ) for the skills required by Products 3 and n.
The

i
CA 02294222 1999-12-16
WO 99/00966 PCT/US98/12473
dynamic queue method would logically assign the agent console that corresponds
to Agent 3 (via its port) on four different queues 1001, 1002, 1003, 1004 (the
queues for Products 1, 2, 3, and n, respectively). The darker lines of Figure
10
correspond to the queue assignments for Agent 3. Further, it is contemplated
that
s the queues may organize agent consoles in proficiency order. One embodiment
utilizes a separate queue for each level of proficiency within the product.
(This
embodiment is illustrated in Figure 10). Another embodiment implements one
queue per product but maintains proficiency information related to its
assigned
agent consoles. Thus, although still using queuing techniques, the method
shown
to in Figure 10 is more cost-effective than prior systems because calls will
correspond to a queue based upon the proficiency of an operator at different
skills.
Figure 11 is a flow diagram of a dynamic queuing method for
determining an appropriate agent to service an inbound call based upon
enhanced
1s skills based routing. Specifically, in step 1101, the SBRP determines which
agent has the highest level of proficiency for the product skill designated by
the
call processing computer system. In step 1102, the routine determines whether
the agent is available and, if so, returns the identification of this agent to
the
ACD. Otherwise, the routine continues in step 1103. In step 1103, the SBRP
2o places the call in a queue corresponding to the product and proficiency
level.
Optionally, a timer is set. In step 1104, the SBRP determines whether the call
was serviced and, if so, returns, otherwise continues in step 1105. In step
1105,
the SBRP determines whether there are additional agents having proficiency in
the requested product and, if so, continues in step 1101 with the agent having
the
2s next highest level of proficiency, otherwise continues in step 1106. In
step 1106,
the SBRP begins again with a queue of choice and begins looking with the
highest level of proficiency.
One skilled in the art will also recognize that the variations of
timers and selection methods discussed with reference to Figure 8 are also
~ _T __ _ ___~___~._._. n...w.-..._.... .


CA 02294222 1999-12-16
WO 99100966 PCT/US98/12473
21
applicable here. Further, one could optionally place an unserviced call on a
single general queue after some period of time has elapsed. Also, the agents
could update their skills dynamically and thereby cause the logical queue
assignments to be updated. Further, one skilled in the art will recognize that
the
s queuing method of Figure 11 can be used in conjunction with the other
methods
illustrated in Figures 8 and 9. It is also envisioned that the methods of
Figures 8,
9, and 11 can be intermixed. Other variations are possible.
Although the present invention has been described in terms of
to specific embodiments, it is not intended that the invention be limited to
these
embodiments. Equivalent methods, structures, processes, steps, and other
modifications within the spirit of the invention fall within the scope of the
invention. The scope of the present invention is defined by the claims, which
follow.

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date Unavailable
(86) PCT Filing Date 1998-06-16
(87) PCT Publication Date 1999-01-07
(85) National Entry 1999-12-16
Dead Application 2004-06-16

Abandonment History

Abandonment Date Reason Reinstatement Date
2003-06-16 FAILURE TO REQUEST EXAMINATION
2004-06-16 FAILURE TO PAY APPLICATION MAINTENANCE FEE

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $300.00 1999-12-16
Maintenance Fee - Application - New Act 2 2000-06-16 $100.00 2000-06-08
Extension of Time $200.00 2001-03-16
Maintenance Fee - Application - New Act 3 2001-06-18 $100.00 2001-06-11
Registration of a document - section 124 $50.00 2001-10-10
Registration of a document - section 124 $100.00 2001-10-10
Maintenance Fee - Application - New Act 4 2002-06-17 $100.00 2002-06-07
Maintenance Fee - Application - New Act 5 2003-06-16 $150.00 2003-06-09
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
MCI WORLDCOM, INC.
Past Owners on Record
MCI COMMUNICATIONS CORPORATION
MUMFORD, GREGORY L.
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Representative Drawing 2000-02-24 1 6
Description 1999-12-16 21 1,115
Abstract 1999-12-16 1 53
Drawings 1999-12-16 11 193
Claims 1999-12-16 8 339
Cover Page 2000-02-24 2 65
Fees 2000-06-08 1 56
Fees 2001-06-11 1 55
Correspondence 2000-02-04 1 2
Assignment 1999-12-16 2 95
PCT 1999-12-16 10 379
Correspondence 2001-03-16 1 61
Correspondence 2001-04-09 1 13
Assignment 2001-10-10 6 229
Assignment 2001-10-10 3 161
Correspondence 2001-11-08 1 17
Correspondence 2001-11-09 1 19
Assignment 2001-11-27 2 77
Fees 2003-06-09 1 43
Fees 2002-06-07 1 55