US20210218838A1 - Systems and methods for scheduling deferred queues - Google Patents
Systems and methods for scheduling deferred queues Download PDFInfo
- Publication number
- US20210218838A1 US20210218838A1 US16/738,576 US202016738576A US2021218838A1 US 20210218838 A1 US20210218838 A1 US 20210218838A1 US 202016738576 A US202016738576 A US 202016738576A US 2021218838 A1 US2021218838 A1 US 2021218838A1
- Authority
- US
- United States
- Prior art keywords
- interval
- staffing
- queue
- intervals
- deferred
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06315—Needs-based resource requirements planning or analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063116—Schedule adjustment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063118—Staff planning in a project environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/42382—Text-based messaging services in telephone networks such as PSTN/ISDN, e.g. User-to-User Signalling or Short Message Service for fixed networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/5175—Call or contact centers supervision arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/5183—Call or contact centers with computer-telephony arrangements
- H04M3/5191—Call or contact centers with computer-telephony arrangements interacting with the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/523—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
- H04M3/5232—Call distribution algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/523—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
- H04M3/5232—Call distribution algorithms
- H04M3/5234—Uniform load distribution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/523—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
- H04M3/5237—Interconnection arrangements between ACD systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/523—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
- H04M3/5238—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing with waiting time or load prediction arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2201/00—Electronic components, circuits, software, systems or apparatus used in telephone systems
- H04M2201/14—Delay circuits; Timers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2203/00—Aspects of automatic or semi-automatic exchanges
- H04M2203/40—Aspects of automatic or semi-automatic exchanges related to call centers
- H04M2203/402—Agent or workforce management
Definitions
- Modern contact centers can have many types of communications—calls, emails, chats, social media, etc. Some of these—like calls—must be handled in (near) real-time; these are immediate communications. Others—like emails—need not be handled right away and may be put off for anywhere from an hour to several days; these are deferred communications. Scheduling for a contact center that has only immediate communications is relatively straight-forward: wherever calls are coming in, that's where agents should be scheduled. When a contact center has deferred communications, though, it's much more difficult to determine the required staffing at any given point, because they can be handled any time within the next several hours or days from when they come in.
- a system for scheduling deferred communications is provided.
- a workload requirement for a deferred queue for each interval of a set of intervals is determined. Each workload may indicate the amount of work predicted for the associated interval.
- a staffing requirement for an immediate queue is received and may indicate the number of agents needed to handle the immediate communications for the same intervals.
- the system for each interval, may consider the number of agents needed for the interval in the immediate queue. Because the deferred communications do not have to be handled at any particular interval, the system may, based on the workloads, schedule agents for the deferred queue where the immediate queue is less busy (a smaller number of agents are scheduled). The goal of the system being to smooth the intervals such that the total number of agents scheduled for each interval across the immediate queue and the deferred queue remains fairly constant.
- a method includes: receiving a first set of staffing requirements for a first queue by a computing device, wherein the first set of staffing requirements includes a staffing requirement for each interval of a plurality of intervals, and the intervals of the plurality of intervals are ordered; receiving a workload for each interval of the plurality of intervals for a second queue by the computing device; generating a second set of staffing requirements for the second queue by the computing device based on the received workload for each interval; and for one or more intervals of the plurality of intervals, distributing, by the computing device, at least a portion of the staffing requirement of the second set of staffing requirements associated with the interval to a staffing requirement of the second set of staffing requirements of a subsequent interval of the plurality of intervals based on a sum of the staffing requirement for the interval of the first set of staffing requirements and the staffing requirement for the interval of the second set of staffing requirements.
- a method includes: receiving a first set of staffing requirements for a first queue by a computing device, wherein the first set of staffing requirements includes a staffing requirement for each interval of a plurality of intervals, and the intervals of the plurality of intervals are ordered; receiving a workload for each interval of the plurality of intervals for a second queue by the computing device; generating a second set of staffing requirements for the second queue by the computing device based on the received workload for each interval; determining an optimal level based on the first set of staffing requirements and the second set of staffing requirements by the computing device; and for each interval of the plurality of intervals, when the sum of the staffing requirement of the first set of staffing requirements for the interval and the staffing requirement of the second set of staffing requirements for the interval is above the optimal level, distributing at least a portion of the staffing requirement of the second set of staffing requirements associated with the interval to a staffing requirement of the second set of staffing requirements of a subsequent interval.
- a method includes: receiving a first set of staffing requirements for a first queue by a computing device, wherein the first set of staffing requirements includes a staffing requirement for each interval of a plurality of intervals, and the intervals of the plurality of intervals are ordered; receiving a workload for each interval of the plurality of intervals for a second queue by the computing device; generating a first combined set of staffing requirements by, for each interval of the plurality of intervals, generating a combined staffing requirement using the staffing requirement for the interval and the workload for the interval; and for each interval of the plurality of intervals, when the combined staffing requirement is above an optimal level, distributing at least a portion of the combined staffing requirement attributable to a workload to the combined staffing requirement of a subsequent interval of the first combined set of staffing requirements.
- a method includes: receiving a first combined set of staffing requirements for a first queue and a second queue by a computing device, wherein the first combined set of staffing requirements includes a staffing requirement for each interval of a plurality of intervals, and the intervals of the plurality of intervals are ordered; receiving a workload for each interval of the plurality of intervals for a third queue by the computing device; generating a second combined set of staffing requirements by, for each interval of the plurality of intervals, generating a combined staffing requirement by adding the staffing requirement from the interval to the workload for the interval; and for each interval of the plurality of intervals, when the combined staffing requirement is above an optimal level, distributing at least a portion of the combined staffing requirement attributable to the workload from the interval to the combined staffing requirement of a subsequent interval.
- a method includes: receiving an indication of a first queue by a computing device; receiving a first goal time for the first queue by the computing device; and determining, by the computing device, whether the first queue is an immediate queue or a deferred queue based on the first goal time by the computing device.
- FIG. 1 is an illustration of an example system architecture
- FIG. 2 is an illustration of an example system architecture for incorporating a deferred communication engine into a business or entity
- FIG. 3A is an illustration of an example set of staffing requirements
- FIG. 3B is an illustration of an example set of staffing requirements
- FIG. 4A is an illustration of an example combined staffing requirement
- FIG. 4B is an illustration of an example modified staffing requirement
- FIG. 5 is an illustration of an example method for determining a set of optimal staffing requirement for a deferred queue in view of an immediate queue and for scheduling agents based on the optimal staffing requirements;
- FIG. 6 is an illustration of an example method for determining an optimal set of staffing requirements for a deferred queue in view of an immediate queue and for scheduling agents based on the optimal staffing requirements;
- FIG. 7 is an illustration of an example method for generating a set of combined staffing requirements for a deferred queue and an immediate queue
- FIG. 8 is an illustration of an example method for generating a set of combined staffing requirements for an immediate queue and a plurality of deferred queues
- FIG. 9 is an illustration of an example method for determining whether or not to generate a staffing requirement for a queue using the deferred queue algorithm.
- FIG. 10 illustrates an example computing device.
- 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 .
- the contact routing system 153 could be any of a contact center as a service (CCaaS) system, an automated call distributor (ACD) system, or a case system, for example.
- CaaS service
- ACD automated call distributor
- the agents 120 may be remote from the contact center 150 and may 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.
- 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.
- 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.
- PSTN public switched telephone networks
- VoIP Voice over Internet Protocol
- WAN Wide Area Network
- Large Area Network The network types are provided by way of example and are not intended to limit types of networks used for communications.
- 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 .
- 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.
- the communications received by the contact center 150 may be categorized as either immediate communications or deferred communications.
- An immediate communication is a type of communication that must be handled quickly. Examples include calls or chat sessions.
- a deferred communication is a type of communication that can be handled at a later time after it is received. Examples include email, twitter, and SMS.
- an immediate communication When an immediate communication is received by the contact center 150 it is placed in an immediate queue 125 where it may be handled by a next available agent 120 that is assigned to the immediate queue 125 . Alternatively or additionally, the immediate communication may be immediately handled by an agent 120 without being placed in the immediate queue 125 .
- a deferred communication When a deferred communication is received by the contact center 150 it is placed in a deferred queue 123 where it may be handled by an agent 120 assigned to the deferred queue 123 at a later time.
- the contact center 150 may further include a workforce management (“WFM”) application 154 .
- the WFM application 154 may generate forecasts and schedules for the contact center 150 and the agents 120 and may ensure that the contact center 150 complies with all laws and regulations regarding agent 120 work hours. While efficiently scheduling agents 120 to work on immediate queues 125 is straightforward because the immediate communications cannot be deferred, efficiently scheduling agents 120 to work on deferred queues 123 is more difficult because the deferred communications can be handled within a range of acceptable times.
- the contact center 150 may further include a deferred communication engine 210 .
- the deferred communication engine 210 is configured to schedule agents 120 to the deferred queue 123 in a way that considers the forecasted staffing needs of the immediate queue 125 .
- the deferred communication engine 210 schedules agents 120 to the deferred queue 123 during intervals where the immediate queue 125 is forecasted to be less busy. This allows the total number of agents 120 assigned to either a deferred queue 123 or an immediate queue 125 for any interval to be relatively constant.
- deferred communication engine 210 is described herein with respect to a contact center 150 and one or more agents 120 , it is for illustrative purposes only.
- the deferred communication engine 210 can be used by any entity that schedules employees to both deferred and immediate tasks.
- FIG. 2 is an illustration of an example system architecture for incorporating a deferred communication engine 210 into a business or entity such as a contact center 150 .
- the deferred communication engine 210 may interact with, or may receive data from, the WFM application 154 .
- each of the deferred communication engine 210 and the WFM application 154 may be implemented together or separately by one or more general purpose computing devices such as the computing system 1000 illustrated with respect to FIG. 10 .
- the deferred communication engine 210 may receive a staffing requirement 213 for an immediate queue 125 from the WFM application 154 for each of a plurality of intervals.
- the intervals of the plurality of intervals may each have the same time duration and may correspond to the smallest amount of time that can be scheduled in the contact center 150 . For example, depending on the needs of the contact center 150 , each interval may have a duration of fifteen minutes, thirty minutes, or one hour. Other time intervals may be used.
- the intervals in the plurality of intervals may be ordered. For example, a first interval may correspond to the time period 8:00 am-8:15 am, a second interval may correspond to the time period 8:15 am-8:30 am, and a third interval may correspond to the time period 8:30 am-8:45 am.
- Each staffing requirement 213 may be a value that represents the number of agents 120 that are needed to work on the associated immediate queue 125 during the associated interval to meet a service level goal for the interval or immediate queue 125 .
- the service level goal may include maximum wait time, abandonment rate, etc.
- the service level goal may be set by a user or administrator.
- Each staffing requirement 213 for an immediate queue 125 may be generated by the WFM application 154 based on a forecast associated with the immediate queue 125 for the plurality of intervals.
- the forecast for an immediate queue 125 for a plurality of intervals may be a prediction of how busy the immediate queue 125 will be (e.g., total number of communications the immediate queue 125 will receive) for each interval of the plurality of intervals.
- the forecast may be generated by the WFM application 154 based on historical data about how busy the particular immediate queue 125 was in the past for the same or similar intervals. Any method for generating a forecast may be used.
- the WFM application 154 may determine or receive a workload 214 for a deferred queue 123 for each interval of the plurality of intervals.
- the workload 214 for a deferred queue 123 may be the amount of work that is expected to be received during the associated interval.
- the WFM application 154 may determine the workload 214 for the interval by multiplying the interaction volume offered (“IVO”) by the average handling time (“AHT”) for the deferred queue 123 for the interval.
- IVO interaction volume offered
- AHT average handling time
- the WFM application 154 may normalize the workloads 214 for a deferred queue 123 such that one workload 214 roughly corresponds to an amount of work that a single agent 120 may handle during a single interval.
- the interval may be 1000 second of workload 214 .
- the set of staffing requirements 305 covers eight intervals and each interval is associated with a staffing requirement 213 .
- the staffing requirement 213 for the first interval has a value of 3
- the staffing requirement 213 for the second interval has a value of 2
- the staffing requirement 213 for the third interval has a value of 1
- the staffing requirement 213 for the fourth interval has a value of 0
- the staffing requirement 213 for the fifth interval has a value of 1
- the staffing requirement 213 for the sixth interval has a value of 2
- the staffing requirement 213 for the seventh interval has a value of 3
- the staffing requirement 213 for the eighth interval has a value of 2.
- FIG. 3B is shown an example set of staffing requirements 310 for a deferred queue 123 for the same intervals as shown in FIG. 3A .
- the set of staffing requirements 310 may have been generated based on received workloads 214 .
- the staffing requirement 213 for the first interval has a value of 2 and the staffing requirement 213 for the second interval also has a value of 2.
- the staffing requirement 213 for the remaining intervals is 0.
- the amount of time that a communication should be handled by is referred to herein as a goal time.
- immediate communications have a relatively short goal time (e.g., less than 30 minutes), while deferred communications have relatively longer goal time (e.g., greater than 30 minutes).
- the particular goal time for a communication may vary by type of communication. Example goal times include 30 minutes, one hour, two hours, or even one day.
- a deferred communication may be considered handled when an agent 120 generates and sends a response to the communication, while an immediate communication may be considered handled when the client or agent 120 hangs up or otherwise terminates the communication.
- each interval represents 15 minutes and the goal time for communications in the deferred queue 123 is one hour. Accordingly, communications associated with the first interval must be completed by the fifth interval to be within the goal time, while communications associated with the second interval must be completed by the sixth interval to be within the goal time.
- the deferred communication engine 210 may be configured to adjust or modify the staffing requirement 213 of a deferred queue 123 in view of the staffing requirement 213 of an immediate queue 125 and the goal time.
- the deferred communication engine 210 may adjust the staffing requirements 213 of the deferred queue 123 to take advantage of low or less busy intervals of the corresponding immediate queue 125 .
- the deferred communication engine 210 may modify the staffing requirements 213 of the deferred queue 123 such that the sums of the staffing requirements 213 for the same intervals fluctuate as little as possible.
- FIG. 4A is an illustration of a combined staffing requirement 405 that shows how the deferred communication engine 210 could modify the staffing requirements 213 of the deferred queue 123 in view of the staffing requirements 213 of the immediate queue 125 .
- the staffing requirement 213 from the first interval of the deferred queue 123 has been moved into the third and fourth intervals because the fourth interval is the last interval within the goal time of the first interval.
- the staffing requirement 213 from the second interval of the deferred queue 123 have been moved into the fourth and fifth intervals because the fifth interval is the last interval within the goal time of the second interval.
- FIG. 4A shows the modified staffing requirements 213 generated for the deferred queue 123 .
- the deferred queue algorithm used by the deferred communication engine 210 to redistribute the staffing requirements 213 associated with a deferred queue 123 is described further below.
- the deferred communication engine 210 may reconfigure the staffing requirements 213 of a deferred queue 123 in view of a set of staffing requirements 213 for an immediate queue 125 as follows: starting from the earliest to the latest, the deferred communication engine 210 may consider all the 15-minute intervals a in the set of staffing requirements 213 . For each interval a, the deferred communication engine 210 may consider the region [a, b] containing the intervals ranging from the current interval a up to a+the goal time for the deferred queue 123 .
- the goal for the deferred communication engine 210 is to distribute the staffing requirement 213 of the current interval a attributable to the workload 214 among the intervals within the region [a, b], so that the sum of the staffing requirement 213 for the deferred queue 123 and the staffing requirement 213 of the immediate queue 125 for each interval is as even as possible.
- the deferred communication engine 210 may use binary search and multiple iterations to calculate a satisfactory distribution of the staffing requirements 213 .
- the deferred communication engine 210 may update the staffing requirements 213 after each 15-minute interval of the deferred queue 123 .
- the sum of the staffing requirements 213 for the immediate queue 125 and the staffing requirements 213 for the deferred queue 123 calculated up to the current moment is referred to herein as the set of combined staffing requirements 213 .
- the deferred communication engine 210 may consider some tentative levels from which it may pick an optimal level that is used as a reference to distribute the staffing requirement 213 from the current interval a attributable to the workload 214 among the intervals within the region [a, b]. Each optimal level approximates the lowest level at which the staffing requirement 213 from the current interval attributable to the workload 214 can be distributed.
- the deferred communication engine 210 at each iteration of the algorithm may determine an upper bound 217 and a lower bound 218 for the optimal level.
- the upper bound 217 and lower bound 218 may be updated by the deferred communication engine 210 during each iteration of the algorithm, getting progressively closer to the optimal level. To do so, the deferred communication engine 210 may pick intermediate values and may analyze whether they are above or below the optimal level.
- the initial upper bound 217 for the optimal level may be given by:
- the initial lower bound 218 for the optimal level may be given by:
- the deferred communication engine 210 may determine if the value
- the deferred communication engine 210 may update the bounds accordingly.
- the initial value for the upper bound 217 calculated by the deferred communication engine 210 is
- the level is a
- the deferred communication engine 210 may subtract the difference between the level and the staffing requirement 213 from the staffing requirement 213 attributable to the workload 214 . If the contact center 150 is not functioning the whole 15 minutes of the interval, the deferred communication engine 210 may multiply the difference by the fraction of the interval that the contact center 150 is functioning before subtracting.
- the deferred communication engine 210 may lower the upper bound 218 and make it equal to the tentative level. If the deferred communication engine 210 uses up the whole staffing requirement 213 attributable to the workload 214 at the current level, the deferred communication engine 210 may increase the lower bound 218 and make it equal to the tentative level.
- the deferred communication engine 210 may obtain a new staffing requirement 213 for the deferred queue 123 equal to (0, 0, 0.25, 1.25), so all the workload was not used. Then, the deferred communication engine 210 may update the lower bound 218 to 1.25, and may repeat the process one more time, obtaining the staffing requirement 213 of (0, 0, 0.625, 1.375). The deferred communication engine 210 may then continue to the next interval, as described below.
- the deferred communication engine 210 may assign the value of the upper bound 217 as the optimal level. The deferred communication engine 210 may then distribute the staffing requirement 213 attributable to the workload 214 from the deferred queue 123 in the current 15-minute interval, through the subsequent intervals up to the goal time, and may update the combined staffing requirement 213 .
- the deferred communication engine 210 may distribute the staffing requirement 213 attributable to the workload 214 from the second interval, considering that the combined staffing requirement 213 in that moment is (2, 1.625, 1.375, 1).
- the deferred communication engine 210 may calculate the value of the upper bound 217 as
- the deferred communication engine 210 may generate the final set of staffing requirements 213 for the deferred queue 123 as (0, 0, 1, 2, 1, 0, 0, 0).
- the final set of staffing requirements 213 for the deferred queue 123 may be obtained by the deferred communication engine 210 subtracting the set of staffing requirements 213 of the immediate queue from the set of combined staffing requirements 213 .
- the deferred communication engine 210 may further consider additional deferred queues 123 for the intervals.
- the deferred communication engine 210 may use the set of combined staffing requirements 213 in place of the set of staffing requirements 213 for the immediate queue 125 in the above described algorithm and may generate a new set of combined staffing requirements 213 that is based on both of the deferred queues 123 and the original immediate queue 125 . In this way the deferred communication engine 210 may generate a set of combined staffing requirements 213 for an immediate queue 125 and arbitrary numbers of deferred queues 123 .
- FIG. 5 is an illustration of an example method 500 for determining an optimal staffing requirement for a deferred queue in view of an immediate queue and for scheduling agents based on the optimal staffing requirement.
- the method 500 may be implemented by the deferred communication engine 210 of the contact center 150 .
- a first set of staffing requirements is received.
- the first set of staffing requirements 213 may be received by the deferred communication engine 210 from the WFM application 154 .
- the first set of staffing requirements 213 may be for an immediate queue 125 .
- the set of staffing requirements 213 may be associated with a plurality of intervals.
- the staffing requirement 213 for an interval may be the number of agents 120 that are needed to work on the immediate queue 125 to achieve a desired service level goal for the interval.
- the first set of staffing requirements 213 may have been generated by the WFM application 154 based on a forecast of how busy the immediate queue 125 is likely to be for the intervals of the plurality of intervals.
- workloads are received.
- the workloads 214 may be received by the deferred communication engine 210 from the WFM application 154 .
- the workloads 214 may be for a deferred queue 123 .
- the workloads 214 may be associated with the same plurality of intervals as the first set of staffing requirements 213 .
- Each workload 214 may be calculated using a forecast for the deferred queue 123 .
- the workloads 214 may be normalized, for example.
- a second set of staffing requirements is generated.
- the second set of staffing requirements 213 may be generated by the deferred communication engine 210 based on the workloads 214 .
- At 520 for one or more intervals, at least a portion of the staffing requirement of the second set of staffing requirements for the interval is distributed to a subsequent interval.
- the portion of the staffing requirement 213 may be distributed by the deferred communication engine 210 to a next or subsequent interval within the goal time associated with the deferred queue 123 . As described above, communications in the deferred queue 123 have to be handled by their associated goal time.
- some or all of the portions of the staffing requirement 213 attributable to the workload 214 may be distributed to other intervals such that the combined staffing requirements 213 from the first set of staffing requirements 213 and the second set of staffing requirements 213 for each interval is evened out.
- the deferred communication may redistribute the staffing requirements 213 of the intervals in a way that minimizes the differences between the sums of the staffing requirement 213 from the first set of staffing requirements 213 and the staffing requirement from the second set of staffing requirement 213 for each interval.
- one or more agents are scheduled.
- the one or more agents 120 may be scheduled by the WFM application 154 according to the second set of staffing requirements 213 .
- FIG. 6 is an illustration of an example method 600 for determining an optimal staffing requirement for a deferred queue in view of an immediate queue and for scheduling agents based on the optimal staffing requirement.
- the method 600 may be implemented by the deferred communication engine 210 of the contact center 150 .
- a first set of staffing requirements is received.
- the first set of staffing requirements 213 may be received by the deferred communication engine 210 from the WFM application 154 .
- the first set of staffing requirements 213 may be for an immediate queue 125 .
- the first set of staffing requirements 213 may be associated with a plurality of intervals.
- the staffing requirement 213 for an interval may be the number of agents 120 that are needed to work on the immediate queue 125 to achieve a desired service level goal for the interval.
- workloads are received.
- the workloads 214 may be received by the deferred communication engine 210 from the WFM application 154 .
- the workloads 214 may be for a deferred queue 123 .
- the workloads 214 may be associated with the same plurality of intervals as the set of staffing requirements 213 .
- Each workload 214 may be calculated using a forecast for the deferred queue 123 .
- the workloads 214 may be normalized so that they represent a number of agents 120 , for example.
- a second set of staffing requirements is generated.
- the second set of staffing requirements 213 may be generated by the deferred communication engine 210 based on the workloads 214 .
- an optimal level is determined.
- Each optimal level may be determined by the deferred communication engine 210 .
- the optimal level may be the level that staffing requirements of the second set of staffing requirements 213 of the deferred queue 123 may be redistributed to smooth or even out the sums of the staffing requirements 213 for each interval.
- At 625 for one or more intervals, at least a portion of the staffing requirement of the second set of staffing requirements for the interval is distributed to a subsequent interval based on the optimal levels.
- the portions may be distributed until, for as many intervals as possible, a sum of the staffing requirements 213 for the interval is at or below the optimal levels.
- each optimal level may be determined by the deferred communication engine 210 adjusting an upper bound 217 and a lower bound 218 based on the workloads 214 and the staffing requirements 213 until the upper bound 217 and the lower bound 218 are within a delta 219 .
- the upper bound 217 may then be used as the optimal level.
- one or more agents are scheduled.
- the one or more agents 120 may be scheduled by the WFM application 154 according to the second set of staffing requirements 213 .
- FIG. 7 is an illustration of an example method 700 for generating a combined staffing requirement for a deferred and an immediate queue.
- the method 700 may be implemented by the deferred communication engine 210 of the contact center 150 .
- a set of staffing requirements is received.
- the set of staffing requirements 213 may be received by the deferred communication engine 210 from the WFM application 154 .
- the set of staffing requirements 213 may be for an immediate queue 125 .
- the set of staffing requirements 213 may be associated with a plurality of intervals.
- the staffing requirement 213 for an interval may be the number of agents 120 that are needed to work on the immediate queue 125 to achieve a desired service level goal for the interval.
- workloads are received.
- the workloads 214 may be received by the deferred communication engine 210 from the WFM application 154 .
- the workloads 214 may be for a deferred queue 123 .
- the workloads 214 may be associated with the same plurality of intervals as the set of staffing requirements 213 .
- Each workload 214 may be calculated using a forecast for the deferred queue 123 .
- the workloads 214 may be normalized so that they represent a number of agents 120 , for example.
- a set of combined staffing requirements is generated.
- the set of combined staffing requirements may be generated by the deferred communication engine 210 by, for each interval of the plurality of intervals, generating a combined staffing requirement 213 using the staffing requirement 213 and the workload 214 for the interval.
- the combined staffing requirements 213 for some of the intervals are redistributed to other subsequent intervals.
- the combined staffing requirements may be redistributed by the deferred communication engine 210 by, for each interval of the plurality of intervals, when the combined staffing requirement 213 is above an optimal level, distributing at least a portion of the combined staffing requirement 213 attributable to the workloads 214 of the deferred queue 123 from the interval to the combined staffing requirement 213 of a subsequent interval.
- FIG. 8 is an illustration of an example method 800 for generating a set of combined staffing requirements for an immediate queue and a plurality of deferred queues.
- the method 800 may be implemented by the deferred communication engine 210 of the contact center 150 .
- a first set of combined staffing requirements is received.
- the first set of combined staffing requirements 213 may be received by the deferred communication engine 210 .
- the first set of combined staffing requirements 213 may be for an immediate queue 125 and a deferred queue 123 .
- the first set of combined staffing requirements 213 may be associated with a plurality of intervals and may include a combined staffing requirement 213 for each interval.
- workloads are received.
- the workloads 214 may be received by the deferred communication engine 210 from the WFM application 154 .
- the workloads 214 may be for a deferred queue 123 .
- the workloads 214 may be associated with the same plurality of intervals as the first set of combined staffing requirements 213 .
- a second set of combined staffing requirements is generated.
- the second set of combined staffing requirement 213 may be generated by the deferred communication engine 210 by, for each interval of the plurality of intervals, generating a new combined staffing requirement 213 using the staffing requirement 213 generated from the workload 214 for the interval and the combined staffing requirement 213 from the first set of combined staffing requirements 213 for the interval.
- the combined staffing requirements for some of the intervals are redistributed to other subsequent intervals for the second set of combined staffing requirements 213 .
- the combined staffing requirements 213 may be redistributed by the deferred communication engine 210 by, for each interval of the plurality of intervals, when the combined staffing requirement 213 is above an optimal level, distributing at least a portion of the combined staffing requirement 213 attributable to the workload 214 of the deferred queue 123 from the interval to the combined staffing requirement 213 of a subsequent interval.
- FIG. 9 is an illustration of an example method 900 for determining whether or not to generate a staffing requirement for a queue using the deferred queue algorithm.
- the method 900 may be implemented by the deferred communication engine 210 of the contact center 150 .
- an indication of a first queue is received.
- the indication of the first queue may be received by the deferred communication engine 210 .
- the first queue may be associated with a first goal time that is the length of time that communications associated with the first queue should be handled.
- an indication of a second queue is received.
- the indication of the second queue may be received by the deferred communication engine 210 .
- the second queue may be associated with a second goal time that is the length of time that communications associated with the second queue should be handled.
- the first queue is an immediate queue and the second queue is a deferred queue is determined.
- the determination may be made by the deferred communication engine 210 using the first goal time, the second goal time and a threshold goal time. If the first goal time is below the threshold goal time, then the first queue is an immediate queue. If the second goal time is above the threshold goal time, then the second queue is a deferred queue.
- the threshold goal time may be set by an administrator. An example threshold goal time is 30 minutes.
- the method 900 may continue to 925 where a staffing requirement for the deferred queue may be generated using the deferred queue algorithm described herein. Else, the method 900 may continue at 930 where another algorithm may be used.
- FIG. 10 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.
- 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.
- Computer-executable instructions such as program modules, being executed by a computer may be used.
- 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.
- program modules and other data may be located in both local and remote computer storage media including memory storage devices.
- an exemplary system for implementing aspects described herein includes a computing device, such as computing device 1000 .
- computing device 1000 typically includes at least one processing unit 1002 and memory 1004 .
- memory 1004 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.
- RAM random access memory
- ROM read-only memory
- flash memory etc.
- This most basic configuration is illustrated in FIG. 10 by dashed line 1006 .
- Computing device 1000 may have additional features/functionality.
- computing device 1000 may include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape.
- additional storage is illustrated in FIG. 10 by removable storage 1008 and non-removable storage 1010 .
- Computing device 1000 typically includes a variety of tangible computer readable media.
- Computer readable media can be any available tangible media that can be accessed by device 1000 and includes both volatile and non-volatile media, removable and non-removable media.
- 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 1004 , removable storage 1008 , and non-removable storage 1010 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 1000 . Any such computer storage media may be part of computing device 1000 .
- Computing device 1000 may contain communications connection(s) 1012 that allow the device to communicate with other devices.
- Computing device 1000 may also have input device(s) 1014 such as a keyboard, mouse, pen, voice input device, touch input device, etc.
- Output device(s) 1016 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.
- agent(s) 120 and customers 110 may communicate with each other and with other services over the network 130 .
- a customer calling on telephone handset may connect through the PSTN and terminate on a private branch exchange (PBX).
- PBX private branch exchange
- 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.
- AI artificial intelligence
- ML machine learning
- NLU natural language understanding
- NLP natural language processing
- NLG natural language generation
- Social media, email, SMS/MMS, IM may communicate with their counterpart's application (not shown) within the contact center 150 .
- the contact center 150 itself may 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.
- 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.
- 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.
- 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.
- 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.
- CRM customer relationship management
- 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.
- IP Internet Protocol
- IM instant messaging
- 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).
- 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.
- 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.
- the computing device 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.
- API application programming interface
- Such programs may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system.
- 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.
Abstract
Description
- Modern contact centers can have many types of communications—calls, emails, chats, social media, etc. Some of these—like calls—must be handled in (near) real-time; these are immediate communications. Others—like emails—need not be handled right away and may be put off for anywhere from an hour to several days; these are deferred communications. Scheduling for a contact center that has only immediate communications is relatively straight-forward: wherever calls are coming in, that's where agents should be scheduled. When a contact center has deferred communications, though, it's much more difficult to determine the required staffing at any given point, because they can be handled any time within the next several hours or days from when they come in.
- A system for scheduling deferred communications is provided. A workload requirement for a deferred queue for each interval of a set of intervals is determined. Each workload may indicate the amount of work predicted for the associated interval. A staffing requirement for an immediate queue is received and may indicate the number of agents needed to handle the immediate communications for the same intervals. The system, for each interval, may consider the number of agents needed for the interval in the immediate queue. Because the deferred communications do not have to be handled at any particular interval, the system may, based on the workloads, schedule agents for the deferred queue where the immediate queue is less busy (a smaller number of agents are scheduled). The goal of the system being to smooth the intervals such that the total number of agents scheduled for each interval across the immediate queue and the deferred queue remains fairly constant.
- In an embodiment, a method is provided. The method includes: receiving a first set of staffing requirements for a first queue by a computing device, wherein the first set of staffing requirements includes a staffing requirement for each interval of a plurality of intervals, and the intervals of the plurality of intervals are ordered; receiving a workload for each interval of the plurality of intervals for a second queue by the computing device; generating a second set of staffing requirements for the second queue by the computing device based on the received workload for each interval; and for one or more intervals of the plurality of intervals, distributing, by the computing device, at least a portion of the staffing requirement of the second set of staffing requirements associated with the interval to a staffing requirement of the second set of staffing requirements of a subsequent interval of the plurality of intervals based on a sum of the staffing requirement for the interval of the first set of staffing requirements and the staffing requirement for the interval of the second set of staffing requirements.
- In an embodiment, a method is provided. The method includes: receiving a first set of staffing requirements for a first queue by a computing device, wherein the first set of staffing requirements includes a staffing requirement for each interval of a plurality of intervals, and the intervals of the plurality of intervals are ordered; receiving a workload for each interval of the plurality of intervals for a second queue by the computing device; generating a second set of staffing requirements for the second queue by the computing device based on the received workload for each interval; determining an optimal level based on the first set of staffing requirements and the second set of staffing requirements by the computing device; and for each interval of the plurality of intervals, when the sum of the staffing requirement of the first set of staffing requirements for the interval and the staffing requirement of the second set of staffing requirements for the interval is above the optimal level, distributing at least a portion of the staffing requirement of the second set of staffing requirements associated with the interval to a staffing requirement of the second set of staffing requirements of a subsequent interval.
- In an embodiment, a method is provided. The method includes: receiving a first set of staffing requirements for a first queue by a computing device, wherein the first set of staffing requirements includes a staffing requirement for each interval of a plurality of intervals, and the intervals of the plurality of intervals are ordered; receiving a workload for each interval of the plurality of intervals for a second queue by the computing device; generating a first combined set of staffing requirements by, for each interval of the plurality of intervals, generating a combined staffing requirement using the staffing requirement for the interval and the workload for the interval; and for each interval of the plurality of intervals, when the combined staffing requirement is above an optimal level, distributing at least a portion of the combined staffing requirement attributable to a workload to the combined staffing requirement of a subsequent interval of the first combined set of staffing requirements.
- In an embodiment, a method is provided. The method includes: receiving a first combined set of staffing requirements for a first queue and a second queue by a computing device, wherein the first combined set of staffing requirements includes a staffing requirement for each interval of a plurality of intervals, and the intervals of the plurality of intervals are ordered; receiving a workload for each interval of the plurality of intervals for a third queue by the computing device; generating a second combined set of staffing requirements by, for each interval of the plurality of intervals, generating a combined staffing requirement by adding the staffing requirement from the interval to the workload for the interval; and for each interval of the plurality of intervals, when the combined staffing requirement is above an optimal level, distributing at least a portion of the combined staffing requirement attributable to the workload from the interval to the combined staffing requirement of a subsequent interval.
- In an embodiment, a method is provided. The method includes: receiving an indication of a first queue by a computing device; receiving a first goal time for the first queue by the computing device; and determining, by the computing device, whether the first queue is an immediate queue or a deferred queue based on the first goal time by the computing device.
- 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.
- The components in the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding parts throughout the several views.
-
FIG. 1 is an illustration of an example system architecture; -
FIG. 2 is an illustration of an example system architecture for incorporating a deferred communication engine into a business or entity; -
FIG. 3A is an illustration of an example set of staffing requirements; -
FIG. 3B is an illustration of an example set of staffing requirements; -
FIG. 4A is an illustration of an example combined staffing requirement; -
FIG. 4B is an illustration of an example modified staffing requirement; -
FIG. 5 is an illustration of an example method for determining a set of optimal staffing requirement for a deferred queue in view of an immediate queue and for scheduling agents based on the optimal staffing requirements; -
FIG. 6 is an illustration of an example method for determining an optimal set of staffing requirements for a deferred queue in view of an immediate queue and for scheduling agents based on the optimal staffing requirements; -
FIG. 7 is an illustration of an example method for generating a set of combined staffing requirements for a deferred queue and an immediate queue; -
FIG. 8 is an illustration of an example method for generating a set of combined staffing requirements for an immediate queue and a plurality of deferred queues; -
FIG. 9 is an illustration of an example method for determining whether or not to generate a staffing requirement for a queue using the deferred queue algorithm; and -
FIG. 10 illustrates an example computing device. - 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.
-
FIG. 1 is anexample 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 acontact center 150 using voice, email, text, and web interfaces in order to communicate with theagents 120 through anetwork 130 and one or more of text or multimedia channels. The system that controls the operation of thecontact center 150 including the routing and handling of communications between customers 110 andagents 120 for thecontact center 150 is referred to herein as thecontact routing system 153. Depending on the embodiment, thecontact routing system 153 could be any of a contact center as a service (CCaaS) system, an automated call distributor (ACD) system, or a case system, for example. - The
agents 120 may be remote from thecontact center 150 and may handle communications with customers 110 on behalf of an enterprise. Theagents 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. - In some embodiments, the
agents 120 may be assigned to one or more queues. Theagents 120 assigned to a queue may handle communications that are placed in the queue by thecontact 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 thecontact center 150, the communication may be placed in a relevant queue, and one of theagents 120 associated with the relevant queue may handle the communication. - The communications received by the
contact center 150 may be categorized as either immediate communications or deferred communications. An immediate communication is a type of communication that must be handled quickly. Examples include calls or chat sessions. A deferred communication is a type of communication that can be handled at a later time after it is received. Examples include email, twitter, and SMS. - When an immediate communication is received by the
contact center 150 it is placed in animmediate queue 125 where it may be handled by a nextavailable agent 120 that is assigned to theimmediate queue 125. Alternatively or additionally, the immediate communication may be immediately handled by anagent 120 without being placed in theimmediate queue 125. When a deferred communication is received by thecontact center 150 it is placed in a deferredqueue 123 where it may be handled by anagent 120 assigned to the deferredqueue 123 at a later time. - The
contact center 150 may further include a workforce management (“WFM”)application 154. TheWFM application 154 may generate forecasts and schedules for thecontact center 150 and theagents 120 and may ensure that thecontact center 150 complies with all laws andregulations regarding agent 120 work hours. While efficiently schedulingagents 120 to work onimmediate queues 125 is straightforward because the immediate communications cannot be deferred, efficiently schedulingagents 120 to work on deferredqueues 123 is more difficult because the deferred communications can be handled within a range of acceptable times. - Accordingly, to solve these problems and others, the
contact center 150 may further include a deferredcommunication engine 210. The deferredcommunication engine 210 is configured to scheduleagents 120 to the deferredqueue 123 in a way that considers the forecasted staffing needs of theimmediate queue 125. In particular, the deferredcommunication engine 210schedules agents 120 to the deferredqueue 123 during intervals where theimmediate queue 125 is forecasted to be less busy. This allows the total number ofagents 120 assigned to either a deferredqueue 123 or animmediate queue 125 for any interval to be relatively constant. - Note that while the deferred
communication engine 210 is described herein with respect to acontact center 150 and one ormore agents 120, it is for illustrative purposes only. The deferredcommunication engine 210 can be used by any entity that schedules employees to both deferred and immediate tasks. -
FIG. 2 is an illustration of an example system architecture for incorporating a deferredcommunication engine 210 into a business or entity such as acontact center 150. The deferredcommunication engine 210 may interact with, or may receive data from, theWFM application 154. Depending on the embodiment, each of the deferredcommunication engine 210 and theWFM application 154 may be implemented together or separately by one or more general purpose computing devices such as thecomputing system 1000 illustrated with respect toFIG. 10 . - The deferred
communication engine 210 may receive astaffing requirement 213 for animmediate queue 125 from theWFM application 154 for each of a plurality of intervals. The intervals of the plurality of intervals may each have the same time duration and may correspond to the smallest amount of time that can be scheduled in thecontact center 150. For example, depending on the needs of thecontact center 150, each interval may have a duration of fifteen minutes, thirty minutes, or one hour. Other time intervals may be used. - The intervals in the plurality of intervals may be ordered. For example, a first interval may correspond to the time period 8:00 am-8:15 am, a second interval may correspond to the time period 8:15 am-8:30 am, and a third interval may correspond to the time period 8:30 am-8:45 am.
- Each
staffing requirement 213 may be a value that represents the number ofagents 120 that are needed to work on the associatedimmediate queue 125 during the associated interval to meet a service level goal for the interval orimmediate queue 125. The service level goal may include maximum wait time, abandonment rate, etc. The service level goal may be set by a user or administrator. - Each
staffing requirement 213 for animmediate queue 125 may be generated by theWFM application 154 based on a forecast associated with theimmediate queue 125 for the plurality of intervals. The forecast for animmediate queue 125 for a plurality of intervals may be a prediction of how busy theimmediate queue 125 will be (e.g., total number of communications theimmediate queue 125 will receive) for each interval of the plurality of intervals. The forecast may be generated by theWFM application 154 based on historical data about how busy the particularimmediate queue 125 was in the past for the same or similar intervals. Any method for generating a forecast may be used. - The
WFM application 154 may determine or receive aworkload 214 for a deferredqueue 123 for each interval of the plurality of intervals. As used herein theworkload 214 for a deferredqueue 123 may be the amount of work that is expected to be received during the associated interval. In one embodiment, theWFM application 154 may determine theworkload 214 for the interval by multiplying the interaction volume offered (“IVO”) by the average handling time (“AHT”) for the deferredqueue 123 for the interval. The IVO and AHT may be part of the forecast. - In some embodiments, the
WFM application 154 may normalize theworkloads 214 for a deferredqueue 123 such that oneworkload 214 roughly corresponds to an amount of work that asingle agent 120 may handle during a single interval. - For example, if the IVO is ten calls and the AHT is 100 seconds, then the interval may be 1000 second of
workload 214. TheWFM application 154 may then normalize theworkload 214 by dividing the number ofworkload 214 by the number of seconds in the interval. For example, if this is a 15-minute interval, then there is 1000/900=1.11 units ofworkload 214 in this interval. - Referring to
FIG. 3A is shown an example set ofstaffing requirements 305 for animmediate queue 125 for a hypothetical set of intervals. As shown, the set ofstaffing requirements 305 covers eight intervals and each interval is associated with astaffing requirement 213. Thestaffing requirement 213 for the first interval has a value of 3, thestaffing requirement 213 for the second interval has a value of 2, thestaffing requirement 213 for the third interval has a value of 1, thestaffing requirement 213 for the fourth interval has a value of 0, thestaffing requirement 213 for the fifth interval has a value of 1, thestaffing requirement 213 for the sixth interval has a value of 2, thestaffing requirement 213 for the seventh interval has a value of 3, and thestaffing requirement 213 for the eighth interval has a value of 2. - Referring to
FIG. 3B is shown an example set ofstaffing requirements 310 for a deferredqueue 123 for the same intervals as shown inFIG. 3A . The set ofstaffing requirements 310 may have been generated based on receivedworkloads 214. Thestaffing requirement 213 for the first interval has a value of 2 and thestaffing requirement 213 for the second interval also has a value of 2. Thestaffing requirement 213 for the remaining intervals is 0. - The amount of time that a communication should be handled by is referred to herein as a goal time. Typically, immediate communications have a relatively short goal time (e.g., less than 30 minutes), while deferred communications have relatively longer goal time (e.g., greater than 30 minutes). The particular goal time for a communication may vary by type of communication. Example goal times include 30 minutes, one hour, two hours, or even one day. Depending on the embodiment, a deferred communication may be considered handled when an
agent 120 generates and sends a response to the communication, while an immediate communication may be considered handled when the client oragent 120 hangs up or otherwise terminates the communication. - Looking again at
FIG. 3B , assume that each interval represents 15 minutes and the goal time for communications in the deferredqueue 123 is one hour. Accordingly, communications associated with the first interval must be completed by the fifth interval to be within the goal time, while communications associated with the second interval must be completed by the sixth interval to be within the goal time. - The deferred
communication engine 210 may be configured to adjust or modify thestaffing requirement 213 of a deferredqueue 123 in view of thestaffing requirement 213 of animmediate queue 125 and the goal time. The deferredcommunication engine 210 may adjust thestaffing requirements 213 of the deferredqueue 123 to take advantage of low or less busy intervals of the correspondingimmediate queue 125. In particular, the deferredcommunication engine 210 may modify thestaffing requirements 213 of the deferredqueue 123 such that the sums of thestaffing requirements 213 for the same intervals fluctuate as little as possible. - For example,
FIG. 4A is an illustration of a combinedstaffing requirement 405 that shows how the deferredcommunication engine 210 could modify thestaffing requirements 213 of the deferredqueue 123 in view of thestaffing requirements 213 of theimmediate queue 125. As shown, thestaffing requirement 213 from the first interval of the deferredqueue 123 has been moved into the third and fourth intervals because the fourth interval is the last interval within the goal time of the first interval. Thestaffing requirement 213 from the second interval of the deferredqueue 123 have been moved into the fourth and fifth intervals because the fifth interval is the last interval within the goal time of the second interval. - As can been seen in the combined staffing requirement of
FIG. 4A , by rearranging thestaffing requirements 213 of the deferredqueue 123, the variations in the overall agent need for the deferredqueue 123 and theimmediate queue 125 has been greatly reduced. This may result in an overall more efficient use ofagent 120 resources as thesame agents 120 can be scheduled between thedeferred queue 123 and theimmediate queue 125 as the needs of theimmediate queue 125 change for each interval.FIG. 4B shows the modifiedstaffing requirements 213 generated for the deferredqueue 123. The deferred queue algorithm used by the deferredcommunication engine 210 to redistribute thestaffing requirements 213 associated with a deferredqueue 123 is described further below. - Depending on the embodiment, the deferred
communication engine 210 may reconfigure thestaffing requirements 213 of a deferredqueue 123 in view of a set ofstaffing requirements 213 for animmediate queue 125 as follows: starting from the earliest to the latest, the deferredcommunication engine 210 may consider all the 15-minute intervals a in the set ofstaffing requirements 213. For each interval a, the deferredcommunication engine 210 may consider the region [a, b] containing the intervals ranging from the current interval a up to a+the goal time for the deferredqueue 123. The goal for the deferredcommunication engine 210 is to distribute thestaffing requirement 213 of the current interval a attributable to theworkload 214 among the intervals within the region [a, b], so that the sum of thestaffing requirement 213 for the deferredqueue 123 and thestaffing requirement 213 of theimmediate queue 125 for each interval is as even as possible. Depending on the embodiment, the deferredcommunication engine 210 may use binary search and multiple iterations to calculate a satisfactory distribution of thestaffing requirements 213. - The deferred
communication engine 210 may update thestaffing requirements 213 after each 15-minute interval of the deferredqueue 123. The sum of thestaffing requirements 213 for theimmediate queue 125 and thestaffing requirements 213 for the deferredqueue 123 calculated up to the current moment is referred to herein as the set of combinedstaffing requirements 213. - For each interval a, as above, the deferred
communication engine 210 may consider some tentative levels from which it may pick an optimal level that is used as a reference to distribute thestaffing requirement 213 from the current interval a attributable to theworkload 214 among the intervals within the region [a, b]. Each optimal level approximates the lowest level at which thestaffing requirement 213 from the current interval attributable to theworkload 214 can be distributed. The deferredcommunication engine 210 at each iteration of the algorithm may determine an upper bound 217 and a lower bound 218 for the optimal level. The upper bound 217 and lower bound 218 may be updated by the deferredcommunication engine 210 during each iteration of the algorithm, getting progressively closer to the optimal level. To do so, the deferredcommunication engine 210 may pick intermediate values and may analyze whether they are above or below the optimal level. - In some embodiments, using the amount of time that the
contact center 150 is functioning in each 15-minute interval as weights, the initial upper bound 217 for the optimal level may be given by: -
Weighted Average{Combined Staffing∈[a,b]}+WL(a)/{Time Open∈[a,b]} - The initial lower bound 218 for the optimal level may be given by:
-
min{Combined Staffing∈[a,b]}+WL(a)/{Time Open∈[a,b]} - In each iteration, the deferred
communication engine 210 may determine if the value -
- is above or below the optimal level for the level and then the deferred
communication engine 210 may update the bounds accordingly. - Continuing the example shown in
FIGS. 3A and 3B , the initial value for the upper bound 217 calculated by the deferredcommunication engine 210 is -
- and the initial value for the lower bound 218 calculated by the deferred
communication engine 210 is -
- The level is
-
- In some embodiments, for each interval in [a, b], in the case that the combined
staffing requirements 213 are smaller than the tentative level, the deferredcommunication engine 210 may subtract the difference between the level and thestaffing requirement 213 from thestaffing requirement 213 attributable to theworkload 214. If thecontact center 150 is not functioning the whole 15 minutes of the interval, the deferredcommunication engine 210 may multiply the difference by the fraction of the interval that thecontact center 150 is functioning before subtracting. - If the deferred
communication engine 210 has used up thewhole staffing requirement 213 attributable to theworkload 214 for the interval, meaning that the deferredcommunication engine 210 was not able to fill up the subsequent intervals up to the current level, the deferredcommunication engine 210 may lower the upper bound 218 and make it equal to the tentative level. If the deferredcommunication engine 210 uses up thewhole staffing requirement 213 attributable to theworkload 214 at the current level, the deferredcommunication engine 210 may increase the lower bound 218 and make it equal to the tentative level. - Continuing the example above, using the level 1.25, the deferred
communication engine 210 may obtain anew staffing requirement 213 for the deferredqueue 123 equal to (0, 0, 0.25, 1.25), so all the workload was not used. Then, the deferredcommunication engine 210 may update the lower bound 218 to 1.25, and may repeat the process one more time, obtaining thestaffing requirement 213 of (0, 0, 0.625, 1.375). The deferredcommunication engine 210 may then continue to the next interval, as described below. - Once the difference between the upper bound 217 and the lower bound 218 is less than a
delta 219, the deferredcommunication engine 210 may assign the value of the upper bound 217 as the optimal level. The deferredcommunication engine 210 may then distribute thestaffing requirement 213 attributable to theworkload 214 from the deferredqueue 123 in the current 15-minute interval, through the subsequent intervals up to the goal time, and may update the combinedstaffing requirement 213. - Returning to the example described above, the deferred
communication engine 210 may distribute thestaffing requirement 213 attributable to theworkload 214 from the second interval, considering that the combinedstaffing requirement 213 in that moment is (2, 1.625, 1.375, 1). The deferredcommunication engine 210 may calculate the value of the upper bound 217 as -
- and the value of the lower bound 218 as
-
- Because the deferred
communication engine 210 cannot use up all thestaffing requirement 213 attributable to theworkload 214 in the interval when the level is 1.75, 2 may be used as the optimal level. The deferredcommunication engine 210 may generate the final set ofstaffing requirements 213 for the deferredqueue 123 as (0, 0, 1, 2, 1, 0, 0, 0). - The final set of
staffing requirements 213 for the deferredqueue 123 may be obtained by the deferredcommunication engine 210 subtracting the set ofstaffing requirements 213 of the immediate queue from the set of combinedstaffing requirements 213. - Note that after generating the set of combined
staffing requirements 213, the deferredcommunication engine 210 may further consider additional deferredqueues 123 for the intervals. The deferredcommunication engine 210 may use the set of combinedstaffing requirements 213 in place of the set ofstaffing requirements 213 for theimmediate queue 125 in the above described algorithm and may generate a new set of combinedstaffing requirements 213 that is based on both of the deferredqueues 123 and the originalimmediate queue 125. In this way the deferredcommunication engine 210 may generate a set of combinedstaffing requirements 213 for animmediate queue 125 and arbitrary numbers of deferredqueues 123. -
FIG. 5 is an illustration of anexample method 500 for determining an optimal staffing requirement for a deferred queue in view of an immediate queue and for scheduling agents based on the optimal staffing requirement. Themethod 500 may be implemented by the deferredcommunication engine 210 of thecontact center 150. - At 510, a first set of staffing requirements is received. The first set of
staffing requirements 213 may be received by the deferredcommunication engine 210 from theWFM application 154. The first set ofstaffing requirements 213 may be for animmediate queue 125. The set ofstaffing requirements 213 may be associated with a plurality of intervals. Thestaffing requirement 213 for an interval may be the number ofagents 120 that are needed to work on theimmediate queue 125 to achieve a desired service level goal for the interval. The first set ofstaffing requirements 213 may have been generated by theWFM application 154 based on a forecast of how busy theimmediate queue 125 is likely to be for the intervals of the plurality of intervals. - At 515, workloads are received. The
workloads 214 may be received by the deferredcommunication engine 210 from theWFM application 154. Theworkloads 214 may be for a deferredqueue 123. Theworkloads 214 may be associated with the same plurality of intervals as the first set ofstaffing requirements 213. Eachworkload 214 may be calculated using a forecast for the deferredqueue 123. Theworkloads 214 may be normalized, for example. - At 517, a second set of staffing requirements is generated. The second set of
staffing requirements 213 may be generated by the deferredcommunication engine 210 based on theworkloads 214. - At 520, for one or more intervals, at least a portion of the staffing requirement of the second set of staffing requirements for the interval is distributed to a subsequent interval. The portion of the
staffing requirement 213 may be distributed by the deferredcommunication engine 210 to a next or subsequent interval within the goal time associated with the deferredqueue 123. As described above, communications in the deferredqueue 123 have to be handled by their associated goal time. - Depending on the embodiment, some or all of the portions of the
staffing requirement 213 attributable to theworkload 214 may be distributed to other intervals such that the combinedstaffing requirements 213 from the first set ofstaffing requirements 213 and the second set ofstaffing requirements 213 for each interval is evened out. Put another way, the deferred communication may redistribute thestaffing requirements 213 of the intervals in a way that minimizes the differences between the sums of thestaffing requirement 213 from the first set ofstaffing requirements 213 and the staffing requirement from the second set ofstaffing requirement 213 for each interval. - At 525, one or more agents are scheduled. The one or
more agents 120 may be scheduled by theWFM application 154 according to the second set ofstaffing requirements 213. -
FIG. 6 is an illustration of anexample method 600 for determining an optimal staffing requirement for a deferred queue in view of an immediate queue and for scheduling agents based on the optimal staffing requirement. Themethod 600 may be implemented by the deferredcommunication engine 210 of thecontact center 150. - At 610, a first set of staffing requirements is received. The first set of
staffing requirements 213 may be received by the deferredcommunication engine 210 from theWFM application 154. The first set ofstaffing requirements 213 may be for animmediate queue 125. The first set ofstaffing requirements 213 may be associated with a plurality of intervals. Thestaffing requirement 213 for an interval may be the number ofagents 120 that are needed to work on theimmediate queue 125 to achieve a desired service level goal for the interval. - At 615, workloads are received. The
workloads 214 may be received by the deferredcommunication engine 210 from theWFM application 154. Theworkloads 214 may be for a deferredqueue 123. Theworkloads 214 may be associated with the same plurality of intervals as the set ofstaffing requirements 213. Eachworkload 214 may be calculated using a forecast for the deferredqueue 123. Theworkloads 214 may be normalized so that they represent a number ofagents 120, for example. - At 617, a second set of staffing requirements is generated. The second set of
staffing requirements 213 may be generated by the deferredcommunication engine 210 based on theworkloads 214. - At 620, an optimal level is determined. Each optimal level may be determined by the deferred
communication engine 210. The optimal level may be the level that staffing requirements of the second set ofstaffing requirements 213 of the deferredqueue 123 may be redistributed to smooth or even out the sums of thestaffing requirements 213 for each interval. - At 625, for one or more intervals, at least a portion of the staffing requirement of the second set of staffing requirements for the interval is distributed to a subsequent interval based on the optimal levels. The portions may be distributed until, for as many intervals as possible, a sum of the
staffing requirements 213 for the interval is at or below the optimal levels. - Depending on the embodiment, each optimal level may be determined by the deferred
communication engine 210 adjusting an upper bound 217 and a lower bound 218 based on theworkloads 214 and thestaffing requirements 213 until the upper bound 217 and the lower bound 218 are within adelta 219. The upper bound 217 may then be used as the optimal level. - At 630, one or more agents are scheduled. The one or
more agents 120 may be scheduled by theWFM application 154 according to the second set ofstaffing requirements 213. -
FIG. 7 is an illustration of anexample method 700 for generating a combined staffing requirement for a deferred and an immediate queue. Themethod 700 may be implemented by the deferredcommunication engine 210 of thecontact center 150. - At 710, a set of staffing requirements is received. The set of
staffing requirements 213 may be received by the deferredcommunication engine 210 from theWFM application 154. The set ofstaffing requirements 213 may be for animmediate queue 125. The set ofstaffing requirements 213 may be associated with a plurality of intervals. Thestaffing requirement 213 for an interval may be the number ofagents 120 that are needed to work on theimmediate queue 125 to achieve a desired service level goal for the interval. - At 715, workloads are received. The
workloads 214 may be received by the deferredcommunication engine 210 from theWFM application 154. Theworkloads 214 may be for a deferredqueue 123. Theworkloads 214 may be associated with the same plurality of intervals as the set ofstaffing requirements 213. Eachworkload 214 may be calculated using a forecast for the deferredqueue 123. Theworkloads 214 may be normalized so that they represent a number ofagents 120, for example. - At 720, a set of combined staffing requirements is generated. The set of combined staffing requirements may be generated by the deferred
communication engine 210 by, for each interval of the plurality of intervals, generating a combinedstaffing requirement 213 using thestaffing requirement 213 and theworkload 214 for the interval. - At 725, the combined
staffing requirements 213 for some of the intervals are redistributed to other subsequent intervals. The combined staffing requirements may be redistributed by the deferredcommunication engine 210 by, for each interval of the plurality of intervals, when the combinedstaffing requirement 213 is above an optimal level, distributing at least a portion of the combinedstaffing requirement 213 attributable to theworkloads 214 of the deferredqueue 123 from the interval to the combinedstaffing requirement 213 of a subsequent interval. -
FIG. 8 is an illustration of anexample method 800 for generating a set of combined staffing requirements for an immediate queue and a plurality of deferred queues. Themethod 800 may be implemented by the deferredcommunication engine 210 of thecontact center 150. - At 810, a first set of combined staffing requirements is received. The first set of combined
staffing requirements 213 may be received by the deferredcommunication engine 210. The first set of combinedstaffing requirements 213 may be for animmediate queue 125 and adeferred queue 123. The first set of combinedstaffing requirements 213 may be associated with a plurality of intervals and may include a combinedstaffing requirement 213 for each interval. - At 815, workloads are received. The
workloads 214 may be received by the deferredcommunication engine 210 from theWFM application 154. Theworkloads 214 may be for a deferredqueue 123. Theworkloads 214 may be associated with the same plurality of intervals as the first set of combinedstaffing requirements 213. - At 820, a second set of combined staffing requirements is generated. The second set of combined
staffing requirement 213 may be generated by the deferredcommunication engine 210 by, for each interval of the plurality of intervals, generating a new combinedstaffing requirement 213 using thestaffing requirement 213 generated from theworkload 214 for the interval and the combinedstaffing requirement 213 from the first set of combinedstaffing requirements 213 for the interval. - At 825, the combined staffing requirements for some of the intervals are redistributed to other subsequent intervals for the second set of combined
staffing requirements 213. The combinedstaffing requirements 213 may be redistributed by the deferredcommunication engine 210 by, for each interval of the plurality of intervals, when the combinedstaffing requirement 213 is above an optimal level, distributing at least a portion of the combinedstaffing requirement 213 attributable to theworkload 214 of the deferredqueue 123 from the interval to the combinedstaffing requirement 213 of a subsequent interval. -
FIG. 9 is an illustration of anexample method 900 for determining whether or not to generate a staffing requirement for a queue using the deferred queue algorithm. Themethod 900 may be implemented by the deferredcommunication engine 210 of thecontact center 150. - At 910, an indication of a first queue is received. The indication of the first queue may be received by the deferred
communication engine 210. The first queue may be associated with a first goal time that is the length of time that communications associated with the first queue should be handled. - At 915, an indication of a second queue is received. The indication of the second queue may be received by the deferred
communication engine 210. The second queue may be associated with a second goal time that is the length of time that communications associated with the second queue should be handled. - At 920, whether the first queue is an immediate queue and the second queue is a deferred queue is determined. The determination may be made by the deferred
communication engine 210 using the first goal time, the second goal time and a threshold goal time. If the first goal time is below the threshold goal time, then the first queue is an immediate queue. If the second goal time is above the threshold goal time, then the second queue is a deferred queue. The threshold goal time may be set by an administrator. An example threshold goal time is 30 minutes. - If the first queue is an immediate queue and the second queue is a deferred queue then the
method 900 may continue to 925 where a staffing requirement for the deferred queue may be generated using the deferred queue algorithm described herein. Else, themethod 900 may continue at 930 where another algorithm may be used. -
FIG. 10 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. - 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.
- 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.
- With reference to
FIG. 10 , an exemplary system for implementing aspects described herein includes a computing device, such ascomputing device 1000. In its most basic configuration,computing device 1000 typically includes at least oneprocessing unit 1002 andmemory 1004. Depending on the exact configuration and type of computing device,memory 1004 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 inFIG. 10 by dashedline 1006. -
Computing device 1000 may have additional features/functionality. For example,computing device 1000 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 inFIG. 10 byremovable storage 1008 and non-removable storage 1010. -
Computing device 1000 typically includes a variety of tangible computer readable media. Computer readable media can be any available tangible media that can be accessed bydevice 1000 and includes both volatile and non-volatile media, removable and non-removable media. - 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 1004,removable storage 1008, and non-removable storage 1010 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 bycomputing device 1000. Any such computer storage media may be part ofcomputing device 1000. -
Computing device 1000 may contain communications connection(s) 1012 that allow the device to communicate with other devices.Computing device 1000 may also have input device(s) 1014 such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 1016 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. - Returning to
FIG. 1 , agent(s) 120 and customers 110 may communicate with each other and with other services over thenetwork 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 thenetwork 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 thecontact center 150. - The
contact center 150 itself may be in a single location or may be cloud-based and distributed over a plurality of locations. Thecontact center 150 may include servers, databases, and other components. In particular, thecontact 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. - 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.
- 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. - 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).
- 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.
- 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.
- 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.
Claims (20)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/738,576 US20210218838A1 (en) | 2020-01-09 | 2020-01-09 | Systems and methods for scheduling deferred queues |
US16/744,391 US11146681B2 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
US16/744,397 US20210218844A1 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
US16/744,395 US20210218843A1 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/738,576 US20210218838A1 (en) | 2020-01-09 | 2020-01-09 | Systems and methods for scheduling deferred queues |
Related Child Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/744,391 Continuation US11146681B2 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
US16/744,395 Continuation US20210218843A1 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
US16/744,397 Continuation US20210218844A1 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210218838A1 true US20210218838A1 (en) | 2021-07-15 |
Family
ID=76760598
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/738,576 Abandoned US20210218838A1 (en) | 2020-01-09 | 2020-01-09 | Systems and methods for scheduling deferred queues |
US16/744,391 Active 2040-02-22 US11146681B2 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
US16/744,395 Abandoned US20210218843A1 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
US16/744,397 Abandoned US20210218844A1 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/744,391 Active 2040-02-22 US11146681B2 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
US16/744,395 Abandoned US20210218843A1 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
US16/744,397 Abandoned US20210218844A1 (en) | 2020-01-09 | 2020-01-16 | Systems and methods for scheduling deferred queues |
Country Status (1)
Country | Link |
---|---|
US (4) | US20210218838A1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230013842A1 (en) * | 2019-12-20 | 2023-01-19 | Hewlett-Packard Development Company, L.P. | Human assisted virtual agent support |
US20220027744A1 (en) * | 2020-07-22 | 2022-01-27 | Accenture Global Solutions Limited | Resource data modeling, forecasting and simulation |
US11954619B1 (en) * | 2022-01-12 | 2024-04-09 | Trueblue, Inc. | Analysis and processing of skills related data from a communications session with improved latency |
US11856118B1 (en) | 2022-09-29 | 2023-12-26 | The Toronto-Dominion Bank | Methods for configuring server communications |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754333B1 (en) * | 2000-04-27 | 2004-06-22 | Avaya Technology Corp. | Wait time prediction arrangement for non-real-time customer contacts |
US6822945B2 (en) * | 2000-11-08 | 2004-11-23 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for anticipating and planning communication-center resources based on evaluation of events waiting in a communication center master queue |
US8015042B2 (en) * | 2001-04-02 | 2011-09-06 | Verint Americas Inc. | Methods for long-range contact center staff planning utilizing discrete event simulation |
CA2447096C (en) * | 2001-05-17 | 2018-06-12 | Bay Bridge Decision Technologies, Inc. | System and method for generating forecasts and analysis of contact center behavior for planning purposes |
US9137366B2 (en) * | 2004-03-29 | 2015-09-15 | West Corporation | Maintaining a work schedule |
US20060062376A1 (en) * | 2004-09-22 | 2006-03-23 | Dale Pickford | Call center services system and method |
US8903080B2 (en) * | 2011-06-17 | 2014-12-02 | Avaya Inc. | Goal-based estimated wait time |
US9912816B2 (en) * | 2012-11-29 | 2018-03-06 | Genesys Telecommunications Laboratories, Inc. | Workload distribution with resource awareness |
US9154627B2 (en) * | 2013-05-13 | 2015-10-06 | Genesys Telecommunication Laboratories, Inc. | Activities assignment optimization for multi-skill contact center |
US9378475B2 (en) * | 2014-11-28 | 2016-06-28 | Xerox Corporation | Apparatus and method for call center service level prediction and action |
US20160173691A1 (en) * | 2014-12-10 | 2016-06-16 | Interactive Intelligence Group, Inc. | Method and system for generating staffing requirements for deferred work in a contact center environment |
US9883037B1 (en) * | 2017-06-08 | 2018-01-30 | Aspect Software, Inc. | Systems and methods in an electronic contact management system to estimate required staff levels for multi-skilled agents |
-
2020
- 2020-01-09 US US16/738,576 patent/US20210218838A1/en not_active Abandoned
- 2020-01-16 US US16/744,391 patent/US11146681B2/en active Active
- 2020-01-16 US US16/744,395 patent/US20210218843A1/en not_active Abandoned
- 2020-01-16 US US16/744,397 patent/US20210218844A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20210218843A1 (en) | 2021-07-15 |
US20210218839A1 (en) | 2021-07-15 |
US20210218844A1 (en) | 2021-07-15 |
US11146681B2 (en) | 2021-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11146681B2 (en) | Systems and methods for scheduling deferred queues | |
US20210201226A1 (en) | Systems and methods for predicting and handling slack periods | |
US20210136198A1 (en) | Capacity manager for multi-dimensional presence model to manage call-center agent load | |
US10824979B1 (en) | Systems and methods for optimizing performance metrics for contact centers | |
US11076049B2 (en) | Systems and methods for routing communications to agents based on attributes | |
US10931824B1 (en) | Scheduling agents using skill group weights | |
US20210081968A1 (en) | Systems and methods for predicting and resolving surge periods | |
US11157856B2 (en) | Systems and methods for quality management system deployment | |
US11783246B2 (en) | Systems and methods for workforce management system deployment | |
US20210144259A1 (en) | Systems and methods for scheduling contractor agents based on residuals | |
US20210158266A1 (en) | Systems and methods for automating workforce management systems | |
US10887463B1 (en) | Method of using multi-dimensional presence model to manage call-center agent load | |
US10868914B1 (en) | Capacity manager for multi-dimensional presence model to manage call-center agent load | |
US20210006661A1 (en) | Carrier connect platform within a cloud-based contact center | |
US20210125116A1 (en) | Systems and methods for recommending rules for routing calls | |
US10897539B1 (en) | Method for visual-based programming of self-service workflow |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TALKDESK, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MATIAS, JOAO;STEPANOV, GENNADIY;VALERIANO, FILIPE;AND OTHERS;SIGNING DATES FROM 20200401 TO 20200422;REEL/FRAME:053763/0336 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: HSBC BANK USA, N.A., NEW YORK Free format text: SECURITY INTEREST;ASSIGNOR:TALKDESK, INC.;REEL/FRAME:061878/0034 Effective date: 20221101 |