U.S. patent application number 16/656124 was filed with the patent office on 2021-04-22 for systems and methods for workforce management system deployment.
The applicant listed for this patent is Talkdesk, Inc. Invention is credited to Jason Fama, Richard Lawrence.
Application Number | 20210117903 16/656124 |
Document ID | / |
Family ID | 1000004444955 |
Filed Date | 2021-04-22 |
![](/patent/app/20210117903/US20210117903A1-20210422-D00000.png)
![](/patent/app/20210117903/US20210117903A1-20210422-D00001.png)
![](/patent/app/20210117903/US20210117903A1-20210422-D00002.png)
![](/patent/app/20210117903/US20210117903A1-20210422-D00003.png)
![](/patent/app/20210117903/US20210117903A1-20210422-D00004.png)
![](/patent/app/20210117903/US20210117903A1-20210422-D00005.png)
![](/patent/app/20210117903/US20210117903A1-20210422-D00006.png)
![](/patent/app/20210117903/US20210117903A1-20210422-D00007.png)
![](/patent/app/20210117903/US20210117903A1-20210422-D00008.png)
![](/patent/app/20210117903/US20210117903A1-20210422-D00009.png)
United States Patent
Application |
20210117903 |
Kind Code |
A1 |
Lawrence; Richard ; et
al. |
April 22, 2021 |
SYSTEMS AND METHODS FOR WORKFORCE MANAGEMENT SYSTEM DEPLOYMENT
Abstract
A system for quickly deploying WFM systems in contact centers is
provided. A user or administrator can quickly install a WFM
application on a deployment server. The administrator can provide
the WFM application access to the contact center data where the WFM
application can import data from the contact center about one or
more customers, agents, queues, teams, and any other items
typically associated with contact centers. The imported data may
also include presence data about the agents, teams, and customers.
Based on the imported data, the WFM application may execute one or
more workflows to automatically determine information such as
maximum and minimum hours, break patterns, and shift data about the
agents and teams.
Inventors: |
Lawrence; Richard; (San
Diego, CA) ; Fama; Jason; (San Carlos, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Talkdesk, Inc |
San Francisco |
CA |
US |
|
|
Family ID: |
1000004444955 |
Appl. No.: |
16/656124 |
Filed: |
October 17, 2019 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
16654356 |
Oct 16, 2019 |
|
|
|
16656124 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06Q 10/1091 20130101;
H04M 2203/402 20130101; G06Q 10/063114 20130101 |
International
Class: |
G06Q 10/06 20060101
G06Q010/06; G06Q 10/10 20060101 G06Q010/10 |
Claims
1. A method for configuring a workforce management system for a
contact center comprising: interfacing with a contact center by a
workforce management system; determining a plurality of agents
associated with the contact center by the workforce management
system; retrieving presence data for each agent from the contact
center by the workforce management system, wherein the presence
data for an agent comprises a plurality of events and each event is
associated with a time; for at least one agent of the plurality of
agents, determining a break pattern associated with the at least
one agent based on the presence data for the at least one agent by
the workforce management system; and for the at least one agent of
the plurality of agents, generating a schedule for the at least one
agent based on the determined break pattern by the workforce
management system.
2. The method of claim 1, further comprising: for the at least one
agent of the plurality of agents, determining a location for the
agent; retrieving one or more rules that relate to scheduling for
the location; and for the at least one agent of the plurality of
agents, generating the schedule for the at least one agent based on
the one or more rules and the determined break pattern.
3. The method of claim 1, wherein determining the break pattern
associated with the at least one agent based on the presence data
for the at least one agent comprises: inferring, from the presence
data, breaks taken by the at least one agent for each day of a
plurality of days; and determining the break pattern for the at
least one agent based on the breaks taken by the at least one agent
for each day of the plurality of days.
4. The method of claim 1, wherein the events comprise one or more
of computer logins, computer logouts, communications, and
application activities.
5. The method of claim 1, further comprising: for the at least one
agent of the plurality of agents, determining, based on the
presence data, maximum hours for the at least one agent, minimum
hours for the at least one agent, and one or more shifts that the
at least one agent is available to work.
6. The method of claim 5, further comprising generating the
schedule for the at least one agent based on the determined break
pattern, the determined minimum hours, the determined maximum
hours, and the determined one or more shifts that the at least one
agent is available to work.
7. The method of claim 1, wherein interfacing with the contact
center by the workforce management system comprises: requesting
credentials from a user associated with the contact center; and
interfacing with the contact center using the requested
credentials.
8. A non-transitory computer-readable medium comprising
instructions that, when executed by at least one processor, cause a
computer system to: interface with a contact center; determine a
plurality of agents associated with the contact center; retrieve
presence data for each agent from the contact center, wherein the
presence data for an agent comprises a plurality of events and each
event is associated with a time; for at least one agent of the
plurality of agents, determine a break pattern associated with the
at least one agent based on the presence data for the at least one
agent; and for the at least one agent of the plurality of agents,
generate a schedule for the at least one agent based on the
determined break pattern.
9. The computer-readable medium of claim 8, further comprising
instructions that, when executed by the at least one processor,
cause the computer system to: for the at least one agent of the
plurality of agents, determine a location for the agent; retrieve
one or more rules that relate to scheduling for the location; and
for the at least one agent of the plurality of agents, generate the
schedule for the at least one agent based on the one or more rules
and the determined break pattern.
10. The computer-readable medium of claim 8, wherein determining
the break pattern associated with the at least one agent based on
the presence data for the at least one agent comprises: inferring,
from the presence data, breaks taken by the at least one agent for
each day of a plurality of days; and determining the break pattern
for the at least one agent based on the breaks taken by the at
least one agent for each day of the plurality of days.
11. The computer-readable medium of claim 8, wherein the events
comprise one or more of computer logins, computer logouts,
communications, and application activities.
12. The computer-readable medium of claim 8, further comprising
instructions that, when executed by the at least one processor,
cause the computer system to: for the at least one agent of the
plurality of agents, determine, based on the presence data, maximum
hours for the at least one agent, minimum hours for the at least
one agent, and one or more shifts that the at least one agent is
available to work.
13. The computer-readable medium of claim 12, further comprising
generating the schedule for the at least one agent based on the
determined break pattern, the determined minimum hours, the
determined maximum hours, and the determined one or more shifts
that the at least one agent is available to work.
14. The computer-readable medium of claim 8, wherein interfacing
with the contact center comprises: requesting credentials from a
user associated with the contact center; and interfacing with the
contact center using the requested credentials.
15. The computer-readable medium of claim 8, wherein the computer
system is a workforce management system.
16. 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: interface with a contact center; determine a plurality of
agents associated with the contact center; retrieve presence data
for each agent from the contact center, wherein the presence data
for an agent comprises a plurality of events and each event is
associated with a time; for at least one agent of the plurality of
agents, determine a break pattern associated with the at least one
agent based on the presence data for the at least one agent; and
for the at least one agent of the plurality of agents, generate a
schedule for the at least one agent based on the determined break
pattern.
17. The system of claim 16, further comprising instructions that,
when executed by the at least one processor, cause the system to:
for the at least one agent of the plurality of agents, determine a
location for the agent; retrieve one or more rules that relate to
scheduling for the location; and for the at least one agent of the
plurality of agents, generate the schedule for the at least one
agent based on the one or more rules and the determined break
pattern.
18. The system of claim 16, wherein determining the break pattern
associated with the at least one agent based on the presence data
for the at least one agent comprises: inferring, from the presence
data, breaks taken by the at least one agent for each day of a
plurality of days; and determining the break pattern for the at
least one agent based on the breaks taken by the at least one agent
for each day of the plurality of days.
19. The system of claim 16, wherein the events comprise one or more
of computer logins, computer logouts, communications, and
application activities.
20. The system of claim 16, wherein the system comprises a
workforce management system.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 16/654,356 filed on Oct. 16, 2019, entitled
"SYSTEMS AND METHODS FOR WORKFORCE MANAGEMENT SYSTEM DEPLOYMENT."
The contents of which are hereby incorporated by reference.
BACKGROUND
[0002] The initial deployment and configuration of a contact center
workforce management (WFM) system is a typically time-consuming
processes often taking weeks or months. In particular, parameters
must be configured to represent external conditions of work to be
done, the employees who are expected to do the work, and rules for
how the employees can be scheduled to do the work. The inability of
WFM systems to configure these items quickly and automatically
leads to a large amount of work for WFM administrators to collect,
interpret, and input the necessary information.
SUMMARY
[0003] A system for quickly deploying WFM systems in contact
centers is provided. A user or administrator can quickly install a
WFM application on a deployment server. The administrator can
provide the WFM application access to the contact center data where
the WFM application can import data from the contact center about
one or more customers, agents, queues, teams, and any other
information or items typically associated with contact centers. The
imported data may also include presence data about the agents,
teams, and customers. Based on the imported data, the WFM
application may execute one or more workflows to automatically
determine information such as maximum and minimum hours, break
patterns, and shift data about the agents and teams. This
information can be used by the WFM system to automatically generate
forecasts and schedules.
[0004] As may be appreciated, the WFM deployment systems and
methods described herein provide many advantages over the prior
art. By leveraging the information that is already part of the
contact center used by an entity, WFM systems can be easily and
quickly deployed without significant input from an administrator.
Accordingly, the WFM deployment systems and applications described
herein can save these entities significant time and money.
[0005] In an embodiment, a method for configuring an application
for a contact center is provided. The method includes: interfacing
with a contact center by an application; receiving contact center
data from the contact center by the application; receiving a
selection of an item of the application to configure by the
application; based on the selected item, selecting a workflow
corresponding to the selected item by the application; and
configuring the item of the application automatically using the
selected workflow and the contact center data by the
application.
[0006] Embodiments may include some or all of the following
features. The application may be a WFM application. The method may
further include: determining a plurality of agents associated with
the contact center; and configuring the item of the application
automatically using the selected workflow and the contact center
data by the application comprises: configuring one or more of a
minimum hours for the at least one agent, a break pattern for the
at least one agent, and a shift for the at least one agent. The
method may further include retrieving presence data for each agent
from the contact center, wherein the presence data for an agent
comprises a plurality of events and each event is associated with a
time. The method may further include: for the at least one agent of
the plurality of agents, determining a location for the agent;
retrieving one or more rules that relate to scheduling for the
determined location; and for the at least one agent of the
plurality of agents, generating the schedule for the at least one
agent based on the one or more rules and the minimum hours for the
at least one agent. Determining a location for the agent may
include determining a telephone number associated with the agent
and determining the location for the agent based on the telephone
number. Interfacing with the contact center by the application may
include: requesting credentials from a user associated with the
contact center; and interfacing with the contact center using the
requested credentials.
[0007] In an embodiment, a method for configuring a workforce
management system for a contact center is provided. The method
includes: interfacing with a contact center by a workforce
management system; determining a plurality of agents associated
with the contact center by the workforce management system;
retrieving presence data for each agent from the contact center by
the workforce management system, wherein the presence data for an
agent comprises a plurality of events and each event is associated
with a time; for at least one agent of the plurality of agents,
determining a maximum hours for the at least one agent based on the
presence data for the agent by the workforce management system; and
for the at least one agent of the plurality of agents, generating a
schedule for the at least one agent based on the determined maximum
hours by the workforce management system.
[0008] Embodiments may include some or all of the following
features. The method may further include: for the at least one
agent of the plurality of agents, determining a location for the at
least one agent; retrieving one or more rules that relate to
scheduling for the location; and for the at least one agent of the
plurality of agents, determining the maximum hours for the at least
one agent based on the presence data for the at least one agent and
the one or more rules. Determining the maximum hours for the at
least one agent based on the presence data for the at least one
agent may include: inferring, from the presence data, a number of
hours worked by the at least one agent for each week of a plurality
of weeks; and determining the maximum hours for the at least one
agent based on the number of hours worked by the at least one agent
for each week of the plurality of weeks. The events may include one
or more of computer logins, computer logouts, communications, and
application activities. The method may further include for the at
least one agent of the plurality of agents, determining a minimum
hours for the at least one agent based on the presence data for the
at least one agent. The method may further include for the at least
one agent of the plurality of agents, generating the schedule for
the at least one agent based on the determined maximum hours and
the determined minimum hours. The method may further include, for
the at least one agent of the plurality of agents, determining,
based on the presence data, one or more shifts that the at least
one agent is available to work, and one or more break patterns
associated with the at least one agent. The method may further
include generating the schedule for the at least one agent based on
the determined maximum hours, the determined one or more shifts
that the at least one agent is available to work, and the
determined one or more break patterns associated with the at least
one agent.
[0009] In an embodiment, a method for configuring a workforce
management system for a contact center is provided. The method
includes: interfacing with a contact center by a workforce
management system; determining a plurality of agents associated
with the contact center by the workforce management system;
retrieving presence data for each agent from the contact center by
the workforce management system, wherein the presence data for an
agent comprises a plurality of events and each event is associated
with a time; for at least one agent of the plurality of agents,
determining one or more shifts for the at least one agent based on
the presence data for the at least one agent by the workforce
management system; and for the at least one agent of the plurality
of agents, generating a schedule for the at least one agent by the
workforce management system based on the determined one or more
shifts.
[0010] Embodiments may have some or all of the following features.
The method may further include: for the at least one agent of the
plurality of agents, determining a location for the agent;
retrieving one or more rules that relate to scheduling for the
location; and for the at least one agent of the plurality of
agents, generating the schedule for the at least one agent based on
the one or more rules and the determined one or more shifts.
Determining the one or more shifts for the at least one agent based
on the presence data for the at least one agent may include:
inferring, from the presence data, times worked by the at least one
agent for each week of a plurality of weeks; and determining the
one or more shifts for the at least one agent based on the times
worked by the at least one agent for each week of the plurality of
weeks. The events may include one or more of computer logins,
computer logouts, communications, and application activities. The
method may further include, for the at least one agent of the
plurality of agents, determining, based on the presence data,
maximum hours for the at least one agent, minimum hours for the at
least one agent, and a break pattern associated with the at least
one agent. The method may further include generating the schedule
for the at least one agent based on the determined maximum hours,
the determined minimum hours, the determined one or more shifts
that the at least one agent is available to work, and the
determined break pattern associated with the at least one agent.
Interfacing with the contact center by the workforce management
system may include: requesting credentials from a user associated
with the contact center; and interfacing with the contact center
using the requested credentials.
[0011] In an embodiment, a method for configuring a workforce
management system for a contact center is provided. The method
includes: interfacing with a contact center by a workforce
management system; determining a plurality of agents associated
with the contact center by the workforce management system;
retrieving presence data for each agent from the contact center by
the workforce management system, wherein the presence data for an
agent comprises a plurality of events and each event is associated
with a time; for at least one agent of the plurality of agents,
determining a break pattern associated with the at least one agent
based on the presence data for the at least one agent by the
workforce management system; and for the at least one agent of the
plurality of agents, generating a schedule for the at least one
agent based on the determined break pattern by the workforce
management system.
[0012] Embodiments may include some or all of the following
features. The method may further include: for the at least one
agent of the plurality of agents, determining a location for the
agent; retrieving one or more rules that relate to scheduling for
the location; and for the at least one agent of the plurality of
agents, generating the schedule for the at least one agent based on
the one or more rules and the determined break pattern. The method
may further include: determining the break pattern associated with
the at least one agent based on the presence data for the at least
one agent comprises: inferring, from the presence data, breaks
taken by the at least one agent for each day of a plurality of
days; and determining the break pattern for the at least one agent
based on the breaks taken by the at least one agent for each day of
the plurality of days. The events may include one or more of
computer logins, computer logouts, communications, and application
activities. The method may further include, for the at least one
agent of the plurality of agents, determining, based on the
presence data, maximum hours for the at least one agent, minimum
hours for the at least one agent, and one or more shifts that the
at least one agent is available to work. The method may further
include generating the schedule for the at least one agent based on
the determined break pattern, the determined minimum hours, the
determined maximum hours, and the determined one or more shifts
that the at least one agent is available to work. Interfacing with
the contact center by the workforce management system may include:
requesting credentials from a user associated with the contact
center; and interfacing with the contact center using the requested
credentials.
[0013] 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
[0014] The components in the drawings are not necessarily to scale
relative to each other. Like reference numerals designate
corresponding parts throughout the several views.
[0015] FIG. 1 is an illustration of an example system
architecture;
[0016] FIG. 2 is an illustration of an example environment for
installing and configuring a WFM application;
[0017] FIG. 3 is an illustration of an example method for
configuring a WFM system;
[0018] FIG. 4 is an illustration of an example method for
automatically configuring items for a WFM application based on data
received from a contact center;
[0019] FIGS. 5-7 are illustrations of example methods for
automatically configuring a WFM application;
[0020] FIG. 8 is an illustration of an example method for
automatically configuring a WFM application using workflows and for
generating one or more forecasts and schedules;
[0021] FIG. 9 illustrates an example computing device.
DETAILED DESCRIPTION
[0022] 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.
[0023] 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 interact with a
contact center 150 using voice, email, text, and web interfaces in
order to communicate with the agents 120 through a network 130 and
one or more of text or multimedia channels. The system that
controls the operation of the contact center 150 including the
routing and handling of communications between customers 110 and
agents 120 for the contact center 150 is referred to herein as the
contact routing system 153. Depending on the embodiment, the
contact routing system 153 could be any of a contact center as a
service (CCaS) system, an automated call distributor (ACD) system,
or a case system, for example.
[0024] The agents 120 may be remote from the contact center 150 and
handle communications with customers 110 on behalf of an
enterprise. The agents 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.
[0025] In some embodiments, the agents 120 may be assigned to one
or more queues. The agents 120 assigned to a queue may handle
communications that are placed in the queue by the contact center
150. For example, there may be queues associated with a language
(e.g., English or Chinese), topic (e.g., technical support or
billing), or a particular country of origin. When a communication
is received by the contact center 150, the communication may be
placed in a relevant queue, and one of the agents 120 associated
with the relevant queue may handle the communication.
[0026] The agents 120 of a contact center 150 may be further
organized into one or more teams. Depending on the embodiment, the
agents 120 may be organized into teams based on a variety of
factors including, but not limited to, skills, location,
experience, assigned queues, associated or assigned customers 110,
and shift. Other factors may be used to assign agents 120 to
teams.
[0027] Entities that employ workers such as agents 120 typically
use a WFM system. Typically, WFM systems are used to schedule
agents 120 based on workload forecasts. To generate schedules the
WFM systems must take into account information such as local
employment laws, time and shift preferences of each agent 120, and
the skills of each agent 120, for example.
[0028] As may be appreciated, initially gathering and providing the
information needed to set up a WFM system may be a time-consuming
task. Accordingly, to solve this problem, the environment 100
further includes a WFM application 250 that may be used to quickly
deploy and configure WFM systems. The workings of the application
250 will be described in further detail with respect to FIG. 2.
[0029] Initially, when an administrator associated with a contact
routing system 153 desires to set up a WFM system, the
administrator may first create or designate what is referred to as
a deployment sever 170. The deployment server 170 may implement the
WFM system for the contact center 150. Note that depending on the
embodiment, the WFM system may be implemented on its own deployment
server 170. In addition, some or all of the contact routing system
153 or the WFM system may be implemented together on the same
computer, deployment server 170, or cloud-computing environment. An
example deployment server 170 is the computing system 900
illustrated with respect to FIG. 9.
[0030] After creating the deployment server 170, the administrator
may then cause the WFM application 250 to be installed on the
deployment server 170 by an application server 160. Depending on
the embodiment, the application server 160 may function similar to
an "app store" where the administrator of the contact center 150
may view one or more applications (including the application 250)
that are available for download. After selecting the WFM
application 250, the application server 160 may cause the
application 250 to be installed on the deployment server 170.
[0031] In order to configure the WFM application 250, rather than
have the administrator configure the application 250 from scratch,
the application 250 may be configured to interface with, and
retrieve data from, the contact routing system 153. As may be
appreciated, because the contact routing system 153 already
includes data that is relevant to the WFM application 250 (e.g.,
information on agents 120 such as hours worked and schedules, and
information on customers 110 such as communications received), it
may be desirable to import the data directly from the contact
routing system 153.
[0032] After the relevant data has been imported into the WFM
application 250, the application may have one or more workflows
that can be executed by the administrator to automatically set up
and configure the application using the imported data. Each
workflow may attempt to configure the application from the imported
data with as little input from the administrator as possible. At
the end of each workflow, the administrator may be asked to confirm
or accept any proposed configurations or settings suggested by the
workflow.
[0033] For example, there may be workflows that infer, for each
agent 120 or team of agents 120, settings for the application 250
such as agent 120 hours, schedules, and work preferences. The
particular workflows will be described further with respect to FIG.
2.
[0034] As may be appreciated, the embodiments described herein are
not limited to configuring the WFM applications 250 using data
imported from a contact routing system 153. Other sources of data
may be used. For example, the application 250 may import data from
a variety of systems including, but not limited to, customer
relationship management systems and document management systems.
Other systems may be included.
[0035] FIG. 2 is an illustration of an example environment 200 for
installing and configuring a WFM application 250. As shown, the
environment 200 includes a deployment server 170, a contact center
150 including a contact routing system 153, and an administrator
290. Depending on the embodiment, each of the contact routing
system 153, deployment server 170, and administrator 290 may be
implemented together or separately by one or more general purpose
computing devices such as the computing system 900 illustrated with
respect to FIG. 9.
[0036] The administrator 290 may cause the WFM application 250 to
be installed on the deployment server 170. As part of the
configuration process, the administrator 290 may allow the WFM
application 250 to access the contact routing system 153. For
example, the administrator 290 may provide credentials (e.g., login
and password) to the WFM application 250, and the WFM application
250 may use an API to access the contact routing system 153 using
the credentials. Other methods for accessing a contact routing
system 153 (or other data source) may be used.
[0037] The WFM application 250 may initially download contact
center data 159 and may begin using the contact center data 159 to
configure the WFM application 250 for the administrator 290.
Depending on the embodiment, the contact center data 159 may
include information about the contact center 150 such as
information about the agents 120, teams that the agents 120 are
organized into, queues associated with the contact center 150,
contacts 110 associated with the contact center 150, skills
associated with the agents 120 and queues, historical contact data
(e.g., historical data for each queue about the volume of contacts,
handling times, etc.), and event types.
[0038] The contact center data 159 may further include information
such as consistency rules (e.g., rules about whether shifts need to
start and stop at the same time), and presence data (e.g., data
showing when agents 120 were available to receive communications or
interact with customers 110). Other information may be included in
the contact center data 159.
[0039] The WFM application 250 may use some or all of the contact
center data 159 to begin setting up the WFM application 250 for the
administrator 290. For example, the WFM application 250 may extract
all of the agents 120 associated with the contact center 150 and
may enter them into the WFM application 250. The WFM application
250 may similarly, extract information such as the customers 110
associated with the contact center 150, the queues associated with
the contact center 150, and any teams associated with the contact
center 150.
[0040] In some implementations, the WFM application 250 may provide
a graphical-user interface (GUI) through which the administrator
290 can review and control what information is imported into the
WFM application 250 from the contact center data 159. For example,
the WFM application 250 may ask the administrator 290 to confirm
each agent 120, contact 110, or team that it extracts from the
contact center 150. Depending on the embodiment, the administrator
290 may also use the GUI to add any additional information to the
WFM application 250 including any agents 120, customers 110, teams,
or queues that the WFM application 250 was unable to extract from
the contact center data 159.
[0041] As may be appreciated, by initially configuring the WFM
application 250 automatically using the contact center data 159, a
great amount of time and energy is saved by the administrator 290.
Previously, to configure a WFM application 250, the administrator
290 would have had to manually add each agent 120, contact 110,
queue, or team to the WFM application 250.
[0042] In addition to the automatic importing of certain contact
center data 159. The WFM application 250 described herein may use
one or more workflows to infer additional WFM application 250 items
or settings to further reduce the amount of time that the
administrator 290 may spend configuring the application.
[0043] The WFM application 250 may use workflows to infer or more
items such as minimum or maximum hours 171 for agents 120
individually or as a team, shifts 172 that each agent 120 can work
individually or as a team, break patterns 173 associated with each
agent 120 or team, and start rules 173 for each agent 120 or team.
Other items may be inferred and configured by the WFM application
250 using a workflow.
[0044] The WFM application 250 may infer the one or more items from
what is referred to herein as presence data 155. Depending on the
embodiment, the presence data 155 may include a plurality of events
associated with each agent 120 or customer 110, and each event may
be associated with a time. For an agent 120, the events may include
logging in or out of a computer, receiving or responding to a
communication such as an email or telephone call, and updating a
record in an application, for example. Other types of events may be
supported.
[0045] In some embodiments, the presence data 155 may be received
from the contact routing system 153 by the WFM application 250.
Alternatively, or additionally, the presence data 155 may be
extracted from the contact center data 159. The events included in
the presence data 155 may be selected by the administrator 290, for
example.
[0046] For a customer 110, the events may include sending a
communication to the contact center 150, receiving a communication
from the contact center 150, and interacting with an agent 120.
Other types of events may be supported.
[0047] In one embodiment, the WFM application 250 may configure
various WFM related items on a team-by-team basis. As part of an
initial setup procedure, the WFM application 250 may attempt to
associate each team with a geographic location. As will be
described further below, the location associated with a team (and
the agents 120 associated with each team) can be used to determine
location-based rules 157 that govern how long agents 120 can work,
how many breaks each agent 120 must receive, etc.
[0048] The WFM application 250, may for each team, determine the
geographic location associated with the team. The WFM application
250 may infer the location of a team using the contact center data
159. For example, the WFM application 250 may determine the
location for a team based on the home or work addresses listed for
the agents 120 on the team or may determine the location for a team
based on the area codes of the phone numbers used by the agents 120
on the team. Alternatively, the WFM application 20 may infer the
location based on an address associated with the contact center
150, or an area code of one or more phone numbers associated with
the contact center 150. Any method for inferring the locations of
agents 120 or employees may be used.
[0049] After determining a possible location for a team, the WFM
application 250 may present the determined location to the
administrator 290 in a GUI. The administrator 290 may either
confirm the determined location or may provide a different location
using the GUI.
[0050] In some embodiments, after the administrator 290 confirms or
provides the location, the WFM application 250 may ask the
administrator 290, through the GUI, whether all of the teams of the
contact center 150 may be associated with the same location. If the
administrator 290 affirms that all of the teams may be associated
with the same location, the WFM application 250 may associated each
team with the location and stop the workflow. Otherwise, the WFM
application 250 may continue the workflow and may determine a
location for the next team based on the contact center data
159.
[0051] After determining the location for each team, the
administrator 290 may select another item of the WFM application
250 to configure for a team. One example of such an item may be a
minimum and maximum working hours 171 for each agent 120 in a team.
Initially, the WFM application 250 may ask the administrator 290
(using the GUI) whether each agent 120 in the team has the same
minimum or maximum hours 171. If the administrator 290 answers
affirmatively, the WFM application 250 may request the minimum and
maximum hours 171 for the agents 120 in the team from the
administrator 290. The WFM application 250 may then consider a next
team of the contact center 150.
[0052] If the administrator 290 answers negatively (i.e., each
agent 120 does not have the same minimum or maximum hours 171), the
WFM application 250 may use a workflow to determine the minimum or
maximum hours 171. In some embodiments, the WFM application 250,
for each agent 120 of the team, may use the presence data 155 to
determine the minimum and maximum hours 171 for the agent 120.
[0053] For example, the WFM application 250 may determine the
minimum and maximum weekly hours 171 for an agent 120 by using the
presence data 155 to determine events that indicate that the agent
120 was likely working such as computer logins, application usage
information, phone usage information, etc. The WFM application 250
may then use the times associated with each determined event to
infer, for one or more weeks, the hours that the agent 120 was
likely working during the one or more weeks. The maximum and
minimum hours 171 for the agent 120 may then be inferred based on
the likely hours determined for each of the one or more weeks.
[0054] Depending on the embodiment, the WFM application 250 may use
the location determined for the team or agent 120, to determine
location-based rules 157 that may apply to an agent 120. The WFM
application 250 may then ensure that the determined maximum or
minimum hours 171 comply with the location-based rules 157.
Depending on the embodiment, the location-based rules 157 may
include legal rules related to the maximum number of hours that an
agent 120 may work in a day or week, as well as entity or contact
center 150 policies about the minimum and maximum number of hours
that an agent 120 may work during a day or week. For example, an
entity such as a corporation may prefer that an agent 120 not work
more than some number of overtime hours per week. Depending on the
embodiment, the entity or contact center 150 policies may be
provided by an administrator 290.
[0055] After the WFM application 250 infers maximum and minimum
hours 171 for the agents 120 in a team, the WFM application 250 may
present the determined maximum and minimum hours 171 for each agent
120 to the administrator 290 through the GUI. The administrator 290
may then accept or modify the determined maximum and minimum hours
171 for each agent 120. The maximum and minimum hours 171 for each
agent 120 may be used later by the WFM application 250 to generate
one or more schedules 255.
[0056] Another example of an item that the WFM application 250 may
infer for one or more teams and/or agents 120 using a workflow may
be shifts 172 that each agent 120 for a team can work. Depending on
the embodiment, the contact routing system 153 of the contact
center 150 may schedule agents 120 to one or more of a plurality of
shifts 172. Examples of shifts 172 include a morning shift, an
afternoon shift, and a night shift. More or fewer shifts 172 may be
used by the contact center 150.
[0057] Initially, the WFM application 250 may ask the administrator
290 (using the GUI) whether each agent 120 in the team works the
same shifts 172. If the administrator 290 answers affirmatively,
the WFM application 250 may request the shifts 172 for the agents
120 in the team from the administrator 290. The WFM application 250
may then consider a next team of the contact center 150.
[0058] If the administrator 290 answers negatively (i.e., each
agent 120 does not work the same shift 172), the WFM application
250, for each agent 120 of the team, may use the presence data 155
to determine the shifts 172 for the agent 120.
[0059] For example, the WFM application 250 may determine the
shifts 172 for an agent 120 by using the presence data 155 to
determine events that indicate that the agent 120 was likely
working such as computer logins, application usage information,
phone usage information, etc. The WFM application 250 may then use
the times associated with each determined event to infer, for one
or more weeks, the shifts 172 that the agent 120 was likely working
during the one or more weeks. The shifts 172 for the agent 120 may
then be determined based on the shifts 172 that the agent 120 was
likely working for the one or more weeks.
[0060] Similarly as described above, the WFM application 250 may
use the location-based rules 157 to ensure that the determined
shifts for each agent 120 comply with all local laws and entity
policies.
[0061] After the WFM application 250 infers the shifts 172 for each
agent 120 in a team, the WFM application 250 may present the
determined shifts 172 for each agent 120 to the administrator 290
through the GUI. The administrator 290 may then accept or modify
the determined shifts 172 for each agent 120.
[0062] Another example of such an item that application 250 may
infer from the contact center data 159 and/or presence data 155 are
start rules 173 for each agent 120 of a team. A start rule 173 for
an agent 120 may indicate by how much the time at which the agent
120 begins their work day varies over the week. For example, one
agent 120 may start work at the same time every day of the week,
while another agent 120 may start at a different time every day of
the week. The start rule 173 for an agent 120 may generally
indicate how flexible an agent 120 is regarding their start time,
and therefore may be considered by the WFM application 250 when
generating a schedule 255.
[0063] Initially, the WFM application 250 may ask the administrator
290 (using the GUI) whether each agent 120 in the team must start
their shift at the same time each day. If the administrator 290
answers affirmatively, the WFM application 250 may request the
start time from the administrator 290. The WFM application 250 may
then consider a next team of the contact center 150.
[0064] If the administrator 290 answers negatively (i.e., each
agent 120 does not have the same start-time each day), the WFM
application 250, for each agent 120 of the team, may use the
presence data 155 to determine the variability of the start times
for each agent 120.
[0065] For example, the WFM application 250 may determine the
different start times for an agent 120 by using the presence data
155 to determine events that indicate that the agent 120 was likely
working. The WFM application 250 may then use the times associated
with each determined event to infer, for one or more weeks, the
different times that the agent 120 likely started each shift.
[0066] The different times may be used to construct a start rule
173 for the agent 120. For example, if the WFM application 250
determines that the start times for an agent 120 varies as much as
three hours, then the agent 120 may be associated with a start rule
173 that says that the start time for the agent 120 may be varied
by at most three hours. In another example, if the WFM application
250 determines that the start times for an agent 120 does not vary
at all, then the agent 120 may be associated with a start rule 173
that says that the start time for the agent 120 may not be
varied.
[0067] After the WFM application 250 infers the start rules 173 for
each agent 120 in a team, the WFM application 250 may present the
determined start rules 173 for each agent 120 to the administrator
290 through the GUI. The administrator 290 may then accept or
modify the determined start rules 173 for each agent 120.
[0068] Another example of such an item that the WFM application 250
may infer for each agent 120 of a team is a break pattern 174. The
break pattern 174 for an agent 120 may be indicators of when, and
for how long, the agent 120 typically takes breaks during a workday
or shift including longer breaks such as lunch and shorter breaks
such as lavatory breaks, etc.
[0069] Initially, the WFM application 250 may ask the administrator
290 (using the GUI) whether each agent 120 in the team must have
the same break pattern 174 during their shifts. If the
administrator 290 answers affirmatively, the WFM application 250
may request the break pattern 174 from the administrator 290. The
WFM application 250 may then consider a next team of the contact
center 150.
[0070] If the administrator 290 answers negatively (i.e., each
agent 120 does not have the same break pattern 174), the WFM
application 250, for each agent 120 of the team, may use the
presence data 155 to determine the break pattern 174 for each agent
120.
[0071] For example, the WFM application 250 may use the presence
data 155 to determine events that indicate that the agent 120 has
taken a break during their shift or workday. These events may
include logging out on an application or workstation, or setting a
presence indicator to away, for example. The WFM application 250
may then use the times associated with each determined event to
infer, for one or more weeks, the different times that the agent
120 likely took breaks. These times may be used to determine a
break pattern 174 for the agent 120. Depending on the embodiment,
the WFM application 250 may use the location-based rules 157 to
ensure that the determined break pattern 174 for an agent 120
complies with all applicable laws and regulations (e.g., does the
agent 120 take enough breaks as required by law), as well as any
entity or contact center 150 specific policies.
[0072] After the WFM application 250 infers a break pattern 174 for
each agent 120 in a team, the WFM application 250 may present the
determined break pattern 174 for each agent 120 to the
administrator 290 through the GUI. The administrator 290 may then
accept or modify the presented break pattern 174 for each agent
120.
[0073] The WFM application 250 may further us the contact center
data 159 and the presence data 155 to generate one or more
forecasts 251 for the contact center 150. A forecast 251 for a
contact center 150 may be an estimate or prediction of how busy the
contact center 150 will likely be at date or time in the
future.
[0074] Depending on the embodiment, the WFM application 250 may
determine the forecast 251 for the contact center 150 by processing
the presence data 155 and contact center data 159 to determine
indicators of how busy the contact center 150 was in the past.
These indicators can then be used by the WFM application 250 to
train a model to predict how busy the contact center 150 will
likely be at a future date based on characteristics of the future
date like day of the week or proximity to a holiday, for example.
Other information may be used to train the model. Depending on the
embodiment, the model may be further trained by comparing forecasts
251 generated by the model with actual observed workload data for
the contact center 150 for the same dates (e.g., using machine
learning).
[0075] The WFM application 250 may further generate schedules 255
for the contact center 150 (or team) based on the forecasts 251,
and the various items that were inferred for each agent 120 such as
maximum and minimum hours 171, shifts 172, break patterns 174, and
start rules 173. The WFM application 250 may further consider the
location-based rules 157 to ensure that each schedule 255 complies
with all laws and regulations as well as entity policies. Any
method for scheduling agents 120 may be used.
[0076] Depending on the embodiment, the WFM application 250 may
present each proposed schedule 255 to the administrator 290 for
approval through the GUI. The administrator 290 may either approve
the proposed schedule 255, may reject the proposed schedule 255, or
may make one or more changes to the proposed schedule 255.
[0077] FIG. 3 is an illustration of an example method 300 for
configuring a WFM system. The method 300 may be performed by the
WFM application 250. Depending on the embodiment, an administrator
290 may have installed the WFM application 250, and the method 300
may configure one or more items of the WFM application 250 using
contact center data 159 and presence data 155 automatically
downloaded from a contact routing system 153 of a contact center
150.
[0078] At 301, an item is selected to configure. The item may be a
configurable item or setting of the WFM application 250. The
configurable items may include minimum or maximum hours 171, shifts
172, and break patterns 174. Other configurable items may be
supported. Depending on the embodiment and items, the items may be
configurable per agent 120, per customer 110, or per team, for
example. The item may be selected automatically by the WFM
application 250, or may be selected by a user (e.g., administrator
290) using a GUI.
[0079] At 303, a team is selected. The team may be a group of
agents 120 and may be selected by the administrator 290 through the
GUI. Alternatively, the team may be selected automatically (i.e.,
without user input) by the WFM application 250. Depending on the
embodiment, the teams may be teams of the contact center 150 and
may have been determined from contact center data 159 downloaded
from the contact routing system 153. Because the teams were
determined from the contact center data 159, the administrator 290
did not have to manually enter the teams (and associated agents
120) into the WFM application 250.
[0080] At 305, a determination is made as to whether the selected
item has a simple configuration with respect to the team. Depending
on the embodiment, the WFM application 250 may make the
determination by asking the administrator 290 using the GUI.
[0081] Whether or not an item has a simple configuration may be
dependent on the item. Generally, an item has a simple
configuration if all agents 120 associated with the team have the
same value or setting for the item. For example, for an item such
as maximum hours 171, the item may have a simple configuration if
all agents 120 of the team have the same maximum hours 171 (e.g.,
40).
[0082] If the administrator 290 indicates that the item has a
simple configuration, the method 300 may continue at 307. Else, the
method 300 may continue at 309.
[0083] At 307, user input is received and the item is configured.
Because the configuration was determined to be simple, the item may
be configured by the WFM application 250 asking the administrator
290 to provide a value for the item (through the GUI). User input
including the value may be received from the administrator 290 and
may be used by the WFM application 250 to configure the item for
all agents 120 associated with the team.
[0084] Continuing the maximum hours 171 example above, the
administrator 290 may provide the value "40" as the maximum hours
171 for the agents 120 in the team. The WFM application 250 may
then configure the maximum hours 171 to "40" for all agents 120 in
the team.
[0085] At 309, automatic configuration of the item is performed.
The automatic configuration of the item may be performed by the WFM
application 250 using one or both of the contact center data 159 or
the presence data 155. In particular, the item may be configured
by, for each agent 120 of the team, inferring the value of the item
from the contact center data 159 or the presence data 155. The
value may be inferred using a workflow associated with the
item.
[0086] Continuing the example above, for an item such as the
maximum hours 171, the WFM application 250, for each agent 120 in
the team, may analyze the presence data 155 associated with the
agent 120 to determine events such as logins and application usage,
that may indicate when the agent 120 was likely working. Based on
these determined events and their associated times, the WFM
application 250 may infer the maximum hours 171 for the agent
120.
[0087] At 311, a user review is performed. The user review may be
performed by the WFM application 250. Depending on the embodiment,
the WFM application 250 may display the proposed configuration for
the item with respect to each agent 120 in the team to the
administrator 290, and the administrator 290 may approve the
configurations, or may provide different values to use for some or
all of the proposed item configurations.
[0088] At 313, a determination is made of whether there are more
teams that the selected item may be configured for. The
determination may be made by the WFM application 250. If there are
more teams, then the method 300 may return to 303 where a new team
may be selected. Else, the method 300 may continue at 315.
[0089] At 315, a determination is made of whether there are more
items that may be configured. The determination may be made by the
WFM application 250. If there are more items, then the method 300
may return to 301 where a new item may be selected. Else, the
method 300 may exit at 317.
[0090] FIG. 4 is an illustration of an example method 400 for
automatically configuring items for a WFM application 250 based on
data received from a contact routing system 153. The method 400 may
be implemented by the WFM application 250.
[0091] A 410, a contact routing system is interfaced with. The WMF
application 250 may interface with the contact routing system 153
using credentials provided by the administrator 290.
[0092] At 415, contact center data 159 is received. The contact
center data 159 may be received by the WFM application 250 from the
contact routing system 153 through the interface.
[0093] At 420, a selection of an item to configure is received. The
selection of the item may be received by the WFM application 250
from an administrator 290 through a GUI. The GUI may be used by the
administrator 290 to configure the WFM application 250.
[0094] The selected item may be a configurable item associated with
the WFM application 250. The configurable items may include start
rules 173, shifts 172, hours 171, and break patterns 174. Other
items may be configured. The configurable items may be related to
agents 120, teams, or customers 110 associated with the contact
center 150.
[0095] At 425, a workflow corresponding to the selected item is
selected. The workflow may be selected by the WFM application 250
from a plurality of workflows. For example, the WFM application 250
may have separate workflows to configure items such as start rules
173, break patterns 174, and shifts 172.
[0096] At 430, the selected item is configured automatically using
the selected workflow and the contact center data. The selected
item may be configured by the WFM application 250. Depending on the
embodiment, the item may be configured also using presence data 155
and one or more location-based rules 157 corresponding to a
location of one or more agents 120, teams, or the contact center
150.
[0097] FIG. 5 is an illustration of an example method 500 for
automatically configuring a WFM application 250 based on data
received from a contact routing system 153 of a contact center 150.
The method 500 may be implemented by the WFM application 250.
[0098] A 510, a contact routing system is interfaced with. A WFM
application 250 may interface with the contact routing system 153
as part of configuring the WFM application 250. In some
embodiments, an entity or administrator 290 associated with the
contact center 150 may have determined to create and configure a
WFM management system for the agents 120 and employees of the
contact center 150. Accordingly, the administrator 290 may have
caused an instance of the WFM application 250 to be installed on a
deployment server 170. The deployment server 170 executing the WFM
application 250 may be referred to as the WFM server.
[0099] At 515, a plurality of agents associated with the contact
center are determined. The plurality of agents 120 may be
determined by the WFM application 250 from contact center data 159
received from the contact routing system 153. Depending on the
embodiment, the WFM application 250 may further determine teams
associated with the contact center 150 and may determine agents 120
associated with each team.
[0100] At 520, presence data associated with each agent is
received. The presence data 155 may be received by the WFM
application 250 from the contact routing system 153. Depending on
the embodiment, the presence data 155 for an agent 120 may include
a plurality of events, and each event may be associated with a
time. Example events may include logging in, or out, or a computer
or application, using a particular application, setting a presence
indicator to present or away, and handling a communication such as
a phone call, email, or text message. Other events may be
supported. The presence data 155 may be part of the contact center
data 159 or may be received separately from the contact routing
system 153.
[0101] At 525, for at least one agent of the plurality of agents, a
maximum and a minimum hours 171 is determined. The maximum and
minimum hours 171 may be determined by the WFM application 250
using the presence data 155 associated with the at least one agent
120.
[0102] The maximum hours 171 for an agent 120 may be the maximum
hours that the agent 120 is willing to work during some period such
as a day, week, month, etc. Similarly, the minimum hours 171 may be
the minimum hours that the agent 120 that the agent 120 is willing
to work during the period. As may be appreciated, knowing the
minimum and maximum hours 171 for each agent 120 is desirable when
generating a schedule 255 to ensure that each agent 120 is
satisfied with the number of hours that they are assigned.
[0103] FIG. 6 is an illustration of an example method 600 for
automatically configuring a WFM application 250 based on data
received from contact routing system 153 of a contact center 150.
The method 600 may be implemented by the WFM application 250.
[0104] A 610, a contact routing system is interfaced with. A WFM
application 250 may interface with the contact routing system as
part of configuring the WFM application 250.
[0105] At 615, a plurality of agents associated with the contact
center are determined. The plurality of agents 120 may be
determined by the WFM application 250 from contact center data 159
received from the contact routing system 153. Depending on the
embodiment, the WFM application 250 may further determine teams
associated with the contact center 150 and may determine agents 120
associated with each team.
[0106] At 620, presence data associated with each agent is
received. The presence data 155 may be received by the WFM
application 250 from the contact routing system 153.
[0107] At 625, for at least one agent of the plurality of agents,
one or more shifts are determined. The shifts 172 (e.g., morning
shift, day shift, or night shift) may be determined by the WFM
application 250 using the presence data 155 associated with the at
least one agent 120.
[0108] The shifts 172 for an agent 120 may be the shifts 172 that
the agent 120 typically worked in the past for the contact center
150. As may be appreciated, knowing the shifts 172 for each agent
120 is desirable when generating a schedule 255 to ensure that each
agent 120 is only scheduled to work during a shift that they are
willing to work.
[0109] In some embodiments, the WFM application 250 may determine
the shifts 172 using the presence data 155. For example, the WFM
application 250 may determine events from the presence data 155
that indicate when the agent 120 was likely working. The WFM
application 250 may then determine what shifts of the contact
center 150 that the determined events occurred during based on the
times associated with the determined events. The shifts with the
most associated events may be determined as the shifts 172 for the
agent 120. Other methods may be used.
[0110] FIG. 7 is an illustration of an example method 700 for
automatically configuring a WFM application 250 based on data
received from a contact routing system 153 of a contact center 150.
The method 700 may be implemented by the WFM application 250.
[0111] A 710, a contact routing system is interfaced with. A WFM
application 250 may interface with the contact routing system 153
as part of configuring the WFM application 250.
[0112] At 715, a plurality of agents associated with the contact
center are determined. The plurality of agents 120 may be
determined by the WFM application 250 from contact center data 159
received from the contact routing system 153. Depending on the
embodiment, the WFM application 250 may further determine teams
associated with the contact center 150 and may determine agents 120
associated with each team.
[0113] At 720, presence data associated with each agent is
received. The presence data 155 may be received by the WFM
application 250 from the contact routing system 153.
[0114] At 725, for at least one agent of the plurality of agents, a
break pattern 174 is determined. The break pattern 174 may be
determined by the WFM application 250 using the presence data 155
associated with the at least one agent 120.
[0115] The break pattern 174 for an agent 120 may be a data
structure that identifies the time and duration of each break taken
by the agent 120 during a shift or other period (e.g., day or
week). As may be appreciated, the break pattern 174 associated with
the agent 120 may be used for generating a schedule 255 so that any
breaks that the agent 120 is used to taking are scheduled at their
expected times.
[0116] In some embodiments, the WFM application 250 may determine
the break pattern 174 using the presence data 155. For example, the
WFM application 250 may determine events from the presence data 155
that indicate when the agent 120 was likely on break. These events
may include logging out of a computer, closing one or more
applications or setting a presence indicator to away. The WFM
application 250 may then determine the times usually associated
with breaks for the agent 120 and may use those times to determine
the break pattern 174 for the agent 120. Other methods may be
used.
[0117] In some embodiments, the WFM application 250 may determine
the minimum and maximum hours 171 for a period using the presence
data 155. For example, the WFM application 250 may, for previous
periods, determine events from the presence data 155 that indicate
when the agent 120 was likely working. These events may include
when the agent 120 first logged into their computer during a
period, and when the agent 120 last logged out from their computer
during the period. Average minimum and maximum hours worked by the
agent 120 during the periods may be used as the minimum and maximum
hours 171 for the agent 120. Other methods may be used.
[0118] FIG. 8 is an illustration of an example method 800 for
automatically configuring a WFM application 250 using workflows and
for generating one or more forecasts and schedules. The method 800
may be implemented by the WFM application 250.
[0119] At 805, an application is deployed. The application may be a
WFM application 250 and may be deployed on a deployment server 170
by an administrator 290. Depending on the embodiment, the
administrator 290 may have selected the application 260 to deploy
from a plurality of applications made available by an application
server 160.
[0120] At 810, a contact routing system is interfaced with. A WFM
application 250 may interface with the contact routing system 153
as part of configuring the WFM application 250. The WFM application
250 may import data from the contact routing system 153 such as
contact center data 159 and presence data 155. Other types of data
may be imported from the contact routing system 153.
[0121] At 815, the application is configured. The WFM application
250 may be configured automatically using one or more workflows and
the data imported from the contact routing system 153. The items of
the WFM application 250 that may be configured using workflows may
include teams, locations, queues, event types, historical contact
data, agents 120, minimum and maximum hours 171, shifts 172, breaks
or break patterns 174, constancy rules (e.g., start rules 173), and
agent 120 availability. Other items may be configured.
[0122] At 820, one or more forecasts are generated. The one or more
forecast 251 may be generated by the WFM application 250. Each
forecast 251 may be an indication of how busy the contact center
150 is likely to be at some future time or period (e.g., day, week,
or month). The forecast 251 may be generated using historical data
about the workload or overall busyness of the contact center 150
during past periods. The historical data may be part of the contact
data center data 159, for example. Any method for generating a
forecast 251 for a future period based on historical data from past
periods may be used.
[0123] At 825, the one or more forecasts are validated. The one or
more forecasts may be validated by the administrator 290. For
example, the one or more forecasts 251 may have been provided to
the administrator 290 in a GUI. If the administrator 290 is
satisfied by the one or more forecasts 251, the administrator 290
may use the GUI to validate the one or more forecasts.
[0124] At 830, one or more schedules are generated. The one or more
schedules 255 may be generated by the WFM application 250. Each
schedule 255 may be generated for one of the generated forecasts
251 according to the items configured for the application 250 at
815.
[0125] For example, the WFM application 250 may generate each
schedule 255 such that sufficient agents 120 are scheduled to
handle the workload predicted by the associated forecast 251 while
also complying with location-based rules 157 associated with the
location determined for the agents 120 or the contact center 150.
The WFM application 250 may further generate each schedule 255 to
honor items such as start rules 173, break patterns 174, hours 171,
and shifts 172 determined by the WFM application 250 for each
agents 120 or team.
[0126] At 825, the one or more schedules are validated. The one or
more schedules 835 may be validated by the administrator 290
through the GUI. Depending on the embodiment, after the one or more
schedules 255 are validated by the administrator 290 they may be
implemented by the contact center 150.
[0127] FIG. 9 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.
[0128] 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.
[0129] 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.
[0130] With reference to FIG. 9, an exemplary system for
implementing aspects described herein includes a computing device,
such as computing device 900. In its most basic configuration,
computing device 900 typically includes at least one processing
unit 902 and memory 904. Depending on the exact configuration and
type of computing device, memory 904 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. 9 by dashed line
906.
[0131] Computing device 900 may have additional
features/functionality. For example, computing device 900 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. 9 by removable
storage 908 and non-removable storage 910.
[0132] Computing device 900 typically includes a variety of
tangible computer readable media. Computer readable media can be
any available tangible media that can be accessed by device 900 and
includes both volatile and non-volatile media, removable and
non-removable media.
[0133] 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 904, removable storage 908, and non-removable
storage 910 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 900. Any such computer
storage media may be part of computing device 900.
[0134] Computing device 900 may contain communications
connection(s) 912 that allow the device to communicate with other
devices. Computing device 900 may also have input device(s) 914
such as a keyboard, mouse, pen, voice input device, touch input
device, etc. Output device(s) 916 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.
[0135] Returning to FIG. 1, 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
(AI), 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.
[0136] 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.
[0137] 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 caller. 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.
[0138] 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.
[0139] 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, SMS and fax services. 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).
[0140] Recording applications may be used to capture and play back
audio 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.
[0141] 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.
[0142] 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.
* * * * *