This application includes subject matter that is protected by copyright. All rights are reserved.
1. Technical Field
The present invention relates generally to computer-implemented agent or employee scheduling in a work center environment.
2. Background of the Related Art
Workforce management systems are well-known in the prior art. Such systems integrate many management functions, such as workforce forecasting and scheduling, skill planning and scheduling, multimedia contact management, real-time schedule adherence, and the like. A representative commercial system of this type is TotalView® workforce management, from IEX Corporation.
Managing time off requests quickly and fairly can be a huge administrative task for contact centers. Every decision can directly impact operational costs and affect employee morale. It is known in the prior art to provide a workforce management system with a vacation and holiday planning module that allows employees to have more control over their scheduled time off, and that enables a system administrator to streamline vacation and holiday planning using objective, rules-based approvals. Time off rules determine how many agents can take time off on a given day, whether partial-day time off is allowed, and date ranges for which time off can be requested. Time off rules can be unique for different areas of the contact center, so that certain skills, shifts or sites can manage the availability of time off independently. Typically, agents or supervisors access display screens on designated workstations to make or modify selections. Once vacation time is approved, the system automatically includes granted vacation time when creating schedules. By integrating vacation data into its schedule generation process, the contact center does not compromise service levels or risk being understaffed.
It is also known in the art to implement fair, automatic work assignment rotations for a set of agents by taking into account their previous work history on so-called “fairness” days. Thus, within the contact center environment, weekend days (e.g., Saturday, Sunday, or Saturday-Sunday) sometimes are identified as “fairness” days, as such days typically reflect days that most agents might prefer not to work (although, of course, other agents might want to work such days for higher pay, or other reasons). An agent who ends up being scheduled to work a fairness day is given a credit for that day, and fairness day credit history is maintained by the system. When it is necessary to schedule agents for subsequent fairness days, such systems may rank order the available pool of agents by taking credits and other information into account. Thus, for example, if more agents volunteer for a fairness day than are required, then the most senior agents typically are selected (honoring other selection restrictions and processing). If fewer agents volunteer than are required, however, then the least senior agents are selected (honoring other selection restrictions and processing).
While workforce management system fairness processing provides significant advantages, there is a desire to provide enhancements to such techniques.
A workforce management system implements fairness processing. In one embodiment, the system provides one or more display interfaces indexed by day of week or given holiday dates, and through which a user defines a fairness policy with respect to each such day or dates. In use, the system compares a fairness policy with historical credit data to generate a rank order of agent eligibility to fulfill a contact center schedule for a given day or holiday date. This rank order of agent availability is then provided to a scheduler to enable generation of one or more contact center schedules for the given day or holiday date. The day of week and holiday fairness may be carried out independently, or in a combined manner (wherein holiday dates override day of week fairness processing). The system also enables fairness days or dates to be processed according to a user-defined priority.
In another embodiment, a workforce management system implements enhanced any-day-of-the-week or weekend fairness processing. To this end, the system provides a display interface indexed by any day of the week or weekend and through which a user defines an any-day-of-the-week or weekend fairness policy. Preferably, the day of the week or weekend fairness policy is associated with one or more user-defined sort options that order agents (a) when there are not enough volunteers to meet a number of agents required to work, or (b) when there are more volunteers than there are agents needed to meet requirements. In use, the system compares a day of the week or weekend fairness policy with historical credit data to generate a rank order of agent eligibility to fulfill a contact center schedule for a given day of the week or weekend. This rank order of agent availability is then provided to a scheduler to enable generation of one or more contact center schedules for the given day of the week or weekend.
In another embodiment, a workforce management system implements holiday fairness processing. To this end, the system provides a display interface indexed by holiday and through which a user defines a holiday fairness policy. Preferably, the holiday fairness policy is associated with one or more user-defined sort options that order agents (a) when there are not enough volunteers to meet a number of agents required to work, or (b) when there are more volunteers than there are agents needed to meet requirements. In use, the system compares a holiday fairness policy with historical credit data to generate a rank order of agent eligibility to fulfill a contact center schedule for a given holiday. This rank order of agent availability is then provided to a scheduler to enable generation of one or more contact center schedules for the given holiday.
As noted above, the day-of-the-week and holiday fairness processing may be combined. Thus, for example, if a holiday date (as a given day of the week) is marked as using fairness, then preferably day of week or weekend fairness is not processed for this date (i.e. the holiday fairness takes precedence or overrules the day of week or weekend fairness rotation). Moreover, when determining whether agents worked a day of the week or weekend, if the date was a holiday that used fairness, such date is not considered for the day of week or weekend fairness rotation.
According to another feature of the invention, fairness days may be processed in a priority order, which may be designated by the agent. More than one day may have the same priority order, in which case the days are processed together as a group. For each fairness priority value, preferably the schedule generation process determines which agent will work the fairness days in that group and which agents will be scheduled off. When a subsequent priority value is being processing, the schedule generation process preferably does not alter the fairness assignments of fairness days with a higher priority.
The foregoing has outlined some of the more pertinent features of the invention. These features should be construed to be merely illustrative. Many other beneficial results can be attained by applying the disclosed invention in a different manner or by modifying the invention as will be described.
For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
In the following discussion, the invention is described in the context of a contact center environment, although it should be understood that the invention can be practiced in other types of environments such as, without limitation, sales force environments, field service environments, manufacturing environments, airports, airlines, government agencies, casinos, banks, retail stores, warehouses, and other types of environments wherein entities (agents, employees, contractors, other persons, or the like) work according to assigned schedules. In a contact center, the environment generally comprises an automatic call distributor (ACD), and one or more multimedia server(s) coupled to a host computer via a computer network. The ACD is coupled to a communications network. The ACD and multimedia server(s) generally provide routing capabilities for incoming voice calls (via the ACD) and other contacts (via the multimedia server), such as faxes, email, voice mail, web requests, web call-back requests, web chats, web voice calls, web video calls, and the like. For ease of discussion, the persons who work at the contact center are referred to herein variously as “agents” or “employees.” These designations are used interchangeably within the following description. Of course, this nomenclature is not meant to be taken to limit the invention in any way, as the word “employee” or the word “agent” is meant to be broadly construed to include any person regardless of a particular legal status. An entity need not actually handle contacts, of course. A “schedule” is any ordered list of times at which given events or activities are planned to occur.
Referring to
The workforce management system (WMS) 126 is a suite of one or more software-driven systems that provide workforce forecasting and scheduling, skill planning and scheduling, multimedia contact management, real-time schedule adherence, and the like, and that provides an interface to the database 122. A representative commercial system of this type is TotalView® workforce management, from IEX Corporation. The workforce management system typically includes a holiday and vacation planning module that implements fairness processing 128 in a known manner. In particular, the module enables a system administrator (such as a work supervisor) the ability to streamline vacation and holiday planning using objective, rules-based approvals. Time off rules determine how many agents can take time off on a given day, whether partial-day time off is allowed, and date ranges for which time off can be requested. Time off rules can be unique for different areas of the contact center, so that certain skills, shifts or sites can manage the availability of time off independently. Agents or supervisors access display screens on designated workstations to make or modify selections. Once vacation time is approved, the system automatically includes granted vacation time when creating schedules. The fairness processing 128 is a known function. In particular, as described above, it is known in the art to implement fair, automatic work assignment rotations for a set of agents by taking into account their previous work history on so-called “fairness” days. Thus, within the contact center environment, various days (e.g., a weekend) are identified as “fairness” days, as such days typically reflect days that most agents might prefer not to work. An agent who ends up being scheduled to work (and does work) a fairness day is given a credit for that day, and fairness day credit history is maintained by the system in database 122. When it is necessary to schedule agents for subsequent fairness days, the fairness processing function 128 rank orders the available pool of agents, e.g., by taking credits and other information into account. Thus, for example, if more agents volunteer for a fairness day than are required, then the most senior agents typically are selected (honoring other selection restrictions and processing). If fewer agents volunteer than are required, however, then the least senior agents are selected (honoring other selection restrictions and processing).
More generally, a workforce management system environment in which the method and system of the invention may be implemented includes a set of computing-related entities (systems, machines, processes, programs, libraries, functions, or the like) that facilitate or provide an agent-supervisor network. In a typical implementation, the environment typically comprises a set of computers. A representative machine is a client workstation or a network-based server running commodity (e.g. Pentium-class) hardware, an operating system (e.g., Linux, Windows 2000, OS-X, or the like), an application runtime environment (e.g., Java), and a set of applications or processes (e.g., Java applets or servlets, linkable libraries, native code, or the like, depending on platform) that provide the functionality of a given system or subsystem. A client machine typically includes a Web browser (Internet Explorer, Netscape Navigator, Apple Safari, or the like) or other rendering engine. A Web browser typically includes or supports media players and other plug-ins. Conveniently, information may be provided on an agent workstation using a Java-based applet or application.
It is further noted that, unless indicated otherwise, all functions described herein may be performed in either hardware or software, or any combination thereof. In a preferred embodiment, the functions are performed by one or more processors executing given software.
Generally, the present invention comprises a number of embodiments. In a first embodiment, the workforce management system implements any-day-of-the-week or weekend fairness processing. To this end, and as will be seen, in one embodiment, the system provides a display interface indexed by any day of the week or weekend and through which a user defines an any-day-of-the-week or weekend fairness policy. Preferably, the day of the week or weekend fairness policy is associated with one or more user-defined sort options that order agents (a) when there are not enough volunteers to meet a number of agents required to work, or (b) when there are more volunteers than there are agents needed to meet requirements. The word “volunteers” should not be taken to limit the invention. In use, the system compares a day of the week or weekend fairness policy with historical credit data to generate a rank order of agent eligibility to fulfill a contact center schedule for a given day of the week or weekend. This rank order of agent availability is then provided to a scheduler to enable generation of one or more contact center schedules for the given day of the week or weekend.
Fairness processing allows the contact center manager to set up days to be considered as fairness days and to set up rules to govern which agents will be scheduled for those days. Agents may optionally indicate a preference to work on a fairness day or may indicate a desire to be scheduled off for a fairness day. As noted above, preferably the rules can be configured such that different processing occurs depending on whether more agents have volunteered to work than are needed, or whether fewer agents have volunteered to work than are needed. If the required number of agents exceeds the number of agents who volunteered to work, then the system will choose which agents should be scheduled in addition to the volunteers. The agents selected can be based on numerous factors, including which agents worked most recently, which agents have worked more fairness days than other agents and various seniority and ranking orders of the agents. If the number of volunteers exceeds the number of agents required to work, then the system will limit which agents will be scheduled from the pool of volunteers. The agents selected from this pool will be based on the same factors detailed above, but ordered independently from the sort order above.
As an example, Saturday in general may be designated as a fairness day. Agents may volunteer to work on Saturdays, perhaps because a pay differential makes working on Saturday more attractive than a week day. If not enough agents volunteer, then some agents who desired to be scheduled off, will in fact need to work. The sort order might be configured to first look at agents who least recently worked on a Saturday. A second sort order might then be used as a tie-breaker, such as considering how many times each agent has worked on a Saturday (credits may include days actually worked by agents as well as a user-supplied value); agents who have worked the fewest Saturdays are higher in the list for selection to work. A third tie-breaker sort order may be defined such as rank; the lower-ranked agents are higher in the list for selection to work.
As another example, if more agents volunteered to work Saturday than were needed, the system will limit which agents are scheduled. An initial sort order might be to first look at agents who have worked the fewest number of Saturdays. A second sort order tie-breaker might be to consider all fairness days and choose agents with the fewest credits from all fairness days (not just Saturdays). A third sort order tie-breaker might again be the rank order of agents (this user-defined order of agents is sometimes this is based on hire date, sometimes based on performance, sometimes a combination of several factors).
In a second embodiment, the workforce management system implements “holiday fairness” processing. A particular holiday is associated with a date or dates (such as Thanksgiving, or Thanksgiving and the following Friday). To this end, the system provides a display interface indexed by holiday and through which a user defines a holiday fairness policy. Preferably, the holiday fairness policy is associated with one or more user-defined sort options that order agents (a) when there are not enough volunteers to meet a number of agents required to work, or (b) when there are more volunteers than there are agents needed to meet requirements. In use, the system compares a holiday fairness policy with historical credit data to generate a rank order of agent eligibility to fulfill a contact center schedule for a given holiday. This rank order of agent availability is then provided to a scheduler to enable generation of one or more contact center schedules for the given holiday.
In a third embodiment, the day of week and holiday fairness functions, which may operate independently of one another, are integrated.
The respective portions are accessed using a scrollbar 201 as indicated. As seen in
Moving horizontally, as shown in
A display tab may also include a pair of radio buttons 230 and 232 that are enabled when weekend processing (the weekend row) is selected. This operation is shown in
Moving horizontally into
As can be seen, by using the display tab shown in
As noted above, if a holiday date is marked as using fairness, then preferably day of week or weekend fairness will not be processed for this date. Thus, preferably the holiday fairness overrules the day of week or weekend fairness rotation. When determining whether agents worked a day of the week or weekend, if the date was a holiday which used fairness, then that date will not be considered to have been worked by the agent for the day of week or weekend fairness rotation.
As each agent receives a schedule, the fairness rotation for the remaining fairness days in the week is recalculated if the sort options for the remaining fairness days include selections that would change by nature of the agent being scheduled for a fairness day. For example, if Monday and Friday are considered fairness days, and the user has chosen “Credits—All” as an option for sorting agents for these days, then when an agent is scheduled to work on Monday of that week, then his/her position in the fairness rotation for Friday will change because the agent now has an additional credit for working Monday of this week. Preferably, the Seniority Date/Extension or Rank field is used as a final tie-breaker (depending on the user selection for preference granting) if other sort options do not result in a unique order of agent eligibility.
If the user has not selected the “fairness over coverage” option, despite the prioritization of fairness days and the knowledge of which agent's turn it is to work a fairness day, it may be more important to schedule an agent for another day. However, over a period of time, the fairness processing results in agents working approximately the same number of fairness days even though in the short-term it may appear that an agent should have been scheduled to work a fairness day. If the user has selected the “fairness over coverage” option, then the schedule generation process will ensure that an agent is scheduled for a fairness day in turn, even if another day of the week needs that agent more than this fairness day.
In particular, the scheduler's primary goal is to satisfy staffing requirements. Fairness scheduling makes allowances for agents who can provide coverage to periods with otherwise limited availability. For agents who are truly the only agents who can provide coverage for some periods, those agents may be occasionally excused from fairness assignments to accommodate the special coverage that they can provide. In turn, this means that on any given week, it is possible for agents to be scheduled for fairness when other agents apparently more eligible did not. This is normal for the short-term. In the long-term, though, it should balance out, because those agents who were eligible for fairness but were needed elsewhere more urgently will move to the front of the eligibility list on the following week. With the addition of the “fairness over coverage” option for fairness days, a fairness day can be marked to have priority over staffing, eliminating the possibility that a non-fairness day could make an agent unavailable for the fairness days marked as having priority over coverage.
There is also the possibility that agents will be excused from fairness on one day to be able to schedule them for fairness on another day. This is a slightly different situation than above in that the scheduler must decide between violating fairness between two independent fairness days rather than making the decision to cover a non-fairness day instead of assigning an agent to a fairness day. In this case, the decision essentially goes to the day that needed the agent for coverage first. Again, in the short term, it may appear as though agents are being scheduled out of fairness order, but in the long-term, agents will be assigned about the same number of times as all other agents to each fairness day. With the addition of the new priority values for fairness days, this can be resolved by prioritizing the fairness days, although it cannot be prevented among fairness days at the same priority.
Holiday fairness is processed in the same way as day of week fairness. In particular, fairness records are reviewed in conjunction with the fairness options as set on the display tab to determine which agents are most eligible to work a holiday date that uses fairness. If more than one holiday date falls within a scheduling week, as each agent receives a holiday schedule, the fairness rotation for the remaining holiday days in the week is recalculated if the sort options for the remaining holiday days include selections that would change by nature of the agent being scheduled for a holiday day. For example, if Thanksgiving Day and Thanksgiving Friday are considered holidays, and the user has chosen “Credits—All” as an option for sorting agents for these days, then when an agent is scheduled to work on Thanksgiving Day of that week, his/her position in the fairness rotation for Thanksgiving Friday will change because the agent now has an additional credit for working Thanksgiving Day of this week. The Bidding Date/Extension is preferably used as a final tie-breaker if other sort options do not result in a unique order of agent eligibility.
The invention may be extended to provide additional functionality. Thus, it may be desirable to provide a display screen that would allow a supervisor to view/edit the agent holiday preferences. The system would then be enhanced to allow an option that would view each holiday date as a required day for agents, where each agent must either work, or be given an all day exception indicating that the agent is off. Fairness rotation then would be used to determine which agents worked on the holiday, and then once enough agents were scheduled, all agents would receive a schedule with a user-specified exception applied to the entire day. In this case, all agents who could work on that day (based on a tour group definition, which typically is a set of weekly work rules defining which days an agent can work, and which days an agent must work) would receive a schedule for that day (and the day would count toward the tour group min/max days). Typically, the system requires the user (the administrator) to assign agents to tour groups that do not require them to work so that the schedule generator can choose how many agents to schedule and simply not schedule agents who are not needed.
While the present invention has been described in the context of an embodiment wherein a display interface is used to implement the day of week or holiday fairness policy, this is not a requirement. The fairness policy may be implemented using any type of interface (e.g., a command line interface, a programmatic interface, a configuration file or the like).
Moreover, the requirement of “user-defined sort options” is not a limitation of the invention either. The options may be defined in any convenient manner, e.g., programmatically, or even coded directly into the system code, in whole or in part without any user interaction.
Further, there is no requirement that a “credit” or “credits” be maintained within the system to facilitate the fairness policies. Instead of counting credits, the system may simply parse historical schedules to determine when a given agent worked. Thus, basic schedule history data for a given agent should be construed to be equivalent to the “credit” or “historical credit” data referred to above.
According to another extension, it is not required that the system implement fairness processing tied to a given “day” or daily work period. Indeed, the techniques of the present invention may enable the definition and processing of a fairness policy tied to a given portion (e.g., morning, afternoon, or the like) of a given day or, at the other extreme, a policy tied to a period longer than a given day and/or spanning more than a given week (e.g., a “week of month,” “month of year,” “day of bimonthly pay period,” or other inter-day period). Fairness may involve a given time period (e.g., 2 hours) on a given day, or it may represent a given intra-day time period lasting across another inter-day time period (e.g., 2 weeks). Of course, the above are just representative examples. Moreover, a given “credit” associated with the fairness policy unit (whether a given day, an intra-day period, an inter-day period, as the case may be) may be assigned a given weight based, for example, on one of more factors, such as agent skill type, type of policy unit (day, intra-day, inter-day, etc.), and the like. Thus, there is no requirement that, for a given fairness policy, a credit always has the same value. Indeed, there may be many scenarios where it will be desired for credit(s) to have differing values and/or otherwise to be assigned in a weighted manner.
One of ordinary skill in the art will also appreciate that the day of week and holiday fairness processing described herein may be generalized to any “time off” (or other “non-work”) period, however designated by the workforce management organization. Thus, the techniques of the present invention are applicable to vacation scheduling systems.
In addition, one of ordinary skill will also appreciate that a given rank order of agent availability (that is provided to scheduler to enable schedule generation) may be based on factors other than just credits. In an alternative embodiment, a given rank order of agent availability may be applied through one or more other filters or processing, such as filters that take into consideration other data that is collected and available within the contact center environment. In particular, the contact center may include (or have access to) other systems such as an agent quality management system, a call flow analysis system, a customer survey system, an audio content based analysis system, a content management system, a knowledge-based management system, a performance based knowledge system, a circuit switch management system, a VoIP management system, a computer telephony management system, and the like. If desired, one of more of these other systems may be integrated with the fairness scheduling system of the present invention so that agent sorts are influenced by this additional data. Thus, for example, where a performance management system is integrated, the particular agent sort may be a composite of the fairness policy and given agent performance data. A method of sharing information within an enterprise is described in commonly-owned U.S. Publication No. 20060179064, the disclosure of which is incorporated herein by reference.
Preferably, the fairness processing herein is carried out with at least one least of the processing steps being performed in a computer.
While the above describes a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary, as alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, or the like. References in the specification to a given embodiment indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic.
The invention can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment containing both hardware and software elements. In one preferred embodiment, the initial layout and reflow algorithms are implemented in software executing in one or more server machines. Each server may have one or more processors. The invention (or portions thereof) may take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. A computer-usable or computer readable medium can be any device or apparatus that can include, store or communicate the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, or the like. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
While given components of the system have been described separately, one of ordinary skill will appreciate that some of the functions may be combined or shared in given instructions, program sequences, code portions, and the like.
Having described our invention, what we now claim is as follows.