U.S. patent application number 16/658765 was filed with the patent office on 2021-04-22 for systems and methods for routing communications to agents based on attributes.
The applicant listed for this patent is Talkdesk, Inc. Invention is credited to Alexandre Pinheiro, Antonio Veloso.
Application Number | 20210117902 16/658765 |
Document ID | / |
Family ID | 1000004453965 |
Filed Date | 2021-04-22 |
![](/patent/app/20210117902/US20210117902A1-20210422-D00000.png)
![](/patent/app/20210117902/US20210117902A1-20210422-D00001.png)
![](/patent/app/20210117902/US20210117902A1-20210422-D00002.png)
![](/patent/app/20210117902/US20210117902A1-20210422-D00003.png)
![](/patent/app/20210117902/US20210117902A1-20210422-D00004.png)
![](/patent/app/20210117902/US20210117902A1-20210422-D00005.png)
![](/patent/app/20210117902/US20210117902A1-20210422-D00006.png)
![](/patent/app/20210117902/US20210117902A1-20210422-D00007.png)
United States Patent
Application |
20210117902 |
Kind Code |
A1 |
Veloso; Antonio ; et
al. |
April 22, 2021 |
SYSTEMS AND METHODS FOR ROUTING COMMUNICATIONS TO AGENTS BASED ON
ATTRIBUTES
Abstract
In one embodiment, agents are each assigned a plurality of
attributes based on their skills. Each attribute may be associated
with a skill such as accounting, technical support, language, etc.
In addition, some attributes may have an associated score or
proficiency level that describes how proficient the agent is with
respect to the attribute. Administrators may then create rules to
route communications to agents based on the associated attributes
and a customer category that is assigned to the communications.
Inventors: |
Veloso; Antonio; (Lisbon,
PT) ; Pinheiro; Alexandre; (Lisbon, PT) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Talkdesk, Inc |
San Francisco |
CA |
US |
|
|
Family ID: |
1000004453965 |
Appl. No.: |
16/658765 |
Filed: |
October 21, 2019 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
16655727 |
Oct 17, 2019 |
|
|
|
16658765 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06N 5/027 20130101;
G06Q 10/063112 20130101; H04M 3/5233 20130101; G06Q 30/016
20130101 |
International
Class: |
G06Q 10/06 20060101
G06Q010/06; G06N 5/02 20060101 G06N005/02; G06Q 30/00 20060101
G06Q030/00 |
Claims
1. A method comprising: displaying a plurality of attributes by a
computing device; receiving a selection of at least one attribute
of the plurality of attributes by the computing device; receiving a
selection of a proficiency level for the selected at least one
attribute by the computing device; and associating a rule with a
customer category, wherein the rule is based on the selected at
least one attribute of the plurality of attributes and the selected
proficiency level.
2. The method of claim 1, wherein the selected proficiency level
comprises a minimum proficiency level of the at least one
attribute.
3. The method of claim 1, wherein the plurality of attributes
comprises language attributes, skill attributes, age attributes,
geographical attributes, and premium service attributes.
4. The method of claim 1, further comprising receiving a selection
of a performance metric, and wherein the rule is based on the
selected at least one attribute of the plurality of attributes, the
selected proficiency level, and the performance metric.
5. The method of claim 4, wherein the performance metric comprises
one of an average handling time, a customer satisfaction score,
fastest solver, best seller, highest proficiency level, and lowest
proficiency level.
6. The method of claim 1, further comprising: receiving a
communication from a customer; determining the customer category
associated with the customer; selecting the rule associated with
the customer category; for each agent of a plurality of agents,
determining a plurality of attributes associated with the agent;
based on the determined rule and the plurality of attributes
determined for each agent, selecting an agent of the plurality of
agents; and routing the received communication to the selected
agent.
7. The method of claim 6, wherein the customer category is
determined based one or more of a language spoken by the customer,
a country associated with the customer, and a priority associated
with the customer.
8. The method of claim 6, wherein determining the plurality of
attributes associated with the agent comprises dynamically
calculating at least one attribute of the plurality of attributes
associated with the agent.
9. The method of claim 6, further comprising calculating at least
one performance metric for each agent of the plurality of agents,
and based on the determined rule, the plurality of attributes
determined for each agent, and the calculated at least one
performance metric, selecting an agent of the plurality of
agents.
10. A system comprising: at least one processor; and a
non-transitory computer readable medium comprising instructions
that, when executed by the at least one processor, cause the system
to: display a plurality of attributes; receive a selection of at
least one attribute of the plurality of attributes; receive a
selection of a proficiency level for the selected at least one
attribute; and associate a rule with a customer category, wherein
the rule is based on the selected at least one attribute of the
plurality of attributes and the selected proficiency level.
11. The system of claim 10, wherein the selected proficiency level
comprises a minimum proficiency level of the at least one
attribute.
12. The system of claim 10, wherein the plurality of attributes
comprises language attributes, skill attributes, age attributes,
geographical attributes, and premium service attributes.
13. The system of claim 10, further comprising instructions that,
when executed by the at least one processor, cause the system to:
receive a selection of a performance metric, and wherein the rule
is based on the selected at least one attribute of the plurality of
attributes, the selected proficiency level, and the performance
metric.
14. The system of claim 13, wherein the performance metric
comprises one of an average handling time, a customer satisfaction
score, fastest solver, best seller, highest proficiency level, and
lowest proficiency level.
15. The system of claim 10, further comprising instructions that,
when executed by the at least one processor, cause the system to:
receive a communication from a customer; determine the customer
category associated with the customer; select the rule associated
with the customer category; for each agent of a plurality of
agents, determine a plurality of attributes associated with the
agent; based on the determined rule and the plurality of attributes
determined for each agent, select an agent of the plurality of
agents; and routing the received communication to the selected
agent.
16. The system of claim 15, wherein the customer category is
determined based one or more of a language spoken by the customer,
a country associated with the customer, and a priority associated
with the customer.
17. The system of claim 16, wherein determining the plurality of
attributes associated with the agent comprises dynamically
calculating at least one attribute of the plurality of attributes
associated with the agent.
18. The system of claim 16, further comprising instructions that,
when executed by the at least one processor, cause the system to:
calculate at least one performance metric for each agent of the
plurality of agents, and based on the determined rule, the
plurality of attributes determined for each agent, and the
calculated at least one performance metric, select an agent of the
plurality of agents.
19. A non-transitory computer-readable medium comprising
instructions that, when executed by at least one processor, cause a
computer system to: display a plurality of attributes; receive a
selection of at least one attribute of the plurality of attributes;
receive a selection of a proficiency level for the selected at
least one attribute; and associate a rule with a customer category,
wherein the rule is based on the selected at least one attribute of
the plurality of attributes and the selected proficiency level.
20. The computer-readable medium of claim 19, wherein the selected
proficiency level comprises a minimum proficiency level of the at
least one attribute.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 16/655,727 filed on Oct. 17, 2019, entitled
"SYSTEMS AND METHODS FOR ROUTING COMMUNICATIONS TO AGENTS BASED ON
ATTRIBUTES." The contents of which are hereby incorporated by
reference.
BACKGROUND
[0002] Queues are a popular way of assigning agents to customers in
a contact center. For example, a set of queues may be created, with
each queue associated with a particular expertise or agent
qualification. For example, agents who are trained on tech support
may be assigned, or logged in, to a queue associated with tech
support questions, and agents who are trained on billing may be
assigned, or logged in, to a queue associated with billing
questions.
[0003] When a call (or other type of communication like SMS, Chat,
or Social Network post) is received at the contact center, a topic
associated with the call is determined, and the call is routed to
an agent from the queue that is best suited to the determined
topic. Continuing the example above, when a call is received for
technical support, an agent in the queue associated with tech
support questions is selected to receive the call, and when a call
is received for accounting, an agent in the queue associated with
billing questions is selected to receive the call.
[0004] While queues are a popular way to route calls in contact
centers, there are drawbacks associated with queues. First, the use
of queues may result in an inefficient use of agent resources. For
example, a contact center may be experiencing a large volume of
calls related to technical support which may result in a large wait
time for customers as all of the agents in the technical support
queue are occupied. However, there may be free agents in the
accounting queue that could handle the calls, but they may not be
automatically utilized because they are not in the technical
support queue.
[0005] Second, the only way for available agents to move from one
queue to another is by manual action of the administrator of the
contact center, the supervisor or the agent himself. This would be
done following the previous example by manually reassigning, or
logging off and logging in, agents from the accounting queue onto
the technical support queue.
[0006] Third, doing that type of action manually with no supporting
intelligence, may end up resulting in two queues with increasing
waiting time, having a worse result than initially when it was
focused on solely one queue.
[0007] Fourth, queues are typically assigned to calls on a first
come first service basis, which may not result in the best agents
being assigned to important calls. For example, an important
customer may call with a billing question, and may be assigned an
available agent from the accounting queue. However, there is no way
to choose the best agent available from the accounting queue to
serve the VIP customer.
[0008] Fifth, agents are typically assigned to queues based on a
single skill (i.e., accounting or billing). However, often multiple
skills may be desired in an agent to handle a particular call. For
example, a Chinese customer may call with a billing question. It
therefore may be desirable to assign an agent to the call who has
the skills of both billing and the Mandarin language. However,
there may be no queue of agents who are both skilled in Mandarin
and billing.
SUMMARY
[0009] In one embodiment, agents are each assigned a plurality of
attributes based on their skills. Each attribute may be associated
with a skill such as accounting, technical support, language, VIP
specialist, etc. In addition, some attributes may have an
associated score or proficiency level that describes how proficient
the agent is with respect to that specific attribute.
Administrators may then create rules to route communications to
agents based on the associated attributes and a customer category
that is assigned to the communications.
[0010] When a communication is received, a customer category
associated with the communication is determined. The customer
categories may be created by the administrators and may be based on
characteristics of the communication or customer such as its
country of origin, language spoken by the customer, VIP or
importance of the customer, and the topic associated with the
communication (e.g., tech support or billing).
[0011] One or more rules associated with the determined customer
category are retrieved. The attributes associated with each
available agent are dynamically calculated and compared against the
rules associated with the customer category. The communication may
then be routed to an agent who satisfies some or all of the rules
associated with the category. If no agents are determined who
satisfy any of the rules associated with the category, some or all
of the attributes from the rules may be relaxed until a suitable
agent is determined. Relaxing the rule may include adding an
attribute and an OR operator to the rule or removing or replacing
an AND operator with an OR operator. Relaxing the rule may further
include reducing the score or proficiency level associated with an
attribute of the rule.
[0012] The embodiments described herein solve many of the problems
associated with the prior art described above. First, by using
attributes to select agents rather than queues, the inefficient
usage of agent resources associated with queue is reduced. Second,
because attributes allow for relatively complex rules to be used to
assign agents based on various combinations of desired skills and
proficiencies, administrators can determine the agent best suited
to handle a particular communication. This may lead to reduced
communication times, and greater communication experiences for
customers.
[0013] In an embodiment, a method is provided. The method includes:
receiving a communication by a computing device from a customer;
determining a rule associated with the customer by the computing
device; for each agent of a plurality of agents, determining a
plurality of attributes associated with the agent by the computing
device; based on the determined rule and the plurality of
attributes determined for each agent, selecting an agent of the
plurality of agents by the computing device; and routing the
received communication to the selected agent by the computing
device.
[0014] Embodiments may include some or all of the following
features. Each attribute may include a proficiency level. The rule
may include a plurality of attributes. The method may further
include calculating at least one performance metric for each agent
of the plurality of agents, and based on the determined rule, the
plurality of attributes determined for each agent, and the
calculated at least one performance metric, selecting an agent of
the plurality of agents. The at least one performance record may
include one of an average handling time or a customer satisfaction
score. Calculating at least one performance metric for each agent
of the plurality of agents may include, for each agent of the
plurality of agents: determining communication history data
associated with the agent; and calculating the at least one
performance metric from the communication history data. Determining
the plurality of attributes associated with the agent by the
computing device may include dynamically calculating at least one
attribute of the plurality of attributes associated with the agent.
The plurality of attributes may include language attributes, skill
attributes, age attributes, geographical attributes, and premium
service attributes. The method may further include determining a
customer category for the customer, and wherein determining the
rule associated with the customer comprises determining the rule
associated with the customer category. The customer category may be
determined based one or more of a language spoken by the customer,
a country associated with the customer, a priority associated with
the customer, a value associated with the customer, previous
communications associated with the customer, and a mood of the
customer.
[0015] In an embodiment, a method is provided. The method includes:
displaying a plurality of attributes by a computing device;
receiving a selection of at least one attribute of the plurality of
attributes by the computing device; receiving a selection of a
proficiency level for the selected at least one attribute by the
computing device; and associating a rule with a customer category,
wherein the rule is based on the selected at least one attribute of
the plurality of attributes and the selected proficiency level.
[0016] Embodiments may include some or all of the following
features. The selected proficiency level may include a minimum
proficiency level of the at least one attribute. The plurality of
attributes may include language attributes, skill attributes, age
attributes, geographical attributes, and premium service
attributes. The method may further include receiving a selection of
a performance metric, and wherein the rule is based on the selected
at least one attribute of the plurality of attributes, the selected
proficiency level, and the performance metric. The performance
metric may include one of an average handling time, a customer
satisfaction score, fastest solver, best seller, highest
proficiency level, and lowest proficiency level. The method may
further include: receiving a communication from a customer;
determining the customer category associated with the customer;
selecting the rule associated with the customer category; for each
agent of a plurality of agents, determining a plurality of
attributes associated with the agent; based on the determined rule
and the plurality of attributes determined for each agent,
selecting an agent of the plurality of agents; and routing the
received communication to the selected agent.
[0017] In an embodiment, a method is provided. The method includes:
receiving a communication by a computing device from a customer;
determining a rule associated with the customer by the computing
device; for each agent of a plurality of agents, determining a
plurality of attributes associated with the agent by the computing
device; based on the determined rule and the plurality of
attributes determined for each agent, determining that no agent of
the plurality of agents satisfies the determined rule by the
computing device; and in response to the determination, relaxing
the rule associated with the customer by the computing device.
[0018] Embodiments may include some or all of the following
features. Each attribute may include a proficiency level. The rule
may include a plurality of attributes. The plurality of attributes
may include language attributes, skill attributes, age attributes,
geographical attributes, and premium service attributes. The method
may further include determining a customer category for the
customer, and wherein determining the rule associated with the
customer may include determining the rule associated with the
customer category. Relaxing the rule may include adding at least
one attribute to the rule along with an OR operator. Relaxing the
rule include replacing at least one OR operator in the rule with an
AND operator.
[0019] In an embodiment, a method is provided. The method includes:
receiving a communication by a computing device from a customer;
determining a rule associated with the customer by the computing
device, wherein the rule is associated with a plurality of
attributes; for each agent of a plurality of agents, determining a
plurality of attributes associated with the agent by the computing
device; based on the plurality of attributes of the determined rule
and the plurality of attributes determined for each agent,
determining at least one attribute of the plurality of attributes
associated with the determined rule that is not associated with any
agent of the plurality of agents by the computing device; in
response to the determination, retrieving a list of agents of the
plurality of agents who previously handled communications
associated with the at least one attribute; and routing the
received communication to an agent from the list of agents.
[0020] Embodiments may include some or all of the following
features. Each attribute may include a proficiency level. The
plurality of attributes associated with the rule may include
language attributes, skill attributes, age attributes, geographical
attributes, and premium service attributes. The method may further
include determining a customer category for the customer, and
wherein determining the rule associated with the customer may
include determining the rule associated with the customer category.
The method may further include: determining that an agent of the
plurality of agents handled a communication associated with the at
least one attribute and that the agent of the plurality of agents
is not associated with the at least one attribute; determining that
a score of the at least one agent for the communication exceeds a
threshold score; and in response to the determination, adding the
agent to the list of agents who previously handled communications
associated with the at least one attribute. The method may further
include determining the score based on one or more of a customer
survey or based on an analysis of a transcript associated with the
communication. The method may further include adding the at least
one attribute to the plurality of attributes associated with the
agent in response to determining that the score of the at least one
agent for the communication exceeded a threshold score.
[0021] Other systems, methods, features and/or advantages will be
or may become apparent to one with skill in the art upon
examination of the following drawings and detailed description. It
is intended that all such additional systems, methods, features
and/or advantages be included within this description and be
protected by the accompanying claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0022] The components in the drawings are not necessarily to scale
relative to each other. Like reference numerals designate
corresponding parts throughout the several views.
[0023] FIG. 1 is an illustration of an example system
architecture;
[0024] FIG. 2 is an illustration of an example agent routing
platform;
[0025] FIG. 3 is an illustration of an example graphical user
interface;
[0026] FIG. 4 is an illustration of an example graphical user
interface;
[0027] FIG. 5 is an illustration of an example method for routing
communications to an agent;
[0028] FIG. 6 is an illustration of an example method for
generating a rule for routing communications to agents; and
[0029] FIG. 7 illustrates an example computing device.
DETAILED DESCRIPTION
[0030] Unless defined otherwise, all technical and scientific terms
used herein have the same meaning as commonly understood by one of
ordinary skill in the art. Methods and materials similar or
equivalent to those described herein can be used in the practice or
testing of the present disclosure. While implementations will be
described within a cloud-based contact center, it will become
evident to those skilled in the art that the implementations are
not limited thereto.
[0031] FIG. 1 is an example system architecture 100, and
illustrates example components, functional capabilities and
optional modules that may be included in a cloud-based contact
center infrastructure solution. Customers 110 (also referred to
herein as callers) interact with a contact center 150 using voice,
email, text, and web interfaces (i.e., communications) in order to
communicate with agent(s) 120 through a network 130 and one or more
of text or multimedia channels. The agent(s) 120 may be remote from
the contact center 150 and handle communications with customers 110
on behalf of an enterprise. The agent(s) 120 may utilize devices,
such as but not limited to, work stations, desktop computers,
laptops, telephones, a mobile smartphone and/or a tablet.
Similarly, customers 110 may communicate using a plurality of
devices, including but not limited to, a telephone, a mobile
smartphone, a tablet, a laptop, a desktop computer, or other. For
example, telephone communication may traverse networks such as a
public switched telephone networks (PSTN), Voice over Internet
Protocol (VoIP) telephony (via the Internet), a Wide Area Network
(WAN) or a Large Area Network. The network types are provided by
way of example and are not intended to limit types of networks used
for communications.
[0032] Agent(s) 120 and customers 110 may communicate with each
other and with other services over the network 130. For example, a
customer calling on telephone handset may connect through the PSTN
and terminate on a private branch exchange (PBX). A video call
originating from a tablet may connect through the network 130
terminate on the media server. A smartphone may connect via the WAN
and terminate on an interactive voice response (IVR)/intelligent
virtual agent (IVA) components. IVR are self-service voice tools
that automate the handling of incoming and outgoing calls. Advanced
IVRs use speech recognition technology to enable customers to
interact with them by speaking instead of pushing buttons on their
phones. IVR applications may be used to collect data, schedule
callbacks and transfer calls to live agents. IVA systems are more
advanced and utilize artificial intelligence (Al), machine learning
(ML), advanced speech technologies (e.g., natural language
understanding (NLU)/natural language processing (NLP)/natural
language generation (NLG)) to simulate live and unstructured
cognitive conversations for voice, text and digital interactions.
In yet another example, Social media, email, SMS/MMS, IM may
communicate with their counterpart's application (not shown) within
the contact center 150.
[0033] The contact center 150 itself be in a single location or may
be cloud-based and distributed over a plurality of locations. The
contact center 150 may include servers, databases, and other
components. In particular, the contact center 150 may include, but
is not limited to, a routing server, a SIP server, an outbound
server, a reporting/dashboard server, automated call distribution
(ACD), a computer telephony integration server (CTI), an email
server, an IM server, a social server, a SMS server, and one or
more databases for routing, historical information and
campaigns.
[0034] The ACD is used by inbound, outbound and blended contact
centers to manage the flow of interactions by routing and queuing
them to the most appropriate agent. Within the CTI, software
connects the ACD to a servicing application (e.g., customer
service, CRM, sales, collections, etc.), and looks up or records
information about the customer. CTI may display a customer's
account information on the agent desktop when an interaction is
delivered. Campaign management may be performed by an application
to design, schedule, execute and manage outbound campaigns.
Campaign management systems are also used to analyze campaign
effectiveness.
[0035] For inbound SIP messages, the routing server may use
statistical data from reporting/dashboard information and a routing
database to the route SIP request message. A response may be sent
to the media server directing it to route the interaction to a
target agent 120. The routing database may include: customer
relationship management (CRM) data; data pertaining to one or more
social networks (including, but not limited to network graphs
capturing social relationships within relevant social networks, or
media updates made by members of relevant social networks); agent
skills data; data extracted from third party data sources including
cloud-based data sources such as CRM; or any other data that may be
useful in making routing decisions.
[0036] The integration of real-time and non-real-time communication
services may be performed by unified communications (UC)/presence
sever. Real-time communication services include Internet Protocol
(IP) telephony, call control, instant messaging (IM)/chat, presence
information, real-time video and data sharing. Non-real-time
applications include voicemail, email, and SMS. The communications
services are delivered over a variety of communications devices,
including IP phones, personal computers (PCs), smartphones and
tablets. Presence provides real-time status information about the
availability of each person in the network, as well as their
preferred method of communication (e.g., phone, email, chat and
video).
[0037] Recording applications may be used to capture and play back
audio, video, and screen interactions between customers and agents.
Recording systems should capture everything that happens during
interactions and what agents do on their desktops. Surveying tools
may provide the ability to create and deploy post-interaction
customer feedback surveys in voice and digital channels. Typically,
the IVR/IVA development environment is leveraged for survey
development and deployment rules. Reporting/dashboards are tools
used to track and manage the performance of agents, teams,
departments, systems and processes within the contact center.
Reports are presented in narrative, graphical or tabular formats.
Reports can be created on a historical or real-time basis,
depending on the data collected by the contact center applications.
Dashboards typically include widgets, gadgets, gauges, meters,
switches, charts and graphs that allow role-based monitoring of
agent, queue and contact center performance. Unified messaging (UM)
applications include various messaging and communications media
(voicemail, email, SMS, fax, video, etc.) stored in a common
repository and accessed by users via multiple devices through a
single unified interface.
[0038] In order to improve the routing of calls to agents 120, the
calls (or other communications) received by the contact center 150
may be routed to agents 120 by an agent routing platform 140.
Communications as used herein may include telephone calls, texts,
e-mails, and any other type of electronic communications. While
shown in FIG. 1 as separate from the contact center 150, depending
on the embodiment the agent routing platform 140 may be part of the
contact center 150.
[0039] As will be described further in FIG. 2, the agent routing
platform 140 may route communications to agents 120 based on
attributes associated with each agent 120, and one or more rules.
As used herein an attribute may be a skill or characteristic
associated with an agent 120. Examples of attributes may include
language attributes (e.g., what languages that the agent speaks),
work-related attributes (e.g., the agent 120 is trained to answer
communications related to technical support, or billing, returns,
shipping, etc.), and attributes representing any accolades or
achievements that the agent 120 may have received (e.g., has the
agent 120 been rewarded for providing excellent service). In some
embodiments, each attribute may be associated with a proficiency
score.
[0040] A rule for routing a communication may specify a plurality
of required attributes and may provide a minimum proficiency score
for one or more of the specified attributes. For example, a sample
rule may specify that an agent 120 have an attribute of "technical
support" and an attribute of "speaks Mandarin" with a proficiency
level greater than or equal to four. A communication associated
with such a rule may only be routed to an agent 120 that has the
attribute "technical support" and speaks Mandarin with a
proficiency level that is greater than or equal to four.
[0041] In some embodiments, the agent routing platform 140 may
associate rules with customer categories and may route
communications according to the customer category associated with a
communication or customer. Examples of customer categories may
include the language spoken by a customer, the country associated
with a customer, the type of service requested by the customer
(e.g., tech support or billing), and a priority associated with the
customer (e.g., is the customer a VIP?).
[0042] FIG. 2 is an illustration of an example agent routing
platform 140. As shown the agent routing platform 140 includes
various modules including a rule engine 220 and a routing engine
230. More or fewer modules may be supported by the agent routing
platform 140. Depending on the embodiment, each of the agent
routing platform 140, rule engine 220, and routing engine 230 may
be implemented together or separately by one or more general
purpose computing devices such as the computing system 700
illustrated with respect to FIG. 7. In addition, while shown as
separate from the contact center 150, the agent routing platform
140 may be a component of the contact center 150.
[0043] The rule engine 220 may provide for the creation of one or
more rules 225 that control the routing of a received communication
to an agent 120. In some embodiments, the rule engine 220 may
provide a graphical user interface ("GUI") that may be used by a
user or administrator to create one or more rules. An example GUI
is the GUI 400 illustrated with respect to FIG. 4.
[0044] In some embodiments, the user or administrator may create a
rule 225 by first selecting or defining a customer category that is
associated with the rule 225. A customer category may be a set of
characteristics that can be used to place a customer associated
with a communication in a customer category. The characteristics
associated with a customer category may include country of origin
(i.e., what country is the communication coming from), language
(i.e., what language is spoken by the customer), communication
topic or purpose (i.e., what type of help is the customer seeking),
and customer priority (e.g., is the customer a VIP or does the
customer pay for support). Other types of characteristics may be
supported.
[0045] For example, as can been in the box 410 of the GUI 400, the
administrator has selected a customer category for a rule 225 that
includes the characteristics "English" and "VIP". Accordingly, any
customer 110 that speaks English and is a VIP will be routed
according to the rule 225 being created in the GUI 400. Note that
the customer characteristics selected for a rule 225 may include
any number of characteristics and may include logical operators
other than AND. For example, a customer category could be "(NOT
`English`) OR (NOT `VIP`)" which would capture any customer 110
that speaks a language other than English or any customer that is
not considered a VIP. Other logical expressions and/or operators
may be used to define a customer category.
[0046] After selecting or defining a customer category, the rule
engine 220 may allow the administrator to create one or more rules
225 to select agents 120 to handle communications that fall into
the customer category. In some embodiments, a rule 225 may define
the minimum attributes 235 that an agent 120 should posses to
handle a communication for the customer category. Examples of
attributes include language attributes corresponding to language
skills that an agent 120 speaks or is proficient in (e.g., English,
Spanish, French, or Mandarin), skill attributes corresponding to
business skills that the agent 120 has proficiency in (e.g.,
technical support, billing, or sales), and performance attributes
corresponding to awards or performance milestones that the agent
120 has achieved. The performance attributes may include awards
given to the agent 120 for meeting certain customer service or
sales goals, experience based milestones such as being an agent 120
for more than one year, two year, five years, etc. Other types of
attributes may be supported.
[0047] FIG. 3 shows an example of a user interface 300 showing the
attributes 235 that are available in the agent routing platform
140. In the box 310 can be viewed some of the attributes 235 that
have been created so far. These include attributes 235 such as
"billing", "English", "German", "sales", "salesforce", and "tech
problems". In the box 315 are indicators of whether or not the
particular attribute 235 is active or currently being used by the
agent routing platform 140. In the box 320 are numbers showing how
many active agents 120 possess the particular attribute 235. Such
information may be useful for an administrator when creating a rule
225 using the attributes 235.
[0048] Also shown in the box 325 are icons through which the
administrator can edit one or more of the displayed attributes 235.
For example, the administrator could change the name of the
attributes 235 or may add one or more proficiency levels to the
attributes 235. The administrator 230 may add a new attribute 235
by selecting the button 330.
[0049] Returning to FIG. 2, depending on the embodiment, each
attribute 235 may be associated with a proficiency level. The
proficiency level for an attribute 235 may be a score (e.g., 1-5)
that represents how proficient the agent 120 is with respect to the
attribute. For example, an agent 120 with a proficiency level of 1
with respect to the attribute 235 "English" may have a very low
ability to speak or understand English, and an agent 120 with a
proficiency of 5 may be completely fluent in English. In another
example, an agent 120 with a proficiency of 1 with respect to the
attribute 235 "technical support" may have had some training on
technical issues within the contact center 150 and may be suitable
to handle communications dealing with simple technical issues.
Whereas an agent 120 with a proficiency of 5 may have extensive
training or experience with respect to most technical issues within
the contact center 150 and may be suitable to handle any technical
communication that is received by the contact center 150.
[0050] For example, as can been in the box 415 of the GUI 400 of
FIG. 4, the administrator has selected two attributes 235 to use to
create a rule 225. The selected attributes 235 are
"English_support" and "VIP_support". The attribute 235
"English_support" may relate to the English language proficiency of
an agent 120. The attribute 235 "VIP_support" may relate to the
suitability of the agent 120 for providing support to high priority
or "VIP" clients.
[0051] As shown in the box 420, after selecting the attributes 235,
the administrator has used tools provided by the GUI 400 to
generate a rule 225 using the selected attributes 235. In the
example shown, the generated rule 225 matches an agent 120 if the
agent 120 has proficiency level for the attribute "English_support"
that is greater or equal to 4 and has a proficiency level for the
attribute "VIP_support" that is greater or equal to 4. Note that in
the example shown the administrator selected the logical operators
of "if" and "and" when creating the rule 225. However, other
logical operators may be used including, but not limited to, "not",
"or", "not if", and "xor." Thus, a wide variety of rules 225 may be
created to carefully select agents 120 to handle communications for
a particular customer category.
[0052] As shown in the box 425, the administrator 120 may have
provided a second rule 225 for the customer category. Depending on
the embodiment, the second rule 225 may be a fallback rule 225 that
may be applied in the event that no agents 120 match or are
selected by the original or primary rule 225. Alternatively or
additionally, the second rule 225 may be used to select agents 120
for the customer category in addition to the primary rule 225.
Thus, an agent 120 may be selected for a communication if it
satisfies either the rule 225 shown in the box 420 or the rule 225
shown in the box 425.
[0053] Returning to FIG. 2, the routing engine 230 may route a
received communication to an agent 120 based on the one of more
rules 225 and the attributes 235 associated with each agent 120.
Depending on the embodiment, the routing engine 230 may store and
maintain the attributes 235 associated with each agent 130. For
example, the routing engine 230 may store the attributes 235 in
storage associated with the agent routing platform 140 and/or the
contact center 150.
[0054] When a communication is received, the routing engine 230 may
first determine the customer category associated with the
communication. Depending on the embodiment, the routing engine 230
may determine the customer category using communication information
indicating the country of origin associated with the communication
and other communication routing information provided by the contact
center 150. The routing engine 230 may further determine the
customer category using IVR information associated with the
communication. For example, the customer may have selected an
option indicating the language that they speak (e.g., English or
Spanish) and the type of information that they are seeking (e.g.,
tech support vs. billing). Depending on the embodiment, the
received communication may include a customer number or identifier
provided by the contact center 150 that may be used to determine
the priority or VIP status of the customer and/or the customer
category.
[0055] The routing engine 230 may retrieve the rules 225 for
routing the communication associated with the customer category.
The routing engine 230 may retrieve the one or more rules 225 from
a rule storage associated with the agent routing platform 140
and/or the contact center 150. Depending on the embodiment, if no
rules 225 are associated with the customer category, the routing
engine 230 may route the communication to any available agent 120.
Alternatively, the routing engine 230 may select an agent 120 using
a default or catchall rule 225. The default rule 225 may be set by
a user or administrator, for example.
[0056] After retrieving the rules 225, the routing engine 230 may
determining agents 120 that have attributes 235 that satisfy the
rules 225. The routing engine 230 may retrieve the attributes 235
associated with each available agent 120 (i.e., an agent 120 that
is not currently on a call or otherwise unavailable) may determine
available agents 120 that satisfy the rules 225.
[0057] In some embodiments, the attributes 235 for each agent 120
and their optional proficiency levels may be set by a user or
administrator. For example, for an attribute 235 called "technical
proficiency" the agents 120 may periodically take a test or
complete a training course on one or more technical topics
associated with the contact center 150. The administrator may then
set the proficiency level based on test or training course that is
completed. For these attributes 235, the routing engine 230 may
retrieve the attributes 235 (and associated proficiency levels)
from storage associated with the agent routing platform 140 or the
contact center 150.
[0058] Additionally, some of the attributes 235 for each agent 120
and their optional proficiency levels may be calculated
automatically by the routing engine 230. For example, for an
attribute 235 called "Mandarin proficiency" the routing engine 230
may process transcripts of past communications associated with an
agent 120. The transcripts may be processed using a model that was
trained using transcripts of other Mandarin speakers to identify
the proficiency level of a speaker. The model may have been trained
using machine learning or other artificial intelligence-based
techniques. The score determined by the model may be used to set
the proficiency level of the agent 120. Similar model-based
techniques may be used to set the proficiency levels of other
attributes 235 such as customer service related attributes 235 and
technology related attributes 235, for example.
[0059] Depending on the embodiment, the routing engine 230 may
periodically calculate the attributes 235 (and related proficiency
levels) and may retrieve the calculated attributes 235 for each
available agent when a communication is received by the agent
routing platform 140. Alternatively or additionally, for at least
some attributes 235, the routing engine 230 may dynamically
calculate some or all of the attributes 235 for an agent 120 in
response to receiving a communication. By calculating an attribute
235 or proficiency dynamically in response to a communication, the
routing engine 230 ensures that the attributes 235 are up current
with respect to the most recent data available to the contact
center 150.
[0060] In some embodiments, when calculating an attribute 235 (and
associated proficiency level) the routing engine 230 may favor or
weigh more heavily recent communication or communication
transcripts over previous transcripts. For example, when
calculating an attribute 225 related to following contact center
150 procedures such as following a script, the routing engine 230
may use the most recent communication transcripts available, and/or
customer satisfaction surveys, and a model to determine the
proficiency level for an agent 120. As may be appreciated, by
calculating proficiency levels and attributes 235 using the most
recent communication transcripts and data the routing engine 230
may quickly recognize certain trends or changes in agent 120
behavior. For example, an otherwise excellent agent 120 may be
having a bad day resulting in low adherence to contact center 150
policies. The routing agent 230 could recognize the poor
performance and could reduce the proficiency level for a customer
service related attribute 235. Because of the reduced proficiency
level the agent 120 could be routed communications associated with
lower priority customers.
[0061] After the routing engine 230 determines the attributes 235
for each agent 120, the routing engine 230 may select an agent 120
that whose attributes satisfies any or all of the rules 225
determined for the communication. The communication may then be
routed to the selected agent 120. Where multiple agents 120 are
available that satisfy the rules 225. The routing engine 230 may
select the agent 120 using one or more performance metrics 245.
Depending on the embodiment, the performance metrics 245 associated
with an agent 120 may be metrics tracked by the contact center 150.
The metrics 245 may include average communication handling time
(i.e., how long does it take the agent 120 to complete the
communication) and customer satisfaction scores (i.e., the scores
provided by customers after a communication is completed). Other
metrics may be used. The particular metrics 245 considered may be
set by a user or administrator.
[0062] In some implementations, when no matching agents 125 are
determined by the routing engine 230, the routing engine 230 may
determine an agent 125 who may not have one of the attributes 235
specified by the rule 225, but nonetheless performed well on a
previous communication where the attribute 235 was present. For
example, an agent 120 may have a low proficiency level in a
technical support attribute 235 or may lack the attribute 235
entirely. On a previous communication, due to misrouting or
customer misrepresentation, the agent 120 handled a communication
that should have been routed to an agent 120 with a higher
proficiency level for that attribute 235. After the communication,
based on a customer survey, or based on an analysis of a transcript
of the communication, the agent 120 may have been determined to
have done well on the communication. Accordingly, the determined
agent 120 may be used by the routing engine 230 for rules 225 when
no agent 120 with technical support attributes 235 are
available.
[0063] In some implementations, the routing engine 230 may maintain
a list or database of agents 120 who performed above their
proficiency level (or lacked the corresponding attribute 285) for
one more attributes 235 on past communications with customers 110.
The routing engine 230 may score how the agent 120 handled a past
communication that the agent 120 was not qualified to handle
(either automatically, using a customer survey, or by a
supervisor), and may determine if the score is above a threshold
score. If the score for the communication is above the threshold
score, the routing engine 230 may add the agent 120 to the list for
the particular attribute.
[0064] When no agent 120 matching a rule 225 can be determined
because of a particular attribute 235, attribute 235 combination,
or proficiency level, the routing engine 230 may determine if one
of the agents 120 on the list for the particular attribute 235
could be used to handle the communication. Depending on the
embodiment, when an agent 120 is added to the list for a particular
attribute 235, the attribute 235 may also be associated with the
agent 120.
[0065] As may be appreciated, the agent routing platform 140
described herein is an improvement over existing communication
routing system. First, because the communications are routed to
agents 120 based on agent attributes 235 rather than agent queues,
the inefficient distribution of agent resources associated with
agent queues is greatly reduced. Second, because the communications
are routed using rules 225 that are based on arbitrary combinations
of agent attributes 235, an administrator has a much greater
control over the experience and expertise of the agents 120 that
receive communications for certain classes of customer. This may
lead to both a better communication experience for customers and a
shorter average communication time.
[0066] As may be appreciated, in the present application, unlike
previous solutions, there is no relationship between queues and
agents 120. Agents 120 are characterized by attributes 235 (e.g.,
the type of skills they have and their level of proficiency in
them). Queues, on the other hand, are characterized by the reasons
why particular customers 110 are contacting the contact center 150.
In embodiments, queues are solely used for reporting purposes, to
track contact center 150 performance, and as configuration object
that allows setting different reporting thresholds. However, queues
are not used to route communications to agents 120.
[0067] FIG. 5 is an illustration of an example method 500 for
routing a communication to an agent 120 using attributes 235 and
rules 225. The method 500 may be implemented by the routing engine
230 of the agent routing platform 140.
[0068] At 510, a communication is received from a customer. The
communication may be received by the routing engine 230 of the
agent routing platform 140. The agent routing platform 140 may be
part of or associated with a contact center 150. The customer 110
may be communicating to receive customer service for a variety of
issues such as technical support, billing, ordering, etc. The
received communication is not limited to telephone-based
communications and may include chat, text messaging, e-mail, etc.
Any communication channel may be used.
[0069] At 515, a rule associated with the customer is determined.
The rule 225 associated with the customer 110 may be determined by
the routing engine 230. In some embodiments, the routing engine 230
may determine the rule 225 by first determining a customer category
associated with the customer 110. The customer category may be
based on a variety of factors such as the country of origin
associated with the communication, the communication channel or
type of the communication (e.g., telephone call, chat, or e-mail),
the language spoken by the customer 110, the purpose of the
communication (e.g., billing or technical support), and the status
of the customer 110 (e.g., VIP or low-priority customer). The
customer category may be indicated by data or other information
associated with the received communication, for example.
[0070] The routing engine 230 may determine the rule 225 associated
with the customer category. The rule 225 may include a combination
of attributes 235 that describe the types of agents 120 that should
handle the communications for customers 110 of the customer
category. The rule 225 may have been provided or created by an
administrator. There may be multiple rules 225 associated with a
customer category.
[0071] At 520, for each agent, a plurality of attributes is
determined. The plurality of attributes 235 associated with each
agent 120 may be determined by the routing engine 230. Some or all
of the attributes 235 may include a proficiency level. Depending on
the embodiment, the routing engine 230 may retrieve the plurality
of attributes 235 associated with each agent 120 from storage.
Alternatively or additionally, the routing engine 230 may
dynamically calculate some or all of the attributes 235 and
proficiency levels associated with agents 120 using history data
associated with each agent 120 such as transcripts and customer
satisfaction surveys associated with previous phone
communications.
[0072] At 525, based on the determined rule and the attributes, an
agent of the plurality of agents is selected. The agent 120 may be
selected by the routing engine 230 by applying the determined rule
225 to the attributes 235 associated with each agent 120 and
determining agents 120 whose attributes 235 satisfy the determined
rule 225. If multiple available agents 120 are determined, the
routing engine 230 may randomly select an agent 120, may select the
agent 120 that has been the least busy, or may select the agent 120
with the greatest performance metrics.
[0073] At 530, the received communication is routed to the selected
agent. The received communication may be routed to the selected
agent 120 by the routing engine 230.
[0074] FIG. 6 is an illustration of an example method 600 for
generating a rule 225 for a customer category. The method 600 may
be implemented by the rule engine 220 of the agent routing platform
140.
[0075] At 610, a plurality of attributes is displayed. The
plurality of attributes 235 may be displayed in a GUI by the rule
engine 220 to an administrator. The administrator may be creating a
rule 225 to control how communications are routed to agents 120 for
a contact center 150.
[0076] At 615, a selection of at least one attribute is received.
The selection of at least one attributes 235 may be received by the
rule engine 220 from the administrator through the GUI. The
selected at least one attribute 235 may be associated with a skill
that the agent 120 that will handle the communication should have.
Examples of attributes 235 include language attributes 235 and
skill attributes 235. Other attributes 235 may be supported.
[0077] At 620, a selection of a proficiency level is received. The
selection of a proficiency level may be received by the rule engine
220 from the administrator through the GUI. The selected
proficiency level may describe how proficient the agent 120 should
be with respect to the desired attribute 235 for the rule 225. For
example, for a language attribute 235 for the Mandarin language,
the selected proficiency level may describe how well the agent 120
speaks Mandarin.
[0078] At 625, a selection of a customer category is received. The
selection of a customer category may be received by the rule engine
220 from the administrator through the GUI. The customer category
may be used by the routing engine 230 to determine which rule 225
to use to route a communication from a customer 110. The category
may be based on a variety or customer 110 and communication
characteristics such as language spoken by the customer 110, the
country of origin associated with the customer 110, a status of the
customer 110, and a topic or purpose of the communication. Other
customer 110 and communication characteristics may be
supported.
[0079] At 630, a rule is associated with the selected customer
category. The rule 225 may be based on the selected at least one
attribute 235 and proficiency level and may be associated with the
selected customer category by the rule engine 220. When a
subsequent communication is received from a customer 110 of the
selected communication category, the routing engine 230 may select
an agent 120 to handle the communication based on the rule 225.
[0080] FIG. 7 shows an exemplary computing environment in which
example embodiments and aspects may be implemented. The computing
system environment is only one example of a suitable computing
environment and is not intended to suggest any limitation as to the
scope of use or functionality.
[0081] Numerous other general purpose or special purpose computing
system environments or configurations may be used. Examples of
well-known computing systems, environments, and/or configurations
that may be suitable for use include, but are not limited to,
personal computers, servers, handheld or laptop devices,
multiprocessor systems, microprocessor-based systems, network
personal computers (PCs), minicomputers, mainframe computers,
embedded systems, distributed computing environments that include
any of the above systems or devices, and the like.
[0082] Computer-executable instructions, such as program modules,
being executed by a computer may be used. Generally, program
modules include routines, programs, objects, components, data
structures, etc. that perform particular tasks or implement
particular abstract data types. Distributed computing environments
may be used where tasks are performed by remote processing devices
that are linked through a communications network or other data
transmission medium. In a distributed computing environment,
program modules and other data may be located in both local and
remote computer storage media including memory storage devices.
[0083] With reference to FIG. 7, an exemplary system for
implementing aspects described herein includes a computing device,
such as computing device 700. In its most basic configuration,
computing device 700 typically includes at least one processing
unit 702 and memory 704. Depending on the exact configuration and
type of computing device, memory 704 may be volatile (such as
random access memory (RAM)), non-volatile (such as read-only memory
(ROM), flash memory, etc.), or some combination of the two. This
most basic configuration is illustrated in FIG. 7 by dashed line
706.
[0084] Computing device 700 may have additional
features/functionality. For example, computing device 700 may
include additional storage (removable and/or non-removable)
including, but not limited to, magnetic or optical disks or tape.
Such additional storage is illustrated in FIG. 7 by removable
storage 708 and non-removable storage 710.
[0085] Computing device 700 typically includes a variety of
tangible computer readable media. Computer readable media can be
any available tangible media that can be accessed by device 700 and
includes both volatile and non-volatile media, removable and
non-removable media.
[0086] Tangible computer storage media include volatile and
non-volatile, and removable and non-removable media implemented in
any method or technology for storage of information such as
computer readable instructions, data structures, program modules or
other data. Memory 704, removable storage 708, and non-removable
storage 710 are all examples of computer storage media. Tangible
computer storage media include, but are not limited to, RAM, ROM,
electrically erasable program read-only memory (EEPROM), flash
memory or other memory technology, CD-ROM, digital versatile disks
(DVD) or other optical storage, magnetic cassettes, magnetic tape,
magnetic disk storage or other magnetic storage devices, or any
other medium which can be used to store the desired information and
which can be accessed by computing device 700. Any such computer
storage media may be part of computing device 700.
[0087] Computing device 700 may contain communications
connection(s) 712 that allow the device to communicate with other
devices. Computing device 700 may also have input device(s) 714
such as a keyboard, mouse, pen, voice input device, touch input
device, etc. Output device(s) 716 such as a display, speakers,
printer, etc. may also be included. All these devices are well
known in the art and need not be discussed at length here.
[0088] It should be understood that the various techniques
described herein may be implemented in connection with hardware or
software or, where appropriate, with a combination of both. Thus,
the methods and apparatus of the presently disclosed subject
matter, or certain aspects or portions thereof, may take the form
of program code (i.e., instructions) embodied in tangible media,
such as floppy diskettes, CD-ROMs, hard drives, or any other
machine-readable storage medium wherein, when the program code is
loaded into and executed by a machine, such as a computer, the
machine becomes an apparatus for practicing the presently disclosed
subject matter. In the case of program code execution on
programmable computers, the computing device generally includes a
processor, a storage medium readable by the processor (including
volatile and non-volatile memory and/or storage elements), at least
one input device, and at least one output device. One or more
programs may implement or utilize the processes described in
connection with the presently disclosed subject matter, e.g.,
through the use of an application programming interface (API),
reusable controls, or the like. Such programs may be implemented in
a high level procedural or object-oriented programming language to
communicate with a computer system. However, the program(s) can be
implemented in assembly or machine language, if desired. In any
case, the language may be a compiled or interpreted language and it
may be combined with hardware implementations.
[0089] Although the subject matter has been described in language
specific to structural features and/or methodological acts, it is
to be understood that the subject matter defined in the appended
claims is not necessarily limited to the specific features or acts
described above. Rather, the specific features and acts described
above are disclosed as example forms of implementing the
claims.
* * * * *