Techniques for pairing in a task assignment system having an external pairing system
By introducing an external matching system into the task allocation system and delaying the execution of the matching strategy, the problem of insufficient matching options in the L3 environment was solved, the performance of the task allocation system was improved, and efficient task-seat matching was achieved.
Patent Information
- Application Number
- CN202180019369.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-02-05
- Filing Date
- 2021-02-04
- Publication Date
- 2025-12-12
- Estimated Expiration
- 2041-02-04
AI Technical Summary
Existing task assignment systems struggle to effectively utilize high-performing pairing strategies in L3 environments, especially when the number of pairing options is insufficient, making it impossible to achieve optimal performance.
By introducing an external pairing system into the task allocation system and communicating with the external pairing system using an application programming interface (API), the execution of the pairing strategy is delayed until the number of pairing options reaches a threshold. More pairing options are obtained by extending the timeout window, thus achieving a high-performance pairing strategy.
The performance of the task allocation system in the L3 environment has been improved. By increasing the number of matching options through a delayed selection strategy, more efficient task and agent matching has been achieved.
Smart Images

Figure CN115428425B_ABST
Abstract
Description
[0001] This international patent application claims priority to U.S. Provisional Patent Application No. 62 / 970,529, filed February 5, 2020, the entire contents of which are incorporated herein by reference. TECHNICAL FIELD
[0002] The present disclosure relates generally to task assignment systems, and more particularly, to techniques for pairing in task assignment systems with external pairing systems. BACKGROUND
[0003] A typical pairing system assigns tasks arriving at a task assignment system to agents available to handle those tasks by an algorithm. Sometimes, the task assignment system can be in an “L1 state” and have agents available and waiting to be assigned to tasks. At other times, the task assignment system can be in an “L2 state” and have tasks waiting in one or more queues for agents to become available for assignment. At yet other times, the task assignment system can be in an “L3” state and have multiple agents available and multiple tasks waiting for assignment.
[0004] Some conventional pairing systems assign tasks to agents ordered based on time of arrival, and the agents receive tasks ordered based on time when those agents become available. This strategy can be referred to as a “first-in, first-out,” “FIFO,” or “round robin” strategy. For example, in an L2 environment, when an agent becomes available, the task at the head of the queue is assigned to the agent.
[0005] Some task assignment systems prioritize some types of tasks over other types of tasks. For example, some tasks can be high-priority tasks, while other tasks are low-priority tasks. Under a first-in, first-out strategy, high-priority tasks are assigned in preference to low-priority tasks.
[0006] Other conventional pairing systems can implement a performance-based routing (PBR) strategy in order to prioritize higher-performing agents for task assignment. For example, under PBR, the highest-performing agent among available agents receives the next available task.
[0007] A “behavioral pairing” or “BP” strategy for assigning tasks to agents improves upon conventional pairing methods. The goal of BP is to balance utilization of agents while improving overall task assignment system performance, potentially beyond levels achievable in practice by FIFO or PBR methods.
[0008] Accordingly, it can be appreciated that techniques can be needed to enable a task assignment system to use a high-performance pairing strategy (e.g., a BP strategy) that improves upon conventional pairing strategies. SUMMARY
[0009] Techniques for pairing in a task assignment system having an external pairing system are disclosed. In one particular embodiment, the techniques can be implemented as a method for pairing in a task assignment system having an external pairing system, the method comprising: transmitting, by at least one computer processor communicatively coupled to the task assignment system and configured to operate in the task assignment system, first information identifying one or more tasks waiting for assignment and one or more agents available for assignment to the external pairing system via an application program interface; transmitting, by the at least one computer processor, a pairing request to the external pairing system via the application program interface; determining, by the at least one computer processor, an initial timeout window for the external pairing system to respond to the pairing request; receiving, by the at least one computer processor, an extension request from the external pairing system at a first time within the initial timeout window, the extension request including instructions to extend the initial timeout window; extending, by the at least one computer processor, the initial timeout window in response to receiving the extension request; and receiving, by the at least one computer processor, a pairing response from the external pairing system at a second time within the extended timeout window, the pairing response including a selected pairing between the one or more tasks and the one or more agents.
[0010] According to other aspects of this particular embodiment, the task assignment system is a contact center system.
[0011] According to other aspects of this particular embodiment, the selected pairing can be selected according to a behavioral pairing policy.
[0012] According to other aspects of this particular embodiment, the initial timeout window can be extended for a predetermined duration.
[0013] According to other aspects of this particular embodiment, the initial timeout window can be extended until a number of pairing options exceeds a predetermined threshold.
[0014] According to other aspects of this particular embodiment, the initial timeout window can be extended until the task assignment system transitions to an L3 environment.
[0015] According to other aspects of this particular embodiment, the initial timeout window can be extended based on information included in the extension request.
[0016] According to other aspects of this particular embodiment, the method can further comprise: during the extended timeout window, transmitting, by the at least one computer processor, updated information identifying the one or more tasks and the one or more agents to the external pairing system, the updated information identifying more tasks than the first information, more agents than the first information, or more tasks and more agents than the first information.
[0017] According to other aspects of this particular embodiment, the method can further comprise routing a task of the one or more tasks to an agent of the one or more agents according to the selected pairing.
[0018] In another particular embodiment, the technology can be implemented as a method for pairing in an external pairing system communicatively coupled to a task assignment system, comprising: receiving, by at least one computer processor communicatively coupled to the external pairing system and configured to operate in the external pairing system, information identifying one or more tasks waiting for assignment and one or more agents available for assignment from the task assignment system through an application program interface; receiving, by the at least one computer processor, a pairing request associated with an initial timeout window from the task assignment system; determining, by the at least one computer processor, to defer selection of a pairing between the one or more tasks and the one or more agents; transmitting, by the at least one computer processor, an extension request including instructions to extend the initial timeout window to the task assignment system at a first time within the initial timeout window; selecting, by the at least one computer processor, a pairing between the one or more tasks and the one or more agents; and transmitting, by the at least one computer processor, a pairing response identifying the selected pairing to the task assignment system at a second time within the extended timeout window.
[0019] According to other aspects of this particular embodiment, the task assignment system is a contact center system.
[0020] According to other aspects of this particular embodiment, the selected pairing can be selected according to a behavioral pairing policy.
[0021] According to other aspects of this particular embodiment, the initial timeout window can be extended for a predetermined duration.
[0022] According to other aspects of this particular embodiment, the initial timeout window can be extended until a number of pairing options exceeds a predetermined threshold.
[0023] According to other aspects of this particular embodiment, the initial timeout window can be extended until the task assignment system transitions to an L3 environment.
[0024] According to other aspects of this particular embodiment, the initial timeout window can be extended based on information included in the extension request.
[0025] According to other aspects of this particular embodiment, the method can further comprise receiving, by the at least one computer processor, updated information identifying the one or more tasks and the one or more agents from the task assignment system during the extended timeout window, the updated information identifying more tasks, more agents, or more tasks and more agents than the first information.
[0026] According to other aspects of this particular embodiment, the method can further comprise routing a task of the one or more tasks to an agent of the one or more agents according to the selected pairing.
[0027] In another particular embodiment, the technology can be implemented as a system for pairing in a task assignment system having an external pairing system or a system for pairing in an external pairing system, comprising at least one computer processor communicatively coupled to and configured to operate in the task assignment system or the external pairing system, wherein the at least one computer processor is further configured to perform the steps in the above-described method.
[0028] In another particular embodiment, the technology can be implemented as an article of manufacture for pairing in a task assignment system having an external pairing system or an article of manufacture for pairing in an external pairing system, the article comprising a non-transitory processor-readable medium and instructions stored on the medium, wherein the instructions are configured to be readable from the medium by at least one computer processor communicatively coupled to and configured to operate in the task assignment system or the external pairing system, and to thereby cause the at least one computer processor to operate so as to perform the steps in the above-described method.
[0029] The present disclosure will now be described in greater detail in connection with particular embodiments thereof as illustrated in the following drawings. While the present disclosure is described below with reference to particular embodiments, it should be understood that the present disclosure is not limited thereto. Those of ordinary skill in the art having access to the teachings herein will recognize additional embodiments, modifications, and implementations within the scope of and also of potential use as the present disclosure. BRIEF DESCRIPTION OF DRAWINGS
[0030] For the purposes of this disclosure, reference will be made to the accompanying drawings in which like numerals designate like elements. These drawings should not be construed as limiting the present disclosure, but merely as illustrative.
[0031] Figure 1 A block diagram of a pairing system in accordance with an embodiment of the present disclosure is shown.
[0032] Figure 2 A block diagram of a task assignment system in accordance with an embodiment of the present disclosure is shown.
[0033] Figure 3 A block diagram of a task assignment system having an external pairing system in accordance with an embodiment of the present disclosure is shown.
[0034] Figure 4 A flow diagram of a pairing method for a task assignment system having an external pairing system in accordance with an embodiment of the present disclosure is shown.
[0035] Figure 5A flowchart illustrating a pairing method for communicatively coupling an external pairing system to a task assignment system according to embodiments of the present disclosure is shown. DETAILED DESCRIPTION
[0036] A typical pairing system assigns tasks arriving at a task assignment system to agents available to handle those tasks through an algorithm. Sometimes, the task assignment system can be in an "L1 state" and have agents available and waiting to be assigned to tasks. At other times, the task assignment system can be in an "L2 state" and have tasks waiting in one or more queues for agents to become available for assignment. At yet other times, the task assignment system can be in an "L3" state and have multiple available agents and multiple tasks waiting for assignment. An example of a task assignment system is a contact center system that receives contacts (e.g., telephone calls, internet chat sessions, emails, etc.) to be assigned to agents.
[0037] Some traditional pairing systems assign tasks to agents based on arrival time ordering and agents receive tasks ordered based on when those agents become available. This strategy can be referred to as a "first-in, first-out," "FIFO," or "round robin" strategy. For example, in an L2 environment, when an agent becomes available, the task at the head of the queue is selected to assign to the agent.
[0038] Other traditional pairing systems can implement a performance-based routing (PBR) strategy for assigning tasks to give preference to higher-performing agents. For example, under PBR, the highest-performing agent among available agents receives the next available task.
[0039] A "behavioral pairing" or "BP" strategy for assigning tasks to agents that improves upon traditional pairing methods. The goal of BP is to balance the utilization of agents while improving the performance of the overall task assignment system, which can exceed the levels achieved in practice by FIFO or PBR methods. This is a remarkable achievement because BP acts on the same tasks and the same agents as FIFO or PBR methods, balances the utilization of agents roughly as provided by FIFO, while improving the performance of the overall task assignment system, which exceeds the levels provided by FIFO or PBR in practice. BP improves performance by assigning pairs of agents and tasks in a way that considers potential subsequent pairs of agents and tasks assignments such that when the benefits of multiple assignments are aggregated, they can exceed the benefits of FIFO and PBR strategies.
[0040] Various BP strategies can be used, such as a diagonal model BP strategy or a network flow BP strategy. These task assignment strategies and others are described in detail for a contact center context in, for example, U.S. Patent Nos. 9,300,802, 9,781,269, 9,787,841, and 9,930,180, all of which are incorporated by reference herein. BP strategies can be applied to LI environments (agent surplus, one task; select among multiple available / idle agents), L2 environments (task surplus, one available / idle agent; select among multiple tasks in a queue), and L3 environments (multiple agents and multiple tasks; select among paired permutations).
[0041] The performance of some pairing strategies can be improved when the task assignment system is in a particular environment or state. For example, the performance of a BP pairing strategy can improve in an L3 environment relative to an LI or L2 environment, or in a state where the number of paired permutations exceeds a predetermined threshold. When a pairing system is integrated into a task assignment system, it can be straightforward to defer execution of a pairing strategy until the task assignment system is in a desired state, as the pairing system can readily cause the task assignment system to defer execution of the pairing strategy and / or retrieve current state information from the task assignment system. As explained in detail below, embodiments of the present disclosure relate to techniques for pairing in a task assignment system having an external pairing system, where the ability of the pairing system to cause the task assignment system to defer execution of a pairing strategy and / or retrieve current information about the state of the task assignment system can be more limited.
[0042] The description herein describes network elements, computers, and / or components of systems and methods for pairing strategies in a task assignment system that can include one or more modules. As used herein, the term “module” can be understood to refer to computing software, firmware, hardware, and / or various combinations thereof. However, a module should not be interpreted as software that is not implemented on hardware, firmware, or recorded on a non-transitory processor-readable recordable storage medium (i.e., a module by itself is not software). Note that these modules are exemplary. These modules can be combined, integrated, separated, and / or duplicated to support various applications. Also, a function described herein as being performed at a particular module can be performed at one or more other modules and / or by one or more other devices. Furthermore, a module can be implemented across multiple devices and / or other components locally or remotely from each other. Moreover, modules can be moved from one device and added to another device, and / or can be included in both devices.
[0043] Figure 1A block diagram of a pairing system 100 is shown in accordance with embodiments of the present disclosure. The pairing system 100 can be included in a task assignment system (e.g., a contact center system), or incorporated into a component or module (e.g., a pairing module) of a task assignment system, for assisting in assigning tasks (e.g., contacts) among various agents.
[0044] The pairing system 100 can include a task assignment module 110 configured to pair (e.g., match, assign, route) incoming tasks to available agents. In Figure 1 In an example, m tasks 120A-120m are received in a given period, and n agents 130A-130n are available in the given period. Each of the m tasks can be assigned to one of the n agents for servicing or other type of task processing. In Figure 1 In an example, m and n can be any large finite integer greater than or equal to 1. In a real-world task assignment system such as a contact center system, there can be tens, hundreds, etc. of agents logged into the contact center system during a shift to interact with contacts, and the contact center system can receive tens, hundreds, thousands, etc. of contacts (e.g., phone calls, internet chat sessions, emails, etc.) during a shift.
[0045] In some embodiments, a task assignment policy module 140 can be communicatively coupled to and / or configured to operate in the pairing system 100. The task assignment policy module 140 can implement one or more task assignment policies (or “pairing policies”) for assigning individual tasks to individual agents (e.g., pairing contacts to contact center agents). A variety of different task assignment policies can be designed and implemented by the task assignment policy module 140. In some embodiments, a FIFO policy can be implemented in which, for example, the longest waiting agent receives the next available task (in an L1 environment) or the longest waiting task is assigned to the next available agent (in an L2 environment). In other embodiments, a PBR policy can be implemented for prioritizing high-performing agents for task assignment. For example, under PBR, the highest-performing agent among available agents receives the next available task. In yet other embodiments, a BP policy can be used to optimally assign tasks to agents using information about the tasks or the agents or both. Various BP policies can be used, such as a diagonal model BP policy or a network flow BP policy. See U.S. Patent Nos. 9,300,802, 9,781,269, 9,787,841, and 9,930,180.
[0046] In some embodiments, the historical assignment module 150 can be communicatively coupled to and / or configured to operate in the pairing system 100 via other modules such as the task assignment module 110 and / or the task assignment strategy module 140. The historical assignment module 150 can be responsible for various functions such as monitoring, storing, retrieving, and / or outputting information about completed task-agent assignments. For example, the historical assignment module 150 can monitor the task assignment module 110 to collect information about task assignments over a given time period. Each record of historical task assignments can include information such as an agent identifier, a task or task type identifier, a bid or set of bids identifier, outcome information, or a pairing strategy identifier (i.e., an identifier indicating whether the task assignment was made using a BP strategy or some other pairing strategy such as a FIFO or PBR pairing strategy).
[0047] In some embodiments and for some contexts, additional information can be stored. For example, in a call center context, the historical assignment module 150 can also store information about a call start time, a call end time, a dialed phone number, and a caller phone number. For another example, in a dispatch center (e.g., a “truck transport”) context, the historical assignment module 150 can also store information about a time a driver (i.e., a field agent) left the dispatch center, a recommended route, a route taken, an estimated travel time, an actual travel time, an amount of time spent at a customer site handling a customer task, and the like.
[0048] In some embodiments, the historical assignment module 150 can generate a pairing model or similar computer processor-generated model based on a set of historical assignments for a period of time (e.g., the past week, the past month, the past year, etc.) that can be used by the task assignment strategy module 140 to make task assignment suggestions or instructions to the task assignment module 110.
[0049] In some embodiments, the benchmarking module 160 can be communicatively coupled to and / or configured to operate in the pairing system 100 via other modules such as the task assignment module 110 and / or the historical assignment module 150. The benchmarking module 160 can benchmark the relative performance of two or more pairing strategies (e.g., FIFO, PBR, BP, etc.) using historical assignment information that can be received from, for example, the historical assignment module 150. In some embodiments, the benchmarking module 160 can perform other functions such as establishing a benchmarking plan for a loop among various pairing strategies, tracking groups (e.g., a base and measurement group of historical assignments), and the like. Benchmarking is described in detail in, for example, U.S. Patent No. 9,712,676, which is incorporated by reference herein for a contact center context.
[0050] In some embodiments, the benchmarking module 160 can output or otherwise report or use relative performance measures. Relative performance measures can be used to evaluate the quality of a pairing strategy to determine, for example, whether a different pairing strategy (or a different pairing model) should be used, or to measure overall performance (or performance gains) achieved in a task assignment system while the task assignment system is optimized or otherwise configured to use one pairing strategy over another.
[0051] Figure 2 A block diagram of a task assignment system 200 is shown in accordance with embodiments of the present disclosure. The task assignment system 200 can include a central switch 270. The central switch 270 can receive incoming tasks 220 (e.g., telephone calls, Internet chat sessions, emails, etc.) or support outbound connections to contacts via dialers, telecommunication networks, or other modules (not shown). The central switch 270 can include routing hardware and software to help route tasks in one or more queues (or sub-centers), or to one or more private branch exchanges (“PBXs”) or automatic call distribution (ACD) routing components or other queue or switch components within the task assignment system 200. The central switch 270 can not be necessary if there is only one queue (or sub-center), or if there is only one PBX or ACD routing component in the task assignment system 200.
[0052] If more than one queue (or sub-center) is part of the task assignment system 200, each queue can include at least one switch (e.g., switches 280A and 280B). The switches 280A and 280B can be communicatively coupled to the central switch 270. Each switch of each queue can be communicatively coupled to a plurality (or “pool”) of agents. Each switch can support a certain number of agent (or “seat”) logins at a time. At any given time, logged-in agents can be available and waiting to connect to a task, or logged-in agents can be unavailable for any of a number of reasons, such as being connected to another task, performing certain post-call functions, such as recording information about the call, or taking a break. In the example shown in FIG. 2, the central switch 270 routes a task to one of the two queues via switch 280A and switch 280B, respectively. Each of the switches 280A and 280B is shown as each having two agents. Agents 230A and 230B can be logged in to the switch 280A, and agents 230C and 230D can be logged in to the switch 280B. Figure 2
[0053] The task assignment system 200 can also be communicatively coupled to an integrated pairing system 290. The pairing system 290 can be local (or built-in) to the task assignment system 200 (i.e., the “first party”) or can be a service provided by, for example, a third-party vendor. In some embodiments, the pairing system 290 can be a cloud-based service.Figure 2 In the example of FIG. 2, the pairing system 290 can be communicatively coupled to one or more of the switches of the switch system of the task assignment system 200, such as the central switch 270, the switch 280A, and the switch 280B. In some embodiments, the switches of the task assignment system 200 can be communicatively coupled to multiple pairing systems. In some embodiments, the pairing system 290 can be embedded within a component of the task assignment system 200 (e.g., embedded in or otherwise integrated with a switch). An example of the pairing system 290 is the pairing system 100 described above.
[0054] The pairing system 290 can receive information from a switch (e.g., the switch 280A) regarding agents (e.g., the agents 230A and 230B) logged into the switch and information regarding incoming tasks 220 via another switch (e.g., the central switch 270), or in some embodiments, from a network (e.g., the Internet or a telecommunications network) (not shown). The pairing system 290 can process this information to determine which tasks should be paired (e.g., matched, assigned, distributed, routed) with which agents.
[0055] For example, in the L1 state, multiple agents can be available and waiting to connect to a task, and a task arrives at the task assignment system 200 via a network or the central switch 270. As described above, without the pairing system 290, under a FIFO strategy, the switch would typically automatically distribute the new task to any available agent that has been waiting the longest amount of time, or under a PBR strategy, to any available agent that has been determined to be the highest performer. Using the pairing system 290, contacts and agents can be given scores (e.g., percentiles or ranges / bands of percentiles) according to a pairing model or other artificial intelligence data model, such that the task can be matched, paired, or otherwise connected to a preferred agent.
[0056] In the L2 state, multiple tasks are available and waiting to connect to an agent, and an agent becomes available. These tasks can be queued in a switch, such as a PBX or ACD device. Without the pairing system 290, when an agent option is not available, the switch would typically connect the newly available agent to any task that has been waiting the longest amount of time in the queue, as in a FIFO strategy or a PBR strategy. As previously described, in some task assignment systems, priority queuing can also be included. With the pairing system 290 in this L2 scenario, as in the L1 state described above, tasks and agents can be given percentiles (or ranges / bands of percentiles, etc.) according to a model, such as an artificial intelligence model, for example, such that the agent that becomes available can be matched, paired, or otherwise connected to a preferred task.
[0057] In task assignment system 200, pairing system 290 can switch between pairing strategies and benchmark the relative performance of the task assignment system under each pairing strategy (e.g., by using a benchmarking module such as benchmarking module 160 of pairing system 100). The benchmarking results can help determine which pairing strategy or combination of pairing strategies to use to optimize or improve the overall performance of task assignment system 200.
[0058] The performance of a pairing strategy or combination of pairing strategies can improve when task assignment system 200 is in a particular state. For example, the performance of a BP pairing strategy can improve in an L3 environment relative to an L1 or L2 environment, or in a state where the number of pairing permutations exceeds a predetermined threshold. Given that pairing system 290 is integrated with or located "inside" task assignment system 200, it can be straightforward to defer execution of a pairing strategy until task assignment system 200 is in a desired state, as pairing system 290 can readily cause task assignment system 200 to defer execution of a pairing strategy and / or retrieve current state information from task assignment system 200. However, in a task assignment system with an external pairing system, deferring execution of a pairing strategy can not be as straightforward, as will be described below.
[0059] Figure 3 A block diagram of task assignment system 300 with external pairing system 395 is shown in accordance with an embodiment of the present disclosure. In task assignment system 300, switch 380 can route a plurality of tasks 320 to a plurality of agents 330. Switch 380 can include routing hardware and software, or route to one or more PBX or ACD routing components or other queuing or switching components for assisting in routing the plurality of tasks 320 among the plurality of agents 330.
[0060] In task assignment system 300, internal pairing system 390 can be communicatively coupled to switch 380. Internal pairing system 390 can be native (or built-in) to task assignment system 300 (i.e., a "first party") or can be provided by a third party vendor. In general, internal pairing system 390 can implement conventional pairing strategies (e.g., FIFO or PBR) or some other pairing strategy that can be proprietary to task assignment system 300. However, internal pairing system 390 can also be in the form of pairing system 100. Internal pairing system 390 can receive or otherwise retrieve information from switch 380 regarding agents 330 logged into switch 380 and regarding incoming tasks 320.
[0061] In task assignment system 300, external pairing system 395 can be communicatively coupled to switch 380 through interface 385. Interface 385 can isolate task assignment system 300 from external pairing system 395 (e.g., for security purposes) and control information exchanged between the two systems. An example of interface 385 can be a public or private proprietary application program interface (API) provided over a network (e.g., the Internet or a telecommunications network) (not shown).
[0062] With respect to internal pairing system 390, external pairing system 395 can have access to less information associated with switch 380, e.g., a limited subset of information selected and shared by switch 380. Similarly, with respect to internal pairing system 390, external pairing system 395 can have less control over the operation of switch 380. Such information and / or control is typically sufficient for external pairing system 395 to determine task-agent pairings and communicate the determined task-agent pairings to switch 380. External pairing system 395 can be provided by a third party vendor and can be in the form of pairing system 100 described above. External pairing system 395 can provide pairing strategies (e.g., BPs) that improve the performance of task assignment system 300 when compared to the pairing strategy (or strategies) of internal pairing system 390. External pairing system 395 can also provide pairing strategies that are the same or similar to the pairing strategies of internal pairing system 390.
[0063] Task assignment system 300 can operate under shared control, where switch 380 can send routing requests to one or both of internal pairing system 390 and external pairing system 395 to determine which task is to be routed to which agent. Shared control can be desirable, for example, when internal pairing system 390 employs a legacy or proprietary pairing strategy (e.g., FIFO or PBR) that external pairing system 395 can not provide, while using external pairing system 395 to provide a higher performance pairing strategy (e.g., BP).
[0064] When external pairing system 395 includes the same or similar pairing strategies as internal pairing system 390, task assignment system 300 can operate under full control, such that switch 380 sends all routing requests to external pairing system 395. In other words, external pairing system 395 is in full control of determining each task-agent pairing. Under full control, at times, external pairing system 395 can emulate / simulate the pairing strategies of internal pairing system 390 (e.g., FIFO or PBR), and at other times, employ a different pairing strategy (e.g., BP), and send its pairing recommendations to switch 380 through interface 385. Switch 380 can then assign tasks 320 to agents 330 based on the pairing recommendations.
[0065] In some embodiments, the performance of the external pairing system 395 can be determined, at least in part, by the number of pairing options available to the external pairing system 395 at a given point in time. For example, in an LI environment (agent surplus, one task; select among multiple available / idle agents), the number of pairing options corresponds to the number of available agents. In an L2 environment (task surplus, one available / idle agent; select among multiple tasks in a queue), the number of pairing options corresponds to the number of available tasks. In an L3 environment (multiple agents and multiple tasks; select among pairing permutations), the number of pairing options corresponds to the number of permutations between the number of available agents and tasks.
[0066] The effect of having a small number of pairing options can reduce the performance gains that can be derived using higher-performing pairing strategies (e.g., BP) relative to traditional pairing strategies (e.g., FIFO or PBR). For example, when one agent and one task are available, there is only a single pairing option, so any pairing strategy will select the same pairing. On the other hand, when many agents and / or tasks are available, this creates a large number of pairing options. The strategy of selecting among this large number of pairing options has a significant impact on performance. Thus, the difference between a high-performing pairing strategy and a traditional pairing strategy generally increases with the number of pairing options. The relationship between the number of available pairing options and performance is described in detail in, for example, U.S. Patent No. 10,257,354, which is incorporated by reference herein.
[0067] Accordingly, to improve the performance of a high-performing pairing strategy, it can be desirable to delay or otherwise postpone the selection of pairings between agents and tasks when the number of pairing options is too small to achieve a desired level of performance (e.g., when the number of pairing options is below a predetermined threshold, or when the task assignment system 300 is in an LI or L2 state). Postponing the selection can provide time for new tasks to be added to a queue or for more agents to become available, thereby increasing the number of pairing options. In some embodiments, delaying the selection can allow the task assignment system 300 to transition from an LI or L2 state (in which the number of pairing options increases linearly with the number of tasks or agents) to an L3 state (in which the number of pairing options increases superlinearly with the number of tasks or agents).
[0068] When the pairing strategy is implemented by the internal pairing system 390, delaying the selection can be implemented by directly monitoring the state of the task assignment system 300 and waiting until the number of pairing options exceeds a threshold. See, e.g., U.S. Patent No. 10,257,354. However, for pairing strategies implemented by the external pairing system 395, increasing the time period of the delay can involve exchanging communications between the external pairing system 395 and the task assignment system 300 through an API, as described further below.
[0069] Figure 4 A flowchart of a pairing method 400 for a task assignment system (e.g., task assignment system 300) with an external pairing system (e.g., external pairing system 395) is shown in accordance with embodiments of the present disclosure.
[0070] The pairing method 400 can begin at block 410. At block 410, information identifying one or more tasks waiting for assignment and one or more agents available for assignment can be transmitted to the external pairing system through an API. In some embodiments, this information can be transmitted in response to an event such as a new task being added to a queue of the task assignment system or a new agent becoming available to receive tasks. In the context of a contact center, the one or more tasks can correspond to one or more incoming contacts (e.g., customer calls, emails, or chat messages, etc.). In some embodiments, block 410 can be repeated at different times during the pairing method 400 to reflect updated information about the one or more tasks and the one or more agents (e.g., block 410 can be repeated each time a new agent or task becomes available, each time a transfer between Ll, L2, and / or L3 environments occurs, or each time an event associated with the task assignment system occurs, etc.).
[0071] At block 420, a pairing request (e.g., a routing request) can be transmitted to the external pairing system through the API. The pairing request can include information that causes the external pairing system to execute a pairing strategy to determine which of the one or more tasks is to be routed to which of the one or more agents. In some embodiments, the pairing request can be transmitted at block 410 along with (e.g., in the same message as) the identification of the one or more tasks and the one or more agents.
[0072] At block 430, an initial timeout window can be determined for waiting for a response from the external pairing system to the pairing request. When the initial timeout window elapses without receiving a response from the external pairing system, the pairing method 400 can determine that an error or failure has occurred. For example, it can be determined that the pairing request or response encountered an error in transmission, that the external pairing system can be down or inaccessible, or that the format of the pairing request or response can be invalid or incompatible with the API, etc. In general, the duration of the initial timeout window can be selected to provide sufficient time for the external pairing system to respond under normal conditions (e.g., accounting for regular transmission delays and latencies) without triggering an error. The duration can be fixed or flexible (e.g., adaptively updated based on current network conditions, etc.). When an error or failure is determined to have occurred, one or more remedial actions can be taken. Illustrative examples of remedial actions can include, but are not limited to, resending the pairing request (e.g., returning to block 420), notifying an operator of the task assignment system and / or the external pairing system, or rerouting the pairing request from the external pairing system to an internal pairing system (e.g., internal pairing system 390), etc.
[0073] At block 440, an extension request can be received from the external pairing system through the API at a first time within the initial timeout window. The extension request can include instructions to extend the initial timeout window. In some embodiments, the extension request can be received when the external pairing system determines that the state of the task assignment system is not optimal for implementing a pairing strategy. For example, the extension request can be received when the external pairing system determines that the number of pairing options (e.g., the number of permutations of pairings between one or more tasks and one or more agents) is below a predetermined threshold. The predetermined threshold can be set to a value at which the number of pairing options is too low for the pairing strategy of the external pairing system to achieve optimal or near-optimal performance. In some embodiments, the extension request can be received when the external pairing system determines that the environment of the task assignment system is not an L3 environment (e.g., the environment is an LI or L2 environment). The extension request can include any information suitable to convey instructions to extend the initial timeout window. For example, the extension request can include a control flag or other indicator. In some embodiments, the extension request can include information indicating an amount of time to extend the duration of the initial timeout window. The extension request can also include other criteria for extending the timeout window (e.g., extend the timeout window until the number of available agents, tasks, and / or pairing options reaches a predetermined value or until the environment develops into an L3 environment).
[0074] At block 450, the initial timeout window can be extended in response to receiving the extension request. Providing an extended timeout window to wait for a response from the external pairing system can provide time to add new tasks to the queue and / or make more agents available. The duration of the extended timeout window can be fixed or flexible (e.g., adaptively determined based on network conditions). In some embodiments, the duration of the extended timeout window can be determined based on information included in the extension request, such as the duration of the requested time extension.
[0075] At block 460, one or more updates can be transmitted to the external pairing system through the API during the extended timeout window. The one or more updates can include updated information identifying one or more tasks waiting for assignment and one or more agents available for assignment (e.g., updated relative to the information transmitted at block 410). Transmitting the updates can be triggered by various events, such as a new task being added to the queue and / or more agents becoming available. Thus, the updated information can identify more tasks and / or agents than the original information transmitted at block 410. In some embodiments, the updates can be transmitted at predetermined time intervals, e.g., periodically. Each time an update is transmitted, the timeout window can optionally be extended for an additional duration to provide additional time for the external pairing system to consider the updated information in its response.
[0076] At block 470, a pairing response identifying a selected pairing between one or more tasks and one or more agents can be received from the external pairing system via the API at a second time within the extended timeout window. The pairing response generally provides information sufficient to determine which task is to be routed to which agent. In some embodiments, the pairing response can be received in response to the external pairing system determining that the number of pairing options during the extended timeout window reaches or exceeds the predetermined threshold. In some embodiments, the pairing response can be received in response to the external pairing system determining that the environment transitions from an LI or L2 environment to an L3 environment during the extended timeout window. Once the selected pairing is received, the corresponding tasks can be assigned to the corresponding agents in accordance with the selected pairing.
[0077] The foregoing description of the pairing method 400 is non-limiting, and various processes thereof can be added, deleted, modified, substituted, or rearranged without departing from the broader spirit and scope of the present disclosure. In some embodiments, the timeout window can be extended multiple times, e.g., multiple extension requests can be received. For example, the timeout window can be re-extended when the number of pairing options is still below the predetermined threshold or the environment has not developed to an L3 environment at or near the end of the currently extended timeout window. A maximum number of times the window can be extended or a maximum total duration of the extended timeout window can be limited. For example, a policy can be enacted between the task assignment system and the external pairing system that specifies a maximum number of times the timeout window can be extended or a maximum total duration of the extended timeout window. These limits can also be specified in a configuration file.
[0078] During the extended timeout window, the external pairing system can generate multiple pairing selections, e.g., the pairing method 400 can receive multiple pairing responses identifying a selected pairing between one or more tasks and one or more agents. In some embodiments, an updated pairing response can be received each time the pairing method 400 transmits an update to the external pairing system. In this way, the selected pairing at a given point in time during the extended timeout window can be based on the most up-to-date information about available tasks and agents. The pairing method 400 can defer implementing the selected pairing until the end of the extended timeout window, such that the selected pairing at the end of the extended timeout window (taking into account updates received during the timeout window) serves as the final selected pairing that is used to route the corresponding tasks to the corresponding agents.
[0079] Figure 5 A flowchart illustrating a pairing method 500 for an external pairing system (e.g., external pairing system 395) communicatively coupled to a task assignment system (e.g., task assignment system 300) in accordance with embodiments of the present disclosure is shown.
[0080] The pairing method 500 can begin at block 510. At block 510, information identifying one or more tasks waiting for assignment and one or more agents available for assignment can be received from a task assignment system via an API. In some embodiments, the information can be received in response to an event detected at the task assignment system, such as a new task being added to a queue of the task assignment system or a new agent becoming available to receive tasks. In the context of a contact center, the one or more tasks can correspond to one or more incoming contacts (e.g., customer calls, emails, or chat messages, etc.). In some embodiments, block 510 can be repeated at different times during the pairing method 500 to reflect updated information about the one or more tasks and the one or more agents (e.g., block 510 can be repeated each time a new agent or task becomes available, or when a transition between Ll, L2, and / or L3 environments occurs, etc.).
[0081] At block 520, a pairing request (e.g., a routing request) can be received from the task assignment system via the API. In response to receiving the pairing request, a pairing policy (e.g., a BP policy) can be executed to determine which of the one or more tasks to route to which of the one or more agents. In some embodiments, at block 510, the pairing request can be received with (e.g., in the same message as) the identification of the one or more tasks and the one or more agents. In some embodiments, the pairing request can be received at block 520 in response to a request for the pairing policy (e.g., a request for a BP policy) received at block 510. Figure 4 In some embodiments consistent with the foregoing, the pairing request can be associated with an initial timeout window implemented by the task assignment system. When the initial timeout window elapses before a response to the pairing request is provided, the task assignment system can determine that an error or failure has occurred. For example, the task assignment system can determine that the pairing request or response encountered an error in transmission, that the external pairing system is down or inaccessible, or that the format of the pairing request or response can be invalid or incompatible with the API, etc. Generally, the duration of the initial timeout window can be selected to provide a sufficient amount of time to respond under normal conditions (e.g., accounting for routine transmission delays and latencies) without triggering an error. The duration can be fixed or flexible (e.g., adaptively updated based on current network conditions, etc.).
[0082] At block 530, a determination to postpone the selection of pairings between one or more tasks and one or more agents can be made. In some embodiments, the determination to postpone the selection can be made in response to determining that the current state of the task assignment system is suboptimal for implementing a pairing strategy. For example, the selection can be postponed when the number of pairing options (e.g., the number of permutations of pairings between one or more tasks and one or more agents) is below a predetermined threshold. The predetermined threshold can be set to a value of the number of pairing options that is too low for an external pairing system's pairing strategy to achieve optimal or near-optimal performance. In some embodiments, the determination to postpone the selection can be made in response to determining that the environment is not an L3 environment (e.g., the environment is an LI or L2 environment). With the postponed selection, additional time can be provided to increase the number of pairing options and / or to develop the environment into an L3 environment. In some embodiments, determining to postpone the selection can include determining a duration of the postponed selection, which can be fixed or flexible.
[0083] At block 540, an extension request including instructions to extend the initial timeout window can be transmitted to the task assignment system through the API at a first time within the initial timeout window. The extension request can generally include any information suitable to convey instructions to extend the initial timeout window. For example, the extension request can include a control flag or other indicator. In some embodiments, the extension request can include information indicating an amount of time to extend the duration of the initial timeout window. The extension request can include other criteria for extending the timeout window (e.g., an indication to extend the timeout window until a predetermined threshold of available agents, tasks, and / or pairing options is reached or until the environment develops into an L3 environment). The extension request can cause the task assignment system to extend the initial timeout window. In turn, the extended timeout window can provide time for new tasks to be added to the queue and / or for more agents to become available. The duration of the extended timeout window can be fixed or flexible (e.g., adaptively determined based on network conditions). In some embodiments, the duration of the extended timeout window can be determined based on information included in the extension request.
[0084] At block 550, one or more updates can be received from the task assignment system through the API during the extended timeout window. For example, the one or more updates can include updated information identifying one or more tasks waiting for assignment and one or more agents available for assignment (e.g., updated relative to the information received at block 510). Receiving the updates can be triggered by various events associated with the task assignment system, such as a new task being added to the queue and / or more agents becoming available. Thus, the updated information can identify more tasks and / or agents than the original information transmitted at block 510. The updates can also be received at predetermined time intervals, e.g., periodically.
[0085] At block 560, a pairing between one or more tasks and one or more agents can be selected. In some embodiments, the pairing can be selected in response to determining that the number of pairing options during the extended timeout window reaches or exceeds a predetermined threshold at which the performance of the pairing strategy is high enough to justify selecting the pairing. In some embodiments, the pairing can be selected in response to determining that the environment transitions from an LI or L2 environment to an L3 environment during the extended timeout window. In some embodiments, the pairing can be selected using a pairing strategy such as a BP strategy implemented by an external pairing system. Executing the pairing strategy can include executing one or more artificial intelligence models.
[0086] At block 570, a pairing response identifying the selected pairing can be transmitted to the task assignment system via the API at a second time within the extended timeout window. The pairing response generally provides the task assignment system with sufficient information to determine which task to route to which agent. Transmitting the pairing response can cause the task assignment system to assign the corresponding tasks to the corresponding agents in accordance with the selected pairing.
[0087] The foregoing description of the pairing method 500 is non-limiting, and various processes thereof can be added, deleted, modified, replaced, or rearranged without departing from the broader spirit and scope of the present disclosure. In some embodiments, the pairing method 500 can request multiple extensions of the timeout window, e.g., multiple extension requests can be transmitted. For example, the timeout window can be re-extended when it is determined that the number of pairing options is still below the predetermined threshold at or near the end of the currently extended timeout window. The maximum number of times the window can be extended or the maximum duration the timeout window can be extended can be limited. For example, a policy can be set between the pairing method 500 and the task assignment system that specifies the maximum number of times the timeout window can be extended or the maximum duration of the timeout window. Further, the maximum number of times the timeout window can be extended or the maximum duration of the timeout window can be specified in a configuration file.
[0088] During the extended timeout window, multiple pairing selections can be generated and transmitted, e.g., multiple pairing responses identifying selected pairings between one or more tasks and one or more agents can be transmitted. In some embodiments, an updated pairing response can be transmitted each time an update is received from the task assignment system. In this way, the selected pairing at a given point in time during the extended timeout window can be based on the most up-to-date information about available tasks and agents. The task assignment system can defer implementing the selected pairing until the end of the extended timeout window, such that the selected pairing at the end of the timeout window (taking into account updates received during the timeout window) serves as the final selected pairing that is used to route corresponding tasks to corresponding agents.
[0089] It should be noted at this point that the aforementioned task allocation according to the present disclosure can involve to some extent processing of input data and generation of output data. Such input data processing and output data generation can be implemented in hardware or software. For example, specific electronic components can be employed in a behavior pairing module or similar or related circuitry to implement functionality associated with the task allocation according to the present disclosure as described above. Alternatively, one or more processors operating according to instructions can implement functionality associated with the task allocation according to the present disclosure as described above. If this is the case, then such instructions can be stored on one or more non-transitory processor-readable storage media (e.g., a disk or other storage medium) or transmitted to one or more processors via one or more signals embodied in one or more carrier waves in the scope of the present disclosure.
[0090] The present disclosure is not to be limited in scope by the specific embodiments described herein. Indeed, various embodiments of the present disclosure in addition to those described herein will be apparent to one of ordinary skill in the art from the foregoing description and accompanying drawings. Such embodiments and various modifications are intended to fall within the scope of the present disclosure. Further, although the present disclosure has been described herein in the context of at least one particular implementation in at least one particular environment for at least one particular purpose, those of ordinary skill in the art will recognize that its usefulness is not limited thereto and that the present disclosure can be beneficially implemented in any number of environments for any number of purposes.
Claims
1. A method for pairing in a task assignment system, wherein the task assignment system includes an internal pairing system coupled to a switch, wherein the switch is coupled to an external pairing system via an application program interface, the method comprising: transmitting, by at least one computer processor communicatively coupled to the task assignment system and configured to operate in the task assignment system, first information to the external pairing system over the application program interface, the first information identifying one or more tasks waiting for assignment and one or more agents available for assignment, wherein the application program interface at least partially isolates the external pairing system from other portions of the task assignment system for security purposes and controls information exchanged between the external pairing system and the other portions of the task assignment system; transmitting, by the at least one computer processor, a pairing request to the external pairing system over the application program interface; determining, by the at least one computer processor, an initial timeout window for the external pairing system to respond to the pairing request; receiving, by the at least one computer processor, an extension request from the external pairing system at a first time within the initial timeout window, the extension request including instructions to extend the initial timeout window; extending, by the at least one computer processor, the initial timeout window in response to receiving the extension request; and receiving, by the at least one computer processor, a pairing response from the external pairing system at a second time within the extended timeout window, the pairing response including a selected pairing between the one or more tasks and the one or more agents; wherein the external pairing system has access to less information related to the switch and also less control over operation of the switch than the internal pairing system.
2. The method of claim 1, wherein, The task assignment system is a contact center system.
3. The method of claim 1, wherein, The selected pairing is selected according to a behavioral pairing policy.
4. The method of claim 1, wherein, The initial timeout window is extended for a predetermined duration.
5. The method of claim 1, wherein, The initial timeout window is extended until a number of pairing options exceeds a predetermined threshold.
6. The method of claim 1, wherein, The initial timeout window is extended until the task assignment system transitions to a state in which multiple agents are available and multiple tasks are waiting for assignment.
7. The method of claim 1, wherein, The initial timeout window is extended based on information included in the extension request.
8. The method of claim 1, further comprising: During the extended timeout window, transmitting, by the at least one computer processor, updated information to the external pairing system identifying the one or more tasks and the one or more agents, the updated information identifying more tasks, more agents, or more tasks and more agents than the first information.
9. The method of claim 1, further comprising: Routing a task of the one or more tasks to an agent of the one or more agents according to the selected pairing.
10. A system for pairing in a task assignment system, wherein the task assignment system includes an internal pairing system coupled to a switch, wherein the switch is coupled to an external pairing system via an application program interface, comprising: at least one computer processor communicatively coupled to and configured to operate in the task assignment system, wherein the at least one computer processor is further configured to: transmit, to the external pairing system via the application program interface, first information identifying one or more tasks waiting for assignment and one or more agents available for assignment, wherein the application program interface at least partially isolates the external pairing system from other portions of the task assignment system for security purposes and controls information exchanged between the external pairing system and the other portions of the task assignment system; transmit, to the external pairing system via the application program interface, a pairing request; determine an initial timeout window for the external pairing system to respond to the pairing request; receive, from the external pairing system at a first time within the initial timeout window, an extension request including instructions to extend the initial timeout window; in response to receiving the extension request, extend the initial timeout window; and receive, from the external pairing system at a second time within the extended timeout window, a pairing response including a selected pairing between the one or more tasks and the one or more agents; wherein the external pairing system has access to less information related to the switch and also less control over operation of the switch than the internal pairing system.
11. The system of claim 10, wherein, the task assignment system is a contact center system.
12. The system of claim 10, wherein, the selected pairing is selected according to a behavioral pairing strategy.
13. The system of claim 10, wherein, the initial timeout window is extended for a predetermined duration.
14. The system of claim 10, wherein, the initial timeout window is extended until a number of pairing options exceeds a predetermined threshold.
15. The system of claim 10, wherein, the initial timeout window is extended until the task assignment system transitions to a state in which multiple agents are available and multiple tasks are waiting for assignment.
16. The system of claim 10, wherein, the initial timeout window is extended based on information included in the extension request.
17. The system of claim 10, wherein, the at least one computer processor is further configured to, during the extended timeout window, transmit, to the external pairing system, updated information identifying the one or more tasks and the one or more agents, the updated information identifying more tasks, more agents, or more tasks and more agents than the first information.
18. The system of claim 10, wherein, the at least one computer processor is further configured to route a task in the one or more tasks to an agent in the one or more agents according to the selected pairing.
19. An article of manufacture for pairing in a task assignment system, wherein the task assignment system includes an internal pairing system coupled to a switch, wherein the switch is coupled to an external pairing system via an application program interface, the article of manufacture comprising: a non-transitory processor-readable medium; and instructions stored on the medium; wherein the instructions are configured to be readable from the medium by at least one computer processor communicatively coupled to and configured to operate in the task assignment system, and to thereby cause the at least one computer processor to operate so as to: transmitting first information to the external pairing system through the application program interface, the first information identifying one or more tasks waiting for assignment and one or more agents available for assignment, wherein the application program interface at least partially isolates the external pairing system from other portions of the task assignment system for security purposes and controls information exchanged between the external pairing system and the other portions of the task assignment system; transmitting a pairing request to the external pairing system through the application program interface; determining an initial timeout window for the external pairing system to respond to the pairing request; receiving an extension request from the external pairing system at a first time within the initial timeout window, the extension request including instructions to extend the initial timeout window; extending the initial timeout window in response to receiving the extension request; and receiving a pairing response from the external pairing system at a second time within the extended timeout window, the pairing response including a selected pairing between the one or more tasks and the one or more agents; wherein the external pairing system has access to less information related to the switch and also less control over the operation of the switch than the internal pairing system.
20. The article of claim 19, wherein, The task assignment system is a contact center system.
21. The article of claim 19, wherein, The selected pairing is selected according to a behavioral pairing strategy.
22. The article of claim 19, wherein, The initial timeout window is extended for a predetermined duration.
23. The article of claim 19, wherein, The initial timeout window is extended until a number of pairing options exceeds a predetermined threshold.
24. The article of claim 19, wherein, The initial timeout window is extended until the task assignment system transitions to a state in which multiple agents are available and multiple tasks are waiting for assignment.
25. The article of claim 19, wherein, The initial timeout window is extended based on information included in the extension request.
26. The article of claim 19, wherein, The instructions are further configured to cause the at least one computer processor to operate so as to transmit, to the external pairing system during the extended timeout window, updated information identifying the one or more tasks and the one or more agents, the updated information identifying more tasks, more agents, or more tasks and more agents than the first information.
27. The article of claim 19, wherein, The instructions are further configured to cause the at least one computer processor to operate so as to route a task in the one or more tasks to an agent in the one or more agents according to the selected pairing.
28. A method for pairing in an external pairing system, wherein the external pairing system is coupled to a switch of a task assignment system via an application program interface, wherein the task assignment system includes an internal pairing system coupled to the switch, the method comprising: receiving, by the at least one computer processor from the task assignment system, a pairing request associated with an initial timeout window; determining, by the at least one computer processor, to defer selection of a pairing between the one or more tasks and the one or more agents; transmitting, by the at least one computer processor to the task assignment system at a first time within the initial timeout window, an extension request including instructions to extend the initial timeout window; selecting, by the at least one computer processor, the pairing between the one or more tasks and the one or more agents; and transmitting, by the at least one computer processor to the task assignment system at a second time within the extended timeout window, a pairing response identifying the selected pairing; wherein the external pairing system has access to less information related to the switch and also less control over operation of the switch than the internal pairing system. The task assignment system is a contact center system.
29. The method of claim 28, wherein, The selected pairing is selected according to a behavioral pairing policy.
30. The method of claim 28, wherein, The initial timeout window is extended for a predetermined duration.
31. The method of claim 28, wherein, The initial timeout window is extended until a number of pairing options exceeds a predetermined threshold.
32. The method of claim 28, wherein, The initial timeout window is extended until the task assignment system transitions to a state in which multiple agents are available and multiple tasks are waiting for assignment.
33. The method of claim 28, wherein, The initial timeout window is extended based on information included in the extension request.
34. The method of claim 28, wherein, receiving, by the at least one computer processor from the task assignment system during the extended timeout window, updated information identifying the one or more tasks and the one or more agents, the updated information identifying more tasks, more agents, or both more tasks and more agents than the first information.
35. The method of claim 28, further comprising: routing a task of the one or more tasks to an agent of the one or more agents according to the selected pairing.
36. The method of claim 28, further comprising:
37. A system for pairing in an external pairing system, wherein the external pairing system is coupled to a switch of a task assignment system via an application program interface, wherein the task assignment system includes an internal pairing system coupled to the switch, the system comprising: at least one computer processor communicatively coupled to the external pairing system and configured to operate in the external pairing system, wherein the at least one computer processor is further configured to: receiving, from the task assignment system via the application program interface, first information identifying one or more tasks waiting for assignment and one or more agents available for assignment, wherein the application program interface at least partially isolates the external pairing system from other portions of the task assignment system for security purposes and controls information exchanged between the external pairing system and the other portions of the task assignment system; receiving, from the task assignment system, a pairing request associated with an initial timeout window; determining to defer selection of a pairing between the one or more tasks and the one or more agents; transmitting, to the task assignment system at a first time within the initial timeout window, an extension request including instructions to extend the initial timeout window; selecting the pairing between the one or more tasks and the one or more agents; and transmitting, to the task assignment system at a second time within the extended timeout window, a pairing response identifying the selected pairing; wherein the external pairing system has access to less information related to the switch and also less control over operation of the switch than the internal pairing system.
38. The system of claim 37, wherein, The task assignment system is a contact center system.
39. The system of claim 37, wherein, The selected pairing is selected according to a behavioral pairing strategy.
40. The system of claim 37, wherein, The initial timeout window is extended for a predetermined duration.
41. The system of claim 37, wherein, The initial timeout window is extended until a number of pairing options exceeds a predetermined threshold.
42. The system of claim 37, wherein, The initial timeout window is extended until the task assignment system transitions to a state in which multiple agents are available and multiple tasks are waiting for assignment.
43. The system of claim 37, wherein, The initial timeout window is extended based on information included in the extension request.
44. The system of claim 37, wherein, The at least one computer processor is further configured to receive, from the task assignment system during the extended timeout window, updated information identifying the one or more tasks and the one or more agents, the updated information identifying more tasks, more agents, or more tasks and more agents than the first information.
45. The system of claim 37, wherein, The at least one computer processor is further configured to route a task of the one or more tasks to an agent of the one or more agents according to the selected pairing.
46. An article of manufacture for pairing in an external pairing system, wherein the external pairing system is coupled to a switch of a task assignment system via an application program interface, wherein the task assignment system includes an internal pairing system coupled to the switch, the article of manufacture comprising: a non-transitory processor-readable medium; and instructions stored on the medium; wherein the instructions are configured to be readable from the medium by at least one computer processor communicatively coupled to the external pairing system and configured to operate in the external pairing system, and to thereby cause the at least one computer processor to operate so as to: receiving, from the task assignment system, first information identifying one or more tasks waiting for assignment and one or more agents available for assignment via the application program interface, wherein the application program interface at least partially isolates the external pairing system from other portions of the task assignment system for security purposes and controls information exchanged between the external pairing system and the other portions of the task assignment system; receiving, from the task assignment system, a pairing request associated with an initial timeout window; determining to postpone selecting a pairing between the one or more tasks and the one or more agents; transmitting, to the task assignment system at a first time within the initial timeout window, an extension request including instructions to extend the initial timeout window; selecting the pairing between the one or more tasks and the one or more agents; and transmitting, to the task assignment system at a second time within the extended timeout window, a pairing response identifying the selected pairing; wherein the external pairing system has access to less information related to the switch and also less control over operation of the switch than the internal pairing system.
47. The article of claim 46, wherein, The task assignment system is a contact center system.
48. The article of claim 46, wherein, The selected pairing is selected according to a behavioral pairing strategy.
49. The article of claim 46, wherein, The initial timeout window is extended for a predetermined duration.
50. The article of claim 46, wherein, The initial timeout window is extended until a number of pairing options exceeds a predetermined threshold.
51. The article of claim 46, wherein, The initial timeout window is extended until the task assignment system transitions to a state in which multiple agents are available and multiple tasks are waiting for assignment.
52. The article of claim 46, wherein, The initial timeout window is extended based on information included in the extension request.
53. The article of claim 46, wherein, The instructions are further configured to cause the at least one computer processor to operate so as to receive, from the task assignment system during the extended timeout window, updated information identifying the one or more tasks and the one or more agents, the updated information identifying more tasks, more agents, or more tasks and more agents than the first information.
54. The article of claim 46, wherein, The instructions are further configured to cause the at least one computer processor to operate so as to route a task of the one or more tasks to an agent of the one or more agents according to the selected pairing.
Citation Information
Patent Citations
Techniques for L3 pairing in a contact center system
US10257354B2
Techniques for behavioral pairing in a contact center system
US9300802B1
Techniques for benchmarking pairing strategies in a contact center system
US9712676B1
Techniques for hybrid behavioral pairing in a contact center system
US9781269B2
Techniques for hybrid behavioral pairing in a contact center system
US9787841B2