Technology for behavioral matching in contact center systems

By adopting behavioral pairing (BP) technology and network flow models in the contact center system to optimize the pairing of agents and contacts, the problems of uneven agent utilization and overall performance decline in existing technologies are solved, and the uniform utilization of agents and overall performance improvement are achieved.

CN115103075BActive Publication Date: 2025-09-19AFINITI AI LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202210528701.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-08-30
Filing Date
2018-04-05
Publication Date
2025-09-19
Estimated Expiration
2038-04-05

AI Technical Summary

Technical Problem

Existing contact center systems have difficulty selecting the optimal strategy among multiple possible pairing strategies when pairing contacts with agents, resulting in uneven agent utilization and decreased overall contact center performance.

Method used

A behavioral pairing (BP) technology is used to determine the preferred pairing between available agents and contact types through a computer processor, and network flow models and linear programming techniques are used to optimize the pairing of agents and contacts to achieve a balance in agent utilization and improve overall performance.

Benefits of technology

Improved the efficiency and performance of the matching strategy in the contact center system, achieved uniform utilization of seats, and improved the overall contact center performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115103075B_ABST
    Figure CN115103075B_ABST
Patent Text Reader

Abstract

Techniques for behavioral pairing in a contact center system are disclosed. In one particular embodiment, the techniques can be implemented as a method for behavioral pairing in a contact center system, comprising: determining, by at least one computer processor communicatively coupled and configured to operate in the contact center system, a plurality of agents available for connection to a contact; determining, by the at least one computer processor, a plurality of preferred contact-agent pairings from among possible pairings between the contact and the plurality of agents; selecting, by the at least one computer processor, one of the plurality of preferred contact-agent pairings based on a probabilistic model; and outputting, by the at least one computer processor, the selected one of the plurality of preferred contact-agent pairings for use in the contact in the contact center system.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is based on an invention patent application filed on April 5, 2018, with application number 201880001943.2, filed by Affinity Technologies Europe GmbH, and entitled "Technology for Behavior Matching in Contact Center Systems." This application is also based on the following divisional application, filed on April 5, 2018, with application number 202010735874.7, filed by Affinity Technologies GmbH, and entitled "Technology for Behavior Matching in Contact Center Systems."

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS

[0003] This international patent application claims priority to U.S. patent application No. 15 / 582,223, filed on April 28, 2017, and claims priority to U.S. patent application No. 15 / 691,106, filed on August 30, 2017, which is a continuation-in-part of U.S. patent application No. 15 / 582,223, filed on April 28, 2017, the entire contents of which are hereby incorporated by reference as if fully set forth herein. Technical Field

[0004] The present disclosure relates generally to pairing contacts and agents in contact centers and, more particularly, to techniques for behavior pairing in contact center systems. Background Art

[0005] A typical contact center algorithmically assigns contacts arriving at the contact center to agents available to handle those contacts. Sometimes, a contact center may have available agents waiting to be assigned to inbound or outbound contacts (e.g., phone calls, internet chat sessions, emails). At other times, a contact center may have contacts waiting in one or more queues for agents to become available for assignment.

[0006] In some typical contact centers, contacts are assigned to agents based on arrival time, and as agents become available, they receive contacts based on that time order. This strategy may be referred to as a "first-in, first-out," "FIFO," or "round-robin" strategy. In other typical contact centers, other strategies may be used, such as "performance-based routing," or "PBR."

[0007] In other, more advanced contact centers, contacts are paired with agents using a "behavior pairing" or "BP" strategy, under which contacts and agents are intentionally (preferably) paired in a way that assigns subsequent contact-agent pairs such that, when the benefits of all assignments under the BP strategy are aggregated, they can exceed the benefits of FIFO and other strategies such as performance-based routing ("PBR") strategies. BP is designed to encourage balanced utilization (or a degree of utilization skew) of agents within skilled queues while still improving overall contact center performance beyond what FIFO or PBR approaches would allow. This is a remarkable achievement because BP operates on the same calls and the same agents as FIFO or PBR approaches, providing approximately even agent utilization as FIFO, yet still improving overall contact center performance. BP is described, for example, in U.S. Patent No. 9,300,802, the entire disclosure of which is incorporated herein by reference. Additional information regarding these and other features of a pairing or matching module (sometimes also referred to as a "SATMAP," "routing system," "routing engine," etc.) is described in, for example, U.S. Patent No. 8,879,715, the entire contents of which are incorporated herein by reference.

[0008] A BP strategy can be combined with a diagonal strategy for determining preferred pairings, using a one-dimensional ranking of agents and contact types. However, this strategy can restrict or otherwise limit the type and number of variables that the BP strategy can optimize, or the amount of one or more variables that can be optimized given more degrees of freedom.

[0009] In view of the above, it can be appreciated that there is a need for a system that can improve the efficiency and performance of pairing strategies designed to select among multiple possible pairings, such as BP strategies. Summary of the Invention

[0010] Techniques for behavioral pairing in a contact center system are disclosed. In one particular embodiment, the techniques can be implemented as a method for behavioral pairing in a contact center system, comprising: determining, by at least one computer processor communicatively coupled and configured to operate in the contact center system, a plurality of agents available for connection to a contact; determining, by the at least one computer processor, a plurality of preferred contact-agent pairings from among possible pairings between the contact and the plurality of agents; selecting, by the at least one computer processor, one of the plurality of preferred contact-agent pairings based on a probabilistic model; and outputting, by the at least one computer processor, the selected one of the plurality of preferred contact-agent pairings for contacting in the contact center system.

[0011] According to other aspects of this particular embodiment, the probabilistic model may be a network flow model for balancing agent utilization, a network flow model for applying agent utilization skew, or a network flow model for optimizing a total expected value of at least one contact center metric. Furthermore, the at least one contact center metric may be at least one of revenue generation, customer satisfaction, and average handle time.

[0012] According to other aspects of this particular embodiment, the probability model may be a network flow model subject to constraints on agent skills and contact skill requirements, and the network flow model may be adjusted to minimize agent utilization imbalance according to the constraints on agent skills and contact skill requirements.

[0013] According to other aspects of this particular embodiment, the probabilistic model may incorporate an expected return value based on an analysis of at least one of historical contact-agent outcome data and contact attribute data.

[0014] In another particular embodiment, these techniques can be implemented as a system for behavior pairing in a contact center system, comprising at least one computer processor configured to operate in the contact center system, wherein the at least one computer processor is configured to perform the steps of the above method.

[0015] In another particular embodiment, these techniques can be implemented as an article of manufacture for behavior pairing in a contact center system, comprising a non-transitory computer processor-readable medium; and instructions stored on the medium; wherein the instructions are configured to be read from the medium by at least one computer processor configured to operate in the contact center system, thereby causing the at least one computer processor to operate to perform the steps of the above method.

[0016] The present disclosure will now be described in more detail with reference to specific embodiments as shown in the accompanying drawings. Although the present disclosure is described below with reference to specific embodiments, it should be understood that the present disclosure is not limited thereto. Those of ordinary skill in the art who have access to the teachings herein will recognize additional embodiments, improvements, and embodiments, as well as other areas of use, within the scope of the present disclosure described herein, and the present disclosure may have significant utility with respect to additional embodiments, improvements, and embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] In order to facilitate a more complete understanding of the present disclosure, reference is now made to the accompanying drawings, in which like elements are represented by like numerals. These drawings should not be construed as limiting the present disclosure, but are intended to be used for illustration only.

[0018] Figure 1 A block diagram of a contact center according to an embodiment of the present disclosure is shown.

[0019] Figure 2 An example of a BP expenditure matrix according to an embodiment of the present disclosure is shown.

[0020] Figure 3 The naive BP utilization moment ( Example of a BP utilization matrix.

[0021] Figure 4A An example of a BP skill-based expenditure matrix according to an embodiment of the present disclosure is shown.

[0022] Figure 4B An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0023] Figure 4C An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0024] Figure 4D An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0025] Figure 4E An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0026] Figure 4F An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0027] Figure 4G An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0028] Figure 5A An example of a BP skill-based expenditure matrix according to an embodiment of the present disclosure is illustrated.

[0029] Figure 5B An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0030] Figure 5C An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0031] Figure 5D An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0032] Figure 5E An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0033] Figure 5F An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0034] Figure 5GAn example of a BP network flow according to an embodiment of the present disclosure is shown.

[0035] Figure 5H An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0036] Figure 5I An example of a BP network flow according to an embodiment of the present disclosure is shown.

[0037] Figure 6 A flowchart of a BP skill-based expenditure matrix method according to an embodiment of the present disclosure is illustrated.

[0038] Figure 7A A flow chart of a BP network flow method according to an embodiment of the present disclosure is shown.

[0039] Figure 7B A flow chart of a BP network flow method according to an embodiment of the present disclosure is shown.

[0040] Figure 8 A flow chart of a BP network flow method according to an embodiment of the present disclosure is shown.

[0041] Figure 9 A flow chart of a BP network flow method according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0042] A typical contact center algorithmically assigns contacts arriving at the contact center to agents available to handle those contacts. Sometimes, a contact center may have available agents waiting to be assigned to inbound or outbound contacts (e.g., phone calls, internet chat sessions, emails). At other times, a contact center may have contacts waiting in one or more queues for agents to become available for assignment.

[0043] In some typical contact centers, contacts are assigned to agents based on arrival time, and as agents become available, they receive contacts based on that time order. This strategy may be referred to as a "first-in, first-out," "FIFO," or "round-robin" strategy. In other typical contact centers, other strategies may be used, such as "performance-based routing," or "PBR."

[0044] In other, more advanced contact centers, contacts are paired with agents using a "behavior pairing" or "BP" strategy, under which contacts and agents are intentionally (preferably) paired in a way that assigns subsequent contact-agent pairs such that, when the benefits of all assignments under the BP strategy are aggregated, they can exceed the benefits of FIFO and other strategies, such as performance-based routing ("PBR") strategies. BP is designed to encourage balanced utilization (or utilization skewness) of agents within skill queues while still improving overall contact center performance beyond what FIFO or PBR approaches would allow. This is a remarkable achievement because BP operates on the same calls and the same agents as FIFO or PBR approaches, providing roughly even agent utilization as FIFO, yet still improving overall contact center performance. BP is described, for example, in U.S. Patent No. 9,300,802, the entire disclosure of which is incorporated herein by reference. Additional information regarding these and other features of a pairing or matching module (sometimes also referred to as a "SATMAP," "routing system," "routing engine," etc.) is described in, for example, U.S. Patent No. 8,879,715, the entire contents of which are incorporated herein by reference.

[0045] The BP strategy can be combined with a diagonal strategy for determining preferred pairings, using a one-dimensional ranking of agents and contact types. However, this strategy can restrict or otherwise limit the type and number of variables that the BP strategy can optimize, or the amount of one or more variables that can be optimized given more degrees of freedom.

[0046] In light of the foregoing, it can be appreciated that a system is needed to improve the efficiency and performance of pairing strategies designed to select from a variety of possible pairings, such as BP strategies. Such a system can provide numerous benefits, including, in some embodiments, optimization based on runtime comparative advantage; maintaining uniform or near-uniform utilization of agents; merging cross-skill models into a single coherent model or a smaller number of coherent models; and creating more comprehensive, complex, and capable models. As described in detail below, these techniques can be multidimensional (e.g., multivariate) in nature and can utilize linear programming, quadratic programming, or other optimization techniques to determine preferred contact-agent pairings. Examples of these techniques are described in, for example, Cormen et al., Introduction to Algorithms, 3rd ed., at 708–68 and 843–897 (Ch. 26. “Maximum Flow” and Ch. 29 “Linear Programming”) (2009), and Nocedal and Wright, Numerical Optimization, at 448–96 (2006), the entire contents of which are incorporated herein by reference.

[0047] Figure 1 A block diagram of a contact center system 100 according to an embodiment of the present disclosure is shown. The specification herein describes network elements, computers and / or components for simulating a system and method for a contact center system that may include one or more modules. As used herein, the term "module" may 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 processor-readable and recordable storage medium (i.e., a module is not the software itself). Note that modules are exemplary. Modules may be combined, integrated, separated and / or replicated to support various applications. In addition, instead of or in addition to the functions performed at a particular module, the functions described herein as being performed at a particular module may be performed at one or more other modules and / or by one or more other devices. In addition, modules may be implemented across multiple devices and / or other components that are local or remote to each other. In addition, a module may be removed from one device and added to another device, and / or may be included in two devices.

[0048] like Figure 1 As shown, the contact center system 100 may include a central switch 110. The central switch 110 may receive incoming contacts (e.g., callers) or support outgoing connections to contacts via a telecommunications network (not shown). The central switch 110 may include contact routing hardware and software to facilitate routing contacts among one or more contact centers, or to facilitate one or more PBX / ACD or other queuing or switching components, including other Internet-based, cloud-based, or otherwise networked contact-agent hardware or software-based contact center solutions.

[0049] Central switch 110 may not be necessary, such as if there is only one contact center, or if there is only one PBX / ACD routing component in contact center system 100. If more than one contact center is part of contact center system 100, each contact center may include at least one contact center switch (e.g., contact center switches 120A and 120B). Contact center switches 120A and 120B may be communicatively coupled to central switch 110. In embodiments, various topologies of routing and network components may be configured to implement the contact center system.

[0050] Each contact center switch of each contact center can be communicatively coupled to multiple agents (or "pools"). Each contact center switch can support a certain number of agents (or "seats") logged in at the same time. At any given time, a logged-in agent may be available and waiting to be connected to a contact, or a logged-in agent may be unavailable for a variety of reasons, such as being connected to another contact, performing a post-call function such as recording information about a call, or taking a break.

[0051] exist Figure 1 In the example shown in FIG, central switch 110 routes contacts to one of two contact centers via contact center switch 120A and contact center switch 120B, respectively. Each of contact center switches 120A and 120B is shown as having two agents. Agents 130A and 130B can log into contact center switch 120A, while agents 130C and 130D can log into contact center switch 120B.

[0052] The contact center system 100 may also be communicatively coupled to integration services from, for example, third-party vendors. Figure 1 In the example of FIG. 1 , the BP module 140 can be communicatively coupled to one or more switches in the switch system of the contact center system 100, such as the central switch 110, the contact center switch 120A, or the contact center switch 120B. In some embodiments, the switches of the contact center system 100 can be communicatively coupled to multiple BP modules. In some embodiments, the BP module 140 can be embedded within a component of the contact center system (e.g., embedded in or otherwise integrated with a switch, or a "BP switch"). The BP module 140 can receive information about agents logged into the switch (e.g., agents 130A and 130B) and information about incoming contacts via another switch (e.g., the central switch 110) from the switch (e.g., the contact center switch 120A) or, in some embodiments, from a network (e.g., the Internet or a telecommunications network) (not shown).

[0053] The contact center may include multiple pairing modules (e.g., a BP module and a FIFO module) (not shown), and one or more pairing modules may be provided by one or more different vendors. In some embodiments, one or more pairing modules may be components of BP module 140 or one or more switches, such as central switch 110 or contact center switches 120A and 120B. In some embodiments, the BP module may determine which pairing module may handle pairing for a particular contact. For example, the BP module may alternate between enabling pairing via the BP module and enabling pairing via the FIFO module. In other embodiments, a pairing module (e.g., a BP module) may be configured to emulate other pairing strategies. For example, the BP module or a BP component integrated with a BP component in the BP module may determine whether the BP module may use BP pairing or emulated FIFO pairing for a particular contact. In this case, "BP on" may refer to times when the BP module is applying the BP pairing strategy, while "BP off" may refer to other times when the BP module is applying a different pairing strategy (e.g., FIFO).

[0054] In some embodiments, regardless of whether pairing strategies are handled by separate modules or if some pairing strategies are emulated within a single pairing module, a single pairing module can be configured to monitor and store information about pairings performed under any or all pairing strategies. For example, the BP module can observe and record data about FIFO pairings performed by the FIFO module, or the BP module can observe and record data about simulated FIFO pairings performed by the BP module operating in FIFO emulation mode.

[0055] Figure 2 An example of a BP payout matrix 200 according to an embodiment of the present disclosure is shown. In this simplified, hypothetical, computer-generated model of a contact center system, there are three agents (agents 201, 202, and 203) and three contact types (contact types 211, 212, and 213). Each cell of the matrix indicates the "payout," or expected outcome, or expected value, of a contact-agent interaction between a particular agent and a contact of the indicated contact type. In a real-world contact center system, there may be dozens, hundreds, or more agents, and dozens, hundreds, or more contact types.

[0056] In BP spend matrix 200, the spend for an interaction between agent 201 and a contact of contact type 211 is 0.30, or 30%. For agent 201, the spend for contact type 212 is 0.28, and for contact type 213 is 0.15. For agent 202, the spend for contact type 211 is 0.30, for contact type 212 is 0.24, and for contact type 213 is 0.10. For agent 203, the spend for contact type 211 is 0.25, for contact type 212 is 0.20, and for contact type 213 is 0.09.

[0057] The payout can represent the expected value of any of a variety of different metrics or optimization variables. Examples of optimization variables include sales conversion rate, customer retention rate, customer satisfaction rate, average handle time metric, etc., or a combination of two or more metrics. For example, if the BP payout matrix 200 models a hold queue in a contact center system, each payout can represent the probability that an agent will "hold" or retain a customer of a particular contact type. For example, there is a .30 (or 30%) chance that agent 201 will hold a contact identified as contact type 211.

[0058] In some embodiments, historical contact-agent interaction data can be used to generate a contact center system's BP expenditure matrix 200 or other similar computer-generated model. For example, the BP expenditure matrix 200 can incorporate rolling windows of historical data for weeks, months, years, etc. to forecast or otherwise estimate the expenditure for a given interaction between an agent and contact type. As agent staffing changes, the model can be updated to reflect changes in the agent staffing, including hiring new agents, firing existing agents, or training existing agents in new skills. Contact types can be generated based on information about prospective contacts and existing customers, such as customer relationship management (CRM) data, customer attribute data, third-party customer data, contact center data, etc., and can include various types of data, such as demographic and psychographic data, as well as behavioral data such as past purchases or other historical customer information. The BP expenditure matrix 200 can be updated in real time or periodically, such as hourly, nightly, weekly, etc., to incorporate new contact-agent interaction data as it becomes available.

[0059] Figure 3 An example of a naive BP utilization matrix 300 according to an embodiment of the present disclosure is illustrated. Figure 2 In this simplified, hypothetical, computer-generated model of a contact center system, there are three agents (agents 201, 202, and 203), and there are three contact types (contact types 211, 212, and 213). In a real-world contact center system, there may be dozens, hundreds, or more agents, and there may be dozens, hundreds, or more contact types.

[0060] Under a BP strategy, agents are preferentially paired with contacts of specific contact types based on a computer-generated BP model. In an L1 environment, the contact queue is empty, and multiple agents are available, idle, or otherwise ready and waiting to connect with contacts. For example, in a chat scenario, an agent may have the ability to chat with multiple contacts simultaneously. In these environments, an agent can be ready to connect to one or more additional contacts while multitasking in one or more other channels, such as email and chat.

[0061] In some embodiments, when a contact arrives at a queue or other component of the contact center system, the BP policy analyzes information about the contact to determine the type of contact (e.g., a contact of contact type 211, 212, or 213). The BP policy determines which agents are available to connect to the contact and selects, recommends, or otherwise outputs pairing instructions for the most preferred available agent.

[0062] In an L2 environment, multiple contacts are waiting in a queue to be connected to an agent, and no agent is available, idle, or otherwise ready to connect to the contacts. The BP policy analyzes information about each contact to determine the type of each contact (e.g., one or more of contact types 211, 212, or 213). In some embodiments, when an agent becomes available, the BP policy determines which contacts are available to connect to the agent and selects, recommends, or otherwise outputs pairing instructions for the most preferred available contact.

[0063] As shown in the header row of the naive BP utilization matrix 300, each agent has an expected availability or target utilization. In this example, the BP policy targets a balanced agent utilization of 1 / 3 (".33") for each of the three agents 201, 202, and 203. Therefore, over time, each agent is expected to be utilized equally, or approximately equally. This configuration of BP is similar to FIFO in that both BP and FIFO target unskewed or balanced agent utilization.

[0064] This configuration of BP differs from performance-based routing (PBR) because PBR targets skewed or unbalanced agent utilization, intentionally allocating a disproportionate number of contacts to relatively high-performing agents. Other configurations of BP can be similar to PBR because other BP configurations can also target skewed agent utilization. Additional information regarding these and other characteristics of skewed agent or contact utilization (e.g., "kappa" and "rho" functions) is described in, for example, U.S. Patent Application Nos. 14 / 956,086 and 14 / 956,074, the entire contents of which are incorporated herein by reference.

[0065] Each contact type has an expected availability (e.g., arrival frequency) or target utilization, as shown in the title bar of the naive BP utilization matrix 300. In this example, contacts of contact type 211 are expected to be available 50% (".50") of the time, contacts of contact type 212 are expected to be available 30% (".30") of the time, and contacts of contact type 212 are expected to be available the remaining 20% ​​(".20") of the time.

[0066] Each cell of the matrix indicates the target utilization, or expected frequency, of contact-agent interactions between a particular agent and contacts of the indicated contact type. In the example of the naive BP utilization matrix 300, it is desired to allocate agents equally to each contact type based on the frequency of each contact type. Contacts of contact type 211 are expected to be in the queue 50% of the time, with approximately 1 / 3 of the contacts allocated to each of agents 201, 202, and 203. Overall, contact-agent interactions between contact type 211 and agent 201 are expected to occur approximately 16% (".16") of the time, between contact type 211 and agent 202 approximately 16% of the time, and between contact type 211 and agent 203 approximately 16% of the time. Similarly, contacts of contact type 212 (30% frequency) are expected to occur approximately 10% (".01") of the time with each of the interactions between agents 201-203, and contacts of contact type 213 (20% frequency) are expected to occur approximately 7% (".07") of the time with each of the interactions between agents 201-203.

[0067] Naive BP utilization matrix 300 also shows roughly the same distribution of contact-agent interactions that would occur under a FIFO pairing strategy, where each contact-agent interaction would be equally likely (normalized for the frequency of each contact type). Under both naive BP and FIFO, the target (and expected) utilization for each agent is equal: 1 / 3 of the contact-agent interactions for each of the three agents 201-203.

[0068] In summary, the BP expenditure matrix 200 ( Figure 2 ) and the naive BP utilization matrix 300 enable the expected total performance of the contact center system to be determined by calculating the average expenditure weighted by the frequency distribution of each contact-agent interaction shown in the naive BP utilization matrix 300: (.30 + .30 + .25) (.50) (1 / 3) + (.28 + .24 + .20) (.30) (1 / 3) + (.15 + .10 + .09) (.20) (1 / 3) ≈ 0.24. Therefore, the expected performance of the contact center system under naive BP or FIFO is approximately 0.24, or 24%. If the expenditure represents, for example, the retention rate, the expected total performance would be a retention rate of 24%.

[0069] Figures 4A-4G An example of a more complex BP expenditure matrix and network flow is shown. In this simplified hypothetical contact center, agents or contact types can have different combinations of one or more skills (i.e., skill sets), and linear programming-based network flow optimization techniques can be applied to improve overall contact center performance while maintaining balanced utilization of agents and contacts.

[0070] Figure 4A FIG. 4 shows an example of a BP skill-based expense matrix 400A according to an embodiment of the present disclosure. The hypothetical contact center system represented in the BP skill-based expense matrix 400A is similar to that in the BP expense matrix 200 ( Figure 2 ), provided there are three agents (agents 401, 402, and 403) each with an expected availability / utilization of approximately 1 / 3 or 0.33, and three contact types (contact types 411, 412, and 413) with expected frequencies / utilizations of approximately 25% (0.15 + 0.10), 45% (0.15 + 0.30), and 30% (0.20 + 0.10), respectively.

[0071] However, in this example, each agent has been assigned, trained, or otherwise enabled to acquire a specific skill (or, in other exemplary contact center systems, a collection of skills). Examples of skills include broad skills such as technical support, billing support, sales, retention, etc.; language skills such as English, Spanish, French, etc.; narrower skills such as "Level 2 Advanced Technical Support," technical support for Apple iPhone users, technical support for Google Android users, etc.; and various other skills.

[0072] Agent 401 is available for contacts requiring at least skill 421 , agent 402 is available for contacts requiring at least skill 422 , and agent 403 is available for contacts requiring at least skill 423 .

[0073] Also in this example, each type of contact may require one or more of the skills 421-423. For example, a caller to a call center may interact with an interactive voice response (IVR) system, a touch-tone menu, or a live operator to determine which skills a particular caller / contact requires for the upcoming interaction. Another way to think of the "skills" of a contact type is the specific needs of the contact, such as purchasing something from an agent with sales skills, or having a technical issue resolved by an agent with technical support skills.

[0074] In this example, it is expected that 0.15 or 15% of contacts are of contact type 411 and require skill 421 or skill 422; it is expected that 0.15 or 15% of contacts are of contact type 412 and require skill 421 or 422; it is expected that 0.20 or 20% of contacts are of contact type 413 and require skill 421 or 422; it is expected that 0.10 or 10% of contacts are of contact type 411 and require skill 422 or skill 423; it is expected that 0.30 or 30% of contacts are of contact type 412 and require skill 422 or skill 423; it is expected that 0.10 or 10% of contacts are of contact type 413 and require skill 422 or skill 423.

[0075] In some embodiments, an agent may be required to have the union of all skills determined to be necessary for a particular contact (e.g., Spanish skills and iPhone technical support skills). In some embodiments, some skills may be preferred but not required (i.e., if no agent with iPhone technical support skills is available immediately or within a threshold time, the contact may be paired with an available Android technical support agent).

[0076] Each cell of the matrix indicates the spend for a contact-agent interaction between a particular agent with a particular skill or skill set and a contact with a particular type and need (skill) or need set (skill set). In this example, agent 401 with skill 421 can be paired with any contact of contact type 411, 412, or 413 when the contact requires at least skill 421 (with spends of .30, .28, and .15, respectively). Agent 402 with skill 422 can be paired with any contact of contact type 411, 412, or 413 when the contact requires at least skill 422 (with spends of .30, .24, .10, .30, .24, and .10, respectively). Agent 403 with skill 423 can be paired with any contact of contact type 411, 412, or 413 when the contact requires at least skill 423 (with spends of .25, .20, and .09, respectively).

[0077] Empty cells represent contact and agent combinations that will not be paired under this BP pairing strategy. For example, agent 401 with skill 421 will not be paired with a contact that does not require at least skill 421. In this example, the 18-cell spend matrix includes 6 empty cells and 12 non-empty cells, representing 12 possible pairings.

[0078] Figure 4BAn example of a BP network flow 400B according to an embodiment of the present disclosure is shown. BP network flow 400B shows agents 401-403 as "sources" on the left side of the network (or graph), and contact types 411-413 for each skill set as "sinks" on the right side of the network. Each edge in BP network flow 400B represents a possible pairing between an agent and a contact of a particular type and set of requirements (skills). For example, edge 401A represents a contact-agent interaction between agent 401 and a contact of contact type 411 requiring skill 421 or skill 422. Edges 401B, 401C, 402A-F, and 403A-C represent other possible contact-agent pairings for their respective agents and contacts / skills as shown.

[0079] Figure 4C 400C is an example of a BP network flow according to an embodiment of the present disclosure. The BP network flow 400C is a BP expenditure matrix 400A ( Figure 4A ) network / graph representation. BP network flow 400C and BP network flow 400B ( Figure 4B ), except that for clarity, the identifier of each edge is not shown. Instead, the payout for each edge to agent 401 is shown, e.g., .30 on edge 401A, .28 on edge 401B, and .15 on edge 401C, along with the corresponding payouts for each edge to agents 402 and 403.

[0080] Figure 4D 400D according to an embodiment of the present disclosure. Figure 4C ), except that for clarity, the skills of each agent 401-403 are not shown. Instead, the relative "supply" provided by each agent and the "demand" required for each contact / skill combination are shown. Each agent provides a "supply" equivalent to the expected availability or target utilization of each agent (1 / 3 of the total supply for 1 or 100%, respectively). Each contact type / skill demand is equivalent to the agent supply for the expected frequency or target utilization of each contact type / skill (0.15, 0.15, 0.20, 0.10, 0.30, 0.10 for a total demand of 1 or 100%, respectively). In this example, the total supply and demand are normalized or otherwise configured to be equal to each other, and the capacity or bandwidth along each edge is considered to be infinite or otherwise unrestricted (i.e., an edge may describe "who can be paired with whom," rather than "how much" or "how many times"). In other embodiments, there may be a supply / demand imbalance, or there may be quotas or other capacity restrictions set on some or all edges.

[0081] Figure 4E400E according to an embodiment of the present disclosure. Figure 4D ), except that for ease of presentation, the supply and demand have been scaled by a factor of 3000. This means that each agent's supply is displayed as 1000 rather than 1 / 3, and the total supply is displayed as 3000. Similarly, the relative demand for each contact type / skill set is scaled, also totaling 3000. In some embodiments, no scaling is performed. In other embodiments, the scaling amount may vary and be greater or less than 3000.

[0082] Figure 4F FIG. 4 shows an example of a BP network flow 400F according to an embodiment of the present disclosure. BP network flow 400F and BP network flow 400E ( Figure 4E ), except that for clarity, the expenditure along each edge is not shown, and instead one solution of the BP network flow 400F is shown. In some embodiments, a "maximum flow" or "max flow" algorithm or other linear programming algorithm can be applied to the BP network flow 400F to determine one or more solutions for optimizing the "flow" or "distribution" of supply (source) to meet demand (receiver), which can balance the utilization of agents and contacts.

[0083] In some embodiments, the goal can also be to maximize the total expected value of the metric to be optimized. For example, in a sales queue, the metric to be optimized can be conversion rate, and the maximum flow goal is to maximize the total expected conversion rate. In an environment where multiple maximum flow solutions are available, one technique for selecting a solution can be to select the "maximum cost" or "max cost" solution, that is, the solution that results in the highest total return at maximum flow.

[0084] In this example, agents 401-403 represent sources, while contact types 411-413 with various skill set combinations represent recipients. In some contact center environments, such as L2 (contact surplus) environments, the network flow may be reversed so that contacts waiting in the queue are the sources providing supply, and possible agents that may become available are the recipients providing demand.

[0085] BP network flow 400F illustrates an optimal flow solution determined by a BP module or similar component. According to this solution, which can be selected from several options or randomly, edge 401A (from agent 401 to contact type 411 with skills 421 and 422) has an optimal flow of 0; edge 401B (from agent 401 to contact type 412 with skills 421 and 422) has an optimal flow of 400; and edge 401C (from agent 401 to contact type 413 with skills 421 and 422) has an optimal flow of 600. Similarly, the optimal flows for edges 402A-F for agent 402 are 450, 50, 0, 300, 200, and 0, respectively; while the optimal flows for edges 403A-C for agent 403 are 0, 700, and 300, respectively. As described in detail below, this optimal flow solution describes the relative proportions of contact-agent interactions (or the relative likelihood of selecting a particular contact-agent interaction) that will achieve target utilization of agents and contacts based on the spend for each pair of agent and contact type / skill set, while also maximizing the desired overall performance of the contact center system.

[0086] Figure 4G 400G according to an embodiment of the present disclosure. Figure 4F ), except that for clarity, edges for which the best flow solution is determined to be 0 have been removed. Under the BP policy, agents will not preferably pair with contact types for which the best flow solution is determined to be 0, despite having complementary skills and non-zero payout.

[0087] In this example, edges 401A, 402C, 402F, and 403A have been removed. The remaining edges represent preferred pairings. Thus, in an L1 (agent surplus) environment, when a contact arrives, it may be preferably paired with one of the agents for whom a preferred pairing is available. For example, a contact of contact type 411 with skills 421 and 422 may always be preferably paired with agent 402, requiring a total supply (availability) of 450 units for agent 402. As another example, a contact of contact type 412 with skills 421 and 422 may be preferably paired with agent 401 some of the time and with agent 402 some of the time. The total demand for this contact is 450 (based on the expected frequency of incoming contacts / skills of this type), requiring 400 units of supply from agent 401, with a remaining 50 units of supply from agent 402.

[0088] In some embodiments, when a contact of this type / skill arrives, the BP module or similar component can select agent 401 or 402 based on the relative demand (400 and 50) being made by each agent. For example, a pseudo-random number generator can be used to randomly select agent 401 or 402, weighting the random selection based on the relative demand. Thus, for each contact of this type / skill, there is a 400 / 450 (≈89%) probability of selecting agent 401 as the preferred pairing, and a 50 / 450 (≈11%) probability of selecting agent 402 as the preferred pairing. Over time, many contacts of this type / skill have been paired using the BP strategy, with approximately 89% of them being paired with agent 401, and the remaining 11% being paired with agent 402. In some embodiments, the overall target utilization of agents or the target utilization for each contact type / skill can be the "bandwidth" of the agents for receiving a proportional percentage of contacts.

[0089] For BP network flow 400G with this solution, the total supply from all agents is expected to meet the total demand of all contacts. Therefore, the target utilization of all agents (here, balanced utilization) can be achieved, while also achieving a higher expected overall performance in the contact center system based on the expenditures and the relative allocation of agents to contacts along the edges with these expenditures.

[0090] Figure 5A -I shows another example of a BP expenditure matrix and network flow. For certain configurations of agents with various skill sets and contact types, the optimal or maximum flow for a given BP network flow may not completely balance supply and demand. This example is similar to Figures 4A-4G , except that this configuration of agents and contact types initially results in an unbalanced supply and demand. In this simplified hypothetical contact center, a quadratic programming-based technique for adjusting target utilization can be applied in conjunction with a linear programming-based network flow optimization technique to improve overall contact center performance while maintaining an optimal skewed utilization between agents and contacts to accommodate the unbalanced configuration of agents and contact types.

[0091] Figure 5A An example of a BP skill-based expense matrix 500A according to an embodiment of the present disclosure is depicted. The hypothetical contact center system represented in the BP skill-based expense matrix 500A is similar to the contact center system represented in the BP skill-based expense matrix 400A ( FIG. 4 ) in that there are three agents (agents 501, 502, and 503) with initial expected availability / utilization rates of approximately 1 / 3 or .33, respectively. There are two contact types (contact types 511 and 512) with expected frequencies / utilization rates of approximately 40% (.30 + .10) and 60% (.30 + .30), respectively.

[0092] In this example, agent 501 has been assigned, trained, or otherwise available for skills 521 and 522, and agents 502 and 503 are available only for skill 522. For example, if skill 521 represents a French skill and skill 522 represents a German skill, agent 501 can be assigned to contacts requiring either French or German, while agents 502 and 503 can only be assigned to contacts requiring German and not to contacts requiring French.

[0093] In this example, 0.30 or 30% of contacts are expected to be of contact type 511 and require skill 521; 0.30 or 30% of contacts are expected to be of contact type 512 and require skill 521; 0.10 or 10% of contacts are expected to be of contact type 511 and require skill 522; and 0.30 or 30% of contacts are expected to be of contact type 512 and require skill 522.

[0094] In this example, agent 501 can be paired with any contact (with payouts of .30, .28, .30, and .28, as shown in BP skill-based payout matrix 500A). Agents 502 and 503, who only have skill 522, can be paired with contacts of contact types 511 and 512 that require at least skill 522 (with payouts of .30, .24, .25, and .20, as shown in BP skill-based payout matrix 500A). As shown by the empty cells in BP skill-based payout matrix 500A, agents 502 and 503 will not be paired with contacts that only require skill 521. The 12-cell payout matrix includes 4 empty cells and 8 non-empty cells, indicating 8 possible pairings.

[0095] Figure 5B 5 shows an example of a BP network flow 500B according to an embodiment of the present disclosure. Figure 4B ), BP network flow 500B shows agents 501-503 as sources on the left side of the network, and contact types 512 and 5123 for each skill set as receivers on the right side of the network. Each edge in BP network flow 500B represents a possible pairing between an agent and a contact of a particular type and requirement set (skills). Edges 501A-D, 502A-B, and 503A-B represent possible contact-agent pairings for their respective agents and contact types / skills as shown.

[0096] Figure 5C 500C is an example of a BP network flow according to an embodiment of the present disclosure. The BP network flow 500C is a BP expenditure matrix 500A ( Figure 5A). For clarity, the identifier of each edge is not shown. Instead, the expenditure for each edge is shown, e.g., 0.30 on edges 501A and 501D, and 0.28 on edges 501B and 501C, along with the corresponding expenditure for each edge to agents 502 and 503.

[0097] Figure 5D An example of a BP network flow 500D according to an embodiment of the present disclosure is shown. The BP network flow 500D shows the relative initial supply provided by each agent and the demand required by each contact type / skill combination. The total supply 1 is equal to the total demand 1.

[0098] Figure 5E An example of a BP network flow 500E according to an embodiment of the present disclosure is shown. For ease of presentation, supply and demand have been scaled by a factor of 3000, and for each edge, the maximum flow solution for the initial supply is shown. According to this solution, edge 501A (from agent 501 to contact type 511 with skill 521) has an optimal flow of 900; edge 501B (from agent 501 to contact type 512 with skill 521) has an optimal flow of 100; and edges 501C and 501D have optimal flows of 0. Similarly, the optimal flows for agent 502 are 300 and 700, respectively; and the optimal flows for agent 503 are 0 and 200, respectively.

[0099] According to this solution, agent 503 is substantially underutilized relative to agents 501 and 502. While agents 501 and 502 are optimized for a full supply of 1,000 units each, agent 503 is expected to utilize 200 units, or 1 / 5 of agent 503's supply. In a contact center environment, agent 503 may be assigned to fewer contacts and idle more often than agents 501 and 502, or the agent may be assigned to less-preferred contacts, resulting in contact center performance that is lower than that predicted by the maximum flow solution.

[0100] Similarly, according to this solution, contacts of contact type 512 requiring skill 521 are substantially underutilized (or "underserved") relative to other contact type / skill combinations. While the other contact type / skill combinations are optimized for full demand of 900, 300, and 900 units, respectively, contact type 512 requiring skill 521 is expected to receive only 100 units, or 1 / 9 of the demand for that contact type / skill. In a contact center environment, this underutilized contact type / skill combination may experience longer wait times relative to other contact type / skill combinations, or contacts may be assigned to non-preferred agents, resulting in contact center performance that is lower than that predicted by the maximum throughput solution.

[0101] The solution shown in BP network flow 500E still balances overall supply and demand, but agent 503 may be selected less often than other peers, and / or some contacts may have to wait longer for the preferred agent, and / or overall contact center performance may not meet the total expenditure expected by the maximum flow solution.

[0102] Figure 5F and 5G As shown in BP network flow 500E ( Figure 5E ), in a contact center system with an unbalanced maximum flow solution, techniques for some embodiments are provided for adjusting relative agent supply to improve the balance of agent and contact utilization.

[0103] Figure 5F An example of a BP network flow 500F according to an embodiment of the present disclosure is shown. In BP network flow 500F, agents that share the same skill set have been "collapsed" into a single network node. In this example, agents 502 and 503 have been combined into a single node for skill 522, which has a total supply of 2000.

[0104] Similarly, contact types that share the same skill set have been collapsed into a single network node. In this example, contact types 511 and 512 requiring skill 521 have been combined into a single node for skill 521, with a total demand of 1800, and contact types 511 and 512 requiring skill 522 have been combined into a single node for skill 522, with a total demand of 1200.

[0105] In addition, the edges have been collapsed. For example, the four edges emanating from seats 502 and 503 (e.g. Figure 5B The edges marked in ( 502A, 502B, 503A and 503B ) have been collapsed into a single edge emanating from the “supernode” for agents with skill 522 to the “supernode” for contact types requiring skill 522 .

[0106] At this point, in some embodiments, a quadratic programming algorithm or similar technique may be applied to the folded network to adjust the relative supply of agents.

[0107] Figure 5G An example of a BP network flow 500G according to an embodiment of the present disclosure is shown. The BP network flow 500G shows the adjusted seat supply according to a solution of a quadratic programming algorithm or similar technique. In this example, the supply of seat super nodes for skills 521 and 522 is changed from BP network flow 500F ( Figure 5F ) is adjusted from 1000 to 1800, and the supply of agent super nodes for skill 522 is adjusted from 2000 to 1200 in BP network flow 500F.

[0108] The total supply can remain constant (e.g., 3000 in this example), but the relative supply of agents of various skill combinations has been adjusted. In some embodiments, the total supply of a single supernode can be evenly distributed among the agents within the supernode. In this example, the 1200 units of supply of the agent supernode for skill 522 can be evenly divided among the agents, with 600 units allocated to each of agents 502 and 503.

[0109] Figure 5H FIG. 5 shows an example of a BP network flow 500H according to an embodiment of the present disclosure. The BP network flow 500H shows the BP network flow 500G ( Figure 5G ). Agent 501 has an adjusted offer of 1800, agent 502 has an adjusted offer of 600, and agent 503 has an adjusted offer of 600. Based on this solution, edge 501A (from agent 501 to contact type 511 with skill 521) still has an optimal offer of 900; edge 501B (from agent 501 to contact type 512 with skill 521) now has an optimal offer of 900; and edges 501C and 501D still have optimal offers of 0. Similarly, agent 502's optimal offers are now 300 and 300, respectively; and agent 503's optimal offers are now 0 and 600, respectively.

[0110] Figure 5I An example of a BP network flow 500I according to an embodiment of the present disclosure is shown. BP network flow 500I is identical to BP network flow 500H, except that for clarity, edges for which the best flow solution is determined to be 0 have been removed. In this example, edges 501C, 501D, and 503A have been removed.

[0111] Using the solution shown in BP network flows 500H and 5001, all contact type / skill combinations can now be fully utilized (fully serviced).

[0112] In addition, the total seat utilization will become more balanced. Figure 5E ), agent 503 may be only utilized one-fifth as much as agents 501 and 502. Therefore, agents 501 and 502 are each assigned approximately 45% of the contacts, while agent 503 is assigned only the remaining approximately 10%. Under BP network flow 500H, agent 501 may be assigned approximately 60% of the contacts, while agents 502 and 503 are each assigned approximately 20% of the remaining contacts. In this example, the busiest agent (agent 501) receives only three times as many contacts as the least busy agents (agents 502 and 503), rather than five times as many.

[0113] Figure 6 A flow chart of a BP skills-based spending matrix method 600 according to an embodiment of the present disclosure is illustrated. The BP skills-based spending matrix method 600 may begin at block 610 .

[0114] At block 610, historical contact-agent outcome data may be analyzed. In some embodiments, a rolling window of the historical contact-agent outcome data may be analyzed, such as a one-week, one-month, ninety-day, or one-year window. The historical contact-agent outcome data may include information about individual interactions between contacts and agents, including identifiers of which agent communicated with which contact, when the communication occurred, the duration of the communication, and the outcome of the communication. For example, in a telesales call center, the outcome may indicate whether a sale occurred or the amount of the sale, if any. In a customer retention queue, the outcome may indicate whether the customer was retained (or "saved") or the amount of any incentive offered to retain the customer. In a customer service queue, the outcome may indicate whether the customer's needs were met or the issue was resolved, or may represent a score (e.g., a Net Promoter Score or NPS) or representative rating of customer satisfaction with the contact-agent interaction. After or concurrently with analyzing the historical contact-agent outcome data, the BP skills-based spend matrix method 600 may proceed to block 620.

[0115] At block 620, the contact attribute data may be analyzed. The contact attribute data may include data stored in one or more customer relationship management (CRM) databases. For example, a wireless telecommunications provider's CRM database may include information about the type of mobile phone used by a customer, the type of contract signed by the customer, the duration of the customer's contract, the monthly price of the customer's contract, and the tenure of the customer's relationship with the company. For another example, a bank's CRM database may include information about the type and number of accounts held by a customer, the average monthly balance of the customer's accounts, and the tenure of the customer's relationship with the company. In some embodiments, the contact attribute data may also include third-party data stored in one or more databases obtained from a third party. After or concurrently with analyzing the contact attribute data, the BP skills-based spending matrix method 600 may proceed to block 630.

[0116] At block 630, a skill set can be determined for each agent and each contact type. Examples of skills include broad skills such as technical support, billing support, sales, and retention; language skills such as English, Spanish, and French; narrower skills such as "Level 2 Advanced Technical Support," technical support for Apple iPhone users, and technical support for Google Android users; and various other skills. In some embodiments, there may not be any unique skills, or only one skill may be identified across all agents or all contact types. In these embodiments, there may be only a single "skill set."

[0117] In some embodiments, a given contact type may require different skill sets at different times. For example, during an initial call to a call center, a contact of one type may have a technical issue and require an agent with technical support skills, but during a second call, the same contact of the same type may have a billing issue and require an agent with customer support skills. In these embodiments, more than one occurrence of the same contact type may be included for each contact type / skill set. After determining the skill set, the BP skills-based spend matrix method 600 may proceed to block 640.

[0118] At block 640, a target utilization rate can be determined for each agent, and an expected rate can be determined for each contact type (or contact type / skill combination). In some L1 environments, a target utilization rate can be set to balance agent utilization, such that each agent is expected to be assigned a roughly equal number of contacts over time. For example, if the contact center environment has four agents, each agent can have a target utilization rate of 1 / 4 (or 25%). As another example, if the contact center environment has n agents, each agent can have a target utilization rate of 1 / n (or an equivalent percentage of contacts).

[0119] Similarly, expected rates for each contact type / skill may be determined based on actual rates observed, for example, in historical contact-agent outcome data analyzed at block 610. After determining target utilization and expected rates, the BP skill-based spend matrix method 600 may proceed to block 650.

[0120] At block 650, a payout matrix may be determined with expected payouts for each feasible contact-agent pairing. In some embodiments, a contact-agent pairing may be feasible if the agent and the contact type have at least one skill in common. In other embodiments, a contact-agent pairing may be feasible if the agent possesses at least all of the skills required for the contact type. In other embodiments, other heuristics for feasibility may be used.

[0121] The example of the expenditure matrix is ​​referenced above Figure 4A Detailed description of the BP skills-based spend matrix 400A. The BP skills-based spend matrix 400A includes a set of agents with associated skills and target utilization rates, a set of contact types (combined with various skill sets) with expected frequencies determined based on historical contact-agent outcome data and / or contact attribute data, and a set of non-zero expected spends for each feasible contact-agent pairing. After determining the spend matrix, the BP skills-based spend matrix method 600 can proceed to block 660.

[0122] At block 660, the computer processor-generated model based on the expenditure matrix can be output. For example, a computer processor embedded within a contact center system or a component thereof (e.g., a BP module) or communicatively coupled to a contact center system or a component thereof can output the expenditure matrix model to be received by another component of the computer processor or the contact center system. In some embodiments, the expenditure matrix model can be recorded, printed, displayed, transmitted, or otherwise stored for other components of the contact center system or for a human administrator. After outputting the expenditure matrix model, the BP skills-based expenditure matrix method 600 can end.

[0123] Figure 7A A flow chart of a BP network flow method 700A according to an embodiment of the present disclosure is shown. The BP network flow method 700A may begin at block 710 .

[0124] At block 710, a BP expenditure matrix may be determined. In some embodiments, the BP expenditure matrix may be determined using BP expenditure matrix method 600 or a similar method. In other embodiments, the BP expenditure matrix may be received from another component or module. After determining the BP expenditure matrix, BP network flow method 700A may proceed to block 720.

[0125] At block 720, a target utilization rate may be determined for each agent, and an expected rate may be determined for each contact type. In other embodiments, the expenditure matrix determined at block 710 may incorporate or otherwise include target utilization rates and / or expected rates, such as the expenditure matrix output by the BP expenditure matrix method 600, or the BP skill-based expenditure matrix 400A ( Figure 4A After determining the target utilization and expected rate, the BP network flow method 700A may proceed to block 730, if necessary.

[0126] At block 730, agent supply and contact type requirements may be determined. Figure 4D and 4E In more detail, each agent can provide an "offer" equal to the expected availability or target utilization of each agent (e.g., in an environment with three agents, 1 / 3 of the total supply of 1 or 100%. Additionally, for a total demand of 1 or 100%, each contact type / skill may require an amount of agent supply equal to the expected frequency or target utilization of each contact type / skill. The total supply and demand can be normalized or otherwise configured to be equal to each other, and the capacity or bandwidth along each edge can be considered infinite or otherwise unrestricted. In other embodiments, there may be a supply / demand imbalance, or there may be quotas or other capacity limits set on some or all edges.

[0127] In some embodiments, supply and demand can be scaled by some factor, such as 1000, 3000, etc. In doing so, the supply of each of the three agents can be shown as 1000 instead of 1 / 3, and the total supply can be shown as 3000. Similarly, the relative demand for each contact type / skill set can be scaled. In some embodiments, no scaling occurs. After determining the agent supply and contact type demand, BP network flow method 700A can proceed to block 740.

[0128] At block 740, a preferred contact-agent pairing may be determined. Figure 4F and 4G As described in detail, one or more solutions for the BP network flow can be determined. In some embodiments, a "maximum flow" or "max flow" algorithm or other linear programming algorithm can be applied to the BP network flow to determine one or more solutions for optimizing the "flow" or "distribution" of supply (source) to meet demand (receiver). In some embodiments, a "max cost" algorithm can be applied to select the best maximum flow solution.

[0129] In some contact center environments, such as L2 (contact surplus) environments, the network flow may be reversed so that contacts waiting in a queue are the source of offers, and potential agents that may become available are the recipients of demands.

[0130] The BP network flow may include an optimal flow solution determined by a BP module or similar component. Depending on the solution, which may include several choices or be randomly selected, some (feasible) edges may have an optimal flow of 0, indicating that such a feasible pairing is not a preferred pairing. In some embodiments, if a pairing is determined not to be a preferred pairing, the BP network flow may remove the edge representing the feasible pairing.

[0131] Other edges may have non-zero optimal flows, indicating that at least some of the time, this feasible pairing is preferred. As detailed above, this optimal flow solution describes the relative proportion of contact-agent interactions (or the relative likelihood of selecting a particular contact-agent interaction) that will achieve target utilization of agents and contacts while also maximizing the expected overall performance of the contact center system based on the spend per pair of agent and contact type / skill set.

[0132] For some solutions to certain BP network flows, a single contact type / skill may have multiple edges flowing into it from multiple agents. In these circumstances, a contact type / skill may have multiple preferred pairings. Given a selection among multiple agents, the BP network flow indicates the relative proportions or weights that may be selected for one of several agents each time a contact of that contact type / skill arrives at the contact center. After determining the preferred contact-agent pairing, BP network flow method 700A may proceed to block 750.

[0133] At block 750, a computer processor-generated model based on the preferred contact-agent pairings can be output. For example, a computer processor embedded within a contact center system or a component thereof (e.g., a BP module) or communicatively coupled to a contact center system or a component thereof can output the preferred pairing model to be received by the computer processor or another component of the contact center system. In some embodiments, the preferred pairing model can be recorded, printed, displayed, transmitted, or otherwise stored for other components of the contact center system or for a human administrator. After outputting the preferred pairing model, BP network flow method 700A can end.

[0134] Figure 7B 1 shows a flow chart of a BP network flow method 700B according to an embodiment of the present disclosure. Figure 7A BP network flow 700A as described above. BP network flow method 700B may begin at block 710. At block 710, a BP expenditure matrix may be determined. After the BP expenditure matrix is ​​determined, BP expenditure matrix method 700B may proceed to block 720. At block 720, a target utilization rate may be determined for each agent, and an expected rate may be determined for each contact type. After determining the target utilization rate and expected rate, BP network flow method 700B may proceed to block 730, if necessary. At block 730, agent supply and contact type demand may be determined. After determining the agent supply and contact type demand, BP network flow method 700B may proceed to block 735.

[0135] At block 735, the agent supply and / or contact demand may be adjusted to balance agent utilization, or to improve the agent utilization balance. Figure 5F and 5GAs described in detail, agents sharing the same skill set can be "collapsed" into a single network node (or "supernode"). Similarly, contact types sharing the same skill set can be collapsed into a single network node. Furthermore, edges are collapsed based on their corresponding supernodes. At this point, in some embodiments, a quadratic programming algorithm or similar technique can be applied to the collapsed network to adjust the relative supply of agents and / or the relative demand for contacts. After adjusting the agent supply and / or contact demand to balance agent utilization, BP network flow method 700B can proceed to block 740.

[0136] At block 740, a preferred contact-agent pairing can be determined. After determining the preferred contact-agent pairing, BP network flow method 700A can proceed to block 750. At block 750, a computer processor-generated model based on the preferred contact-agent pairing can be output. After outputting the preferred pairing model, BP network flow method 700B can end.

[0137] Figure 8 A flow chart of a BP network flow method 800 according to an embodiment of the present disclosure is shown. The BP network flow method 800 may begin at block 810 .

[0138] At block 810, available agents may be determined. In a real-world queue for a contact center system, there may be tens, hundreds, or thousands of agents, or more, employed. At any given time, a portion of these employed agents may be logged into the system or otherwise actively working a shift. Similarly, at any given time, a small portion of the logged-in agents may be participating in a contact interaction (e.g., a call at a call center), recording the results of a recent contact interaction, resting, or otherwise unavailable for incoming contacts. The remaining portion of the logged-in agents may be idle or otherwise available for assignment. After determining the set of available agents, BP network flow method 800 may proceed to block 820.

[0139] At block 820, a BP model for a preferred contact-agent pairing may be determined. In some embodiments, the BP network flow method 700A ( Figure 7A ) or 700B( Figure 7B ) or similar methods to determine the preferred pairing model. In other embodiments, the preferred pairing model can be received from another component or module.

[0140] In some embodiments, the preferred pairing model may include all agents employed for the contact center queue. In other embodiments, the preferred pairing model may include only those agents logged into the queue at a given time. In other embodiments, the preferred pairing model may include only those agents determined to be available at block 810. For example, referring to Figure 4BIf agent 403 is unavailable, some embodiments may use a different preferred pairing model that omits the node for agent 403 and only includes nodes for agent 401 and agent 402 that are available. In other embodiments, the preferred pairing model may include a node for agent 403 but may be modified to avoid generating a non-zero probability of assigning the contact to agent 403. For example, the capacity of the flow from agent 403 to each compatible contact type may be set to zero.

[0141] The preferred pairing model can be pre-computed (e.g., retrieved from a cache or other memory) or calculated in real time or near real time as agents become available or unavailable, and / or as various types of contacts with various skill requirements arrive at the contact center. After determining the preferred pairing model, the BP network flow method 800 can proceed to block 830.

[0142] At block 830, available contacts may be determined. For example, in an L1 environment, multiple agents may be available and waiting to be assigned to contacts, and the contact queue may be empty. When a contact arrives at the contact center, the contact may be assigned to one of the available agents without being kept waiting. In some embodiments, the preferred pairing model determined at block 820 may be determined for the first time, or updated after available contacts are determined at block 830. For example, referring to Figures 4A-4G , seats 401-403 may be three of the dozens or more available at a given moment. In this case, a payout matrix 400A based on BP skills may be determined for the three immediately available seats ( Figure 4A ), and the BP network flow 400G ( Figure 4G ). Thus, for those three available seats, the preferred pairing model can be determined at that time.

[0143] In some embodiments, the preferred pairing model may take into account some or all of the expected contact type / skill combinations, as in, for example, BP network flow 400G, even if the specific contact to be paired is already known to the BP network flow method 800 because the contact has been determined at block 830. After the available contacts have been determined at block 830 (and, in some embodiments, the preferred pairing model has been generated or updated), the BP network flow method 800 may proceed to block 840.

[0144] At block 840, at least one preferred contact-agent pairing between available agents and available contacts may be determined. For example, as in BP network flow 400G ( Figure 4G), if the available contact is of contact type 411 and requires skills 421 or 422, the preferred pairing is agent 402. Similarly, if the available contact is of contact type 412 and requires skills 421 or 422, the preferred pairing would be agent 401 (best flow 400) or agent 402 (best flow 50). After determining at least one preferred contact-agent pairing, BP network flow method 800 may proceed to block 850.

[0145] At block 850, one of the at least one preferred contact-agent pairings may be selected. In some embodiments, the selection may be random, such as by using a pseudo-random number generator. The likelihood (or probability) of selecting a given one of the at least one preferred contact-agent pairings may be based on the statistical likelihood described by the BP model. For example, as in the BP network flow 400G ( Figure 4G ), if the available contact is of contact type 412 and requires skills 421 or 422, the probability of selecting agent 401 is 400 / 450≈89%, and the probability of selecting agent 402 is 50 / 450≈11%.

[0146] If there is only one preferred contact-agent pairing, then in some embodiments, random selection may not be necessary because the selection may be trivial. For example, as in BP network flow 400G ( Figure 4G ), if the available contact is of contact type 411 and requires skills 421 or 422, the preferred pairing is always agent 402, and the probability of selecting agent 402 is 450 / 450=100%. After selecting one of the at least one preferred contact-agent pairings, the BP network flow method 800 can proceed to block 860.

[0147] At block 860, the selected pairing can be output for connection in the contact center system. For example, a computer processor, such as a BP module, embedded within or communicatively coupled to the contact center system or a component thereof can output a preferred pairing selection (or recommended pairing or pairing instruction) to be received by the computer processor or another component of the contact center system. In some embodiments, the preferred pairing selection can be recorded, printed, displayed, transmitted, or otherwise stored for other components of the contact center system or for a human administrator. The receiving component can use the preferred pairing selection to connect the selected agent to the contact requested or otherwise determined to be paired. After outputting the preferred pairing instruction, the BP network flow method 800 can end.

[0148] Figure 9A flow chart of a BP network flow method 900 according to an embodiment of the present disclosure is shown. In some embodiments, the BP network flow method 900 is similar to the BP network flow method 800. While the BP network flow method 800 illustrates an L1 environment (excess seats), the BP network flow method 900 illustrates an L2 environment (contacts in the queue). The BP network flow method 900 may begin at block 910.

[0149] At block 910, available contacts may be determined. In a real-world queue at a contact center system, there may be dozens, hundreds, or even millions of agents employed. In an L2 environment, all logged-in agents may be engaged in a contact interaction or otherwise unavailable. When a contact arrives at the contact center, it may be required to wait in a hold queue. At any given time, there may be dozens or more contacts on hold. In some embodiments, the queue may be sorted by arrival time, with the longest-waiting contacts at the head of the queue. In other embodiments, the queue may be sorted based at least in part on the priority rating or status of each contact. For example, a contact designated as "high priority" may be located at or near the head of the queue, ahead of other "normal priority" contacts that have been waiting longer. After determining the set of available contacts waiting in the queue, BP network flow method 900 may proceed to block 920.

[0150] At block 920, a BP model for a preferred contact-agent pairing may be determined. In some embodiments, a BP network flow method similar to 700A ( Figure 7A ) or 700B( Figure 7B ) method to determine the preferred pairing model, just wait for the contact to provide the supply source, and become available seat to provide the recipient of the demand. In other embodiments, the preferred pairing model can be received from another component or module.

[0151] In some embodiments, the preferred pairing model may include all contact types expected to arrive in the contact center queue. In other embodiments, the preferred pairing model may include only those contact type / skill combinations that are present and waiting in the queue at the time the model is requested. For example, consider a contact center system that expects three types of contacts, X, Y, and Z, but only contacts of types X and Y are currently waiting in the queue. Some embodiments may use a different preferred pairing model that omits nodes for contact type Z and includes nodes only for waiting contacts of types X and Y. In other embodiments, the preferred pairing model may include a node for contact type Z, but modify the model to avoid generating a non-zero probability of assigning an agent to a contact of contact type Z. For example, the capacity of the flow from contact type Z to each compatible agent may be set to zero.

[0152] The preferred pairing model can be pre-computed (e.g., retrieved from a cache or other memory) or calculated in real time or near real time as agents become available or unavailable, and / or as various types of contacts with various skill requirements arrive at the contact center. After determining the preferred pairing model, the BP network flow method 900 can proceed to block 930.

[0153] At block 930, available agents may be determined. For example, in an L2 environment, multiple contacts may be waiting and available for assignment to agents, and all agents may be occupied. When an agent becomes available, the agent may be assigned to one of the waiting contacts rather than remaining idle. In some embodiments, the preferred pairing model determined at block 920 may be determined for the first time or updated after available agents are determined at block 830. For example, there may be three contacts waiting in a queue, each with different skills and types. A BP skill-based payout matrix may be determined for the three immediately waiting contacts, and a BP network flow may be determined for the three immediately waiting contacts based on the BP skill payout matrix. Thus, a preferred pairing model may be determined for those three waiting contacts at that time.

[0154] In some embodiments, the preferred pairing model may consider some or all potentially available agents, even if the particular agent to be paired is already known to the BP network flow method 900 because the agent has been determined at block 930. After the available agents have been determined at block 930 (and, in some embodiments, the preferred pairing model has been generated or updated), the BP network flow method 900 may proceed to block 940.

[0155] At block 940 , at least one preferred contact-agent pairing among the available agents and available contacts may be determined. After determining at least one preferred contact-agent pairing, the BP network flow method 900 may proceed to block 950 .

[0156] At block 950, one of the at least one preferred contact-agent pairings may be selected. In some embodiments, this selection may be random, such as by using a pseudo-random number generator. The likelihood (or probability) of selecting a given one of the at least one preferred contact-agent pairings may be based on the statistical likelihood described by the BP model. If only one preferred contact-agent pairing exists, random selection may not be necessary in some embodiments because the selection may be trivial. After selecting one of the at least one preferred contact-agent pairings, BP network flow method 900 may proceed to block 960.

[0157] At block 960, the selected pairing can be output for connection in the contact center system. For example, a computer processor, such as a BP module, embedded within or communicatively coupled to the contact center system or a component thereof can output a preferred pairing selection (or recommended pairing or pairing instruction) to be received by the computer processor or another component of the contact center system. In some embodiments, the preferred pairing selection can be recorded, printed, displayed, transmitted, or otherwise stored for other components of the contact center system or for a human administrator. The receiving component can use the preferred pairing selection to connect the selected agent to the contact requested or otherwise determined to be paired. After outputting the preferred pairing instruction, the BP network flow method 900 can end.

[0158] In some embodiments, the BP expenditure matrix and network flow model can be used in an L3 environment (i.e., where multiple agents are available and multiple contacts are waiting in a queue). In some embodiments, the network flow model can be used to batch match multiple contact-agent pairs simultaneously. BP pairing in an L3 environment is described in detail, for example, in U.S. patent application Ser. No. 15 / 395,469, the entire contents of which are incorporated herein by reference. In other embodiments, the BP network flow model can be used when the contact center system operates in an L1 and / or L2 environment, while an alternative BP pairing strategy can be used when the contact center system operates in an L3 (or L0) environment.

[0159] In the above example, the BP network flow model targets balanced agent utilization (or as close to balanced as possible for a particular contact center environment). In other embodiments, skewed or otherwise unbalanced agent utilization can be targeted (e.g., the "Kappa" technique), and / or skewed or otherwise unbalanced contact utilization can be targeted (e.g., the "Rho" technique). Examples of these techniques, including the Kappa and Rho techniques, are described in detail in, for example, the aforementioned U.S. patent applications Ser. Nos. 14 / 956,086 and 14 / 956,074, the entire contents of which are incorporated herein by reference.

[0160] In some embodiments, such as those in which a BP module (e.g., BP module 140) is fully embedded or otherwise integrated within a contact center switch (e.g., center switch 110, contact center switch 120A, etc.), the switch can perform the BP technique without separate pairing requests and responses between the switch and the BP module. For example, when a need arises, the switch can determine its own cost function or functions to apply to each possible pairing, and the switch can automatically minimize (or, in some configurations, maximize) the cost function accordingly. The switch can reduce or eliminate the need for skill queues or other hierarchical settings for agents or contacts; instead, the switch can operate across one or more virtual agent groups or a collection of agents in a larger pool within the contact center system. Some or all aspects of the BP pairing method can be implemented by the switch as needed, including data collection, data analysis, model generation, network flow optimization, etc.

[0161] In some embodiments, such as those optimizing virtual agent groups, the model of agent nodes in the network flow can represent a set of agents with one or more agent skill / type combinations for agents found anywhere within the contact center system, regardless of whether the contact center system assigns the agents to one or more skill queues. Figures 4B-4G The nodes for agents 401, 402, and 403 in FIG. 4 may represent virtual agent groups rather than individual agents, and contacts assigned to the virtual agent group may subsequently be assigned to individual agents within the virtual agent group (e.g., randomly, round-robin, based on model-based behavioral pairing, etc.). In these embodiments, before contacts are filtered or otherwise assigned to individual skill queues and / or agent groups (e.g., Figure 1 120A or contact center switch 120B), BP can be applied to a contact center system (e.g., Figure 1 A higher level connection within the central switch 101).

[0162] Applying BP earlier in the process can be advantageous because it avoids the scripts and other prescriptive techniques that traditional central switches use to decide which queue / switch / VDN a contact should be assigned to. These scripts and other prescriptive techniques can be inefficient and suboptimal in terms of optimizing overall contact center performance and achieving desired target agent utilization (e.g., balanced agent utilization, minimal agent utilization imbalance, specified amount of agent utilization skew).

[0163] At this point, it should be noted that the behavior pairing in the contact center system according to the present disclosure as described above may involve to some extent processing input data and generating output data. This input data processing and output data generation can be implemented in hardware or software. For example, specific electronic components can be used in a behavior pairing module or similar or related circuits to implement the functions associated with behavior pairing in the contact center system according to the present disclosure as described above. Alternatively, one or more processors operating on instructions can implement the functions associated with behavior pairing in the contact center system according to the present disclosure as described above. If this is the case, it is also within the scope of the present disclosure that these instructions can be stored on one or more non-transitory processor-readable storage media (e.g., disks or other storage media), or transmitted to one or more processors via one or more signals embedded in one or more carrier waves.

[0164] The present disclosure is not limited to the scope of the specific embodiments described herein. In fact, in addition to those described herein, various other embodiments of the present disclosure and improvements thereof will be apparent to those of ordinary skill in the art from the above description and the accompanying drawings. Therefore, these other embodiments and improvements are intended to fall within the scope of the present disclosure. In addition, although the present disclosure is described herein in the context of at least one specific embodiment in at least one specific environment for at least one specific purpose, those of ordinary skill in the art will recognize that its usefulness is not limited thereto, and for various purposes, the present disclosure can be advantageously implemented in a variety of environments. Therefore, the following claims should be interpreted in view of the full scope and spirit of the present disclosure as described herein.

Claims

1. A method for behavior pairing in a contact center system, comprising: determining, by at least one computer processor communicatively coupled to the contact center system and configured to operate in the contact center system, a set of agents for the contact center system, wherein each agent in the set of agents is associated with at least one agent skill from a plurality of agent skills and an agent availability; determining, by the at least one computer processor, a set of contact types for the contact center system, wherein each contact type is associated with an expected availability and at least one skill requirement, wherein each of the at least one skill requirement corresponds to at least one agent skill from the plurality of agent skills; generating, by the at least one computer processor, a plurality of feasible contact-agent pairings for establishing communication connections between the set of agents and the set of contact types in a switch module of the contact center system; generating, by the at least one computer processor, a first network flow model of contact-agent pairings for the contact center system based on the plurality of feasible contact-agent pairings; and Applying, by the at least one computer processor, an optimization function to the first network flow model to provide a second network flow model for contact-agent pairings of the contact center system, wherein the optimization function provides a threshold utilization rate for an agent based on the agent availability for each agent and provides a threshold utilization rate for a contact type based on the expected availability for each contact type.

2. The method according to claim 1, wherein The optimization function includes at least one of a maximum flow algorithm and a linear programming algorithm.

3. The method according to claim 1, wherein The second network flow model identifies a proportion of contact-agent pairings between agents in the set of agents and contact types in the set of contact types.

4. The method according to claim 1, wherein The optimization function also maximizes an expected value of at least one call center metric, wherein the at least one call center metric includes at least one of revenue generation, call handling time, and customer satisfaction.

5. The method according to claim 1, wherein Determining the plurality of feasible contact-agent pairs includes: Determine a spend matrix based on historical contact-agent outcome data.

6. The method according to claim 1, wherein The optimization function also includes: The supply nodes of the first network flow model are normalized and the demand nodes of the first network flow model are normalized.

7. The method according to claim 1, wherein The optimization function also determines that at least one feasible contact-agent pairing among the plurality of feasible contact-agent pairings has an optimal flow rate.

8. A system for behavior matching in a contact center system, comprising: By at least one computer processor communicatively coupled to the contact center system and configured to operate in the contact center system, wherein the at least one computer processor is further configured to: determining a set of agents for the contact center system, wherein each agent in the set of agents is associated with at least one agent skill from a plurality of agent skills and an agent availability; determining a set of contact types for the contact center system, wherein each contact type is associated with an expected availability and at least one skill requirement, wherein each of the at least one skill requirement corresponds to at least one agent skill of the plurality of agent skills; generating a plurality of feasible contact-agent pairings to establish communication connections between the set of agents and the set of contact types in a switching module of the contact center system; generating a first network flow model of contact-agent pairings for the contact center system based on the plurality of feasible contact-agent pairings; and An optimization function is applied to the first network flow model to provide a second network flow model for contact-agent pairing of the contact center system, wherein the optimization function provides a threshold utilization rate for an agent based on the agent availability for each agent and provides a threshold utilization rate for a contact type based on the expected availability for each contact type.

9. The system according to claim 8, wherein: The optimization function includes at least one of a maximum flow algorithm and a linear programming algorithm.

10. The system according to claim 8, wherein: The second network flow model identifies a proportion of contact-agent pairings between agents in the set of agents and contact types in the set of contact types.

11. The system according to claim 8, wherein The optimization function also maximizes an expected value of at least one call center metric, wherein the at least one call center metric includes at least one of revenue generation, call handling time, and customer satisfaction.

12. The system according to claim 8, wherein: Determining the plurality of feasible contact-agent pairs includes: Determine a spend matrix based on historical contact-agent outcome data.

13. The system according to claim 8, wherein: The optimization function also includes: The supply nodes of the first network flow model are normalized and the demand nodes of the first network flow model are normalized.

14. The system according to claim 8, wherein The optimization function also determines that at least one feasible contact-agent pairing among the plurality of feasible contact-agent pairings has an optimal flow rate.

15. An article of manufacture for use in behavioral pairing in a contact center system, comprising: non-transitory processor-readable medium; as well as instructions stored on said medium; wherein the instructions are configured to be readable from the medium by at least one computer processor communicatively coupled to the contact center system and configured to operate in the contact center system, and thereby cause the at least one computer processor to operate such that: determining a set of agents for the contact center system, wherein each agent in the set of agents is associated with at least one agent skill from a plurality of agent skills and an agent availability; determining a set of contact types for the contact center system, wherein each contact type is associated with an expected availability and at least one skill requirement, wherein each of the at least one skill requirement corresponds to at least one agent skill of the plurality of agent skills; generating a plurality of feasible contact-agent pairings to establish communication connections between the set of agents and the set of contact types in a switching module of the contact center system; generating a first network flow model of contact-agent pairings for the contact center system based on the plurality of feasible contact-agent pairings; and An optimization function is applied to the first network flow model to provide a second network flow model for contact-agent pairing of the contact center system, wherein the optimization function provides a threshold utilization rate for an agent based on the agent availability for each agent and provides a threshold utilization rate for a contact type based on the expected availability for each contact type.

16. The article of claim 15, wherein The optimization function includes at least one of a maximum flow algorithm and a linear programming algorithm.

17. The article of claim 15, wherein The second network flow model identifies a proportion of contact-agent pairings between agents in the set of agents and contact types in the set of contact types.

18. The article of claim 15, wherein The optimization function also maximizes an expected value of at least one call center metric, wherein the at least one call center metric includes at least one of revenue generation, call handling time, and customer satisfaction.

19. The article of claim 15, wherein Determining the plurality of feasible contact-agent pairs includes: Determine a spend matrix based on historical contact-agent outcome data.

20. The article of claim 15, wherein The optimization function also includes: The supply nodes of the first network flow model are normalized and the demand nodes of the first network flow model are normalized.

21. The article of claim 15, wherein The optimization function also determines that at least one feasible contact-agent pairing among the plurality of feasible contact-agent pairings has an optimal flow rate.

Citation Information

Patent Citations

  • Techniques for behavioral pairing in contact center system

    CN112085319A

  • Techniques for hybrid behavioral pairing in a contact center system

    US20170064080A1

  • Techniques for l3 pairing in a contact center system

    US20180191902A1

  • Call mapping systems and methods using variance algorithm (VA) and / or distribution compensation

    US8879715B2

  • Techniques for behavioral pairing in a contact center system

    US9300802B1