Computer-implemented system and method for assessing contact center performance using simulated contact-seat pairing

By simulating contact-actor pairing and analyzing the performance of the contact center, the contact center can effectively determine and implement an optimized pairing strategy, solving the problems of poor performance and resource waste in the existing technology, and achieving more efficient resource utilization and contact processing.

CN119547421APending Publication Date: 2025-02-28AFINITI AI LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202380047370.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-06-06
Filing Date
2023-06-15
Publication Date
2025-02-28

AI Technical Summary

Technical Problem

Existing contact centers have difficulty effectively identifying and implementing optimized contact-agent pairing strategies, resulting in poor performance and waste of resources.

Method used

Through simulation contact-agent pairing, based on the performance of the simulated pairing data analysis contact center, it provides real-time mechanisms to track possible different pairing strategies, including behavioral pairing (BP) and first-in-first-out (FIFO) strategies.

Benefits of technology

Real-time analysis and optimization of contact center performance is achieved, resource utilization and contact processing efficiency are improved, and excessive work and free time are reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119547421A_ABST
    Figure CN119547421A_ABST
Patent Text Reader

Abstract

Computer-implemented systems and methods for simulating contact-seat pairing and analyzing contact center performance based on the simulated contact-seat pairing are disclosed. An exemplary method includes obtaining a first set of available contacts and available seats; determining a first contact-agent pair based on the first set of available contacts and available agents and a first pairing policy; and establishing a first connection between the first seat device and the first contact device for the first contact-seat pairing. The example method also includes storing a first set of pairing data corresponding to the first contact-agent pair; generating, by a simulation model implementing the simulated pairing algorithm, a second contact-agent pair based on the first set of available contacts and available agents and a second pairing policy; and storing second pairing data corresponding to the second contact-seat pairing.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related Applications

[0002] This application claims the benefit of U.S. Provisional Application No. 63 / 471,424, filed June 6, 2023, and U.S. Provisional Application No. 63 / 352,858, filed June 16, 2022. The entire contents of each of the above provisional applications are incorporated herein by reference. Technical Field

[0003] The present disclosure relates generally to computer-implemented systems and methods within a contact center, and more particularly, to computer-implemented systems and methods within a contact center for simulating contact-agent pairings and analyzing contact center performance based on the simulated contact-agent pairings. Background Art

[0004] A typical contact center algorithmically assigns contacts that arrive at the contact center to agents that are available to handle those contacts. Sometimes, a contact center may have agents that are available and waiting to be assigned to an inbound or outbound contact (e.g., a phone call, an Internet chat session, an email). At other times, a contact center may have contacts that are waiting in one or more queues for an agent to become available for assignment.

[0005] In some typical contact centers, contacts are assigned to agents that are ordered based on arrival time, and agents receive contacts ordered based on the time those agents become available. This strategy may be referred to as a "first in, first out," "FIFO," or "round robin" strategy. In some contact centers, contacts or agents are assigned to different "skill groups" or "queues" before applying the FIFO assignment strategy within each such skill group or queue. These "skill queues" may also incorporate strategies for prioritizing individual contacts or agents within a baseline FIFO ordering. For example, high priority contacts may be given a queue position ahead of other contacts that arrived earlier, or high-performing agents may be ordered ahead of other agents that have been waiting for their next call for a longer time. Regardless of such changes in forming one or more queues of callers or one or more orders of available agents, contact centers typically apply FIFO to queues or other orders. Once such a FIFO strategy is established, the assignment of contacts to agents is automatic, with the contact center assigning the first contact in the order to the next available agent, or assigning the first agent in the order to the next arriving contact. In the contact center industry, the process of allocating contacts and agents between skill queues, prioritizing and sorting within skill queues, and the subsequent FIFO assignment of contacts to agents is typically managed by a system known as an "Automatic Call Distributor" ("ACD").

[0006] Additionally, some contact centers may use a "performance-based routing" or "PBR" algorithm or method to rank queues of available agents, or in individual cases, queues of available contacts. For example, when a contact arrives at a contact center with multiple available agents, the ranking of agents available for assignment to the contact will be dominated by the highest performing available agents (e.g., the available agents with the highest sales conversion rate, highest customer satisfaction score, shortest average handle time, highest performing agent for a particular contact profile, highest customer retention rate, lowest customer retention cost, highest first call resolution). PBR ranking strategies attempt to maximize the expected outcome of each contact-agent interaction, but typically do not take into account uniform utilization of agents in the contact center. As a result, higher performing agents may receive significantly more contacts and feel overworked, while lower performing agents may receive fewer contacts and be idle longer, potentially reducing their opportunities for training and improvement and potentially reducing their compensation.

[0007] In addition, contact centers may also use behavioral pairing (BP) strategies or algorithms to assign contacts to agents. The goal of a BP algorithm is to evenly utilize agents in a queue (such as a skill queue) while improving the overall performance of the contact center, potentially beyond what a FIFO or PBR algorithm can achieve in practice. BP improves performance by assigning agent and contact pairs in an algorithmic approach that considers potential subsequent agent and contact pair assignments such that when the benefits of all assignments are aggregated, they may exceed those of FIFO and PBR strategies. In some cases, BP results in immediate contact and agent pairings that may be contrary to what a FIFO or PBR algorithm would dictate. For example, in an immediate situation, a BP algorithm may select the shortest waiting contact or the lowest performing available agent. The BP algorithm achieves the latter (posterity) because the system inherently assigns contacts to agents in a way that forgoes what may be the highest performing choice at the moment if such a decision increases the probability of better contact center performance over time.

[0008] Contact centers often wish to optimize their contact-agent pairings and may decide to compare various strategies to determine the best pairing strategy. Benchmarking is one solution to perform such comparisons, where new or different pairing strategies are alternated with existing pairing strategies. Benchmarking typically follows an epochal or online approach, whereby different pairing strategies are implemented at different times to approach a consensus about the best pairing strategy for those tested. An epochal-based benchmark may switch between two different pairing strategies at set times during contact center operations, and an online-based benchmark may switch between two different pairing strategies (e.g., FIFO and BP) at random times during contact center operations.

[0009] Furthermore, contact centers are, by necessity, extremely dynamic environments, and alternating pairing strategies may miss statistically significant effects that only exist when one pairing strategy is used, thereby contaminating measurements of that pairing strategy that correspond to measurements of another pairing strategy. In conventional contact center tracking, results may be recorded along with the agents and contacts that were actually paired. There may be other separate logs in other databases that track agent login / logout / availability events, and similarly for contacts. However, due to the large amount of time and computing resources required and the error-prone nature of such logs, it is not feasible to create a contact center state database tracker based on these separate logs. For example, a conventional results database does not include information about what other contact-agent pairings may have occurred instead of the contact-agent pairing that was actually selected. The problem is further exacerbated for contact-agent pairings that do not result in results and are not tracked in the results database. Summary of the invention

[0010] Therefore, there is a need for computer-implemented systems and methods within a contact center for efficiently determining which pairing algorithm, method, or strategy to implement, and at what time, date, time period, or other circumstances to implement one or more algorithms, methods, or other strategies of the contact center. The present disclosure generally relates to computer-implemented systems and methods implemented for a contact center. In particular, computer-implemented systems and methods for simulating contact-agent pairings and analyzing contact center performance based on the simulated contact-agent pairings are disclosed, such that the systems and methods of the present disclosure provide a real-time mechanism to track what other contact-agent pairings might have occurred if a second pairing strategy was used instead of a first pairing strategy used to actually determine the pairings.

[0011] The present disclosure relates to evaluating the performance of one or more pairing strategies based on simulations including a simulated sequence of contact-agent pairings, such as newly discovered pairing strategies or new observations of existing pairing strategies determined for a contact center. For example, a contact center of the present disclosure may establish a real-time connection between a first agent device and a first contact device, and may store a first set of pairing data corresponding to the first contact-agent pairing. The contact center may also generate a second contact-agent pairing based on the first set of available contacts and available agents and a second pairing strategy using a simulation model, and may store a second set of pairing data corresponding to the second contact-agent pairing. The set of pairing data may generally include, for example, a contact identifier, an agent identifier, a pairing strategy identifier, a result indicator, and / or other suitable data or a combination thereof. From the set of pairing data, the contact center may further determine a performance measurement corresponding to the performance of the underlying pairing strategy. Therefore, the systems and methods of the present disclosure may determine simulated contact-agent pairings in real time and / or simultaneously with the real-time pairing strategies, thereby determining the effectiveness of these pairing strategies.

[0012] Benefits are generated by simulating and / or testing various contact-agent pairing strategies for a given contact center system, which may be specifically configured (with different hardware) and used for certain dates or times, such as holidays (e.g., Independence Day, Memorial Day, holiday season, etc.). For example, a contact center and its underlying systems, operations, or other aspects of the contact center may generally experience performance increases from the implementation of one or more of different pairing algorithms, methods, or other strategies. Further, and in a similar manner, a contact center may experience performance increases for certain times of the day (e.g., early morning) from the implementation of one or more of different algorithms, methods, or other strategies for different time periods. For example, such performance differences come from differences in the number of contacts in the queue at the contact center, the number of agents in the queue at the contact center, or the overall load in terms of the volume of calls handled at any given time on the contact center. Other differences in performance may also include an increased number of transactions completed within a specific time period, an increase in the amount of transactions (e.g., sales), or an increase in the percentage of sales, etc.

[0013] According to various aspects of the present invention, a computer-implemented method for simulating contact-agent pairing and analyzing contact center performance based on the simulated contact-agent pairing is disclosed. The computer-implemented method may include: obtaining, at a first time, by one or more processors communicatively coupled to a contact center system, a first set of available contacts and available agents, the contact center system configured to distribute electronic inbound or outbound contacts; determining, by the one or more processors, a first contact-agent pairing based on the first set of available contacts and available agents and a first pairing strategy; establishing, by the one or more processors, a first connection between a first agent device and a first contact device for the first contact-agent pairing; storing, by the one or more processors, a first set of pairing data corresponding to the first contact-agent pairing; generating, by a simulation model implementing a simulated pairing algorithm executed on the one or more processors, a second contact-agent pairing based on the first set of available contacts and available agents and a second pairing strategy; and storing, by the one or more processors, second pairing data corresponding to the second contact-agent pairing.

[0014] In certain aspects, the computer-implemented method may also include: obtaining, by one or more processors, a second set of available contacts and available agents at a second time different from the first time; determining, by the one or more processors, a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establishing, by the one or more processors, a second connection for the third contact-agent pairing; storing, by the one or more processors, a third set of pairing data corresponding to the third contact-agent pairing; generating, by a simulation model executed on the one or more processors, a fourth contact-agent pairing based on the second set of available contacts and available agents and the second pairing strategy; storing, by the one or more processors, a fourth set of pairing data corresponding to the fourth contact-agent pairing; and determining, by the one or more processors, a performance measure of the contact center based on (i) the first set of pairing data, (ii) the second set of pairing data, (iii) the third set of pairing data, and (iv) the fourth set of pairing data.

[0015] In certain aspects, the computer-implemented method may also include: obtaining, by one or more processors, a second set of available contacts and available agents at a second time different from the first time; determining, by the one or more processors, a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establishing, by the one or more processors, a second connection for the third contact-agent pairing; storing, by the one or more processors, a third set of pairing data corresponding to the third contact-agent pairing; generating, by a simulation model executed on the one or more processors (i) a hypothetical set of available contacts and available agents based on the first set of available contacts and agents and the second contact-agent pairing, and (ii) generating a fourth contact-agent pairing based on the hypothetical set of available contacts and available agents and the second pairing strategy; storing, by the one or more processors, a fourth set of pairing data corresponding to the fourth contact-agent pairing; and determining, by the one or more processors, a performance measure of the contact center based on (i) the first set of pairing data, (ii) the second set of pairing data, (iii) the third set of pairing data, and (iv) the fourth set of pairing data.

[0016] In certain aspects, the computer-implemented method may also include recording, by the one or more processors, the first result of the first contact-agent pairing before establishing the second connection for the third contact-agent pairing or after establishing the second connection.

[0017] In certain aspects, the first contact-agent pairing includes a first contact and a first agent from the first set of available contacts and available agents, and the second contact-agent pairing includes the first contact and the first agent.

[0018] In certain aspects, the first contact-agent pairing includes a first contact and a first agent from the first set of available contacts and available agents, and the second contact-agent pairing includes at least one of: (i) a second contact different from the first contact, or (ii) a second agent different from the first agent.

[0019] In certain aspects, the first pairing strategy is a behavior pairing (BP) strategy, and the second pairing strategy is a first-in-first-out (FIFO) pairing strategy.

[0020] In certain aspects, the computer-implemented method further includes determining, by the one or more processors, a performance measure of the contact center system based on the first set of pairing data and the second set of pairing data.

[0021] In certain aspects, the computer-implemented method further comprises: determining, by the one or more processors, a set of historical contact-agent pairings based on the one or more connected contact-agent pairings; determining, by the one or more processors, a set of simulated contact-agent pairings based on the one or more simulated contact-agent pairings; comparing, by the one or more processors, the set of historical contact-agent pairings and the set of simulated contact-agent pairings; and determining, by the one or more processors, a performance measure based on the comparison.

[0022] In another embodiment, a computer-implemented method for simulating contact-agent pairings and analyzing contact center performance based on the simulated contact-agent pairings is disclosed. The computer-implemented method may include: determining, by one or more processors communicatively coupled to a contact center system, a set of historical contact-agent pairings based on a first pairing strategy, the contact center system being configured to distribute electronic inbound or outbound contacts, wherein each pairing is associated with a route request in a set of route requests; generating, by a simulation model implementing a simulated pairing algorithm executed on the one or more processors, a set of hypothetical contact-agent pairings for each route request in the set of route requests based on a second pairing strategy, the set of hypothetical contact-agent pairings including at least one hypothetical contact-agent pairing; comparing, by the one or more processors, the set of historical contact-agent pairings and the set of hypothetical contact-agent pairings; and determining, by the one or more processors, a performance measure based on the comparison.

[0023] In certain aspects, the first pairing strategy is a behavior pairing (BP) strategy, and the second pairing strategy is a first-in-first-out (FIFO) pairing strategy.

[0024] In yet another embodiment, a system configured to simulate contact-agent pairing and analyze contact center performance based on the simulated contact-agent pairing is disclosed. The system includes: one or more processors communicatively coupled to a contact center system, the contact center system configured to distribute electronic inbound or outbound contacts; and computing instructions configured to be executed by the one or more processors, and when executed by the one or more processors, cause the one or more processors to: obtain a first set of available contacts and available agents at a first time, determine a first contact-agent pairing based on the first set of available contacts and available agents and a first pairing strategy, establish a first connection between a first agent device and a first contact device for the first contact-agent pairing, store a first set of pairing data corresponding to the first contact-agent pairing, generate a second contact-agent pairing based on the first set of available contacts and available agents and a second pairing strategy by a simulation model implementing a simulated pairing algorithm, and store a second set of pairing data corresponding to the second contact-agent pairing.

[0025] In certain aspects, the computing instructions, when executed, further cause the one or more processors to: determine a performance measure of the contact center based on the first set of paired data and the second set of paired data.

[0026] In some aspects, the computing instructions, when executed, further cause one or more processors to: obtain a second set of available contacts and available agents at a second time different from the first time; determine a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establish a second connection for the third contact-agent pairing; store a third set of pairing data corresponding to the third contact-agent pairing; generate, by a simulation model, a fourth contact-agent pairing based on the second set of available contacts and available agents and the second pairing strategy; store a fourth set of pairing data corresponding to the fourth contact-agent pairing; and determine an updated performance measurement value for the contact center based on (i) the third set of pairing data, (ii) the fourth set of pairing data, and (iii) the performance measurement value.

[0027] In certain aspects, the computing instructions, when executed, further cause one or more processors to: obtain a second set of available contacts and available agents at a second time different from the first time; determine a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establish a second connection for the third contact-agent pairing; store a third set of pairing data corresponding to the third contact-agent pairing; generate, by a simulation model, (i) a hypothetical set of available contacts and available agents based on the first set of available contacts and agents and the second contact-agent pairing, and (ii) generate a fourth contact-agent pairing based on the hypothetical set of available contacts and available agents and the second pairing strategy; store a fourth set of pairing data corresponding to the fourth contact-agent pairing; and determine an updated performance measurement value for the contact center based on (i) the third set of pairing data, (ii) the fourth set of pairing data, and (iii) the performance measurement value.

[0028] In certain aspects, the first contact-agent pairing includes a first contact and a first agent from the first set of available contacts and available agents, and the second contact-agent pairing includes the first contact and the first agent.

[0029] In certain aspects, the first contact-agent pairing includes a first contact and a first agent from the first set of available contacts and available agents, and the second contact-agent pairing includes at least one of: (i) a second contact different from the first contact, or (ii) a second agent different from the first agent.

[0030] In certain aspects, the first pairing strategy is a behavior pairing (BP) strategy, and the second pairing strategy is a first-in-first-out (FIFO) pairing strategy.

[0031] In certain aspects, the computing instructions, when executed, further cause the one or more processors to: determine a performance measure of the contact center system based on the first set of pairing data and the second set of pairing data.

[0032] In certain aspects, the computing instructions, when executed, further cause the one or more processors to: determine a set of historical contact-agent pairings based on the one or more connected contact-agent pairings; determine a set of simulated contact-agent pairings based on the one or more simulated contact-agent pairings; compare the set of historical contact-agent pairings to the set of simulated contact-agent pairings; and determine a performance measure based on the comparison.

[0033] In light of the foregoing, and in light of the disclosure herein, the present disclosure includes improvements to underlying computer functionality or improvements to other technologies, at least because the present disclosure includes, for example, determining performance measurements of a call center for use in its improvement. Such performance measurements may correspond to telecommunication connections or computing resources (e.g., memory and / or processor resources) of a call center system, which includes computing systems in the field of call center routing, distribution, and / or management. That is, the present disclosure describes improvements to the functionality of the underlying computing system itself or "any other technology or technical field" because the call center and its underlying call processing hardware and equipment are improved in the following manner: allowing routing or establishing call centers and related resources (such as telecommunication connections (e.g., telecommunication connections between agents and callers) assigned in a call center system) based on algorithms determined from simulation sequences of the currently disclosed contact-agent pairings and / or performance measurements determined therefrom. This provides improvements to existing systems that do not implement such simulations to determine performance measurements, as described herein. For example, such embodiments are improved over the prior art at least because a contact center as improved based on observations from performance measurements as described herein allows systems and methods of a contact center to operate with limited or reduced resources (e.g., limited or fewer telecommunication connections and / or limited or reduced processing or memory utilization of a call processing system) or experience increased performance (e.g., transaction completion or sales) compared to a non-optimized system. Limited or fewer telecommunication connections and / or limited or reduced processing or memory utilization of a call processing system are provided because the presently disclosed embodiments effectively determine contact center operations through simulation rather than by consuming real-time resources.

[0034] The performance and related metrics of a given contact center can be measured or determined based on the resources of the contact center (such as computer memory, processing, connections, whether networked or telephone connections). Other performance measures, such as the number of agents (and therefore the networked or telephone connections required), the number of transactions completed in a specific time period, the percentage increase in sales, and / or other suitable measures can be similarly measured or determined through simulation. For example, pairing an agent of a contact center with a contact includes establishing a telecommunications connection to provide voice communication between the agent and the contact. Such pairing requires not only a telephone connection, but may also require a processor, memory, and networked connection and / or bandwidth for the contact center and the contact. Simulation can be used to measure and determine performance measures of such resources in order to, for example, compare and reduce resource requirements for a more efficient pairing algorithm or otherwise contact-agent pairing sequence, for example, as determined for a contact center for certain times, dates, or otherwise. In addition, the simulation can also identify increased transaction (e.g., sales) performance for the contact center. In various aspects, the contact center can be updated to execute or implement a pairing strategy determined based on the simulation, for example, a pairing strategy determined by a simulation model as described herein.

[0035] Additionally or alternatively, the present disclosure relates to improvements in other technologies or areas of technology, at least in that synthetic sequences of contact-agent pairings can be manipulated or created in order to test a particular ordering or sequence of actual contact-agent pairings. In such aspects, synthetic sequences of contact-agent pairings can be used to test a contact center system, such as for stress testing or load balancing. Furthermore, such manipulated or created contact-agent pairings can be used to test one or more performance measures of the contact center system. In this manner, synthetic sequences of contact-agent pairings can be used to improve the performance of one or more features of the contact center system by determining performance measures, for example, by determining which pairing sequence provides improvements in terms of reduced telecommunication connection usage, reduced memory usage, reduced processing usage, reduced processing time, and / or increased performance of transactions and / or sales, or other benefits of the contact center as described herein.

[0036] Additionally, the present disclosure includes application or use of a particular machine, such as one or more switches or routers deployed in a contact center, call center, or otherwise associated with a service provider, wherein the switch or router may be configured to operate according to a pairing algorithm determined by simulation according to systems and methods for determining, evaluating, and / or otherwise optimizing or improving performance measures of a contact center as described herein.

[0037] Still further, the present disclosure includes specific features in addition to conventional activities well known in the art because such features add non-conventional steps that limit the present disclosure to specific useful applications, such as computer-implemented systems and methods within a contact center for simulating contact-agent pairings and analyzing contact center performance based on the simulated contact-agent pairings.

[0038] For those skilled in the art, the advantages will become more apparent through the following description of the preferred aspects that have been shown and described by way of illustration. As will be appreciated, the present aspect may be capable of having other and different aspects, and their details may be modified in various respects. Therefore, the drawings and descriptions should be considered to be illustrative rather than restrictive in nature.

[0039] The present disclosure will now be described in more detail with reference to its specific aspects as shown in the accompanying drawings. Although the present disclosure is described below with reference to specific aspects, 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, modifications and aspects and other areas of use that are within the scope of the present disclosure as described herein, and the present disclosure may have significant utility. BRIEF DESCRIPTION OF THE DRAWINGS

[0040] 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 reference numerals. These drawings should not be construed as limiting the present disclosure, but are intended to be illustrative only.

[0041] Figure 1 A block diagram of a contact center system in accordance with various aspects of the present disclosure is depicted.

[0042] Figure 2A A block diagram of a contact center system with an external pairing system is depicted in accordance with various aspects of the present disclosure.

[0043] Figure 2B A block diagram of a contact center system with a remote computing device is depicted in accordance with various aspects of the present disclosure.

[0044] Figure 3A and Figure 3B A flow chart illustrating algorithm execution of an example contact-agent pairing sequence with a simulated contact-agent pairing sequence is shown in accordance with aspects of the present disclosure.

[0045] Figure 4 A computer-implemented method for simulating contact-agent pairings and analyzing contact center performance based on the simulated contact-agent pairings according to various aspects of the present disclosure is shown.

[0046] Figure 5Another computer-implemented method for simulating contact-agent pairings and analyzing contact center performance based on the simulated contact-agent pairings in accordance with various aspects of the present disclosure is shown. DETAILED DESCRIPTION

[0047] Figure 1 1 depicts a block diagram of a contact center system 100 according to various aspects of the present disclosure. Figure 1 As shown in the contact center system 100 of the present invention, the systems and methods of the present invention include network elements, computers and / or computing instructions for simulating 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, instructions, 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., the module itself is not software). Note that modules are exemplary. Modules may be combined, integrated, separated and / or copied to support various applications. In addition, instead of or in addition to the functions performed at a specific module, the functions described herein as being performed at a specific 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. Additionally, a module may be moved and added from one device to another, and / or may be included in two devices.

[0048] like Figure 1 As shown, the contact center system may include a central switch 110. The central switch 110 may receive incoming contacts 105 (e.g., callers) or support outbound connections to contacts via a dialer, telecommunications network, or other module (not shown). The central switch 110 may include contact routing hardware and software to help route contacts between one or more contact center systems, or to one or more private branch exchange (PBX) and / or automatic call distribution (ACD) systems or other queuing or switching components within the contact center. The PBX and / or ACD may manage, route, or otherwise distribute calls based on one or more distribution rules (such as called numbers, lines, schedules, and other parameters), which may be configured to dynamically update or change the operation of the contact center. The rules of the PBX and / or ACD, or more generally the operation of the PBX and / or ACD, may be modified, updated, or otherwise configured by the pairing system 140 and / or the simulation model 150.

[0049] In some aspects, if there is only one contact center in the contact center system 100, or if there is only one PBX / ACD routing component, the central switch 110 may not be necessary. If more than one contact center is part of the 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 the central switch 110.

[0050] Each contact center switch of each contact center may be communicatively coupled to a plurality of agents (or "pools"). Each contact center switch may support a certain number of agents (or "seats") logged in at one 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 any of a number of reasons, such as being connected to another contact, performing some post-call function (such as recording information about the call), or being disconnected.

[0051] exist Figure 1 In the example of , the center switch 110 routes the contact to one of two contact centers via the contact center switch 120A and the contact center switch 120B, respectively. Each of the contact center switches 120A and 120B is shown as having two agents each. Agents 130A and 130B can log into the contact center switch 120A, and agents 130C and 130D can log into the contact center switch 120B. However, it should be understood that additional or fewer agents can be assigned or otherwise associated with a given switch or router within the contact center system.

[0052] In various aspects, the contact center system 100 may also be communicatively coupled to a pairing system 140. The pairing system 140 may include a computing system including one or more processors, one or more memories, and associated computing instructions for executing software or instructions as described herein. In some aspects, the pairing system 140 may be integrated as part of the contact center system 100, such as into an existing computing device, switch, or router of the contact center. That is, in some aspects, the pairing system 140 may be embedded within a component of the contact center system (e.g., embedded in a switch or otherwise integrated with the switch). Additionally or alternatively, the pairing system 140 may be a separate computing system (e.g., such as a computing device provided by a third party) connected via the contact center's computer network. That is, in some aspects, a switch of the contact center system 100 may be communicatively coupled to the pairing system 140 via a network or other cable connection, and in some aspects, multiple pairing systems may be included, such as the pairing system 140. In Figure 1In the example of FIG. 1 , the pairing system 140 is communicatively coupled to one or more switches in the switch system of the contact center system 100 , including the center switch 110 , the contact center switch 120A, and the contact center switch 120B.

[0053] The pairing system 140 can receive information about agents (e.g., agents 130A and 130B) logged into the switch or otherwise logged into the contact center system 100 and about incoming contacts (i.e., contact center data, such as event data of the contact center or other information of the contact center) from the PBX / ACD of the contact center system 100 and / or the switch of the contact center system 100 (e.g., contact center switch 120A). In some aspects, such information can be received via another switch (e.g., center switch 110) or in some aspects from a network (e.g., the Internet or a telecommunications network) (not shown).

[0054] As the term is used herein, contact center event data refers to electronic information that defines an event of a contact center. Contact center event data includes contact data and agent data. For example, contact event data may refer to event data about a contact, such as a contact arriving at or otherwise connecting to a contact center, a contact leaving or otherwise disconnecting from a contact center, or a contact interaction with a contact center, which may include a contact pairing with a pairing system, an interaction with an agent, a selection made (e.g., such as a menu selection from a digital phone menu or other selection interface that causes the contact to be routed or directed in one or more ways within a call routing network or other network of a contact center system), a decision made by the contact during a contact interaction with an agent of a contact center system, or any other event that defines an interaction or state of a contact with a contact center. Similarly, as another example, agent event data may refer to event data about an agent, such as an agent logging into or otherwise connecting at a contact center, an agent logging out of or otherwise disconnecting from a contact center, or an agent's interaction with the contact center, which may include agent pairing with a pairing system, interaction with a contact, selections made (e.g., such as menu selections made from a menu while the agent is handling a contact or otherwise interacting with a contact), decisions made by an agent during a contact-agent pairing, or any other event that defines an agent's interaction or state with the contact center.

[0055] The pairing system 140 can process this information to determine which contacts should be paired with which agents (e.g., matched, assigned, distributed, or otherwise routed within the contact center system 100). That is, the pairing system 140, or more generally the contact center system 100, is configured to algorithmically assign contacts arriving at the contact center to agents available to handle those contacts. At times, the contact center may be in an "L1 state," as defined by a state in which the contact center 100 has agents available and waiting to be assigned to an inbound or outbound contact (e.g., a phone call, an Internet chat session, an email). At other times, the contact center may be in an "L2 state" (i.e., an L2 queue), as defined by a state in which the contact center 100 has contacts waiting in one or more queues for agents to become available for assignment. Such an L2 queue may be an inbound, outbound, or virtual queue.

[0056] The contact center system 100 may be configured to implement various strategies for assigning contacts to agents in the L1 and L2 states. The pairing system 140 is configured to select, modify, and / or switch between or among various strategies or other pairing algorithms based on one or more parameters or states of the contact center system 100. For example, in one aspect, multiple agents may be available and waiting to be connected to a contact (i.e., the contact center system 100 is in the L1 state), and the contact arrives at the contact center via a network or central switch. If the contact center system 100 and / or the pairing system 140 is implementing a FIFO strategy or other algorithm, the contact center system 100 may automatically distribute new contacts to any available agent who is waiting for an agent for the longest amount of time. As another example, if the contact center system 100 or the pairing system 140 is implementing a BP strategy, the contact center system 100 may use specific information about one or both of the tasks or agents to optimally assign contacts to agents.

[0057] When the contact center system 100 is in the L2 state, multiple contacts are available and waiting to be connected to agents. These contacts may be queued in a contact center switch, such as a PBX or ACD device ("PBX / ACD"). If the contact center system 100 and / or the pairing system 140 are implementing a FIFO policy or other algorithm, the contact center system 100, the pairing system 140, and / or the contact center switch typically connects the newly available agent to any contact that has been waiting in the queue for the longest amount of time. In addition, for the L2 state, and in the event that the contact center system 100 and / or the pairing system 140 implement a BP policy or other algorithm, the contact center system 100 and / or the pairing system 140, the contact center system 100 may use specific information about one or both of the tasks or agents to optimally assign agents to contacts.

[0058] The simulation model 150 may be linked to the pairing system 140 and may receive and transmit event data, information, and pairing algorithms for testing and controlling the operation of the contact center system 100, which may be based on the simulated pairing algorithms and sequences, for example, as described herein. The simulation model 150 may include computing instructions stored in a memory and configured to execute one or more processors within or communicatively coupled to the contact center system 100 and the pairing system 140. In various aspects, the simulation model 150 may be implemented by a separate computing device (e.g., a server) that is communicatively connected (e.g., via a network or cable connection) to the pairing system 140. Alternatively, the simulation model 150 may be integrated with the pairing system 140 (e.g., stored in a memory with the pairing system 140 or as part of a computing instruction set or application of the pairing system 140).

[0059] In some aspects, the simulation model 150 can include computing instructions for pairing or otherwise executing or implementing a pairing algorithm. For example, in various aspects, the simulation model 150 can be configured to implement a pairing strategy as would be executed for the same configuration of the contact center system 110 (e.g., having the same equipment or hardware, such as the central switch 110, etc.). The simulation can occur with the simulated event data and, at least initially, can not affect the pairing of actual (real-time) contacts and agents within the contact center system. That is, the simulation can be performed separately from or offline from the actual or real-time operation of the contact center. Additionally or alternatively, such simulations can be performed external to a contact center system as described herein (e.g., the contact center system 100 and / or the contact center system 200) (e.g., via a communication channel such as that for Figure 2A and / or Figure 2B The external simulation model 225) or internal (via Figure 2A and / or Figure 2B The internal simulation model 295) is executed.

[0060] Additionally or alternatively, the simulation model 150 may include a machine learning model. For example, the simulation model 150 may include a machine learning model, or an algorithm for training a machine learning model, configured to input contact center data, such as contact information, agent information, or event data defining a sequence or timing thereof, and / or one or more pairing strategies or algorithms of a contact center system (e.g., the contact center system 100) to predict, classify, or determine contact-agent pairings and / or performance measures of the contact center, as described herein. The performance measures may include any one or more of the contact center's telecommunication connection utilization, the contact center's resource utilization, contact resolution metrics associated with one or more contacts, or transaction metrics associated with one or more contacts, or other performance measures as described herein.

[0061] The simulation model 150 can be trained to determine improvements to any of these performance measures based on different sequences of contacts, agents, and / or pairing strategies currently utilized by a contact center system (e.g., contact center system 100). In various aspects, a supervised or unsupervised machine learning program or algorithm can be used to train the machine learning model of the simulation model 150. The machine learning program or algorithm can employ a neural network, which can be a deep learning neural network. In some aspects, the artificial intelligence and / or machine learning based algorithms used to train the simulation model 150 can be included as a library.

[0062] Machine learning applied to the simulation model 150 may involve identifying and recognizing patterns in existing data, such as contact center data or related event data (e.g., arrival times of contacts or availability of agents), to facilitate predictions or identifications of subsequent data (such as determining contact-agent pairings, performance measures of the contact center system, etc.). For example, a machine learning model, such as the machine learning model of the simulation model 150 described herein, may be created and trained based on training data (e.g., information about contacts, agents, arrival times, login or logout times, handling times, sales or transaction information, telecommunication connection status or utilization, memory or processor resource utilization of the contact center system, or other information or data described herein) as inputs or data (which may be referred to as "features" and "labels") to make valid and reliable predictions for new inputs, such as test-level or production-level data or inputs (e.g., for determining contact-agent pairings and / or performance measures of the contact center).

[0063] In supervised machine learning, a machine learning program operating on a server, computing device, or other processor may be provided with example inputs (e.g., "features") and their associated or observed outputs (e.g., "labels") so that the machine learning program or algorithm determines or discovers rules, relationships, patterns, or other machine learning "models" that map such inputs (e.g., "features") to outputs (e.g., labels), for example, by determining and / or assigning weights or other metrics to the model across its various feature categories. Subsequent inputs may then be provided to such rules, relationships, or other models so that the model executed on the server, computing device, or other processor as described herein predicts or classifies an expected output, score, or value based on the discovered rules, relationships, or models.

[0064] In unsupervised machine learning, a server, computing device, or other processor may be required to find its own structure in unlabeled example inputs, where, for example, multiple training iterations are performed by the server, computing device, or other processor to train multiple generations of models until a satisfactory model is generated, such as a model that provides a compressed representation of the data or input, or other classification when given test-level or production-level data or input.

[0065] Supervised learning and / or unsupervised machine learning may also include retraining, relearning, or otherwise updating a model using new or different information, which may include information received, ingested, generated, or otherwise used over time. The disclosure herein may use one or both of such supervised or unsupervised machine learning techniques.

[0066] It should be understood that the simulation model 150 can be used to determine simulated contact-agent pairing sequences and / or related performance measures using artificial intelligence (e.g., a machine learning model of the simulation model 150) or in alternative aspects without the use of artificial intelligence. More generally, simulations (whether or not using artificial intelligence) can be performed to test, measure, or otherwise determine a pairing strategy for a contact center (e.g., the contact center system 100) to determine performance measures for the contact center, as described herein. The simulations performed by the simulation model can be used to update or configure the pairing system 140 to operate according to a new or different pairing algorithm that is determined based on the simulated pairing algorithm tested, determined, or measured by the simulation model 150. In this case, the new or different pairing algorithm can be uploaded, transmitted, or otherwise provided to the pairing system 140 (e.g., via a computer network or via a computer bus), where the pairing system 140 can cause the contact center system (e.g., via configuration of one or more switches, PBXs, or ACDs, etc.) to begin executing or implementing the new or different pairing algorithm.

[0067] Figure 2A A block diagram of a contact center system 200A with an external pairing system 220 is depicted in accordance with aspects of the present disclosure. The contact center system 200A represents an additional or alternative configuration of a contact center system as compared to the contact center system 100. However, it should be understood that the disclosure provided herein with respect to routing and pairing contacts for the contact center system 100 is applicable to the contact center system 200A. In the contact center system 200A, the contact center system 200A can route contacts 205 to a plurality of agents 230. The contact center system 200A can include routing hardware and software, such as a switch 280 and / or one or more PBX or ACD routing components or other queuing or switching components for facilitating routing of the plurality of contacts 205 between the plurality of agents 230.

[0068] In the contact center system 200A, an internal pairing system 290 can be communicatively coupled to the contact center system 200A. The internal pairing system 290 can be local (or built-in) to the contact center system 200A (i.e., "first party"), or can be provided by a third party vendor. Typically, the internal pairing system 290 can implement a traditional pairing strategy (e.g., FIFO) or some other pairing strategy that can be proprietary to the contact center system 200A. However, the internal pairing system 290 can also include, for example, Figure 1 The internal pairing system 140 may receive or otherwise retrieve information about agents 230 logged into the contact center system 200A and about incoming contacts 205 from the contact center system 200A.

[0069] In the contact center system 200A, the external pairing system 220 can be communicatively coupled to the contact center system 200A via an interface 285. The interface 285 can isolate the contact center system 200A from the external pairing system 220 (e.g., for security purposes) and control or otherwise allow information to be exchanged between the two systems. An example of the interface 285 can be a public or private proprietary application programming interface (API) provided over a network (e.g., the Internet or a telecommunications network) (not shown), such as a representational state transfer (RESTful) API.

[0070] Further references Figure 2A, the simulation model 225, 295 can be configured to be external or internal to the contact center system 200A, and can also be configured to generate a simulated sequence of contact-agent pairings, determine one or more performance measures of the contact center based on the simulated sequence of contact-agent pairings, update the operation of the contact center based on one or more simulations, or perform other such operations provided by the simulation model, as described herein. For example, the internal simulation model 295 is communicatively coupled to the internal pairing system 290. In some aspects, the internal simulation model 295 can be a separate application, computer program, or other set of computing instructions from the internal pairing system 290. In such aspects, the internal simulation model 295 can interact or communicate with the internal pairing system 290 via an API or otherwise through data exchange. Additionally or alternatively, the internal simulation model 295 can be integrated with or part of the internal pairing system 290.

[0071] More generally, the internal simulation model 295 includes computing instructions, program code, one or more data structures (e.g., neural networks) that are integrated with or accessible to the internal pairing system 290. In various aspects, the internal pairing system 290 can include computing instructions that interact with or access the internal simulation model 295 via inputs and outputs. For example, the internal pairing system 290 can provide data (e.g., contact and agent data) to the internal simulation model 295, and can receive outputs (e.g., simulated contact-agent pairings, performance measures) for updating the operation of the contact center 200A to operate according to the pairing algorithm determined from the simulations of the internal simulation model 295.

[0072] The external simulation model 225 can be communicatively coupled to the external pairing system 220. In some aspects, the external simulation model 225 can be a separate application, computer program, or other set of computing instructions from the external pairing system 220. In such aspects, the external simulation model 225 can interact or communicate with the external pairing system 220 via an API or otherwise through data exchange. Additionally or alternatively, the external simulation model 225 can be integrated with the external pairing system 220, or be a part of the external pairing system 220. Furthermore, the external simulation model 225 can be communicatively coupled to the contact center system 200A through the external pairing system 220 via the interface 285.

[0073] Additionally or alternatively, the external simulation model 225 may be directly connected (not shown) to the contact center system, for example, via an interface 285. The external simulation model 225 may communicate with the contact center system 200A via the interface 285 to update operations (e.g., based on a pairing algorithm after simulation) or otherwise allow information to be exchanged between the external simulation model 225 and the contact center system 200A. An example of the interface 285 may be a public or private proprietary application programming interface (API), such as a representational state transfer (RESTful) API, provided over a network (e.g., the Internet or a telecommunications network) (not shown). The API may be the same or different from the API used by the external pairing system 220 to communicate with the contact center system 200A.

[0074] The external simulation model 225 includes computing instructions, program code, one or more data structures (e.g., a neural network) that can be integrated with or have access to the external pairing system 220. In various aspects, the external pairing system 220 can include computing instructions that interact with or have access to the external simulation model 225 via inputs and outputs. For example, the external pairing system 220 can provide data (e.g., contact and agent data, or related event data) to the external simulation model 225, and can receive outputs (e.g., simulated contact-agent pairings, performance measures) for updating the operation of the contact center 200A to operate according to the pairing algorithm determined from the simulation of the external simulation model 225.

[0075] In some aspects, the external pairing system 220 may have access to less information associated with the contact center system 200A relative to the internal pairing system 290, e.g., a limited subset of information selected and shared by the contact center system 200A. Similarly, the external pairing system 220 may have less control over the operation of the contact center system 200A relative to the internal pairing system 290. However, such information and / or control is generally sufficient for the external pairing system 220 to determine the contact-agent pairing and communicate the determined contact-agent pairing to the contact center system 200A. The external pairing system 220 may be provided by a third-party vendor and may be in the form of the pairing system 140 described above. The external pairing system 220 may provide a pairing strategy (e.g., a BP strategy) that improves the performance of the contact center system 200A when compared to one or more pairing strategies typically provided by the internal pairing system 290. In some aspects, the external pairing system 220 may also provide one or more pairing strategies that are the same or similar to one or more pairing strategies of the internal pairing system 290.

[0076] In some aspects, the contact center system 200A can operate under shared control, where the contact center system 200A can send routing requests to either or both of the internal pairing system 290 and the external pairing system 220 to determine which contact is to be routed to which agent. For example, shared control may be desirable when the internal pairing system 290 employs a traditional or proprietary pairing strategy (e.g., FIFO) that may not be provided by the external pairing system 220, while the external pairing system 220 is used to provide a higher performance pairing strategy (e.g., BP pairing strategy or algorithm). In this manner, each of the external pairing system 220 and / or the internal pairing system 290 can use fewer resources, such as less memory and / or processing, because the external pairing system 220 and the internal pairing system 290 can offload or otherwise separate the contact-agent pairing calculation or determination of a given contact-agent pairing across the networked environment.

[0077] When the external pairing system 220 includes a pairing strategy that is the same or similar to the pairing strategy of the internal pairing system 290, the contact center system 200A can operate under full control such that the contact center system 200A sends all routing requests to the external pairing system 220. In other words, the external pairing system 220 has full control over determining each contact-agent pairing. Under full control, at times, the external pairing system 220 can emulate / mimic the pairing strategy of the internal pairing system 290 (e.g., FIFO), and at other times, can adopt a different pairing strategy (e.g., BP) and send its contact-agent pairing recommendation to the contact center system 200A through the interface 285. The contact center system 200A can then assign the contact 205 to the agent 230 based on the contact-agent pairing recommendation.

[0078] In such Figure 2B In other examples shown, the external simulation model 225 can be part of a remote computing device 295 in the contact center 200 B. The remote computing device 295 can be connected to the contact center via an interface 296 and control or otherwise allow information to be exchanged between the internal pairing system 290 and the remote computing device 295. An example of an interface 285 can be a public or private proprietary application programming interface (API) provided over a network (e.g., the Internet or a telecommunications network) (not shown), such as a representational state transfer (RESTful) API. Otherwise, the contact center 200B can be similar to the contact center 200A. Otherwise, the components of the contact center 200B can be provided with respect to the components of the contact center 200A.

[0079] In some aspects, the performance of the external pairing system 220 can be determined at least in part by the number of contact-agent pairing options available to the external pairing system 220 at a given point in time. For example, in an L1 environment (surplus agent, one contact; choose among multiple available / free agents), the number of pairing options corresponds to the number of available agents. In an L2 environment (surplus contact, one available / free agent; choose among multiple contacts in a queue), the number of pairing options corresponds to the number of available contacts. In an L3 environment (multiple agents and multiple contacts; choose among permutations of pairings), the number of pairing options corresponds to the number of permutations between the number of available agents and contacts.

[0080] The effect of having a small number of contact-agent pairing choices can be to reduce the performance gain that can be derived from using a higher performing pairing strategy (e.g., a BP strategy) relative to a traditional pairing strategy (e.g., FIFO). For example, when one agent and one contact are available, there is a single pairing choice, so any pairing strategy will select the same contact-agent pairing. On the other hand, when many agents and / or contacts are available, this produces a large number of pairing choices. The strategy used to select among this large number of pairing choices can have a significant impact on performance. Therefore, the difference between high-performing pairing strategies and traditional pairing strategies generally increases with the number of contact-agent pairing choices. The relationship between the number of available pairing choices and performance is described in detail, for example, in U.S. Patent No. 10,257,354, which is incorporated herein by reference.

[0081] Therefore, to improve the performance of the high-performance pairing strategy, it may be desirable to delay or otherwise postpone the selection of a contact-agent pairing between an agent and a contact when the number of pairing choices is too small to achieve a desired level of performance (e.g., when the number of pairing choices is below a predetermined threshold, or when the contact center system 200A and / or 200B is in an L1 or L2 state). Delaying the selection may provide time for new contacts to be added to the queue or for more agents to become available, thereby increasing the number of pairing choices. In some embodiments, delaying the selection may allow the contact center system 200A and / or 200B to transition from an L1 or L2 state (where the number of pairing choices increases linearly with the number of contacts or agents) to an L3 state (where the number of pairing choices increases nonlinearly with the number of contacts or agents).

[0082] When the pairing strategy is implemented by the internal pairing system 290, the postponement of the selection can be implemented by directly monitoring the state of the contact center system (e.g., the contact center system 100 and / or the contact center system 200A and / or 200B) and waiting until the number of pairing selections exceeds a threshold. See, for example, U.S. Patent No. 10,257,354. However, for the pairing strategy implemented by the external pairing system 220, adding a delay period may involve exchanging communications between the external pairing system 220 and the contact center system 200 through an API to coordinate or share control between the external pairing system 220 and the internal pairing system 290.

[0083] Figure 3A A flow chart of a first algorithm execution 300A showing an example contact-agent pairing sequence with a simulated contact-agent pairing sequence according to aspects of the present disclosure is shown. In addition, the simulated contact-agent pairings referred to herein may also be referred to as "hypothetical contact-agent pairings". Regardless, the present invention provides Figure 3A and Figure 3B To demonstrate how to implement a simulation model for a contact center system to generate simulated contact-agent pairings together with executing a real-time pairing strategy that generates actual contact-agent pairings, and how different pairing strategies affect the operation of the contact center system based on different permutations of contact arrival time, contact type, agent availability, agent type, and / or other information or data of the contact center system. Of course, the various pairing algorithms are merely examples of the types of pairing algorithms / strategies that can be used for the sequences, simulated sequences, and / or other simulations described herein.

[0084] in any case, Figure 3A The simulated contact-agent pairing sequence generally includes a set of available contacts 312 and a set of available agents 314. At a first time 310, all / some of the contacts in the set of available contacts 312 may be paired with agents from the set of available agents 314 according to two pairing strategies. Figure 1 The described contact center systems (e.g., contact center system 100, pairing system 140, simulation model 150), 2A (e.g., contact center system 200A, internal pairing system 290, internal simulation model 295, external pairing system 220, external simulation model 225), and / or 2B (e.g., contact center system 200B) can use a FIFO pairing strategy, a BP pairing strategy, and / or any other pairing strategy used by the contact center system to analyze the set of available contacts 312 and the set of available agents 314 to determine one or more contact-agent pairings. Additionally, the contact center systems described herein can utilize a simulation model that implements a simulated pairing algorithm to simultaneously generate one or more simulated contact-agent pairings.

[0085] For example, and if Figure 3A As shown, the contact center system may implement a FIFO pairing strategy, whereby the first available agent A1 is paired with the first available contact C1 in the first contact-agent pairing 320. The first available agent A1 and the first available contact C1 may be paired according to the FIFO pairing strategy because the first available agent A1 and the first available contact C1 are the first agent and the first contact, respectively, present in their respective queues waiting for pairing. As a result of the first contact-agent pairing 320, the contact center system may establish a first connection between the first available agent A1 and the first available contact C1. In this manner, the FIFO pairing strategy may enable the first available agent A1 to have a conversation with the first available contact C1, and may also enable the first available agent A1 to resolve any questions, concerns, and / or other difficulties that the first available contact C1 may have. The first available agent A1 may engage with the first available contact C1 for ten minutes (i.e., ten minutes of handling time (HT)), after which the first available contact C1 and / or the first available agent A1 may be disconnected from the first connection, thereby ending the conversation. The first result 322 of the first contact-agent pairing 320 may be recorded in a result storage location for use in future pairing determinations, agent evaluations, and / or any other suitable determinations.

[0086] More specifically, the contact center system of the present disclosure may obtain a first set of available contacts 312 and a first set of available agents 314 at a first time 310. The contact center system may then determine a first contact-agent pairing 320 between a first available agent A1 and a first available contact C1 based on the first set of available contacts 312 and the first set of available agents 314 and a first pairing strategy (e.g., FIFO, BP, or any other pairing strategy used by the contact center system). One or more processors of the contact center system may then establish a first connection between the first agent device and the first contact device for the first contact-agent pairing 320. When the first connection 320 is disconnected, the one or more processors may store the first set pairing data corresponding to the first contact-agent pairing.

[0087] Typically, the first set of pairing data may be or include a contact identifier, an agent identifier and / or a pairing strategy identifier. Figure 3AIn an exemplary embodiment of the present invention, the first set of pairing data may include a contact identifier corresponding to the first available contact C1, an agent identifier corresponding to the first available agent A1, and a pairing strategy identifier corresponding to the FIFO pairing strategy that resulted in the first contact-agent pairing between the first available contact C1 and the first available agent A1. Of course, it should be understood that the set of pairing data may include any suitable data. For example, the set of pairing data may include a result indicator (e.g., the first result 322), such as an indication of whether the contact-agent pairing resulted in a transaction, a processing time, and / or any other suitable indication or combination thereof. In other examples, the result identifier and / or other information may be stored in a separate database linked to the internal contact center system (e.g., at the remote computing device 295). Similarly, the pairing strategy used may be any pairing strategy (e.g., BP) available to the contact center system.

[0088] As another example, the first pairing policy may be BP and the second pairing policy may be FIFO (or another incumbent pairing policy of the contact center). Thus, in this example, the incumbent pairing policy (FIFO) may be a simulated pairing policy such that the contact center may implement / test the first pairing policy to determine whether the incumbent pairing policy should be replaced / adjusted / affected by the first pairing policy (and / or any other suitable pairing policy or combination thereof). Thus, the system of the present disclosure may allow the contact center owner to verify whether the first pairing policy (BP) is a superior pairing policy to the incumbent pairing policy (FIFO) based on a comparison with real-time data indicating how the incumbent pairing policy (FIFO) would perform if implemented. Thus, the system and method of the present disclosure allow the contact center owner to evaluate a new pairing policy against the incumbent pairing policy without actually requiring the contact center to continue using the incumbent pairing policy.

[0089] In other examples, a first pairing strategy may be tested against a simulated pairing strategy to determine whether the first pairing strategy should be replaced / adjusted / influenced by data of how the simulated pairing strategy would perform if the simulated pairing strategy was used instead of the first pairing strategy. For example, if a FIFO pairing strategy outperforms a BP strategy or a PBR strategy, the BP / PBR strategy may be adjusted or influenced by the simulated pairing data. In another example, where the first pairing strategy is a BP strategy, a PBR strategy, or any other pairing strategy that manipulates pairing based on data about contacts and agents rather than pairing contacts or agents in the order in which they become available, collection of simulated pairing data based on a simulated pairing strategy (such as FIFO pairing contacts or agents in the order in which they become available) may be used to train the first pairing strategy as post-simulated ground truth data. Thus, the systems and methods of the present disclosure allow contact center owners to evaluate and / or adjust pairing strategies against simulated pairing strategies without actually requiring the contact center to use the simulated pairing strategies.

[0090] Furthermore, as previously described, contact center environments may often be too dynamic for comparison of current data using a first pairing strategy (e.g., BP) with previous (e.g., one day ago) data using a second pairing strategy (e.g., FIFO). Data collected from different time periods may often result in a significant amount of noise between the two data sets; therefore, the systems and methods of the present disclosure provide a more accurate comparison of the two pairing strategies than previously achievable using conventional techniques that produce significantly noisy data sets.

[0091] In any case, when the processor has stored the first set of pairing data and / or is executing the first pairing strategy (e.g., Figure 3A When the pairing strategy is used to generate a first contact-agent pairing, the one or more processors may execute a simulation model that implements a simulated pairing algorithm to generate a second contact-agent pairing 324 based on the first set of available contacts 312 and the first set of available agents 314 and the second pairing strategy. The second pairing strategy may be any suitable pairing strategy, such as BP. For example, in some embodiments, the pairing strategy for establishing a connection between a live agent and a contact may be a BP strategy, and the simulated pairing strategy may be a FIFO pairing strategy. Of course, as previously described, the simulation model may be or include executable instructions (e.g., a simulated pairing algorithm) configured to implement a pairing strategy (e.g., a second pairing strategy).

[0092] like Figure 3AAs shown, the contact center system may execute the simulation model to identify a pairing that includes the second available agent A2 and the third available contact C3 in the second contact-agent pairing 324. The second available agent A2 and the third available contact C3 may be paired according to the simulated pairing strategy because the second available agent A2 and the third available contact C3 have a high likelihood of a successful / desired outcome according to the simulated pairing strategy. However, unlike the first contact-agent pairing 320, the contact center system may not establish a connection between the second available agent A2 and the third available contact C3 because the second contact-agent pairing 324 is a simulated pairing. Instead, the only real-time connection established at the first time 310 may be between the first available agent A1 and the first available contact C1 of the first contact-agent pairing 320. In this manner, Figure 3A The simulated contact-agent pairings shown in can enable the contact center system to simulate alternative pairings / pairing strategies simultaneously with the real-time actual pairings / pairing strategies to test / predict the effectiveness of such alternative pairings / pairing strategies and / or the future state of the contact center system based on the simulated pairing strategies at any time during the real-time operation of the contact center system without actually requiring real-time operational use of the simulated pairing strategies.

[0093] For example, in Figure 3A In an embodiment of the present invention, the third available contact C3 has an associated contact type 5, which may be a contact type that the second available agent A2 is historically suitable for handling and / or otherwise interacting with based on historical result data. This historical result data corresponding to past interactions between the corresponding agent and the contact / contact type may indicate a success rate of securing transactions during pairing, a reduced handling time, and / or other performance measures, and may be stored locally on the contact center system and / or may be stored externally. In certain embodiments, the historical result data may be or include a numeric historical result indicator between 0 and 1 to indicate a percentage success rate for a particular agent with a particular contact type. In addition, the contact type may generally indicate that the particular contact generally has a longer / shorter / average handling time, is more likely / less likely to execute a transaction, has been determined to be a low / high priority, and / or any other suitable indication or combination thereof. It should be understood that there may also be additional contact types based on any suitable indication, wherein each contact type may be classified, ranked, determined and / or otherwise based on a corresponding pairing algorithm currently implemented by the contact center system.

[0094] In this example, contact type 5 may indicate that the third available contact C3 typically has a shorter handling time and is most likely to be involved in a transaction, and the second available agent A2 may have an above average (or higher than the first available agent A1) historical outcome indicator corresponding to contact type 5. Therefore, the simulated pairing strategy may generate a second contact-agent pairing 324 between the second available agent A2 and the third available contact C3 because the pairing 324 has the highest predicted likelihood of a successful outcome for the available pairing scenarios between an agent from the first set of available agents 314 and a contact from the first set of available contacts 312.

[0095] like Figure 3A As shown, the second contact-agent pairing 324 may be predicted to result in a successful second outcome 326. More specifically, based on the historical outcome data of the second available agent A2 with contacts of contact type 5, the second contact-agent pairing 324 is predicted to result in a successful outcome (e.g., an outcome indicator of 0.9) representing a transaction (sale) and / or any other suitable outcome metric or combination thereof. For example, the processor of the contact center system may calculate the outcome indicator by evaluating the previous connections of the second available agent A2 with contacts of contact type 5. In this example, the second available agent A2 may have successfully initiated / performed transactions with contacts of contact type 5 during eighteen connections out of a total of twenty connections, resulting in a success rate of 90% or 0.9 (on a scale from zero to one). Therefore, the predicted / simulated outcome indicator for pairing the second available agent A2 with the third available contact C3 may be 0.9. Thus, second contact-agent pairing 324 is predicted to be substantially more successful than first contact-agent pairing 320 because first outcome 322 has an outcome indicator of zero, meaning that no transaction and / or other desired outcome was achieved as a result of first contact-agent pairing 320 .

[0096] When the simulation model has completed generating the second contact-agent pairing 324, the processor of the contact center system can store a second set of pairing data corresponding to the second contact-agent pairing 324. The second set of pairing data can be similar to the first set of pairing data in that the second set of pairing data can be or include a contact identifier, an agent identifier, and / or a pairing strategy identifier (e.g., an identification of the pairing strategy after simulation). However, the second set of pairing data can also be or include a predicted outcome indicator corresponding to the predicted second outcome 326. Figure 3AIn an exemplary embodiment of the present invention, the second set of pairing data may include a contact identifier corresponding to the third available contact C3, an agent identifier corresponding to the second available agent A2, a pairing strategy identifier corresponding to the simulated pairing strategy that resulted in the second contact-agent pairing 324 between the third available contact C3 and the second available agent A2, and a predicted result indicator corresponding to the second result 326. In some embodiments, the second set of pairing data may be or include a standardized performance ranking of an agent (e.g., the second available agent A2) included in the simulated contact-agent pairing, a wait time of the agent and / or the contact, a skill value of the agent, and / or a priority value associated with the agent and / or the contact.

[0097] In some embodiments, the first set of available agents 314 and the first set of available contacts 312 may include zero entries or a single entry. Additionally, in some embodiments, the first contact-agent pairing 320 may include a first contact and a first agent from the first set of available contacts 312 and the first set of available agents 314, and the second contact-agent pairing 324 may include the same first contact and first agent from the first contact-agent pairing 320. Alternatively, in some embodiments, the second contact-agent pairing 324 may include at least one of: (i) a second contact that is different from the first contact, or (ii) a second agent that is different from the first agent. For example, Figure 3A The second contact-agent pairing 324 in FIG. 3 includes a second available agent A2 and a third available contact C3 , both of which are different from the first available agent A1 and the first available contact C1 in the first contact-agent pairing 320 .

[0098] Additionally, the processor of the contact center system may determine a performance measure of the contact center system based on the first set of pairing data and the second set of pairing data. For example, in some embodiments, the performance measure may be or include (i) a number of differences between the first set of pairing data and the second set of pairing data, (ii) a percentage similarity value between the first set of pairing data and the second set of pairing data, (iii) a result difference value, (iv) a bandwidth value, (v) a throughput value, (vi) a handling time, (vii) a queue length value, (viii) an estimated wait time based on the contact time in the queue or another value, (ix) a number of communication disconnections, (x) a service level agreement (SLA) satisfaction value, and / or any other suitable value or combination thereof associated with the contact center system. The SLA satisfaction value may generally be or include a percentage, ratio, numerical value, score, and / or any other suitable value representing the rate at which a particular pairing strategy (or the difference between two pairing strategies) successfully pairs contacts with agents within a threshold time period (e.g., as indicated in an associated SLA). Additionally, the outcome difference may represent a numerical difference between an actual outcome of a connected pairing (eg, first contact-agent pairing 320 ) and a predicted outcome of a simulated pairing (eg, second contact-agent pairing 324 ).

[0099] To illustrate, at a first time 310, a first contact-agent pairing 320 resulted in a first result 322 having a result indicator of zero, meaning that the pairing between the first available agent A1 and the first available contact C1 did not result in a transaction or other suitable result. A second contact-agent pairing 324 is predicted to produce a second result 326 having a result indicator of 0.9, meaning that the pairing between the second available agent A2 and the third available contact C3 is predicted to produce a transaction or other suitable result. Thus, a performance measure of the contact center may be based in part on the difference between the first result 322 indication of zero and the second result 326 indication of 0.9 (i.e., a performance measure of -0.9 or 0.9 at the first time 310). Based on the performance measure, the internal / external contact center system may update, change and / or modify the pairing strategy and / or data entries corresponding to the agents, contact types, pairing strategy to improve the real-time pairing established by the pairing system over time.

[0100] Furthermore, in some embodiments, the contact center system may determine a set of historical contact-agent pairings based on one or more connected contact-agent pairings. In other words, the processor of the contact center system may evaluate a set of previous pairing data associated with previous contact-agent pairings that resulted in a real-time connection between the agent device and the contact device to determine the set of historical contact-agent pairings. Similarly, the contact center system may determine a set of simulated contact-agent pairings based on one or more simulated contact-agent pairings. That is, the processor of the contact center system may evaluate a set of previous pairing data associated with previous simulated contact-agent pairings to determine the set of simulated contact-agent pairings. In these embodiments, the contact center system may compare the set of historical contact-agent pairings and the set of simulated contact-agent pairings to determine a performance measure based on the comparison.

[0101] For example, a processor of a contact center system described herein may evaluate pairing data from a plurality (e.g., 10, 50, 100, 1000, etc.) of previously connected contact-agent pairings and a corresponding plurality of previously simulated contact-agent pairings. Each of these previously connected contact-agent pairings and previously simulated contact-agent pairings may have a binary result indicator, which may generally indicate whether the pairing was successful. Thus, the pairing strategies responsible for the previously connected contact-agent pairings and the corresponding plurality of previously simulated contact-agent pairings may have an associated conversion rate. The conversion rate may generally indicate the number / percentage / ratio of pairings associated with each respective pairing strategy that was successful and / or any other suitable value or combination thereof. For example, a first pairing strategy may have a conversion rate of 75%, indicating that 75% of the pairs established by the first pairing strategy were successful, and a second pairing strategy may have a conversion rate of 35%, indicating that 35% of the pairs established by the second pairing strategy were successful. In this example, the processor of the contact center system described herein may compare these conversion rates to determine that the first pairing strategy is more successful than the second pairing strategy and should be used more likely than the second pairing strategy. Thus, the processor of the contact center system described herein can compare the conversion rates of the corresponding pairing strategies to determine which pairing strategy is more successful and / or likely to be more successful / most successful. Of course, the processor of the contact center system described herein can perform similar comparisons between pairing strategies for any suitable metric (e.g., conversion rate, queue length, wait time, SLA satisfaction value, bandwidth, throughput, processing time, a value based on contact time in queue, communication disconnection, etc.).

[0102] In certain embodiments, the processor of the contact center system described herein may perform a comparison between pairing strategies on a result-by-result basis. For example, and as mentioned, the processor of the contact center system described herein may evaluate pairing data from a plurality (e.g., 10, 50, 100, 1000, etc.) of previously connected contact-agent pairings and a corresponding plurality of previously simulated contact-agent pairings. The previous pairing data may include result data associated with each connected contact-agent pairing and each simulated contact-agent pairing. The processor may compare the numerical result indicator associated with each previously connected pairing with the corresponding previously simulated pairing to determine a set of result differences. The set of result differences may include as many entries as there are corresponding pairs of separate previously connected contact-agent pairings and previously simulated contact-agent pairings. For illustration, the processor may evaluate 50 previously connected contact-agent pairings and 50 corresponding previously simulated contact-agent pairings, such that the set of result differences includes up to 50 entries. The processor may then determine a performance measure based on the set of result differences by any suitable mathematical / statistical formula. For example, the processor may calculate an average result difference, a summed result difference, a weighted average result difference, and / or any other formula or combination thereof.

[0103] As another example of the previous embodiment, the processor of the contact center system may evaluate three previously connected contact-agent pairings having result indicators of 1, 0, and 0, respectively. The processor may also evaluate three previously simulated contact-agent pairings having simulated result indicators of 0.75, 0.25, and 0.5, respectively. In this example, the processor may calculate the result difference for each pair of corresponding connected / simulated contact-agent pairings to determine a set of result differences of 0.25, -0.25, and -0.5. Thus, the processor may determine an aggregate performance measure by averaging the three result differences of a performance measure of approximately -0.167, for example, indicating that the simulated contact-agent pairing is slightly more preferred than the connected contact-agent pairing.

[0104] Of course, it will be appreciated that the comparison of the result indicators of the previously connected contact-agent pairing and the previously simulated contact-agent pairing may be performed in any suitable manner. Figure 3A Only example aspects of the first algorithm execution 300A are provided, and additional or different strategies may be implemented, including pairing strategies and / or different types or implementations of simulation techniques.

[0105] Figure 3B The present invention shows a display according to various aspects of the present disclosure. Figure 3AAnother flow chart of the second algorithm execution 300B continues with an example contact-agent pairing sequence and a simulated contact-agent pairing sequence. Specifically, Figure 3B The pairing sequence occurring at a second time 330, 336 for both a first pairing strategy (e.g., a FIFO pairing strategy) and a second simulated pairing strategy (e.g., implemented by a simulation model) is shown. The first pairing strategy and the second simulated pairing strategy reach a second time 330, 336 with different sets of available agents 332, 338 and different sets of available contacts 334, 340. The first pairing strategy previously paired the first available agent A1 with the first available contact C1, and the second simulated pairing strategy paired the second available agent A2 with the third available contact C3. Thus, at the second time 330, the first pairing strategy may be responsible for pairing the third set of available agents 332 with the third set of available contacts 334; and at the second time 336, the second simulated pairing strategy may be responsible for simulating pairing between the fourth set of available agents 338 and the fourth set of available contacts 340. Of course, in some embodiments, the first pairing strategy may be any suitable strategy (e.g., FIFO, BP, PBR, etc.), and the second pairing strategy may be any suitable strategy (e.g., FIFO, BP, PBR, etc.).

[0106] The processor of the contact center system may continue to execute the first pairing strategy to generate contact-agent pairings between the third set of available agents 332 and the third set of available contacts 334. The pairings may result in a set of contact-agent pairings 342, in which the second available agent A2 is paired / connected to the second available contact C2, the third available agent A3 is paired / connected to the third available contact C3, and the fourth available agent A4 is paired / connected to the fourth available contact C4. Figure 3B As shown, the set of contact-agent pairs 342 may have a corresponding set of results 344 , which may include a respective result indicator indicating that only the pairing between the fourth available agent and the fourth available contact resulted in a successful transaction.

[0107] Meanwhile, the processor of the contact center system may continue to execute the second simulated pairing strategy to generate simulated contact-agent pairings between the fourth set of available agents 338 and the fourth set of available contacts 340. The pairings may result in a set of simulated contact-agent pairings 346, in which the third available agent A3 is paired / connected to the first available contact C1, the fourth available agent A4 is paired / connected to the second available contact C2, and the fifth available agent A5 is paired / connected to the fourth available contact C4. Figure 3B As shown, the set of simulated contact-agent pairings 346 may have a corresponding set of simulated results 348 , which may include respective result indicators indicating that the simulated contact-agent pairings have various possible results.

[0108] In this case, the simulated results 348 can represent the maximum overall predicted performance of the contact center system at the second time 336. For example, given the fourth set of available agents 338 and the fourth set of available contacts 340, the simulation model can predict that the set of simulated contact-agent pairings 346 represents the highest possible likelihood of a successful outcome for a connection with each available contact. The highest possible likelihood can be on a contact-by-contact basis and / or can be on an aggregate basis. For example, the simulation model can predict that the sum of the outcome indicators represented in the set of simulated results 348 (i.e., 1.4) can be the highest of all predicted sums for all permutations of pairings between the fourth set of available agents 338 and the fourth set of available contacts 340.

[0109] Additionally or alternatively, the simulation model may generate a set of simulated contact-agent pairings 346 based on the available agents in the fourth set of available agents 338, because the individual result indicators of each simulated pairing are the highest values ​​that each contact can receive without negatively affecting the result indicators of other contacts. To illustrate, the first available contact C1 may have a predicted result indicator of 0.25 when paired with the third available agent, and may have a predicted result indicator of 0.3 when paired with the fourth available agent. However, the second available contact may have a predicted result indicator of 0.75 when paired with the fourth available agent, and may have a predicted result indicator of 0.4 or less when paired with any remaining available agent in the fourth set of available agents 338. Therefore, because the benefit of pairing the second available contact C2 with the fourth available agent A4 exceeds the benefit of pairing the first available contact C1 with the fourth available agent A4, the simulation model may pair the first available contact C1 with the third available agent A3.

[0110] like Figure 3B As further shown, the simulation model may generate predicted handling times as part of the post-simulated pairing strategy. For example, the simulated contact-agent pairing of the third available agent A3 with the first available contact C1 is predicted to have a handling time of approximately ten minutes, the simulated contact-agent pairing of the fourth available agent A4 with the second available contact C2 is predicted to have a handling time of approximately ten minutes, and the simulated contact-agent pairing of the fifth available agent A5 with the fourth available contact C4 is predicted to have a handling time of approximately eight minutes. In these instances where the simulation model generates predicted handling times for the simulated contact-agent pairings, the predicted handling times may be included as part of the post-simulated pairing data, the post-simulated results data, and / or any other suitable data set that may be stored at any suitable location locally or remotely relative to the contact center system.

[0111] When the processor of the contact center system completes generating and / or establishing / connecting the set of contact-agent pairings 342 and the set of simulated contact-agent pairings 346, the processor can continue to generate performance measurements for the contact center system. In particular, the processor can continue to compare the set of results 344 with the simulated results 348 by comparing the result indicators included as part of the set of results 344 with the simulated results 348. For example, the processor can determine that the first pairing strategy produced less favorable results in two of the three connected pairings relative to the corresponding simulated pairings.

[0112] In some embodiments, the set of available agents and contacts 332-340 is the same for the first pairing strategy and the second simulated pairing strategy. In these embodiments, the processor of the contact center system may obtain a second set of available contacts and available agents at a second time different from the first time 310; determine a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establish a second connection for the third contact-agent pairing; and store a third set of pairing data corresponding to the third contact-agent pairing. In addition, in these embodiments, the processor may generate a fourth contact-agent pairing based on the second set of available contacts and available agents and the second pairing strategy by executing the simulation model; and store a fourth set of pairing data corresponding to the fourth contact-agent pairing. The processor may then determine a performance measure of the contact center based on (i) the first set of pairing data associated with the first contact-agent pairing 320, (ii) the second set of pairing data associated with the second contact-agent pairing 324, (iii) the third set of pairing data, and / or (iv) the fourth set of pairing data.

[0113] In some embodiments, the processor of the contact center system may obtain a second set of available contacts and available agents at a second time different from the first time 310; determine a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establish a second connection for the third contact-agent pairing; and store a third set of pairing data corresponding to the third contact-agent pairing. In addition, in these embodiments, the processor may generate a hypothetical set of available contacts and available agents based on the first set of available contacts and agents and the second contact-agent pairing by executing a simulation model, and (ii) generate a fourth contact-agent pairing based on the hypothetical set of available contacts and available agents and the second pairing strategy; and store a fourth set of pairing data corresponding to the fourth contact-agent pairing. The processor may then determine a performance measure of the contact center based on (i) the first set of pairing data associated with the first contact-agent pairing 320, (ii) the second set of pairing data associated with the second contact-agent pairing 324, (iii) the third set of pairing data, and (iv) the fourth set of pairing data.

[0114] like Figure 3B As shown, the set of available agents 332, 338 and the set of contacts 334, 340 include different members based on previous contact-agent pairings generated by different pairing strategies. Therefore, it should be understood that the shared membership between the sets of available agents and contacts may deviate / change / reduce over time because two different pairing strategies may generate different pairing combinations, which may leave different agents and / or contacts in their respective queues waiting to be paired. As the processor iteratively generates actual contact-agent pairings (e.g., contact-agent pairings 320, 342) and simulated contact-agent pairings (e.g., simulated contact-agent pairings 324, 346) over time, such deviations may result in significantly different contact-agent pairing probabilities and associated results.

[0115] In any case, and as described above, the contact center can be updated based on the output of the simulation model to operate in order to achieve an improved performance measurement determined by the simulated pairing strategy or algorithm. For example, in some aspects, the switch of the contact center system (e.g., any one of the central switch 110, switch 120A, switch 120B and / or switch 280, and / or other devices of the contact center system, such as the PBX and / or ACD described herein) can be configured to route at least a portion of one or more contacts based on the simulated pairing algorithm. By updating or otherwise configuring the contact center to use the simulated pairing algorithm, the contact center (and at least a portion of its underlying computing technology, such as connections and their use) can be improved by the new efficient algorithm determined by the simulation model. In addition, the simulation model, as improved by the simulation pairing algorithm, can allow the systems and methods of the contact center to operate or experience improved performance (e.g., transaction completion or sales) with limited or reduced resources (e.g., limited or fewer telecommunication connections and / or limited or reduced processing or memory utilization of the call processing system) compared to a non-optimized system. Furthermore, limited or fewer telecommunication connections and / or limited or reduced processing or memory utilization of the call processing system is achieved because the simulation efficiently determines the contact center operations by simulation rather than by consuming real-time resources.

[0116] Figure 4 A computer-implemented method 400 for simulating contact-agent pairings and analyzing contact center performance based on the simulated contact-agent pairings according to aspects of the present disclosure is shown. The computer-implemented method 400 includes algorithms or computational instructions that can be implemented in a contact center or contact center system (e.g., contact center system 100, contact center system 200A, and / or contact center system 200B), and can involve processing of input data and generation of output data, both of which can include call center-related data including data about agents, contacts (or events thereof, including the arrival of contacts and / or the availability of agents), and / or determination of performance measures as described herein.

[0117] The receiving, transmitting, and / or generating of input data and output data involved as part of the computer-implemented method 400 may be implemented in hardware or software components of the contact center system. For example, specific electronic components may be employed in the pairing algorithm, such as implemented on one or more processors and / or memory of the contact center system, or similar or related circuitry for implementing functionality associated with simulation and / or contact-agent pairing in a contact center system (e.g., the contact center system 100, the contact center system 200A, and / or the contact center system 200B). Additionally, one or more processors operating according to computing instructions may implement functionality associated with contact-agent pairing and / or simulation in a contact center system (e.g., the contact center system 100, the contact center system 200A, and / or the contact center system 200B) as described herein, including for the computer-implemented method 400. Such instructions may 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 embodied in one or more carrier waves, such as over one or more computer buses and / or computer networks. In various aspects, the one or more processors implementing the algorithms of the computer-implemented method 400 or otherwise executing computing instructions as described herein may include one or more processors of a computing device of the contact center system itself, such as one or more processors of a computing device, server, router, etc. communicatively coupled to the contact center system.

[0118] refer to Figure 4 At block 410, the computer-implemented method 400 includes obtaining, at a first time, by one or more processors communicatively coupled to a contact center system configured to distribute electronic inbound or outbound contacts, a first set of available contacts and available agents. At block 420, the computer-implemented method 400 includes determining a first contact-agent pairing based on the first set of available contacts and available agents and a first pairing strategy. At block 430, the computer-implemented method 400 includes establishing a first connection between a first agent device and a first contact device for the first contact-agent pairing.

[0119] At block 440, the computer-implemented method 400 includes storing a first set of pairing data corresponding to the first contact-agent pairing. At block 450, the computer-implemented method 400 includes generating, by a simulation model implementing a simulated pairing algorithm, a second contact-agent pairing based on the first set of available contacts and available agents and a second pairing strategy. At block 460, the computer-implemented method 400 includes storing a second set of pairing data corresponding to the second contact-agent pairing. At block 470, the computer-implemented method 400 optionally includes determining a performance measure of the contact center system based on the first set of pairing data and the second set of pairing data.

[0120] In addition, the computer-implemented method 400 may also include updating the contact center to operate based on the simulated pairing algorithm of the performance measurement. For example, in some aspects, the switch (e.g., any of the center switch 110, switch 120A, switch 120B, and / or switch 280 as described herein), PBX, and / or ACD of the contact center may be configured to route at least a portion of one or more contacts based on the simulated pairing algorithm and / or the performance measurement generated thereby. By updating or otherwise configuring the contact center to use the simulated pairing algorithm, the contact center (and at least a portion of its underlying computing technology, e.g., connections and use thereof) may be improved by the new efficient pairing algorithm determined by the simulation model. In addition, in some embodiments, the results of the simulated pairing algorithm may be used to train the currently implemented pairing strategy. In these cases, the contact center (and at least a portion of its underlying computing technology, e.g., connections and use thereof) may be similarly improved by updating / retraining the incumbent / currently implemented pairing algorithm based on the results of the simulation model, thereby improving the performance (e.g., improved conversion rate and / or other metrics) of the incumbent / currently implemented pairing strategy.

[0121] Thus, the simulation method 400 is an improvement over the prior art, at least because the disclosed simulation method tests new or modified pairing strategies without requiring actual telecommunication connections between live agents and live contacts. Such offline testing reduces processing and / or memory utilization of the contact processing system during contact center operating hours. Additionally, the simulation method 400 evaluates the new or modified pairing strategy by comparing its performance measurements to historical contact center pairing strategies; this evaluation is much faster than the hours, days, months, or years that would be spent testing the new or modified pairing strategy with live agents and live contacts. Furthermore, when showing contact center performance data to entities not associated with the contact center system, the simulated data can be used to maintain information security of the actual (or historical) data.

[0122] In some embodiments, the computer-implemented method 400 may also include obtaining a second set of available contacts and available agents at a second time different from the first time; determining a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establishing a second connection for the third contact-agent pairing; storing a third set of pairing data corresponding to the third contact-agent pairing; generating, by the simulation model, a fourth contact-agent pairing based on the second set of available contacts and available agents and the second pairing strategy; storing a fourth set of pairing data corresponding to the fourth contact-agent pairing; and determining a performance measure of the contact center based on (i) the first set of pairing data, (ii) the second set of pairing data, (iii) the third set of pairing data, and (iv) the fourth set of pairing data.

[0123] In some embodiments, the computer-implemented method 400 may further include obtaining a second set of available contacts and available agents at a second time different from the first time; determining a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establishing a second connection for the third contact-agent pairing; storing a third set of pairing data corresponding to the third contact-agent pairing; generating, by the simulation model, (i) a hypothetical set of available contacts and available agents based on the first set of available contacts and agents and the second contact-agent pairing, and (ii) generating a fourth contact-agent pairing based on the hypothetical set of available contacts and available agents and the second pairing strategy; storing a fourth set of pairing data corresponding to the fourth contact-agent pairing; and determining a performance measure of the contact center based on (i) the first set of pairing data, (ii) the second set of pairing data, (iii) the third set of pairing data, and (iv) the fourth set of pairing data.

[0124] In some embodiments, the first contact-agent pairing may include a first contact and a first agent from the first set of available contacts and available agents. Additionally, in these embodiments, the second contact-agent pairing may include the first contact and the first agent.

[0125] In some embodiments, the first contact-agent pairing may include a first contact and a first agent from the first set of available contacts and available agents. Additionally, in these embodiments, the second contact-agent pairing may include at least one of: (i) a second contact different from the first contact, or (ii) a second agent different from the first agent.

[0126] In some embodiments, the first pairing strategy may be a behavioral pairing (BP) strategy, and the second pairing strategy may be a first-in, first-out (FIFO) pairing strategy. In other embodiments, the first pairing strategy may be a FIFO pairing strategy, and the second pairing strategy may be a BP strategy. In other embodiments, the first pairing strategy may be a BP pairing strategy, and the second pairing strategy may be a PBR pairing strategy, or vice versa. That is, any combination of pairing strategies used in a contact center environment may include a first pairing strategy and a second pairing strategy.

[0127] In some embodiments, the computer-implemented method 400 may also include determining a performance measure of the contact center system based on the first set of pairing data and the second set of pairing data.

[0128] In some embodiments, the computer-implemented method 400 may further include: determining a set of historical contact-agent pairings based on the one or more connected contact-agent pairings; determining a set of simulated contact-agent pairings based on the one or more simulated contact-agent pairings; comparing the set of historical contact-agent pairings to the set of simulated contact-agent pairings; and determining a performance measure based on the comparison.

[0129] Figure 5 Another computer-implemented method 500 for simulating contact-agent pairings and analyzing contact center performance based on the simulated contact-agent pairings according to aspects of the present disclosure is shown. The computer-implemented method 500 includes algorithms or computational instructions that can be implemented in a contact center or contact center system (e.g., contact center system 100, contact center system 200A, and / or contact center system 200B), and can involve processing of input data and generation of output data, both of which can include call center-related data, including data about agents, contacts (or events thereof, including the arrival of contacts and / or the availability of agents), and / or determination of performance measures as described herein.

[0130] The receiving, transmitting, and / or generating of input data and output data involved as part of the computer-implemented method 500 may be implemented in hardware or software components of the contact center system. For example, specific electronic components may be employed in the pairing algorithm, such as implemented on one or more processors and / or memory of the contact center system, or similar or related circuitry for implementing functionality associated with simulation and / or contact-agent pairing in a contact center system (e.g., the contact center system 100, the contact center system 200A, and / or the contact center system 200B). Additionally, one or more processors operating according to computing instructions may implement functionality associated with contact-agent pairing and / or simulation in a contact center system (e.g., the contact center system 100, the contact center system 200A, and / or the contact center system 200B) as described herein, including for the computer-implemented method 500. Such instructions may 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 embodied in one or more carrier waves, such as over one or more computer buses and / or computer networks. In various aspects, the one or more processors implementing the algorithms of the computer-implemented method 500 or otherwise executing computing instructions as described herein may include one or more processors of a computing device of the contact center system itself, such as one or more processors of a computing device, server, router, etc. communicatively coupled to the contact center system.

[0131] refer to Figure 5 At block 510, the computer-implemented method 500 includes determining, by one or more processors communicatively coupled to a contact center system configured to distribute electronic inbound or outbound contacts, a set of historical contact-agent pairings based on a first pairing strategy. In general, each pairing may be associated with a routing request in a set of routing requests. At block 520, the computer-implemented method 500 may include generating, by a simulation model implementing a simulated pairing algorithm, a set of hypothetical contact-agent pairings for each routing request in the set of routing requests based on a second pairing strategy. The set of hypothetical contact-agent pairings may include at least one hypothetical contact-agent pairing.

[0132] At block 530, the computer-implemented method 500 may include comparing the set of historical contact-agent pairings to the set of hypothetical contact-agent pairings. At block 540, the computer-implemented method 500 may include determining a performance measure based on the comparison.

[0133] Additional considerations

[0134] The present technology may involve, to some extent, the processing of input data and the generation of output data. The input data processing and the output data generation may be implemented in hardware or software. For example, specific electronic components may be employed in a behavior pairing module or similar or related circuits for implementing the functionality associated with the contact allocation according to the present disclosure as described above. Alternatively, one or more processors operating in accordance with instructions may implement the functionality associated with the contact allocation according to the present disclosure as described above. If this is the case, such instructions may 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 embodied in one or more carrier waves within the scope of the present disclosure.

[0135] The description herein describes a network element, a computer and / or a component 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 non-transitory processor-readable and recordable storage medium (i.e., the module itself is not software). Note that modules are exemplary. Modules may be combined, integrated, separated and / or copied to support various applications. In addition, instead of or in addition to the functions performed at a specific module, the functions described herein as being performed at a specific module may be performed at one or more other modules and / or by one or more other devices. In addition, a module may be implemented across multiple devices and / or other components that are local or remote to each other. In addition, a module may be moved from one device and added to another device, and / or may be included in two devices.

[0136] The scope of the present disclosure is not limited by the specific aspects described herein. In fact, in addition to those described herein, various other aspects and modifications of the present disclosure will be apparent to those of ordinary skill in the art from the foregoing description and the accompanying drawings. Therefore, such other aspects and modifications are intended to fall within the scope of the present disclosure. In addition, although the present disclosure has been described herein in the context of at least one specific implementation in at least one specific environment for at least one specific purpose, it will be appreciated by those of ordinary skill in the art that the usefulness of the present disclosure is not limited thereto, and the present disclosure can be beneficially implemented in any number of environments for any number of purposes.

Claims

1. A computer-implemented method for simulating contact-agent pairings and analyzing contact center performance based on the simulated contact-agent pairings, the computer-implemented method comprising: At a first time, obtaining, by one or more processors communicatively coupled to a contact center system, a first set of available contacts and available agents, the contact center system being configured to distribute electronic inbound or outbound contacts; determining, by the one or more processors, a first contact-agent pairing based on the first set of available contacts and available agents and a first pairing strategy; establishing, by the one or more processors, a first connection between a first agent device and a first contact device for the first contact-agent pairing; storing, by the one or more processors, a first set of pairing data corresponding to the first contact-agent pairing; generating, by a simulation model for implementing a simulated pairing algorithm executed on the one or more processors, a second contact-agent pairing based on the first set of available contacts and available agents and a second pairing strategy; as well as A second set of pairing data corresponding to the second contact-agent pairing is stored, by the one or more processors.

2. The computer-implemented method of claim 1 , further comprising: obtaining, by the one or more processors, a second set of available contacts and available agents at a second time different from the first time; determining, by the one or more processors, a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establishing, by the one or more processors, a second connection for the third contact-agent pairing; storing, by the one or more processors, a third set of pairing data corresponding to the third contact-agent pairing; generating, by the simulation model executed on the one or more processors, a fourth contact-agent pairing based on the second set of available contacts and available agents and the second pairing strategy; storing, by the one or more processors, a fourth set of pairing data corresponding to the fourth contact-agent pairing; as well as A performance measure of the contact center is determined, by the one or more processors, based on (i) the first set of paired data, (ii) the second set of paired data, (iii) the third set of paired data, and (iv) the fourth set of paired data.

3. The computer-implemented method of claim 1 , further comprising: obtaining, by the one or more processors, a second set of available contacts and available agents at a second time different from the first time; determining, by the one or more processors, a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establishing, by the one or more processors, a second connection for the third contact-agent pairing; storing, by the one or more processors, a third set of pairing data corresponding to the third contact-agent pairing; the simulation model executing on the one or more processors, (i) generating a hypothetical set of available contacts and available agents based on the first set of available contacts and agents and the second contact-agent pairings, and (ii) generating a fourth contact-agent pairing based on the hypothetical set of available contacts and available agents and the second pairing strategy; storing, by the one or more processors, a fourth set of pairing data corresponding to the fourth contact-agent pairing; as well as A performance measure of the contact center is determined, by the one or more processors, based on (i) the first set of paired data, (ii) the second set of paired data, (iii) the third set of paired data, and (iv) the fourth set of paired data.

4. The computer-implemented method of claim 1 , wherein: The first contact-agent pair includes a first contact and a first agent from the first set of available contacts and available agents, and The second contact-agent pair includes the first contact and the first agent.

5. The computer-implemented method of claim 1 , wherein: The first contact-agent pair includes a first contact and a first agent from the first set of available contacts and available agents, and The second contact-agent pair includes at least one of: (i) a second contact different from the first contact, or (ii) a second agent different from the first agent.

6. The computer-implemented method of claim 1 , wherein: The first pairing strategy is a behavior pairing (BP) strategy, and The second pairing strategy is a first-in-first-out (FIFO) pairing strategy.

7. The computer-implemented method of claim 1 , further comprising: A performance measure of the contact center system is determined, by the one or more processors, based on the first set of paired data and the second set of paired data.

8. The computer-implemented method of claim 1 , further comprising: determining, by the one or more processors, a set of historical contact-agent pairs based on the one or more connected contact-agent pairs; as well as A set of simulated contact-agent pairings is determined by the one or more processors based on the one or more simulated contact-agent pairings.

9. The computer-implemented method of claim 8, further comprising: comparing, by the one or more processors, the set of historical contact-agent pairs and the set of simulated contact-agent pairs; as well as A performance measure is determined, by the one or more processors, based on the comparison.

10. A computer-implemented method for simulating contact-agent pairings and analyzing contact center performance based on the simulated contact-agent pairings, the computer-implemented method comprising: determining, by one or more processors communicatively coupled to a contact center system configured to distribute electronic inbound or outbound contacts, a set of historical contact-agent pairings based on a first pairing strategy, wherein each pairing is associated with a routing request in a set of routing requests; generating, by a simulation model for implementing a simulated pairing algorithm executed on the one or more processors, a set of hypothetical contact-agent pairings for each routing request in the set of routing requests based on a second pairing strategy, the set of hypothetical contact-agent pairings comprising at least one hypothetical contact-agent pairing; comparing, by the one or more processors, the set of historical contact-agent pairs and the set of hypothetical contact-agent pairs; and A performance measure is determined, by the one or more processors, based on the comparison.

11. The computer-implemented method of claim 10, wherein: The first pairing strategy is a behavior pairing (BP) strategy, and The second pairing strategy is a first-in-first-out (FIFO) pairing strategy.

12. A system configured to simulate contact-agent pairings and analyze contact center performance based on the simulated contact-agent pairings, the system comprising: one or more processors communicatively coupled to a contact center system configured to distribute electronic inbound or outbound contacts; as well as computing instructions configured to be executed by the one or more processors, and when executed by the one or more processors, causing the one or more processors to: At a first time, a first set of available contacts and available seats is obtained, determining a first contact-agent pairing based on the first set of available contacts and available agents and a first pairing strategy, For the first contact-agent pairing, establishing a first connection between the first agent device and the first contact device, storing a first set of pairing data corresponding to the first contact-agent pairing, generating a second contact-agent pairing based on the first set of available contacts and available agents and a second pairing strategy by implementing a simulation model of the simulated pairing algorithm, and A second set of pairing data corresponding to the second contact-agent pairing is stored.

13. The system according to claim 12, wherein: When the computing instructions are executed, the one or more processors are also caused to: A performance measure of the contact center is determined based on the first set of paired data and the second set of paired data.

14. The system according to claim 13, wherein: When the computing instructions are executed, the one or more processors are also caused to: obtaining a second set of available contacts and available seats at a second time different from the first time; determining a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establishing a second connection for the third contact-agent pairing; storing a third set of pairing data corresponding to the third contact-agent pairing; generating, by the simulation model, a fourth contact-agent pairing based on the second set of available contacts and available agents and the second pairing strategy; storing a fourth set of pairing data corresponding to the fourth contact-agent pairing; as well as An updated performance measure of the contact center is determined based on (i) the third set of paired data, (ii) the fourth set of paired data, and (iii) the performance measure.

15. The system of claim 13, wherein: When the computing instructions are executed, the one or more processors are also caused to: obtaining a second set of available contacts and available seats at a second time different from the first time; determining a third contact-agent pairing based on the second set of available contacts and available agents and the first pairing strategy; establishing a second connection for the third contact-agent pairing; storing a third set of pairing data corresponding to the third contact-agent pairing; generating, by the simulation model, (i) a hypothetical set of available contacts and available agents based on the first set of available contacts and agents and the second contact-agent pairings, and (ii) generating a fourth contact-agent pairing based on the hypothetical set of available contacts and available agents and the second pairing strategy; storing a fourth set of pairing data corresponding to the fourth contact-agent pairing; as well as An updated performance measure of the contact center is determined based on (i) the third set of paired data, (ii) the fourth set of paired data, and (iii) the performance measure.

16. The system of claim 12, wherein: The first contact-agent pair includes a first contact and a first agent from the first set of available contacts and available agents, and The second contact-agent pair includes the first contact and the first agent.

17. The system of claim 12, wherein: The first contact-agent pair includes a first contact and a first agent from the first set of available contacts and available agents, and The second contact-agent pair includes at least one of: (i) a second contact different from the first contact, or (ii) a second agent different from the first agent.

18. The system of claim 12, wherein: The first pairing strategy is a behavior pairing (BP) strategy, and The second pairing strategy is a first-in-first-out (FIFO) pairing strategy.

19. The system of claim 12, wherein: When the computing instructions are executed, the one or more processors are also caused to: A performance measure of the contact center system is determined based on the first set of paired data and the second set of paired data.

20. The system of claim 12, wherein: When the computing instructions are executed, the one or more processors are also caused to: determining a set of historical contact-agent pairs based on the one or more connected contact-agent pairs; determining a set of simulated contact-agent pairings based on the one or more simulated contact-agent pairings; comparing the historical contact-agent pairing set and the simulated contact-agent pairing set; as well as A performance measure is determined based on the comparison.

Citation Information

Patent Citations

  • Techniques for L3 pairing in a contact center system

    US10257354B2