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

By simulating the telecommunications contact type and generating a simulation-based sequence, combining the agent type and pairing algorithm to evaluate and compare the performance of different pairing strategies, the problem of difficult to determine the strategy and time in the contact center is solved, and efficient strategy selection and resource optimization are achieved.

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

Patent Information

Application Number
CN202380047434.4
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

The prior art is difficult to effectively determine which allocation algorithm, method or strategy should be adopted in the contact center and at what time to implement, especially when hardware configurations vary and time periods change.

Method used

By simulating telecommunications contact types, a sequence based on simulated telecommunications contact types is generated, combining agent types and pairing algorithms, the performance of different pairing strategies is evaluated and compared to determine which strategy should be adopted and when to implement it in the contact center.

Benefits of technology

It realizes effective strategy selection under different hardware configurations and time periods, improves the performance of the contact center, reduces the cost and time of real-time testing, and enhances the optimization of the resource utilization of contact centers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119547422A_ABST
    Figure CN119547422A_ABST
Patent Text Reader

Abstract

Computer-implemented systems and methods for simulating a telecommunications contact type and analyzing contact center performance based on the simulated telecommunications contact type are disclosed. In various aspects, a seat start time and an end time are determined for a seat of a contact center. A sequence of contact types of seat pairs between a seat start time and a seat end time is obtained in time ordering. A simulation model implementing the simulated pairing algorithm generates simulated sequences of contact types that are time-ordered and different from the sequences of contact types. The simulation model pairs a simulated sequence of contact types with simulated seats, the simulated seats corresponding to seats of the contact center and having simulated seat start and end times. Performance metrics for the contact center may be determined based on the simulated sequence of contact types.
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 telecommunication contact types and analyzing contact center performance based on the simulated telecommunication contact types. 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. Summary of the invention

[0008] However, with the various different allocation algorithms, methods, or other strategies available to contact centers, a problem arises in determining which algorithm, method, or strategy to implement, and at what time, date, time period, or other circumstances to implement one or more of the algorithms, methods, or other strategies of the contact center, particularly for contact centers that may be specifically configured with different amounts or types of hardware (e.g., such as switches, etc.). Testing different algorithms, methods, or other strategies on actual contacts during live contact center operations may be expensive for the contact center if the newly proposed algorithm, method, or strategy performs worse than the previously used algorithm, method, or strategy. In addition, such testing requires a long amount of time in order to minimize the biasing effects of data at different times of the day, week, month, or noise from other confounding variables.

[0009] Therefore, there is a need for computer-implemented systems and methods within a contact center for effectively determining which algorithm, method, or strategy to implement, and at what time, date, time period, or other circumstances to implement one or more of the 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 telecommunication contact types and analyzing contact center performance based on the simulated telecommunication contact types are disclosed. The present disclosure relates to evaluating the performance of one or more pairing strategies, such as newly discovered pairing strategies or new observations of existing pairing strategies determined for a contact center, based on simulations that include simulated sequences of contact types, agent types, and pairing algorithms. For example, the pairing strategies can be based on historical contact center data, synthetic contact center data, and / or other event data of the contact center, each of which can be used together or separately for simulation or other testing. For example, in one aspect, a contact center system can receive agent event data and contact event data over a period of time, where contacts and agents are paired with a first pairing strategy. The contact center system can then use the received data to simulate, predict, or otherwise evaluate what would have happened if a second pairing strategy had been used to pair those contacts and those agents.

[0010] Benefits are generated by simulating and / or testing various 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 a 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 increase in the 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.

[0011] According to various aspects of the present invention, a computer-implemented method for simulating telecommunication contact types and analyzing contact center performance based on the simulated telecommunication contact types is disclosed. The computer-implemented method may include determining an agent start time for an agent of the contact center. The computer-implemented method may also include determining an agent end time for the agent. The computer-implemented method may also include obtaining a sequence of contact types paired with the agent between the agent start time and the agent end time. The sequence of contact types may be time-ordered. The computer-implemented method may also include generating a simulated sequence of contact types by a simulation model that implements a simulated pairing algorithm. The simulated sequence of contact types may be time-ordered and may be different from the sequence of contact types. The computer-implemented method may also include pairing, by the simulation model, the simulated sequence of contact types with a simulated agent. The simulated agent may correspond to an agent of the contact center and may have a simulated agent start time and a simulated agent end time. The simulated agent start time may be based on the agent start time, and the simulated agent end time may be based on the agent end time. The computer-implemented method may also include determining a performance metric of the contact center based on the simulated sequence of contact types.

[0012] In an additional aspect, a system configured to simulate telecommunication contact types and analyze contact center performance based on the simulated telecommunication contact types is disclosed. The system may include one or more processors communicatively coupled to the contact center. The system may also include 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 determine an agent start time for an agent of the contact center. The computing instructions, when executed by the one or more processors, may also cause the processors to determine an agent end time for the agent. The computing instructions, when executed by the one or more processors, may also cause the processors to obtain a sequence of contact types paired with the agent between the agent start time and the agent end time. The sequence of contact types may be time-ordered. The computing instructions, when executed by the one or more processors, may also cause the processors to generate a simulated sequence of contact types by implementing a simulation model of a simulated pairing algorithm. The simulated sequence of contact types may be time-ordered and may be different from the sequence of contact types. The computing instructions, when executed by the one or more processors, may also cause the processors to pair the simulated sequence of contact types with the simulated agent through the simulation model. The simulated agent may correspond to an agent of the contact center and may have a simulated agent start time and a simulated agent end time. The simulated agent start time may be based on the agent start time, and the simulated agent end time may be based on the agent end time.The computing instructions, when executed by one or more processors, may also cause the processors to determine a performance metric for the contact center based on the simulated sequence of contact types.

[0013] In another aspect, a tangible, non-transitory computer-readable medium storing computing instructions for simulating telecommunication contact types and analyzing contact center performance based on the simulated telecommunication contact types is disclosed. The computing instructions, when executed by one or more processors, may cause the one or more processors to determine an agent start time for an agent of the contact center. The computing instructions, when executed by the one or more processors, may also cause the one or more processors to determine an agent end time for the agent. The computing instructions, when executed by the one or more processors, may also cause the one or more processors to obtain a sequence of contact types paired with the agent between the agent start time and the agent end time. The sequence of contact types may be time-ordered. The computing instructions, when executed by the one or more processors, may also cause the one or more processors to generate a simulated sequence of contact types by implementing a simulation model of a simulated pairing algorithm. The simulated sequence of contact types may be time-ordered and may be different from the sequence of contact types. The computing instructions, when executed by the one or more processors, may also cause the one or more processors to pair the simulated sequence of contact types with the simulated agent through the simulation model. The simulated agent may correspond to an agent of the contact center and may have a simulated agent start time and a simulated agent end time. The simulated agent start time may be based on the agent start time, and the simulated agent end time may be based on the agent end time.The computing instructions, when executed by the one or more processors, may also cause the one or more processors to determine a performance metric for the contact center based on the simulated sequence of contact types.

[0014] In further aspects, computer-implemented methods, systems, and tangible, non-transitory computer-readable media may include updating a contact center to operate based on a simulated pairing algorithm.

[0015] In additional aspects, a switch of the contact center can be configured to route at least a portion of the one or more contacts based on the simulated pairing algorithm.

[0016] In additional aspects, the sequence of contact types can include a historical sequence of contact types received at the contact center.

[0017] In additional aspects, a sequence of contact types can include a composite sequence of contact types.

[0018] In additional aspects, the sequence of contact types can include a modified historical sequence of contact types as received at the contact center. The modified historical sequence of contact types includes at least one enhanced contact type modified from the historical contact types as received at the contact center.

[0019] In additional aspects, the performance metrics can include at least one of: telecommunication connection utilization of the contact center, resource utilization of the contact center, contact resolution metrics associated with one or more contacts, or transaction metrics associated with one or more contacts.

[0020] 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 metrics of a call center for use in its improvement. Such performance metrics may correspond to telecommunication connections or computing resources (e.g., memory and / or processor resources) of a call center system, which includes a computing system 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 simulated sequences of the currently disclosed contact types and / or performance metrics determined therefrom. This provides improvements to existing systems that do not implement such simulations to determine performance metrics, 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 metrics 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.

[0021] 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 networking or telephone connections). Other performance metrics, such as the number of agents (and therefore the networking or telephone connections required) can be similarly measured or determined by 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. This pairing requires not only a telephone connection, but may also require a processor, memory, and networking connection and / or bandwidth for the contact center and the contact. Simulation can be used to measure and determine performance metrics of such resources, such as to compare and reduce resource requirements for more efficient pairing algorithms or other contact sequences, such as, 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, such as a pairing strategy determined by a simulation model as described herein.

[0022] Additionally or alternatively, the present disclosure relates to improvements in other technologies or technical fields, at least in that sequences of synthetic contact types can be manipulated or created to test a particular ordering or sequence of (1) contacts (2) agents, or (3) contact-agent pairings. In such aspects, the sequences of synthetic contact types can be used to test a contact center system, such as for stress testing or load balancing. Furthermore, such manipulated or created event data can be used to test one or more performance metrics of the contact center system. In this manner, the sequences of synthetic contact types can be used to improve the performance of one or more features of the contact center system by determining a performance metric, 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.

[0023] 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 metrics of a contact center as described herein.

[0024] Still further, the present disclosure includes specific features beyond conventional traditional 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 telecommunication contact types and analyzing contact center performance based on the simulated telecommunication contact types.

[0025] 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.

[0026] 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

[0027] 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.

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

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

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

[0031] Figure 3 Shown is a schematic representation of an example queue of a contact center according to aspects of the present disclosure.

[0032] Figure 4 A computer-implemented method for simulating telecommunication contact types and analyzing contact center performance based on the simulated telecommunication contact types in accordance with aspects of the present disclosure is shown.

[0033] Figure 5 According to aspects of the present disclosure, a flow chart showing the execution of an algorithm for an initial sequence compared to a simulated sequence is shown.

[0034] Figure 6 A computer-implemented method for simulating telecommunication contact-agent pairings and analyzing contact center performance based on the simulated telecommunication contact-agent pairings according to aspects of the present disclosure is shown. DETAILED DESCRIPTION

[0035] Figure 1 1 depicts a block diagram of a contact center system 100 according to 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.

[0036] 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.

[0037] 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.

[0038] 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.

[0039] 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.

[0040] 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.

[0041] 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). As the term is used herein, contact center event data refers to electronic information that defines an event of the 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 contact pairing with a pairing system, interaction with an agent, selections made (e.g., such as menu selections from a digital phone menu or other selection interface that cause 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), decisions made by the contact during a contact interaction with an agent of the contact center system, or any other event that defines an interaction or state of a contact with the 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.

[0042] 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.

[0043] 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. Various BP strategies may be used, such as a diagonal model BP strategy or a network flow BP strategy. These task allocation strategies and others are described in detail for contact center contexts in, for example, US Pat. Nos. 9,300,802 and 9,930,180, which are incorporated herein by reference.

[0044] 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 strategy 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. If multiple agents become available for the L2 state, and the contact center system 100 and / or the pairing system 140 are implementing a PBR strategy or other algorithm, the contact center system 100 and / or the pairing system 140 pairs the new contact with the highest performing agent. In addition, for the L2 state, and in the case where the contact center system 100 and / or the pairing system 140 implements a BP strategy or other algorithm, the contact center system 100 and / or the pairing system 140, the contact center system 100 can use specific information about one or both of the tasks or agents to optimally assign agents to contacts. Various BP strategies can be used, such as diagonal model BP strategy or network flow BP strategy. In addition, in some contact centers, priority queuing may also be incorporated. Figure 3 Contact center queues to further describe various pairing strategies or other algorithms

[0045] 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 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 set of computing instructions or applications of the pairing system 140).

[0046] 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 system as described 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.

[0047] 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, which is configured to input contact center data, such as contact information, agent information, or event data defining its sequence or timing, 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 a performance metric of the contact center, as described herein. The performance metric may include any one or more of the telecommunication connection utilization of the contact center, the resource utilization of the contact center, the contact solution metric associated with one or more contacts, or the transaction metric associated with one or more contacts, or other performance metrics as described herein. The simulation model 150 may be trained to determine improvements to any of these performance metrics based on different sequences of contacts, agents, and / or pairing strategies currently utilized by the contact center system (e.g., the contact center system 100). In various aspects, the machine learning model of the simulation model 150 may be trained using a supervised or unsupervised machine learning program or algorithm. The machine learning program or algorithm may employ a neural network, which may be a deep learning neural network. In some aspects, artificial intelligence and / or machine learning based algorithms used to train simulation model 150 may be included as a library.

[0048] Machine learning applied to 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 identification of subsequent data (such as determining performance metrics of the contact center system, etc.). For example, a machine learning model, such as the machine learning model of 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 effective and reliable predictions for new inputs, such as test-level or production-level data or inputs (e.g., for determining performance metrics of the contact center). 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.

[0049] 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.

[0050] 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.

[0051] It should be understood that the simulation model 150 can be used to determine the simulated sequence and / or related performance metrics using artificial intelligence (e.g., a machine learning model of the simulation model 150) or in alternative aspects without using 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 the performance metrics of 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, which 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 the configuration of one or more switches, PBXs, or ACDs, etc.) to begin executing or implementing the new or different pairing algorithm.

[0052] 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.

[0053] 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.

[0054] 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.

[0055] Further references Figure 2A , the simulation models 225, 295 can be configured to be external or internal to the contact center system 200A, and can also be configured to generate simulated sequences of contact types, determine one or more performance metrics of the contact center based on the simulated contact sequences, update operations of the contact center based on one or more simulations, or perform other such operations provided by the simulation models, 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.

[0056] 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., predictions, performance metrics, simulated pairing algorithms) 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.

[0057] 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 an interface 285. Additionally or alternatively, the external simulation model 225 can be directly connected (not shown) to the contact center system, for example, via the interface 285. The external simulation model 225 can 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. The external simulation model 225 includes computing instructions, program code, one or more data structures (e.g., a neural network) that may be integrated with or accessible to the external pairing system 220. In various aspects, the external pairing system 220 may include computing instructions that interact with or access the external simulation model 225 via inputs and outputs. For example, the external pairing system 220 may provide data (e.g., contact and agent data, or related event data) to the external simulation model 225, and may receive output (e.g., predictions, performance metrics, simulated pairing algorithms) 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.

[0058] 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.

[0059] 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 or PBR) 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 way, 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 pairing calculations or determinations for a given pairing across a networked environment.

[0060] 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 or PBR), 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 pairing recommendation.

[0061] 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.

[0062] In some aspects, the performance of the external pairing system 220 can be determined at least in part by the number of pairing options available to the external pairing system 220 at a given point in time. For example, in an L1 environment (surplus of agents, 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 of contacts, 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.

[0063] The effect of having a small number of 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 or PBR). For example, when one agent and one contact are available, there is a single pairing choice, so any pairing strategy will select the same 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 pairing choices. The relationship between the number of available pairing choices and performance is described in detail in, for example, U.S. Patent No. 10,257,354, which is incorporated herein by reference.

[0064] Therefore, to improve the performance of the high-performance pairing strategy, it may be desirable to delay or otherwise postpone the selection of a pairing between an agent and a contact when the number of pairing options is too small to achieve a desired level of performance (e.g., when the number of pairing options is below a predetermined threshold, or when the 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 options. 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 options increases linearly with the number of contacts or agents) to an L3 state (where the number of pairing options increases nonlinearly with the number of contacts or agents).

[0065] 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.

[0066] Figure 3 A schematic representation of an example queue 300 of a contact center system (e.g., contact center system 100, contact center system 200A, or contact center system 200B) according to aspects of the present disclosure is shown. Queue 300 is an electronic or in-memory queue (e.g., a computer memory queue) that stores information about contacts and agents of a contact center system (e.g., contact center system 100 or contact center system 200). Queue 300 may be implemented in a computing device, such as a switch of contact center system 100, contact center 200A, and / or contact center system 200B, or other device as described herein. Provided herein is a Figure 3 To illustrate various different pairing algorithms that may be implemented for a contact center system and how the different pairing algorithms may affect the operation of the contact center system based on different arrangements of the arrival time of the contact, the type of the contact, the availability of the agent, the type of the agent, and other information or data of the contact center system. The various pairing algorithms are merely examples of the types of pairing algorithms that may be used in a sequence, a simulated sequence, or other simulations as described herein.

[0067] Queue 300 illustrates an example queue that addresses a simplified hypothetical situation in which two types of contacts are available to be assigned to either of two available agents in an environment in which a contact center is seeking to maximize the performance of a contact center system (e.g., contact center system 100, contact center system 200A, and / or contact center system 200B). Figure 3 In the example of , the two evenly distributed contact types are "60% contacts" (C2) and "20% contacts" (C1), where the former contact (C2) is more likely to make a purchase, enter a transaction, have a reduced handling time, have a faster call resolution time, or other increased performance metric relative to the latter contact (C1). The two agents are "50% agents" (A2) and "30% agents" (A1), where the former agent (A2) is more likely to make a sale, start a transaction, have a reduced handling time, have a faster call resolution time, or other increased performance metric relative to the latter agent (A1). The example also assumes that the four possible interactions between contacts and agents have some expected results associated with the interactions, such that when a 60% contact (C2) is assigned to a 50% agent (C2), the total probability of a positive performance metric (e.g., increased sales output, reduced handling time, or other performance metric described herein) can be 30%. This can be collected through historical contact-agent interaction data of when contacts of a similar type to C2 are paired with A1. Similarly, historical contact-agent interaction data can be used to determine expected outcomes for other possible pairings. Thus, the four expected outcomes in this example are 6%, 10%, 18%, and 30%. Contacts C1, C2 can correspond to contacts 105 and / or 205 of contact center system 100 and contact center system 200. Similarly, agents A1 and A2 can correspond to agents 130A, 130B, 130C, 130D, and / or 230 of contact center system 100 and / or contact center system 200, respectively.

[0068] When the contact center system is implementing a FIFO algorithm (e.g., FIFO policy 310), all four possible outcomes are equally likely. For example, if a 60% contact (C2) arrives with both an available 30% agent (A1) and a 50% agent (A2), either agent may be selected with equal probability based on, for example, which agent has been waiting longer or has been less utilized. Similarly, if a 30% agent (A1) is available in queue 300 with both a 60% contact (C2) and a 20% contact (C1), either contact may be selected with equal probability and equal priority based on, for example, which contact has been waiting longer (e.g., earlier arrival time). Thus, in FIFO policy 310, the total expected performance metric of queue 300 (e.g., expected sales output, handling time, or other performance metric described herein) would be (6%+10%+18%+30%) / 4=16%.

[0069] When the contact center system is implementing a PBR algorithm (e.g., PBR policy 320), whenever 50% of the agents (A2) are available, 50% of the agents (A2) are preferentially assigned to the contact. Therefore, in the case where 50% of the agents (A2) are always available when the contact arrives, the PBR policy 320 will achieve its highest total expected performance output (e.g., expected sales output, processing time, or other performance metrics described herein). This peak expectation is (10%+30%) / 2=20%. However, it is unlikely to achieve this peak expectation in practice. For example, a contact may arrive when 50% of the agents (A2) are used and 30% of the agents (A1) are available. In this case, the PBR policy 320 assigns the contact to 30% of the agents (A1). Therefore, the PBR performance will approximate the performance of the FIFO policy 310 in practice in proportion to the percentage of instances in which non-preferred allocations occur. In many cases, multiple contacts may be waiting in the queue 300 (L2 state), and there may be no opportunity to preferentially select 50% of the agents (A2). If the queue 300 is constantly in the L2 state, then the PBR policy 320 is expected to execute at the same rate as the FIFO policy 310. In fact, if the queue 300 is in the L2 state half of the time, and the other quarter of the time 50% of the seats (A2) are unavailable because 50% of the seats (A2) have been preferred, then the PBR policy 320 may still not provide the expected improvement over the FIFO policy 310. In the queue 300, the PBR policy 320 only provides a significant performance benefit over the FIFO policy 310 when the queue 300 is in the L1 state for an extended period of time and there is a choice between 50% of the seats (A2) and 30% of the seats (A1) within the L1 state. However, in this case, the queue 300 may be "overstaffed" because it may require a large amount of idle labor (and therefore idle telecommunication connections and related resources, such as memory and processor resources) to obtain a potentially small benefit. Therefore, in practice, PBR may be ineffective in significantly improving the performance of FIFO.

[0070] When the contact center system is implementing the diagonal model BP algorithm (e.g., the diagonal BP policy 330), 20% of the contacts (C1) are preferentially assigned to 30% of the agents (A1), and 60% of the contacts (C2) are preferentially assigned to 50% of the agents (A2). Therefore, the peak expectation of the performance of the queue 300 under the diagonal BP policy 330 is (6%+30%) / 2=18%. Importantly, this peak expectation does not depreciate like the PBR policy 320 in the L2 state. Hypothetically, if there is an arbitrarily long contact queue in a persistent L2 state, the diagonal BP policy 330 will actually operate at the peak expected performance because whenever 30% of the agents (A1) become available, there will be 60% of the contacts (C2) to be assigned, and whenever 50% of the agents (A2) become available, there will be 20% of the contacts (C1) to be assigned.

[0071] Even though there are only two agents available at most in the example of queue 300, BP strategy 330 may still outperform PBR strategy 320 in the L1 state. For example, if 50% agent (A2) is occupied half of the time, PBR strategy 320 will not provide benefit because PBR strategy 320 will be forced to select 30% agent (A1) the other half of the time. However, in the L1 state under diagonal BP strategy 330, the availability of 20% contact (A1) will trigger the use of the lower performance 30% agent (A1) in the instant matchmaking, thereby reserving the higher performance 50% agent (A2) for subsequent allocation. Thereafter, in the next iteration, if 60% contact (C2) becomes available for allocation, the allocation of the reserved 50% agent (A2) will result in providing 18% of the expected peak overall performance of the diagonal BP strategy 330. This should occur in about half of the time, resulting in a significant improvement over both FIFO and PBR allocation strategies. When pairing is to be performed, available agents may be ranked, and available contacts may be ranked.

[0072] exist Figure 3 , for the diagonal BP strategy 330, 50% of the seats (A2) are selected for priority pairing with 60% of the contacts (C2), and 30% of the seats (A1) are selected for priority pairing with 20% of the contacts (C1). It should be understood that Figure 3 Only example aspects of the diagonal BP strategy are provided, and additional or different strategies including different types or implementations of BP strategies may be implemented. For example, various BP strategies or other algorithms may be used.

[0073] Figure 4A computer-implemented method 400 for simulating telecommunication contact events, agent events, and contact-agent pairing events, and analyzing contact center performance based on the simulated telecommunication contact events, agent events, and contact-agent pairing events, according to various 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 metrics as described herein. The input data and output data reception, transmission, and / or generation can 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 pairing in a contact center system (e.g., contact center system 100, contact center system 200A, and / or contact center system 200B). Additionally, one or more processors operating according to computing instructions may implement functionality associated with pairing and / or simulation in a contact center system (e.g., contact center system 100, contact center system 200A, and / or contact center system 200B) as described herein, including for 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 across one or more computer buses and / or computer networks. In various aspects, the one or more processors implementing the algorithm of 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.

[0074] refer to Figure 4 At block 410, the computer-implemented method 400 includes determining an agent for a contact center (e.g., Figure 3 or Figure 5 The agent start time of the agent A2) is described above. For example, the agent start time corresponds to the time when the agent logs into the contact center and / or is otherwise available to receive the agent's contact pairing assignment from the switch.

[0075] At block 420, the computer-implemented method 400 also includes determining an agent end time for an agent (e.g., agent A2). For example, the agent end time corresponds to a time when the agent exits the contact center and / or is otherwise unavailable to receive further contact pairing assignments from the agent from the switch.

[0076] At block 430, the computer-implemented method 400 also includes obtaining a sequence of contact types paired with agents between the agent start time and the agent end time. For example, the sequence of contact types corresponds to contacts arriving or otherwise connected to the contact center system (e.g., Figure 3 or Figure 5 The sequence of contact types can be sorted by time.

[0077] In some aspects, the sequence of contact types may include a historical sequence of contact types received at the contact center. Such a historical sequence may include the actual time when the contact type was connected to the contact center system and was available for connection to an available agent through a switch at the contact center.

[0078] Alternatively, in additional aspects, the sequence of contact types can include a sequence of synthetic contact types. In some examples, such a sequence of synthetic contact types can be randomly generated, or otherwise does not correspond to the historical (or actual) times at which contacts were connected to the contact center system (e.g., contact center system 100 and / or contact center system 200). In some examples, such a sequence of synthetic contact types can be manipulated or created in order to test a particular ordering of contacts. In this regard, the sequence of synthetic contact types can be specifically determined or configured to arrive (or connect) at a particular time.

[0079] More generally, the sequence of synthetic contact types can be used to test a contact center system, such as for stress testing or load balancing. Additionally, as described herein, such manipulated or created data (such as event data) can be used to test one or more performance metrics of a contact center system (e.g., contact center system 100 and / or contact center system 200) or a contact center pairing strategy. In this manner, the sequence of synthetic contact types can be used to improve the performance of one or more features of a contact center system.

[0080] In some examples, the sequence of synthetic contact types can include historical or other experimental contact types that were synthetically generated.

[0081] In some examples of block 430, the computer-implemented method 400 further includes obtaining historical contact center event data corresponding to the obtained sequence of contact types. For example, the obtained historical contact center event data also includes agent data for a plurality of agents logged into the contact center between the agent start time obtained at block 410 and the agent end time obtained at block 420.

[0082] At block 440, the computer-implemented method 400 further includes generating, by a simulation model (e.g., simulation model 150), a simulated sequence of contact types. The simulated sequence of contact types may be time-ordered and different from the sequence of contact types obtained at block 430. As further described herein, Figure 5 Variously configured sequences of example contact types and simulated sequences of example contact types are shown.

[0083] The simulated sequence of contact types includes at least one modification event modified from the sequence of contact types obtained at block 430. That is, contact events, agent events, and / or any contact center event may be modified. For example, the time of contact arrival may be modified. Additionally or alternatively, the type of contact may be modified from the original (actual) value historically received at the contact center system (e.g., percentile value of the contact, or percentile of the contact within a given performance metric). Additionally or alternatively, the agent pairing of the contact may be modified from the original (actual) agent pairing historically made at the contact center system.

[0084] Additionally, the simulated sequence of the contact type may include a plurality of events different from the obtained sequence of the contact type and / or any historical contact center event data corresponding to the obtained sequence of the contact type. For example, a contact disconnect rate may be applied to the obtained sequence of the contact type, selections made by the contact or agent may be modified (e.g., such as menu selections from a number phone menu or other selection interface that cause the contact to be routed or directed in one or more ways within a call routing network or other network of the contact center system), or any other events that define the contact's interaction or state with the contact center may be modified in the simulated sequence of the contact type as compared to the obtained sequence of the contact type.

[0085] At block 450, the computer-implemented method 400 also includes pairing, by the simulation model, the simulated sequence of contact types with a first simulated agent. The first simulated agent may correspond to an agent (e.g., A2) of the contact center and may have a simulated agent start time and a simulated agent end time. The simulated agent start time may be based on the agent start time, and the simulated agent end time may be based on the agent end time. In this manner, a particular sequence or sequence portion corresponding to the simulated sequence of contact types may be generated or determined for simulation.

[0086] That is, at least one contact receives a different agent in the simulated sequence than in the obtained sequence, or at least one agent receives a different contact in the simulated sequence than in the obtained sequence.

[0087] For example, the pairing of simulated contact type sequences may include pairing of deferred contacts with simulated agents such that the contact center may move from an L1 state or an L2 state to an L3 state.

[0088] For example, the pairing of the simulated contact type may include pairing the contact type of the simulated contact type with one or more simulated agents other than the first simulated agent. For example, the one or more simulated agents may correspond to a plurality of logged-in agents between an agent start time and an agent end time.

[0089] For example, the pairing of the simulated sequence of contact types may be based on a pairing strategy that is different from the pairing strategy used for pairing the historically obtained sequence of contact types of block 430. For example, the historically obtained sequence of contact types may use the PBR strategy 320 or the FIFO strategy 310, while the pairing of the simulated sequence of contact types according to block 430 uses the diagonal BP strategy 330 or the network flow BP strategy. In some examples, the historically obtained sequence of contact types may use the diagonal BP strategy 330, while the pairing of the simulated sequence of contact types according to block 430 uses the network flow BP strategy. In some examples, the historically obtained sequence of contact types uses the diagonal BP strategy 330 in which the seats and / or contacts are calculated as percentages in a first order, while the pairing of the simulated sequence of contact types according to block 430 uses the diagonal BP strategy 330 in which the seats and / or contacts are calculated as percentages in a second order different from the first order. In general, the present disclosure contemplates any difference in pairing strategy between the pairing of the historically obtained sequence of contact types and the pairing of the simulated sequence of contact types.

[0090] At block 460, the computer-implemented method 400 also includes determining a performance metric of the contact center based on the simulated sequence of contact types. In various aspects, the performance metric may include one or more of: telecommunication connection utilization of the contact center, resource utilization of the contact center, contact resolution metrics associated with one or more contacts, and / or transaction metrics associated with a given simulated sequence of the contact center (e.g., transaction completion indications and / or sales or revenue data). Additionally or alternatively, the performance and related metrics of the contact center may also be measured based on the resources of the contact center (such as computer memory, processing, connections, networking, or telephone connections). Other performance metrics, such as the number of agents (and therefore the required networking or telephone connections) may be similarly measured or determined through simulation. For example, pairing an agent of a contact center with a contact includes establishing a telecommunication connection to provide voice communication between the agent and the contact. Such pairing may require not only a telephone connection, but may also require a processor, memory, and networking connection and / or bandwidth of the contact center. Simulation may be used to measure and determine performance metrics of such resources, for example, to compare and reduce resource requirements for more efficient pairing algorithms or other contact sequences, for example, as determined for a contact center for certain times, dates, or otherwise.

[0091] In some examples, the performance metric may be compared to a performance metric corresponding to the sequence of contact types obtained from block 430 .

[0092] At block 470, the computer-implemented method 400 may also include updating the contact center to operate based on the simulated pairing algorithm. For example, in some aspects, a switch (e.g., any of the center switches 110, 120A, 120B, and / or 280 as described herein), a PBX, and / or an 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. 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) may be improved by a new, efficient pairing algorithm determined by the simulation.

[0093] 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 metrics 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.

[0094] Figure 5 According to aspects of the present disclosure, a flow chart showing an algorithm execution 500 showing an initial sequence 510 and a simulated sequence 560 compared thereto is shown. Each of the initial sequence 510 and the simulated sequence 560 may include event data including a sequence of corresponding contact types (e.g., corresponding to contact 105 and / or contact 205) for pairing with corresponding agents (e.g., agents 130A, 130B, 130C, 130D, and 230) of a contact center system (e.g., such as contact center system 100 and / or contact center system 200). The event data may be used to conduct or execute a simulation for determining a performance metric for the contact center system, as further described below, and as otherwise described herein.

[0095] like Figure 5 As shown in the example of , the initial sequence 510 can be the initial sequence of the contact center system (eg, the contact center system 100 and / or the contact center system 200). As shown in the figure, the initial sequence 510 starts from time t1 i (at 8:57) to t9 i (at 9:22), which may represent a time in the morning (AM) or evening (PM). It should be appreciated that initial sequence 510 may represent only a portion of a sequence for which the contact center system may receive contacts, analyze agent information, or otherwise determine or generate a sequence of relevant contact center information for contacts and agents in the contact center system.

[0096] In addition, the initial sequence 510 shows example contact types, such as contact type C1 and contact type C2. Each of C1 and C2 can be associated with a Figure 3 and 4The same as described above, and can represent a given type of contact, where the type can be analyzed based on the algorithm currently implemented by the contact center system. For example, such as when the contact center system is implementing the BP algorithm, C1 can have a contact type determined to be in the first order percentile. Similarly, when the contact center system is implementing the BP algorithm, C2 can have a contact type determined to be in the second order percentile. In some examples, such as when the contact center system implements the FIFO or PBR algorithm, C1 and C2 can have contact types determined to be low priority contacts and high priority contacts, respectively. More generally, contacts C1 and C2 can be contacts that arrive at the contact center system 100 or the contact center system 200, such as contact 105 or contact 205, respectively. It should be understood that additional contact types can also be part of the initial sequence 510, where such additional contact types can include, for example, any one of C1, C2, C3, C4, C5, etc., where each contact type is classified, sorted, determined, or otherwise based on the corresponding pairing algorithm currently implemented by the contact center system.

[0097] The initial sequence 510 also shows two agents A1 and A2. Agents A1 and A2 represent agents of a given type based on the algorithm currently implemented by the contact center system. For example, when the contact center system is implementing the BP algorithm, then A1 may have an agent type determined to be in the first order percentile and A2 may have an agent type determined to be in the second order percentile. Alternatively, when the contact center system implements the FIFO or PBR algorithm, A1 may have an agent type determined to be a first order agent and A2 may have an agent type determined to be a second order agent, where the agents are ordered by time or otherwise ordered according to a pairing strategy of a given algorithm or otherwise executed. More generally, agents A1 and A2 may represent agents (e.g., C1 and C2) for pairing with contacts having corresponding contact types, and may correspond to any agents as described herein, for example, Figure 1 Seats 130A, 130B, 130C, 130D and / or Figure 2A and / or Figure 2B It should be understood that additional agent types may also be part of the initial sequence 510, wherein such additional agent types may include, for example, any of A1, A2, A3, A4, A5, etc., wherein each agent type is classified, ranked, determined, or otherwise based on a corresponding pairing algorithm currently implemented by the contact center system.

[0098] In some aspects, the initial sequence 510 may include a historical sequence of contact types received at the contact center (e.g., in the past). Alternatively or additionally, the initial sequence 510 may include a modified historical sequence of contact types received at the contact center. Additionally or alternatively, the initial sequence 510 may include a sequence of synthetic contact types. The sequence of synthetic contact types may include synthetically generated historical or other experimental contact types. For example, such a sequence of synthetic contact types may be randomly generated, where the time (e.g., 8:57, 8:59, etc.), time period (e.g., t1, etc.), and / or agent type are randomly generated for various random contacts and / or agent types. i , t2 i The contact types (C1, C2, C3, C4, C5, etc.), and / or agent types (A1, A2, A3, A4, A5, etc.) may be ordered but randomly determined, resulting in various permutations of the initial sequence (e.g., initial sequence 510). Additionally or alternatively, a sequence of synthetic contact types may be generated for a specific time, time period, contact type, and / or agent type, wherein initial sequence 510 may be manipulated or generated to test one or more specific sequences.

[0099] In some embodiments, Figure 5 As shown, the initial sequence 510 includes at t1 i and t9 i A sequence of contact center event data that occurs between .

[0100] Referring to the initial sequence 510, the algorithm execution 500, for example, as implemented by one or more processors of a contact center system (e.g., contact center system 100 and / or contact center system 200), determines one or more agent start times. For example, as shown, a start time (8:57 and 8:59, respectively) is determined for each of agent A1 and agent A2 as agents of the contact center.

[0101] With further reference to the initial sequence 510 , the algorithm execution 500 , as implemented by one or more processors of the contact center system, for example, determines one or more agent end times, for example, 9:20 and 9:22, respectively, for each of agent A1 and agent A2 .

[0102] For example, the algorithm execution 500 for the initial sequence 510, as implemented by one or more processors of the contact center system, further includes obtaining a sequence of contact types for contacts paired with one or more agents between one or more agent start times and one or more agent end times. The sequence of contact types may be ordered in time. For example, as shown for the initial sequence 510, the initial sequence 510 includes a sequence of contact types including a contact C1 having a contact type 1 and a contact C2 having a contact type 2. Contact C2 is paired with agent A1 and contact C1 is paired with agent A2. The algorithm execution 500 may also determine other contact center event data between at least one agent start time and an agent end time; the sequence of contact center event data spans t1. i To t9 i Sort by time.

[0103] A simulation model (e.g., such as simulation model 150 described herein) can be used to generate simulated sequences of contact center data such as shown for simulated sequence 560. Simulated sequence 560 can be generated by the simulation model and can implement a simulated pairing algorithm. For example, embodiments of algorithm execution 500 can be at least partially different for simulated contact type sequences, where the simulated sequences implement different simulated pairing algorithms that cause algorithm execution 500 to operate differently, even if each of simulated sequence 560 and initial sequence 510 is time-ordered (e.g., across time period t1 for initial sequence 510). i To t9 i and the corresponding time period t1 for the simulated sequence 560 s To t9 s ).

[0104] For example, as shown for the simulated sequence 560, time period t1 s To t4 s Including and targeting t1 i To t4 i The same contact center event data, where the agent login time and contact arrival time are the same for each of the simulated sequence 560 and the initial sequence 510, where for t1 i To t4 i The above description of the initial sequence 510 applies to the time period t1 for the simulated sequence 560. s To t4 s .

[0105] exist Figure 5 In the example of FIG. 5 , the initial sequence 510 and the simulated sequence 560 are respectively in the time period t5 i To time period t9 i and time period t5s To time period t9 s In some aspects, the simulation model (e.g., simulation model 150) may begin execution while the contact center system (e.g., contact center system 100 and / or contact center system 200) is operating. Additionally or alternatively, the simulation model (e.g., simulation model 150) may be independently executed and / or not executed during the operation of the contact center system (e.g., contact center system 100 and / or contact center system 200).

[0106] In an example where the simulation model is executed during operation of a contact center system, the initial sequence 510 represents a contact center implementing a first pairing algorithm (FIFO) for the algorithm execution 500, but the simulation model simulates a simulated sequence 560. In some aspects, the contact center can be updated or configured to implement the simulated sequence 560 that implements the BP pairing strategy for the algorithm execution 500.

[0107] exist Figure 5 In the example of FIG. 5 , sequence portion 515 is a sequence interval of initial sequence 510 to be executed by algorithm execution 500 using the FIFO pairing strategy. Sequence portion 565 is a sequence interval of initial sequence 560 to be executed by algorithm execution 500 using, for example, the BP pairing strategy. As shown in the figure, in time period t4 i At 550, a simulation begins at the contact center, wherein the simulated pairing algorithm (BP pairing) of the simulated sequence 560 causes a different execution of the algorithm execution 500 compared to the initial sequence 510. The difference begins at the post-simulation time period t5 s The sequence portion 565 represents the sequence intervals of the simulated sequence 560 that the algorithm execution 500 performs during the simulation ( 550 ) for the simulated pairing algorithm (eg, BP pairing).

[0108] In the sequence portion 515, a FIFO pairing strategy is illustrated, where the algorithm execution 500 pairs A1 with C2 because A1 logged in first and / or C2 arrived at the contact center first in the initial sequence 510. In addition, according to the example of the sequence portion 515, the algorithm execution 500 implements the FIFO pairing strategy and secondly pairs A2 with C1 because A2 logged in second and / or C2 arrived at the contact center second in the initial sequence 510. With respect to the performance metric, when A1 is paired with C2, the FIFO pairing strategy results in a handling time (HT) of 10 minutes, where A1 is idle at 9:15 and logged out at 9:20. When A2 is paired with C1, the FIFO pairing strategy results in a handling time (HT) of 15 minutes, where A2 is idle at 9:21 and logged out at 9:22. However, it should be understood that other performance metrics may be measured or determined together or separately, such as telecommunication connection utilization of the contact center (e.g., number of connections), resource utilization of the contact center (e.g., processor and / or memory usage of computing devices within the contact center system), contact resolution metrics associated with one or more contacts (e.g., handling time, customer satisfaction, or efficiency), and / or transaction metrics associated with one or more contacts and / or agents in a given sequence (e.g., initial sequence 510 and / or simulated sequence 560) (e.g., transaction completion indications and / or sales or revenue data).

[0109] exist Figure 5 In an example of , when a contact center system (e.g., contact center system 100 and / or contact center system 200) begins simulation (550) using a simulated sequence, algorithm execution 500 operates according to a second pairing strategy that is different from the pairing strategy used during the initial sequence 510. The simulated sequence can occur in parallel with or after the initial sequence 510 is used to measure, test, or determine the simulated sequence 560 and / or the initial sequence 510 (e.g., via measuring, testing, or determining a related performance metric). The pairing in the simulated sequence 560 includes pairing the simulated sequence of contact types with one or more simulated agents by the simulation model (e.g., simulation model 150). The one or more simulated agents can correspond to one or more actual agents of the contact center. Each of the one or more simulated agents can have a simulated agent start time and a simulated agent end time. The simulated agent start time can be based on the actual agent start time from the initial sequence 510, and the simulated agent end time can be based on the actual agent end time from the initial sequence 510. For example, as for Figure 5 As shown, the time period t1 of the simulated sequence 560 s and t2 scan represent the simulated seats A1 and A2 respectively, which correspond to the initial sequence 510 in the time period t1 i and t2 i The actual seats are A1 and A2.

[0110] In one exemplary embodiment, the sequence portion 565 can demonstrate a diagonal model BP pairing strategy, where the algorithm execution 500 pairs A2 with C2 because A2 and C2 are at a similar percentile or are otherwise related according to the diagonal model BP strategy implemented by the algorithm execution 500. In addition, according to the example of the sequence portion 515, the algorithm execution 500 pairs A1 with C1 because A1 and C1 are at a similar percentile or are otherwise related according to the BP strategy implemented by the algorithm execution 500. With respect to the performance metric, when A2 is paired with C2, the BP pairing strategy of the sequence portion 565 results in a handling time (HT) of 6 minutes, where A2 is idle at 9:11 and logged off at 9:16. This results in an improvement over the FIFO strategy of the sequence portion 515 because the contact center resources (e.g., connection resources and / or processing resources such as computing devices within the contact center) corresponding to agent A2 are released four minutes earlier than in the initial sequence 510. Further, when A1 is paired with C1, the BP pairing strategy results in a handling time (HT) of 4 minutes, where A1 is idle at 9:10 and logged off at 9:15, thereby further freeing up contact center resources (e.g., connection resources and / or processing resources such as computing devices within the contact center). Again, this results in an improvement over the FIFO strategy of sequence portion 515. However, it should be understood that other performance metrics may be measured or determined, either alone or together, such as telecommunication connection utilization of the contact center (e.g., number of connections), resource utilization of the contact center (e.g., processor and / or memory usage of computing devices within the contact center system), contact resolution metrics associated with one or more contacts (e.g., handling time, customer satisfaction, or efficiency), and / or transaction metrics associated with one or more contacts and / or agents in a given sequence (e.g., initial sequence 510 and / or simulated sequence 560) (e.g., transaction completion indications and / or sales or revenue data). Additionally or alternatively, the performance and related metrics of the contact center may also be measured, determined, or tested based on the resources of the contact center (such as computer memory, processing, connections, networking, or telephone connections) used by any of the agents A1 and / or A2, contacts C1 and / or C2. For example, pairing an agent (e.g., A1 or A2) of a contact center with a contact includes establishing a telecommunications connection to provide voice communication between the agent and the contact (e.g., C1 or C2). Such pairing may require not only a telephone connection, but may also require processors, memory, and networking connections and / or bandwidth of the contact center. Thus, in this manner, the simulation of sequence portion 565 may be used to measure and determine performance metrics of such resources, in order to, for example, compare and reduce resource requirements for more efficient pairing algorithms or other contact sequences, for example, as determined for the contact center for certain times, dates, or otherwise.

[0111] For example, despite Figure 5 519, but the simulated sequence may modify any one or more of the contact center events shown in the initial sequence 519. For example, the time at which any contact arrives may be modified, where, for example, the time at which C2 arrives may be modified to be after C1, for example, at 9:04:30. Such modification of the sequence (e.g., the initial sequence 510) may cause the algorithm execution 500 to behave differently, which in turn may cause the contact center system to behave differently based on the pairing strategy implemented at the contact center system. Additionally or alternatively, the type of contact may be modified (e.g., as for Figure 4 The percentage value described for a given performance metric, or the percentile in which the contact is located for a given performance metric) and / or agent type. For example, C1 can be modified to have a contact type of C3, which represents a third order or classification of contact types based on the pairing strategy implemented by the contact center system (e.g., BP, FIFO, PBR, etc.). Similarly, A1 can be modified to have an agent type of A4, which represents a fourth order or classification of agent types based on the pairing strategy implemented by the contact center system (e.g., BP, FIFO, PBR, etc.). Modifications to any of the contact types and / or agent types in a given sequence can cause the algorithm execution 500 to behave differently, and therefore the contact center system to behave differently, based on the pairing strategy implemented at the contact center system.

[0112] As described above, the contact center can be updated to operate based on the simulated pairing algorithm in order to achieve an improved performance metric determined by the simulated pairing sequence or algorithm. For example, in some aspects, a switch of the contact center system (e.g., any 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, e.g., its connections and use) can be improved by a new, efficient algorithm determined by the simulation.

[0113] Figure 6A computer-implemented method 600 for simulating telecommunication contact events, agent events, and contact-agent pairing events, and analyzing contact center performance based on the simulated telecommunication contact events, agent events, and contact-agent pairing events, according to various aspects of the present disclosure, is shown. The computer-implemented method 600 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 metrics as described herein. The input data and output data reception, transmission, and / or generation can 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 pairing in a contact center system (e.g., contact center system 100, contact center system 200A, and / or contact center system 200B). Additionally, one or more processors operating according to computing instructions may implement functionality associated with pairing and / or simulation in a contact center system (e.g., contact center system 100, contact center system 200A, and / or contact center system 200B) as described herein, including for method 600. 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 across one or more computer buses and / or computer networks. In various aspects, the one or more processors implementing the algorithm of method 600 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.

[0114] Additionally, the present disclosure notes that a contact center may wish to review individual contact-agent pairings and compare the pairings that a contact actually received under a first pairing strategy to the pairings that the contact might have received under a second pairing strategy. For example, a contact center may wish to perform this analysis for a group of contacts over a period of time. For a group of contacts (C1, C2, C3, C4, C5, and C6), and the contacts that were initially paired with agents in the following pairs under a first pairing strategy, one way to do this is:

[0115] Determine which seats are available for pairing when C1 is available for pairing based on historical data; pair C1 based on a second pairing strategy;

[0116] Determine which seats are available for pairing when C2 is available for pairing based on historical data; pair C2 based on a second pairing strategy;

[0117] Determine which seats are available for pairing when C3 is available for pairing based on historical data; pair C3 based on a second pairing strategy;

[0118] Determine which seats are available for pairing when C4 is available for pairing based on historical data; pair C4 based on a second pairing strategy;

[0119] Determine which seats are available for pairing when C5 is available for pairing based on historical data; pair C5 based on a second pairing strategy; and

[0120] Determine which seats are available for pairing when C6 is available for pairing based on historical data; pair C6 based on a second pairing strategy.

[0121] However, such an approach may be inaccurate because once C1 is paired with a different agent, such an approach does not account for changes to historical data that would affect which agents are available to be paired with C2. For example, such an approach may incorrectly include agents that were paired with C1 under the second pairing strategy when determining agents that are available to be paired with C2, or may incorrectly exclude agents that were originally paired with C1 under the first pairing strategy when determining agents that are available to be paired with C2.

[0122] Figure 6 The method 600 of FIG. 6 is newly presented, which can more accurately evaluate the second pairing strategy. Figure 6 At block 610 , the computer-implemented method 600 includes obtaining historical contact-agent interaction data, wherein the historical contact-agent interaction data is paired with a first pairing strategy.

[0123] At block 620, the method 600 further includes, for a contact in the historical contact-agent interaction data, determining one or more agents that are available to pair with the contact. Figure 5 In the example above, both A1 and A2 can be used to pair with C2 at 9:05.

[0124] At block 630 , the method 600 further includes obtaining a second pairing strategy.

[0125] At block 640, the method 600 further includes generating a simulated contact-agent interaction data sequence by a simulation model that implements the second pairing strategy and starts from a contact of the contact-agent pairing. Thus, step 640 may include:

[0126] Determine which seats are available for pairing when C1 is available for pairing based on historical data; pair C1 based on a second pairing strategy;

[0127] Based on the historical data, the second pairing of C1, and the first pairing of C1 in the historical data, determining which seats are available for pairing when C2 is available for pairing; pairing C2 according to the second pairing strategy;

[0128] Based on the historical data, the second pairing of C1 / C2, and the first pairing of C1 / C2 in the historical data, determining which seats are available for pairing when C3 is available for pairing; pairing C3 according to the second pairing strategy;

[0129] Based on the historical data, the second pairing of C1 / C2 / C3, and the first pairing of C1 / C2 / C3 in the historical data, determine which seats are available for pairing when C4 is available for pairing; pair C4 according to the second pairing strategy;

[0130] Based on the historical data, the second pairing of C1 / C2 / C3 / C4, and the first pairing of C1 / C2 / C3 / C4 in the historical data, determine which seats are available for pairing when C5 is available for pairing; pair C5 according to the second pairing strategy; and

[0131] Based on the historical data, the second pairing of C1 / C2 / C3 / C4 / C5, and the first pairing of C1 / C2 / C3 / C4 / C5 in the historical data, determine which seats are available for pairing when C6 is available for pairing; pair C6 according to the second pairing strategy.

[0132] At block 650, the method 600 further includes determining a performance metric of the contact center based on the simulated contact-agent interaction data sequence. In other words, the performance metric can be determined for the second pairing of C1, C2, C3, C4, C5, and C6 according to the second pairing strategy.

[0133] At block 660 , the method 600 optionally also includes updating the contact center to operate based on the second pairing strategy.

[0134] That is, looking at each contact-agent pairing in a historical data set and determining a performance metric for each contact based on which agents were available at the contact's pairing is inadequate and incorrect. In contrast, the present disclosure novel provides an advanced method to implement a second pairing strategy on a historical data set that uses a first pairing strategy, and provide updated agent status availability for a second contact-agent pairing.

[0135] Additional considerations

[0136] 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.

[0137] 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.

[0138] 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 telecommunication contact types and analyzing contact center performance based on the simulated telecommunication contact types, the computer-implemented method comprising: Determine the start time for the contact center agents; For the seat, determine the seat end time; between the agent start time and the agent end time, obtaining a sequence of contact types paired with the agent, wherein the sequence of contact types is sorted by time; generating a simulated sequence of contact types by implementing a simulation model of a simulated pairing algorithm, wherein the simulated sequence of contact types is ordered in time, and wherein the simulated sequence of contact types is different from the sequence of contact types; By means of the simulation model, the simulated sequence of the contact type is paired with a simulated agent, the simulated agent corresponds to the agent of the contact center, and the simulated agent has a simulated agent start time and a simulated agent end time, wherein the simulated seat start time is based on the seat start time, and Wherein, the simulated seat end time is based on the seat end time, and A performance metric for the contact center is determined based on the simulated sequence of contact types.

2. The computer-implemented method of claim 1 , further comprising: The contact center is updated to operate based on the simulated pairing algorithm.

3. The computer-implemented method of claim 2, wherein: The switch of the contact center is configured as follows: At least a portion of one or more contacts are routed based on the simulated pairing algorithm.

4. The computer-implemented method of claim 1 , wherein: The sequence of contact types includes a historical sequence of contact types received at the contact center.

5. The computer-implemented method of claim 1 , wherein: The sequence of contact types includes a composite sequence of contact types.

6. The computer-implemented method of claim 1 , wherein: The sequence of contact types includes a modified historical sequence of contact types received at the contact center, the modified historical sequence of contact types including at least one enhanced contact type modified from historical contact types received at the contact center.

7. The computer-implemented method of claim 1 , wherein: The performance metric includes at least one of the following: Telecommunication connection utilization of the contact center, resource utilization of the contact center, contact resolution metrics associated with one or more contacts, or transaction metrics associated with one or more contacts.

8. A system configured to simulate telecommunication contact types and analyze contact center performance based on the simulated telecommunication contact types, the system comprising: one or more processors communicatively coupled to the contact center; 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: Determine the start time for the contact center agents; For the seat, determine the seat end time; between the agent start time and the agent end time, obtaining a sequence of contact types paired with the agent, wherein the sequence of contact types is sorted by time; generating a simulated sequence of contact types by implementing a simulation model of a simulated pairing algorithm, wherein the simulated sequence of contact types is ordered in time, and wherein the simulated sequence of contact types is different from the sequence of contact types; By means of the simulation model, the simulated sequence of the contact type is paired with a simulated agent, the simulated agent corresponds to the agent of the contact center, and the simulated agent has a simulated agent start time and a simulated agent end time, wherein the simulated seat start time is based on the seat start time, and Wherein, the simulated seat end time is based on the seat end time, and A performance metric for the contact center is determined based on the simulated sequence of contact types.

9. The system according to claim 8, wherein: The computing instructions are further configured to cause the one or more processors to: The contact center is updated to operate based on the simulated pairing algorithm.

10. The system according to claim 9, wherein: The switch of the contact center is configured as follows: At least a portion of one or more contacts are routed based on the simulated pairing algorithm.

11. The system according to claim 8, wherein: The sequence of contact types includes a historical sequence of contact types received at the contact center.

12. The system according to claim 8, wherein: The sequence of contact types includes a composite sequence of contact types.

13. The system according to claim 8, wherein: The sequence of contact types includes a modified historical sequence of contact types received at the contact center, the modified historical sequence of contact types including at least one enhanced contact type modified from historical contact types received at the contact center.

14. The system according to claim 8, wherein: The performance metric includes at least one of the following: Telecommunication connection utilization of the contact center, resource utilization of the contact center, contact resolution metrics associated with one or more contacts, or transaction metrics associated with one or more contacts.

15. A tangible, non-transitory computer readable medium storing computing instructions for simulating telecommunication contact types and analyzing contact center performance based on the simulated telecommunication contact types, which when executed by one or more processors cause the one or more processors to: Determine the start time for the contact center agents; For the seat, determine the seat end time; Between the agent start time and the agent end time, a sequence of contact types paired with the agent is obtained, wherein: The sequence of contact types is ordered in time; generating a simulated sequence of contact types by implementing a simulation model of a simulated pairing algorithm, wherein the simulated sequence of contact types is ordered in time, and wherein the simulated sequence of contact types is different from the sequence of contact types; By means of the simulation model, the simulated sequence of the contact type is paired with a simulated agent, the simulated agent corresponds to the agent of the contact center, and the simulated agent has a simulated agent start time and a simulated agent end time, wherein the simulated seat start time is based on the seat start time, and Wherein, the simulated seat end time is based on the seat end time, and A performance metric for the contact center is determined based on the simulated sequence of contact types.

16. The tangible, non-transitory computer-readable medium of claim 15, wherein: The computing instructions are further configured to cause the one or more processors to: The contact center is updated to operate based on the simulated pairing algorithm.

17. The tangible, non-transitory computer readable medium of claim 16, wherein: The switch of the contact center is configured as follows: At least a portion of one or more contacts are routed based on the simulated pairing algorithm.

18. The tangible, non-transitory computer-readable medium of claim 15, wherein: The sequence of contact types includes a historical sequence of contact types received at the contact center.

19. The tangible, non-transitory computer-readable medium of claim 15, wherein: The sequence of contact types includes a composite sequence of contact types.

20. The tangible, non-transitory computer-readable medium of claim 15, wherein: The sequence of contact types includes a modified historical sequence of contact types received at the contact center, the modified historical sequence of contact types including at least one enhanced contact type modified from historical contact types received at the contact center.

Citation Information

Patent Citations

  • Techniques for L3 pairing in a contact center system

    US10257354B2

  • Techniques for behavioral pairing in a contact center system

    US9300802B1

  • Techniques for behavioral pairing in a contact center system

    US9930180B1