The present disclosure relates to software for contact centers, and more specifically, to a systems and methods for calculating workforce staffing statistics.
The business of a contact center is to provide rapid and efficient interaction between agents and customers, or prospective customers, using various interaction methods and media, including phone, fax, e-mail and messaging. A manager in a contact center typically uses force management software (FMS) to produce a schedule that includes agents assigned to work activities for specific time periods. During the workday, the FMS produces staffing statistics. The manager uses staffing statistics to adjust the number of agents assigned to particular activities when the contact center performance is either above or below contact center goals (e.g., a desired service level.) If performance exceeds the goals, the manager can reduce the number of agents. If performance does not meet goals, the manager can add more agents to the schedule.
Skills-based routing attempts to find the best available match between the needs of the customer and the various proficiencies or skills of available agents. Providing staffing statistics in a skills-based environment is difficult. One problem is providing an accurate count of agents. A multi-skill agent could be counted against more than one (skill) queue. A conventional FMS simply counts an agent with multiple skills against all queues, resulting in an miscount. Furthermore, a conventional FMS reports one combined count, rather than a count for each skill-related queue.
Systems and methods are disclosed for determining workforce staffing statistics in a contact center. In one embodiment, the method comprises the steps of: receiving a plurality of activity records; and producing staff counts for a staffing interval. Each activity record is associated with an agent. The staff counts are based on at least some of the activity records, and on agent skill sets, and on queue skill sets.
Many aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure.
A contact router 140 distributes or routes contacts (incoming or outgoing) to an agent position. Voice over Internet Protocol (VoIP) calls and computer-based contacts (e.g., chat, email) are routed over one or more data networks, and distributed over network 130 to one of the agent workstations 120. Contact router 140 may include an automatic call distributor (ACD) 120 to route phone contacts. The embodiments described herein will refer to the ACD 120 instead of contact router 140, but analogous contact router actions and operations are intended to be captured by this disclosure.
If an agent is not available to handle a particular call, ACD 120 puts the call into a queue, which effectively places the caller on hold. When an agent is available, ACD 120 connecting the outside trunk line 150 carrying the phone call to one of the agents. More specifically, ACD 120 connects the outside trunk line 150 to the trunk line 160 of the selected agent.
When an agent is ready to handle contacts, the agent first logs into the contact router 140. This login notifies the contact router 140 that the agent is available to generate outgoing contacts or to handle incoming contacts. An agent's state with respect to the router changes throughout the workday, as the agent performs work activities such as handling calls, performing after-call work, and taking breaks. An example list of states includes available, busy, after-call work, and unavailable.
While handling a contact, the agent interacts with one or more applications 170 running on workstation 120. By way of example, workstation applications could provide the agent with access to customer records, product information, ordering status, and transaction history. The applications may access one or more business databases (not shown) via network 130.
The contact center 100 also includes a work force management system (WFMS) 180. WFMS 180 performs many functions. One of these functions is calculating staffing levels and agent schedules based on historical patterns of incoming calls. Another function of WFMS 180 is collecting call center contact statistics and providing this information, both historical and real-time, to the call center supervisor or manager. Some of these statistics are typically displayed on a periodic basis in a “pulse” window. The pulse window is used by a call center manager to obtain a quick summary of call center operations during the last period. One statistic commonly shown in a pulse window is an actual staff count for the last period.
The WFMS 180 also maintains a list of agents and skills associated with each agent. Examples of agent skills include knowledge of a particular product or process (e.g., customer service or sales), and the ability to speak a particular language (e.g., Spanish). This agent-skill association information is provided to contact router 140 so that contact router 140 can route calls based on agent skills, as shown in
As each agent 210 begins work in the contact center, the agent 210 logs in to contact router 140. Contact router 140 uses the agent login information to determine the skills associated with an agent. Each skill is associated with one or more queues 230.
For example, the scenario shown in
The contact router 140 receives incoming contacts and distributes each contact 220 to one of a set of queues 230, where each queue 230 is associated with a particular agent skill. The contacts 220 remain queued until an agent 210 with appropriate skills is available.
To determine in which queue 230 a contact is to be placed, the contact router 140 identifies which agent skills the contact relates to. The contact router 140 makes this determination by classifying the contact based on various parameters, such as customer input (e.g., touchtone or interactive voice recognition) or contact information (e.g. called number or calling number). Based on this classification, the contact is then distributed to a particular queue 230, handled by agents having that skill. Two simple examples of classification are: customer presses 1 for English, or 2 for Spanish; customer dials one toll-free number for Sales or a different number for Customer Service. In that example, contacts classified as “Spanish” would be routed to a queue associated with an agent having a Spanish-speaking skill.
As an agent 210 becomes available to handle a contact 220, the contact router 140 routes, to that agent 210, the next contact in one of the queues 230 associated with that agent 210. In this scenario, all four agents are available to handle contacts. Thus, the first contact in queue #1 (220A) could be routed to agent 210A or agent 210B. The first contact in queue #2 (220B) could be routed to agent 210B or agent 210C. The first contact in queue #3 (220C) could be routed to agent 210C or agent 210D.
The collector 310 receives these events 350 from multiple sources. An event 350 has an occurrence time and a descriptor which includes fields such as event source (e.g., ACD, application monitor), type, and agent identifier. If the event 350 does not include an agent identifier, the collector 310 maps the phone or workstation identifier to a corresponding agent identifier based on information obtained at agent login. Thus, the event 350 indicates, either directly or indirectly, an agent identifier.
From the reported events 350, the collector 310 creates agent activity records 370, and stores them in the database 320. In some embodiments, the activity records 370 stored in the database 320 include an agent identifier, an activity source, an activity code, a start time, a stop time, and a duration.
The database 320 stores various other types of records also. A contact center manager uses the user interface 340 to create agent records 375, each of which includes the skill(s) possessed by each agent. The user interface 340 is also used to create campaign records 380, each of which includes a set of ACD queues which is associated with the campaign.
A person of ordinary skill in the art of software development will understand that the data organization described above is only one way among many to organize database 320. Database 320 can be organized in many other ways that allow the same relationships to be expressed, and all such organizations are intended to be captured by this disclosure.
The staff statistics calculator 330 uses the information provided by the activity records 370, agent records 375, and campaign records 380 to calculate per-queue staff statistics 390 for a staffing interval. The staff statistics calculator 330 produces queue-specific staff counts for the interval, based on activity records, skill sets associated with agents, and skill sets associated with contact queues. In some embodiments, staff statistics 390 include a body, or staff, count. As will be understood by one skilled in the art, a staff count is the number of agents logged into a queue in some time interval. The body count does not take into account the fact that agents with multiple skills can handle multiple queues, and therefore divide their time among specific queues (associated with the agent's skills). In some embodiments, staff statistics 390 include a full-time equivalent (FTE) count. As will also be understood by one skilled in the art, an FTE count is the number of dedicated agents needed to achieve the service levels being seen on a queue. Thus, the FTE count does take into account the way agents divide their time among queues, and that agents with multiple skills are more efficient. In some embodiments, the calculation of staff statistics 390 is run periodically, and in others the calculation is performed on demand.
The staff statistics calculator 330 will now be described in further detail. Although an activity record 370 describes which agent 210 performed the activity, an activity record 370 does not directly specify which of the queues 230 the agent was servicing at the time associated with the activity. Therefore, the staff statistics calculator 330 performs further processing to determine which ACD queue or queues 230 an agent 210 is counted against when calculating the per-queue staff statistics 390.
If the total duration threshold is met, then processing continues at block 440, where a subset of queues is selected. The queue selection process will be described in further detail later, in connection with
where Pc is the probability that a customer will experience a non zero delay, E is the total traffic offered (in Erlangs), and N is the total number of resources available. One of ordinary skill in the art should understand Erlang calculations, so this will not be discussed in further detail.
At block 470, a determination is made as to whether all agents 210 have been processed. If Yes, then processing is finished. If No, then processing continues with the next agent 210, at block 410.
Using information in the agent record 510, a subset 570 of the set 560 of queue records is selected for update as follows. For each queue record 550 in the set 560, the skill list (580) of the queue record 550 is compared with the skill list (590) of the agent record 510. In the case of a queue skill list 580 with no skills, then the queue record 550 is put into the selection subset 570. Otherwise, the matching queue record 550 goes into the selection subset 570 if all skills in the queue skill list 580 are found in the agent skill list 590. Instead of adding queues to an initially-empty selection subset, an alternative embodiment could instead produce a selection set by removing queues with non-matching skills from the original set 560 of queue records.
For example, in the scenario shown in
The agent skill list 590 includes two skills: 2 and 5. Only one of the four queues has a skill list 580 that includes both skill 2 and skill 5: queue 550A. Thus, queue 550A goes into the selection subset 570. Queue 550D also goes into the selection subset 570 because queue 550D has no skills in the queue skill list 580.
Another implementation of queue selection process 440 (not shown) handles distributed campaigns. A distributed campaign uses at least one distributed queue, which is represented as a parent queue having a list of (normal) child queues. In this implementation, queue selection process 440 further expands the selection subset 570 by including in the selection subset 570 the parent of each child queue record. Thus, the staff statistics 390 are incremented for the parent queue as well as the child queue.
In another variation of staff statistics calculator 330, each contact queue 230 is associated with a media type (e.g., phone, e-mail, or chat). The staff statistics calculator 330 in this embodiment computes the staff counts for a particular media, or across all media (a feature called “combined staffing”.) When this multi-media embodiment is combined with a distributed campaign embodiment, the staff statistics 390 for the child queue are incremented only if that queue is associated with the same data source as the agent under consideration.
The systems and methods for calculating workforce staffing statistics from activity records disclosed herein can be implemented in software, hardware, or a combination thereof. In some embodiments, the system and/or method is implemented in software that is stored in a memory and that is executed by a suitable microprocessor situated in a computing device. However, the systems and methods can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device. Such instruction execution systems include any computer-based system, processor-containing system, or other system that can fetch and execute the instructions from the instruction execution system. In the context of this disclosure, a “computer-readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by, or in connection with, the instruction execution system. The computer readable medium can be, for example but not limited to, a system or propagation medium that is based on electronic, magnetic, optical, electromagnetic, infrared, or semiconductor technology. The functionality could also be implemented in logic embodied in hardware or software-configured media.
Specific examples of a computer-readable medium using electronic technology would include (but are not limited to) the following: an electrical connection (electronic) having one or more wires; a random access memory (RAM); a read-only memory (ROM); an erasable programmable read-only memory (EPROM or Flash memory). A specific example using magnetic technology includes (but is not limited to) a portable computer diskette. Specific examples using optical technology includes (but are not limited to): an optical fiber; and a portable compact disk read-only memory (CD-ROM).
Any process descriptions or blocks in flowcharts should be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. As would be understood by those of ordinary skill in the art of the software development, alternate embodiments are also included within the scope of the disclosure. In these alternate embodiments, functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.
This description has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Obvious modifications or variations are possible in light of the above teachings. The embodiments discussed, however, were chosen to illustrate the principles of the disclosure, and its practical application. The disclosure is thus intended to enable one of ordinary skill in the art to use the disclosure, in various embodiments and with various modifications, as are suited to the particular use contemplated. All such modifications and variation are within the scope of this disclosure, as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly and legally entitled.
Number | Name | Date | Kind |
---|---|---|---|
3594919 | De Bell et al. | Jul 1971 | A |
3705271 | De Bell et al. | Dec 1972 | A |
4510351 | Costello et al. | Apr 1985 | A |
4684349 | Ferguson et al. | Aug 1987 | A |
4694483 | Cheung | Sep 1987 | A |
4763353 | Canale et al. | Aug 1988 | A |
4815120 | Kosich | Mar 1989 | A |
4924488 | Kosich | May 1990 | A |
4953159 | Hayden et al. | Aug 1990 | A |
5016272 | Stubbs et al. | May 1991 | A |
5101402 | Chiu et al. | Mar 1992 | A |
5117225 | Wang | May 1992 | A |
5210789 | Jeffus et al. | May 1993 | A |
5239460 | LaRoche | Aug 1993 | A |
5241625 | Epard et al. | Aug 1993 | A |
5267865 | Lee et al. | Dec 1993 | A |
5299260 | Shaio | Mar 1994 | A |
5311422 | Loftin et al. | May 1994 | A |
5315711 | Barone et al. | May 1994 | A |
5317628 | Misholi et al. | May 1994 | A |
5347306 | Nitta | Sep 1994 | A |
5388252 | Dreste et al. | Feb 1995 | A |
5396371 | Henits et al. | Mar 1995 | A |
5432715 | Shigematsu et al. | Jul 1995 | A |
5465286 | Clare et al. | Nov 1995 | A |
5475625 | Glaschick | Dec 1995 | A |
5485569 | Goldman et al. | Jan 1996 | A |
5491780 | Fyles et al. | Feb 1996 | A |
5499291 | Kepley | Mar 1996 | A |
5535256 | Maloney et al. | Jul 1996 | A |
5572652 | Robusto et al. | Nov 1996 | A |
5577112 | Cambray et al. | Nov 1996 | A |
5590171 | Howe et al. | Dec 1996 | A |
5597312 | Bloom et al. | Jan 1997 | A |
5619183 | Ziegra et al. | Apr 1997 | A |
5696906 | Peters et al. | Dec 1997 | A |
5717879 | Moran et al. | Feb 1998 | A |
5721842 | Beasley et al. | Feb 1998 | A |
5742670 | Bennett | Apr 1998 | A |
5748499 | Trueblood | May 1998 | A |
5778182 | Cathey et al. | Jul 1998 | A |
5784452 | Carney | Jul 1998 | A |
5790798 | Beckett, II et al. | Aug 1998 | A |
5796952 | Davis et al. | Aug 1998 | A |
5809247 | Richardson et al. | Sep 1998 | A |
5809250 | Kisor | Sep 1998 | A |
5825869 | Brooks et al. | Oct 1998 | A |
5835572 | Richardson, Jr. et al. | Nov 1998 | A |
5862330 | Anupam et al. | Jan 1999 | A |
5864772 | Alvarado et al. | Jan 1999 | A |
5884032 | Bateman et al. | Mar 1999 | A |
5907680 | Nielsen | May 1999 | A |
5918214 | Perkowski | Jun 1999 | A |
5923746 | Baker et al. | Jul 1999 | A |
5933811 | Angles et al. | Aug 1999 | A |
5944791 | Scherpbier | Aug 1999 | A |
5948061 | Merriman et al. | Sep 1999 | A |
5958016 | Chang et al. | Sep 1999 | A |
5964836 | Rowe et al. | Oct 1999 | A |
5978648 | George et al. | Nov 1999 | A |
5982857 | Brady | Nov 1999 | A |
5987466 | Greer et al. | Nov 1999 | A |
5990852 | Szamrej | Nov 1999 | A |
5991373 | Pattison et al. | Nov 1999 | A |
5991796 | Anupam et al. | Nov 1999 | A |
6005932 | Bloom | Dec 1999 | A |
6009429 | Greer et al. | Dec 1999 | A |
6014134 | Bell et al. | Jan 2000 | A |
6014647 | Nizzari et al. | Jan 2000 | A |
6018619 | Allard et al. | Jan 2000 | A |
6035332 | Ingrassia et al. | Mar 2000 | A |
6038544 | Machin et al. | Mar 2000 | A |
6039575 | L'Allier et al. | Mar 2000 | A |
6057841 | Thurlow et al. | May 2000 | A |
6058163 | Pattison et al. | May 2000 | A |
6061798 | Coley et al. | May 2000 | A |
6072860 | Kek et al. | Jun 2000 | A |
6076099 | Chen et al. | Jun 2000 | A |
6078894 | Clawson et al. | Jun 2000 | A |
6091712 | Pope et al. | Jul 2000 | A |
6108711 | Beck et al. | Aug 2000 | A |
6122665 | Bar et al. | Sep 2000 | A |
6122668 | Teng et al. | Sep 2000 | A |
6130668 | Stein | Oct 2000 | A |
6138139 | Beck et al. | Oct 2000 | A |
6144991 | England | Nov 2000 | A |
6146148 | Stuppy | Nov 2000 | A |
6151622 | Fraenkel et al. | Nov 2000 | A |
6154771 | Rangan et al. | Nov 2000 | A |
6157808 | Hollingsworth | Dec 2000 | A |
6171109 | Ohsuga | Jan 2001 | B1 |
6182094 | Humpleman et al. | Jan 2001 | B1 |
6195679 | Bauersfeld et al. | Feb 2001 | B1 |
6201948 | Cook et al. | Mar 2001 | B1 |
6211451 | Tohgi et al. | Apr 2001 | B1 |
6225993 | Lindblad et al. | May 2001 | B1 |
6230197 | Beck et al. | May 2001 | B1 |
6236977 | Verba et al. | May 2001 | B1 |
6244758 | Solymar et al. | Jun 2001 | B1 |
6282548 | Burner et al. | Aug 2001 | B1 |
6286030 | Wenig et al. | Sep 2001 | B1 |
6286046 | Bryant | Sep 2001 | B1 |
6288753 | DeNicola et al. | Sep 2001 | B1 |
6289340 | Puram et al. | Sep 2001 | B1 |
6301462 | Freeman et al. | Oct 2001 | B1 |
6301573 | McIlwaine et al. | Oct 2001 | B1 |
6324282 | McIlwaine et al. | Nov 2001 | B1 |
6347374 | Drake et al. | Feb 2002 | B1 |
6351467 | Dillon | Feb 2002 | B1 |
6353851 | Anupam et al. | Mar 2002 | B1 |
6360250 | Anupam et al. | Mar 2002 | B1 |
6370574 | House et al. | Apr 2002 | B1 |
6404857 | Blair et al. | Jun 2002 | B1 |
6411989 | Anupam et al. | Jun 2002 | B1 |
6418471 | Shelton et al. | Jul 2002 | B1 |
6459787 | McIlwaine et al. | Oct 2002 | B2 |
6487195 | Choung et al. | Nov 2002 | B1 |
6493758 | McLain | Dec 2002 | B1 |
6502131 | Vaid et al. | Dec 2002 | B1 |
6510220 | Beckett, II et al. | Jan 2003 | B1 |
6535909 | Rust | Mar 2003 | B1 |
6542602 | Elazar | Apr 2003 | B1 |
6546405 | Gupta et al. | Apr 2003 | B2 |
6560328 | Bondarenko et al. | May 2003 | B1 |
6583806 | Ludwig et al. | Jun 2003 | B2 |
6606657 | Zilberstein et al. | Aug 2003 | B1 |
6665644 | Kanevsky et al. | Dec 2003 | B1 |
6674447 | Chiang et al. | Jan 2004 | B1 |
6683633 | Holtzblatt et al. | Jan 2004 | B2 |
6697858 | Ezerzer et al. | Feb 2004 | B1 |
6724887 | Eilbacher et al. | Apr 2004 | B1 |
6738456 | Wrona et al. | May 2004 | B2 |
6757361 | Blair et al. | Jun 2004 | B2 |
6766012 | Crossley | Jul 2004 | B1 |
6772396 | Cronin et al. | Aug 2004 | B1 |
6775377 | McIlwaine et al. | Aug 2004 | B2 |
6792575 | Samaniego et al. | Sep 2004 | B1 |
6810414 | Brittain | Oct 2004 | B1 |
6820083 | Nagy et al. | Nov 2004 | B1 |
6823384 | Wilson et al. | Nov 2004 | B1 |
6870916 | Henrikson et al. | Mar 2005 | B2 |
6901438 | Davis et al. | May 2005 | B1 |
6959078 | Eilbacher et al. | Oct 2005 | B1 |
6965886 | Govrin et al. | Nov 2005 | B2 |
7418094 | Golitsin et al. | Aug 2008 | B2 |
7478051 | Nourbakhsh et al. | Jan 2009 | B2 |
20010000962 | Rajan | May 2001 | A1 |
20010032335 | Jones | Oct 2001 | A1 |
20010043697 | Cox et al. | Nov 2001 | A1 |
20020018554 | Jensen et al. | Feb 2002 | A1 |
20020038363 | MacLean | Mar 2002 | A1 |
20020052948 | Baudu et al. | May 2002 | A1 |
20020065911 | Von Klopp et al. | May 2002 | A1 |
20020065912 | Catchpole et al. | May 2002 | A1 |
20020128925 | Angeles | Sep 2002 | A1 |
20020143597 | Andre et al. | Oct 2002 | A1 |
20020143925 | Pricer et al. | Oct 2002 | A1 |
20020165954 | Eshghi et al. | Nov 2002 | A1 |
20030055883 | Wiles et al. | Mar 2003 | A1 |
20030079020 | Gourraud et al. | Apr 2003 | A1 |
20030144900 | Whitmer | Jul 2003 | A1 |
20030154240 | Nygren et al. | Aug 2003 | A1 |
20030177017 | Boyer et al. | Sep 2003 | A1 |
20040100507 | Hayner et al. | May 2004 | A1 |
20040165717 | McIlwaine et al. | Aug 2004 | A1 |
20050125439 | Nourbakhsh et al. | Jun 2005 | A1 |
20050138560 | Lee et al. | Jun 2005 | A1 |
20060282301 | Olson | Dec 2006 | A1 |
20070071222 | Flockhart et al. | Mar 2007 | A1 |
Number | Date | Country |
---|---|---|
0453128 | Oct 1991 | EP |
0773687 | May 1997 | EP |
0989720 | Mar 2000 | EP |
2369263 | May 2002 | GB |
WO 9843380 | Nov 1998 | WO |
WO 0016207 | Mar 2000 | WO |