Method for determining seat capacity to manage contact chat interaction
By dynamically managing agent capacity and optimizing contact assignment using reinforcement learning models, the agent capacity management problem of contact messaging interaction in the existing technology is solved, and the performance and profitability of the contact center are improved.
Patent Information
- Application Number
- CN202380060494.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-25
- Filing Date
- 2023-08-24
- Publication Date
- 2025-03-21
AI Technical Summary
The prior art is difficult to effectively manage the agent capacity of contact messaging interactions, especially in asynchronous communication channels, resulting in low agent utilization and poor contact center performance.
The capacity of multiple agents is determined by dynamically tracking and updating agent capacity, using the dialogue mode of contact and the number of active/sleep interactions, and optimizing contact assignment through reinforcement learning models to ensure that agents can respond quickly to contacts.
Improves contact center performance and profitability, increases agent utilization and messaging interaction throughput, and reduces telecommunications connections and resource usage.
Smart Images

Figure CN119678480A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This international patent application claims priority to U.S. Provisional Application No. 63 / 400,954, filed on August 25, 2022, which is hereby incorporated by reference in its entirety as if fully set forth herein. Technical Field
[0003] The present disclosure relates generally to systems and methods within a contact center, and more particularly, to systems and methods within a contact center for determining agent capacity to manage text-based interactions (e.g., synchronous and asynchronous chat, messaging, email, and / or other such text-based interactions) for a contact. 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 available and waiting to be assigned to an inbound or outbound contact (e.g., a phone call, an Internet chat session, an email, a messaging interaction, etc.). At other times, a contact center may have contacts 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 in an order based on arrival time and the longest idle time of the agents. In such implementations, agents receive contacts in an order based on the time at which they become available. This strategy may be referred to as a "first in, first out," "FIFO," or "round-robin" strategy. Typically, contacts and / or agents are assigned to different "skill groups" or "queues" before a FIFO assignment strategy is applied within each such skill group or queue.
[0006] Additionally, some contact centers may use "performance-based routing" or "PBR" algorithms or techniques to rank available agents or, occasionally, queues of 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 led by the highest performing available agent. PBR ranking strategies attempt to maximize the expected outcome of each contact-agent interaction, but do so generally without regard for uniform utilization of agents across the contact center.
[0007] The agent capacity management and optimization problem is compounded based on the type of channels managed by the agents. That is, when contact center agents are tasked to work on asynchronous channels (e.g., WhatsApp Business, Facebook Messenger, Apple Messages for Business, etc.), capacity management for these agents is significantly different and more complex than capacity management for agents focused on synchronous channels (e.g., voice, live chat, etc.).
[0008] For example, the response patterns and customer expectations in synchronous channels are relatively straightforward and easy to manage. In voice channels, agents can quickly and easily talk to a person due to the fact that conversations on the phone require a high degree of agent concentration and require a high frequency of agent responses.
[0009] In contrast, response patterns and customer expectations in asynchronous channels are significantly different and more complex to manage than in synchronous channels. Users of different messaging technologies (e.g., Apple iMessage, SMS, WhatsApp, Facebook Messenger, Instagram DM, etc.) typically encounter a conversational experience where they do not expect and are not expected to respond immediately, or even within a few minutes. This expectation is likely based on modern messaging technologies, where customers typically communicate via personal devices.
[0010] Therefore, there is a need for methods of determining agent capacity for managing contact messaging interactions within a contact center. Summary of the invention
[0011] The present disclosure generally relates to methods implemented for contact centers. Specifically, systems and methods are disclosed for determining the capacity of an agent to manage a contact messaging interaction, particularly when such a contact messaging interaction is conducted over an asynchronous communication channel. The present disclosure describes techniques for obtaining available contacts and assigning the contact to an agent that is likely to have sufficient capacity to quickly respond to the contact when the contact is responded to. These techniques can enable a contact to be interacted with a single agent by proactively tracking and updating the capacity of the agent, but in the event that the capacity of the agent exceeds a capacity threshold, the systems and methods of the present disclosure can automatically determine a new agent for the contact that is predicted to provide the best outcome for the messaging interaction of the contact.
[0012] As an example, a first agent working as part of a contact center may be allowed to handle up to 3 concurrent asynchronous conversations. Using a conventional system, the first agent may receive 3 conversations from the contact center queue, and the first agent may interact with the three contacts (e.g., provide solutions to each contact's problems, ask each contact for more information so the agent can investigate further). After the first agent's interactions, the first agent may wait to read the contact's response to see if the interaction can be handled (e.g., terminated, etc.) or if further explanation is required, but the contact may not have any interest in responding to the first agent because their expectation is that they can respond to the first agent in their own time. Therefore, the contact may read the first agent's message without responding, or may ignore the notification with the intention of reading and responding later, or may not respond at all. Such activity may define dormant activity, at least in part. In this example, the first agent is technically operating at full capacity (e.g., 3 of the 3 allowed conversation slots are filled) because the conventional system uses a static determination criterion based on the ratio of the number of assigned conversations to the number of allowed concurrent conversations. However, in practice, the first agent may not actually be engaged in any of the three conversations (e.g., reading, writing, researching, checking internal systems, etc.), but is simply waiting for a contact response. Meanwhile, other contact inquiries may be filling up the contact center queue, but traditional systems will not assign these inquiries to the first agent because the first agent is technically at capacity based on traditional static capacity determinations.
[0013] In contrast, the systems and methods of the present disclosure overcome these and other problems of conventional techniques by determining a dynamic capacity contact center model, obtaining contact center context data including available contacts, and assigning contacts to agents based on the dynamic contact center model and the contact center context data, as further discussed herein. In general, the systems and methods of the present disclosure can utilize various contact information of a contact to determine a conversational pattern of the contact. The systems and methods of the present disclosure can also determine the capacity of multiple agents based on the number of active and / or dormant interactions currently being handled by each agent.
[0014] As described herein, an "active" interaction may generally indicate an interaction in which the most recent response provided by the contact was submitted within an interaction period threshold (e.g., 5 minutes, 30 minutes, 1 hour, etc.), and a "dormant" interaction may generally indicate an interaction in which the most recent response provided by the contact was not submitted within the interaction period threshold. Additionally, or alternatively, the determination of "active" and / or "dormant" conversations may be based on other / additional factors related to the messaging interaction, such as the time zone on which the contact is based and / or the mode of the contact. For example, in a time zone in which it is currently 2 a.m., a relatively inactive messaging interaction with a contact may be considered a "dormant" messaging interaction. In any case, the systems and methods of the present disclosure may then compare the capacities of the corresponding agents based on the conversational patterns of the contacts in order to assign the contacts to the corresponding agents that can best handle the messaging interactions with the contacts.
[0015] To illustrate, and with reference to the previous example, the systems and methods of the present disclosure may receive an incoming messaging interaction from a contact, the incoming messaging interaction including contact information about the contact. In one embodiment, the systems and methods of the present disclosure may also analyze the capacity of the first agent and determine that the first agent currently has 3 dormant interactions because the contacts included in the 3 messaging interactions currently being handled by the first agent have not responded to the first agent in the past hour (or other suitable duration). Therefore, the systems and methods of the present disclosure may analyze the capacity of the first agent (as well as the capacities of other agents) associated with the contact information and determine that the contact should be assigned to the first agent because the first agent is operating at minimum capacity / low utilization.
[0016] Additionally, in some cases, the systems and methods of the present disclosure may utilize a predetermined agent capacity model and / or reinforcement learning model / technique to determine contact patterns and / or agent capacity in order to determine optimal contact agent assignments. Specifically, when the methods of the present disclosure determine such contact patterns and agent capacity, the systems and methods of the present disclosure may: utilize a predetermined model to assign additional work items to agents during idle time (e.g., when agents are not engaged in responding to contacts), automatically switch focus to robot or human agent speech in the same conversation based on predictions of conversation costs and outcome benefits, automatically switch conversations to different agents, automatically assign multi-topic conversations to agents with specific top skills (e.g., billing solutions, plan changes, equipment sales, etc.), allow agents to view queues and select conversations in order to obtain customer-designed metric rewards, allow agents to support mixed channel interactions, where idle agents can select conversations from the queue and advance the conversation while waiting for the next contact pairing, and utilize a predetermined model to assign additional work items to agents during busy times when agents are already engaged in conversations.
[0017] As described herein, managing agent capacity in a dynamic manner generates benefits. For example, a contact center and its underlying systems, operations, and / or other aspects of the contact center can generally improve performance by implementing such dynamic agent capacity management. This performance improvement may result from a reduction in the number of contacts in the contact center's queue, a reduction in the number of agents in the contact center's queue, or more efficiently handling the overall channel interaction load in the contact center at any given time. More specifically, relative to conventional technologies, the systems and methods of the present disclosure significantly improve agent allocation efficiency (e.g., balanced agent utilization among agents of the contact center system) and the results of synchronous channel and asynchronous channel applications. Therefore, the systems and methods of the present disclosure enable agents to have significantly higher utilization than conventional systems, allowing agents to handle more conversations and other work items per hour, and ultimately improve the profitability and cost savings of the contact center. Other performance differences may also include an increase in the number of transactions completed over a certain period of time, an increase in the amount of transactions (e.g., sales), or an increase in the percentage of sales, etc.
[0018] According to various aspects herein, a method for determining an agent capacity for managing a contact messaging interaction is disclosed. The method may include obtaining, by a communication server, first information of a contact. The method may also include obtaining, by the communication server, active agent device information including at least a first agent identifier and a second agent identifier. The method may also include determining a first capacity of the first agent identifier based on a number of active interactions associated with the first agent identifier and a number of dormant interactions associated with the first agent identifier. The method may also include determining a second capacity of the second agent identifier based on a number of active interactions associated with the second agent identifier and a number of dormant interactions associated with the second agent identifier. The method may also include determining a conversation mode of the contact based on the first information. The method may also include initiating a comparison of the first capacity and the second capacity based on the conversation mode. The method may also include assigning the contact to either the first agent identifier or the second agent identifier based on the comparison, wherein assigning the contact includes establishing a connection between a first device associated with the contact and a second device associated with the first agent identifier or the second agent identifier.
[0019] In yet another aspect, the method may include establishing a communication channel across a connection; obtaining, at the second device, a first message sent by the first device; and obtaining, at the first device, a second message sent by the second device. Further, in these aspects, the method may include, after obtaining, at the second device, the first message sent by the first device, obtaining second information for a contact; and determining, based on the second information for the contact, an updated capacity for an agent identifier associated with the second device. Still further, in these aspects, the method may include, after obtaining, at the second device, the first message sent by the first device, determining, at the second device, an expected wait time for obtaining, by the second device, a third message sent by the first device, wherein the expected wait time is based on the first message; and determining, based on the expected wait time, an updated capacity for an agent identifier associated with the second device.
[0020] In yet another aspect, the method can include obtaining historical contact-agent interaction data; and determining a conversational mode for the contact based on the historical contact-agent interaction data. Further, in these aspects, the historical contact-agent interaction data can be associated with the contact. Still further, in these aspects, the historical contact-agent interaction data can be based on information from at least one other contact, the at least one other contact being different from the contact.
[0021] In yet another aspect, the method can include determining an interaction handling time for the contact.
[0022] In yet another aspect, the method can include determining a response rate variability of a contact.
[0023] In yet another aspect, the method may include training a machine learning model based on a training data set including historical contact-agent interaction data, wherein the machine learning model is configured to output a prediction of an expected capacity of an agent.
[0024] In yet another aspect, the method can include determining a response lag time measure based on historical contact-agent interaction data associated with a contact type for the contact.
[0025] In yet another aspect, the first information may include at least one of a message text and one or more tags or titles associated with the message text.
[0026] In yet another aspect, the contact can be communicatively coupled to the contact center, and the contact can send one or more messages to a third device associated with the third agent identifier.
[0027] In yet another aspect, a method for assigning contacts to agents is disclosed. The method may include: obtaining contact center environment data associated with a contact center system; training a reinforcement learning model based on a training data set including historical contact-agent interaction data associated with the contact center system; obtaining a first state of the contact center system, the first state including (i) a utilization value and / or pattern of each of a plurality of agents, and (ii) an indication of at least one available contact; assigning the at least one available contact to a first agent of the plurality of agents based on using the first state as an input to the trained reinforcement learning model; and outputting a second state of the contact center system based on assigning the at least one available contact to the first agent.
[0028] In yet another aspect, training the reinforcement learning model further comprises: determining a time period associated with an average agent response time for each single contact-interaction, and wherein the training data set also comprises the time period. Further in these aspects, the time period is one of: 15 seconds, 30 seconds, 45 seconds, 1 minute, and 2 minutes.
[0029] In yet another aspect, training the reinforcement learning model further comprises: determining at least one positive reward based on at least one of: an agent utilization value and a length of the agent utilization, and wherein the training data set further comprises the at least one positive reward. Further, in these aspects, the at least one positive reward comprises (i) an allocated reward based on a number of utilized time slots of the corresponding agent, and (ii) a time difference between a first time value that the corresponding agent is available and a second time value that the corresponding agent handles a final interaction. Further still, in these aspects, the at least one positive reward comprises a total agent reward comprising a sum of allocated rewards for each of the plurality of agents.
[0030] In yet another aspect, training the reinforcement learning model further comprises determining at least one negative reward based on at least one of: an agent wait time and a contact wait time, and wherein the training data set further comprises the at least one negative reward.
[0031] In yet another aspect, the method further comprises: determining a contact arrival event or an agent state change event, and wherein obtaining the first state of the contact center system occurs after determining the contact arrival event or the agent state change event.
[0032] In yet another aspect, the contact center context data includes any of: (i) a number of active conversations associated with one or more of a plurality of agents of the contact center system, (ii) a number of dormant conversations associated with one or more of a plurality of agents of the contact center system, (iii) a pattern associated with one or more of a plurality of contacts handled by the contact center system, and (iv) message text associated with one or more of the plurality of contacts handled by the contact center system.
[0033] In an additional aspect, a communication system for determining an agent capacity for managing contact messaging interactions is disclosed. The communication system may include one or more processors, and a non-transitory computer-readable medium coupled to the one or more processors. The non-transitory computer-readable medium may store instructions thereon, which, when executed by the one or more processors, cause the communication system to obtain first information of a contact. The non-transitory computer-readable medium may store instructions thereon, which, when executed by the one or more processors, further cause the communication system to obtain active agent device information including at least a first agent identifier and a second agent identifier. The non-transitory computer-readable medium may store instructions thereon, which, when executed by the one or more processors, further cause the communication system to determine a first capacity for a first agent identifier based on a number of active interactions associated with the first agent identifier and a number of dormant interactions associated with the first agent identifier. The non-transitory computer-readable medium may store instructions thereon, which, when executed by the one or more processors, further cause the communication system to determine a second capacity for a second agent identifier based on a number of active interactions associated with the second agent identifier and a number of dormant interactions associated with the second agent identifier. The non-transitory computer readable medium may store instructions thereon that, when executed by one or more processors, further cause the communication system to determine a conversation mode for the contact based on the first information. The non-transitory computer readable medium may store instructions thereon that, when executed by one or more processors, further cause the communication system to initiate a comparison of the first capacity and the second capacity based on the conversation mode. The non-transitory computer readable medium may store instructions thereon that, when executed by one or more processors, further cause the communication system to assign the contact to either the first agent identifier and the second agent identifier based on the comparison, wherein assigning the contact establishes a connection between a first device associated with the contact and a second device associated with the first agent identifier or the second agent identifier.
[0034] In yet another aspect, a tangible, non-transitory computer-readable medium is disclosed that stores computing instructions for determining agent capacity for managing contact messaging interactions. The computing instructions, when executed by one or more processors, may cause the one or more processors to obtain first information for a contact. The computing instructions, when executed by the one or more processors, may also cause the one or more processors to obtain active agent device information including at least a first agent identifier and a second agent identifier. The computing instructions, when executed by the one or more processors, may also cause the one or more processors to determine a first capacity for the first agent identifier based on a number of active interactions associated with the first agent identifier and a number of dormant interactions associated with the first agent identifier. The computing instructions, when executed by the one or more processors, may also cause the one or more processors to determine a second capacity for the second agent identifier based on a number of active interactions associated with the second agent identifier and a number of dormant interactions associated with the second agent identifier. The computing instructions, when executed by the one or more processors, may also cause the one or more processors to determine a conversation mode for the contact based on the first information. The computing instructions, when executed by the one or more processors, may also cause the one or more processors to compare the first capacity and the second capacity based on the conversation mode. The computing instructions, when executed by the one or more processors, may further cause the one or more processors to assign the contact to either the first agent identifier and the second agent identifier based on the comparison, wherein assigning the contact establishes a connection between a first device associated with the contact and a second device associated with the first agent identifier or the second agent identifier.
[0035] In light of the foregoing and 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, dynamically determining agent capacity and / or contact conversation patterns associated with messaging interactions in a contact center for improvement thereof. Such agent capacity and contact conversation patterns may correspond to telecommunication connections or computing resources (e.g., memory and / or processor resources) of a contact center system including a computing system in the field of contact center routing, distribution, and / or management. That is, the present disclosure describes improvements to the functionality of the underlying computing system itself or in "any other technology or technical field" because the contact center and its underlying contact / interaction processing hardware and devices are improved by allowing the contact center and related resources (such as telecommunication connections allocated in the contact center system (e.g., telecommunication connections between agents and contacts)) to be routed or established based on algorithms that utilize these agent capacity and contact conversation patterns. This provides an improvement over previous systems that do not implement such determination of agent capacity and contact conversation patterns as described herein. For example, such an embodiment is improved over the prior art by allowing systems and methods of the 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 the contact processing system) or experience improved performance (e.g., higher contact messaging interaction throughput, higher agent utilization, and / or more balanced agent utilization) compared to non-optimized systems, at least because the contact center is improved based on the insights of the agent capacity and contact conversation patterns described herein. That is, pairing an agent of the contact center with a contact includes establishing a telecommunication or other connection to provide voice, text, or other communication between the agent and the contact. Such pairing may require not only a telephone connection, but may also require a processor, memory, and network connection and / or bandwidth of the contact center. The agent capacity and contact conversation patterns described herein can be used to more efficiently assign agents to contacts, which in turn directly improves the efficiency of the allocation of such resources.
[0036] Additionally or alternatively, the present disclosure relates to improvements in other technologies or technical fields, at least because the information of the contact can be used to determine the conversation pattern of the contact, and multiple agent capacities can be determined by considering the active and dormant interactions handled by the agent. In these aspects, the conversation pattern of the contact can be used as a comparison basis for multiple agent capacities to determine the best agent to handle the messaging interaction of the contact. In this way, the conversation pattern of the contact and the agent capacity are both used to improve the performance of one or more features of the contact center system, for example, by assigning contacts to agents based on such conversation patterns and agent capacities, thereby providing improvements in increasing agent utilization, increasing the balance of agent utilization, increasing messaging interaction throughput, reducing telecommunication connection usage, reducing memory usage, reducing processing usage, reducing processing time and / or increasing transaction and / or sales performance, improving customer experience / service, or other benefits of the contact center as described herein.
[0037] In addition, the present disclosure includes the application or use of a specific machine, for example, a messaging feature server (also referred to herein as a "communication server") deployed in a contact center, wherein the messaging feature server can be configured to determine a conversation pattern of a contact and an agent's capacity and assign the contact to an agent accordingly according to the system and method for determining agent capacity for managing contact messaging interactions described herein.
[0038] Still further, the present disclosure includes specific features in addition to well-known, conventional, traditional activities in the art because these features add non-conventional steps that limit the present disclosure to specific useful applications, such as systems and methods within a contact center that determine agent capacity for managing contact messaging interactions by determining conversation patterns for the contacts and agent capacity of the agents, and assigning contacts to agents based on the conversation patterns and agent capacity.
[0039] From the following description of the preferred aspects shown and described by way of illustration, the advantages will be more clearly understood by those skilled in the art. It will be appreciated that the present aspect may be capable of having other different aspects, and its details may be modified in various aspects. Therefore, the drawings and descriptions should be regarded as illustrative, rather than restrictive.
[0040] The present disclosure will now be described in more detail with reference to the specific aspects of the disclosure 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 may be exposed to the teachings herein, and they will recognize that additional embodiments, modifications and various aspects, and other fields of use are within the scope of the present disclosure described herein, and in which aspects the present disclosure may have significant practicality. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] In order to help more fully understand 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.
[0042] Figure 1A Depicted is a block diagram of an example contact center system in accordance with various aspects of the present disclosure.
[0043] Figure 1B Depicted is a block diagram of a second example contact center system in accordance with various aspects of the present disclosure.
[0044] Figure 1C Depicted is a block diagram of an example communications system including an example configuration of Contact Center as a Service (CCaaS) in accordance with various aspects of the present disclosure.
[0045] Figure 1D Describes various aspects of the present disclosure Figure 1B A block diagram of a multi-tenant embodiment of an example contact center system.
[0046] Figure 2 Depicted is a block diagram of another example contact center system utilizing the messaging feature server of FIG. 1 in accordance with various aspects of the present disclosure.
[0047] Figure 3 A block diagram of an agent capacity prediction implementation of the messaging feature server of FIG. 1 is depicted in accordance with aspects of the present disclosure.
[0048] Figure 4 An example sequence of interactions between an agent and several contacts according to aspects of the present disclosure is illustrated, wherein wait times experienced by the agents and contacts may be identified and minimized through the techniques of the present disclosure.
[0049] Figure 5 Another example interaction sequence between multiple agents and multiple contacts according to aspects of the present disclosure is illustrated, wherein the wait time experienced by each agent and each contact can be identified and minimized through the techniques of the present disclosure.
[0050] Figure 6 Yet another example interaction sequence of two agents each handling multiple contacts simultaneously according to aspects of the present disclosure is illustrated, wherein the wait time experienced by each agent and each contact can be identified and minimized through the techniques of the present disclosure.
[0051] Figure 7 The present disclosure is illustrated in accordance with various aspects of Figure 6 Example optimized interaction sequence between two agents and multiple contacts.
[0052] Figure 8Methods of determining agent capacity to manage contact messaging interactions in accordance with various aspects of the present disclosure are illustrated.
[0053] Fig. 9 A method for assigning contacts to agents according to various aspects of the present disclosure is illustrated. DETAILED DESCRIPTION
[0054] Figure 1A 1 depicts a block diagram of an example contact center system 100A according to various aspects of the present disclosure. Figure 1A As shown in the example contact center system 100A of , the systems and methods herein include network elements, computers and / or computing instructions that may include one or more modules, which determine the agent capacity for managing contact messaging interactions. 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). It should be noted that the modules are exemplary. Modules may be combined, integrated, separated and / or replicated to support various applications. In addition, the functions described herein as being performed at a particular module may be performed at one or more other modules and / or by one or more other devices to replace or supplement the functions performed at a particular module. 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 from one device and added to another device, and / or may be included in two devices.
[0055] In addition, although the reference Figure 1AThe described interactions primarily describe contacts that call the example contact center system 100A, but it should be understood that the example contact center system 100A can support any suitable messaging interactions, and indeed any suitable interactions across any type of platform (e.g., video, etc.). For example, the "message interactions" (or simply "interactions") described herein can include, but are not limited to, contacts interacting with agents via text messaging (e.g., Apple iMessage, SMS, WhatsApp, etc.), application messaging (e.g., Facebook Messenger, Instagram Direct Messaging (DM), web messaging), email, voice chat (e.g., live phone calls), video calls, chatbots, chat interactions, and / or any other suitable communication channels or combinations thereof. Furthermore, in some cases, a messaging interaction between a single contact and a single agent can include one or more of the communication channels described herein, and the contact can be transferred to a different agent to continue the messaging interaction via one or more communication channels and / or can communicate with multiple agents simultaneously across the same or different communication channels.
[0056] In any case, if Figure 1A As shown, the example contact center system 100A may include a central switch 110. The central switch 110 may receive incoming contacts 105 (e.g., messaging participants, text participants, callers) or support establishing outbound connections with 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 among 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. For example, the PBX and / or ACD may manage, route, or otherwise distribute interactions 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 messaging feature server 140.
[0057] In some aspects, if there is only one contact center, or only one PBX / ACD routing component, in the example contact center system 100A, the central switch 110 may not be necessary. If more than one contact center is part of the contact center system 100A, 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.
[0058] 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 simultaneously. 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-interaction function (such as recording information about the interaction), or taking a break.
[0059] exist Figure 1A In the example of , the central switch 110 routes contacts 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. Agents 130A and 130B can be logged into the contact center switch 120A, while agents 130C and 130D can be logged into the contact center switch 120B. However, it is to be understood that more or fewer agents can be assigned or otherwise associated with a given switch or router within the contact center system. In addition, as described herein, each agent 130A-D can have an associated "agent identifier", and the contact center system 100A, and more specifically, the messaging function server 140, can track active and dormant interactions of the agents 130A-D, assign additional contacts to the agents 130A-D, and / or perform other suitable operations or combinations thereof on the agents 130A-D.
[0060] In various aspects, the contact center system 100A may also be communicatively coupled to a messaging feature server 140. The messaging feature server 140 may include a computing system including one or more processors, one or more memories, and related computing instructions for executing the software or instructions described herein. In some aspects, the messaging feature server 140 may be integrated as part of the contact center system 100A, such as into an existing computing device or server of the contact center. Additionally, or alternatively, the messaging feature server 140 may be a separate computing system (e.g., such as a computing device provided by a third party) that is connected via the computer network of the contact center. That is, in some aspects, a switch of the contact center system 100A may be communicatively coupled to the messaging feature server 140 via a network or other cable connection, and in some aspects, may include multiple messaging feature servers, such as the messaging feature server 140. In Figure 1A In the example of FIG. 1 , the messaging feature server 140 can be communicatively coupled to one or more switches in the switch system of the contact center system 100A, including the central switch 110, the contact center switch 120A, and the contact center switch 120B. In addition, the messaging feature server 140 can be directly communicatively coupled to one or more contacts or agents included as part of the contact center system 100A, including the contact 105, the agent 103A, the agent 130B, the agent 130C, and the agent 130D.
[0061] The messaging function server 140 can receive data / information about agents (e.g., agents 130A and 130B) logged into the switch or other contact center systems 100A and about incoming contacts from the PBX / ACD of the contact center system 100A and / or a switch of the contact center system 100A (e.g., contact center switch 120A). In some aspects, such information can be received via another switch (e.g., central switch 110), or in some aspects, from a network (e.g., the Internet or a telecommunications network) (not shown). For example, the messaging function server 140 can receive / obtain data about the contact 105, such as the contact arriving at the contact center or otherwise connecting at the contact center, the contact leaving the contact center or otherwise disconnecting from the contact center, or the contact's interaction with the contact center, which can include the contact being paired through a pairing system, interacting with an agent, making a selection (e.g., such as a menu selection from a messaging interface, a number phone menu, and / or other selection interface that causes the contact to be routed or directed in one or more ways within the routing network of the contact center system 100A), or any other event that defines the contact's interaction or state with the contact center. Similarly, as other examples, the messaging function server 140 may receive / obtain data about the agent, such as the agent logging into or otherwise connecting at the contact center, the agent logging out of the contact center or otherwise disconnecting from the contact center, or the agent's interaction with the contact center, which may include the agent being paired through a pairing system, interacting with a contact, making a selection (e.g., such as a menu selection from a menu when the agent handles or otherwise interacts with a contact), and / or any other event that defines the agent's interaction or state with the contact center.
[0062] The messaging function server 140 may process the data to determine which contacts 105 should be paired with which agents 130A-D (e.g., matched, assigned, distributed, or otherwise routed within the contact center system 100A). That is, the messaging function server 140, or more generally, the contact center system 100A, is configured to algorithmically assign contacts 105 arriving at the contact center to agents 130A-D that are available to handle those contacts 105, as further described herein. At times, the contact center may be in an "L1 state," which is defined as a state in which the contact center system 100A has available agents 130A-D waiting to be assigned to an inbound or outbound contact 105 (e.g., a text message, an Internet messaging session, an email, a phone call, etc.). At other times, the contact center system 100A may be in an "L2 state" (i.e., an L2 queue), which is defined as a state in which the contact center system 100A has contacts 105 in one or more queues waiting for agents 130A-D to become available for assignment. Such L2 queues may be inbound, outbound, or virtual queues. At other times, the contact center system 100A may be in an "L3 state," which is defined as a state in which the contact center system 100A has contacts 105 waiting in one or more queues for agents 130A-D to become available for assignment, and the contact center system 100A has agents 130A-D available and waiting to be assigned to inbound or outbound contacts 105 (e.g., text messages, Internet messaging sessions, emails, phone calls, etc.).
[0063] For example, in one aspect, the messaging function server 140 can be configured to assign contacts 105 to agents 130A-D by tracking agent messaging interactions to determine the number of active and dormant interactions for each agent 130A-D when the contact center system 100A is in any suitable state (e.g., L1, L2, or L3 state). For example, in one aspect, multiple agents 130A-D may be available and waiting to be connected to a contact 105 (i.e., the contact center system 100A is in the L1 state), and the contact 105 arrives at the contact center via a network or central switch. The messaging function server 140 can automatically analyze information related to the contact 105, the capacity of the agents 130A-D, historical contact-agent interaction data, and / or any other suitable data to assign the contact 105 to the agents 103A-D.
[0064] In general, information associated with contact 105 and / or historical contact-agent interaction data may include historical / current response time data and / or patterns for contact 105 and / or contacts similar to the contact. For example, information associated with contact 105 and / or historical contact-agent interaction data may include, but is not limited to, response time data and / or patterns associated and / or related to any of: previous messaging interactions involving contact 105, current messaging interactions for contact 105, contacts with similar demographic characteristics as contact 105, contact 105 or other contacts while engaged in messaging interactions about a particular topic, contacts during the same day that contact 105 attempted to initiate a messaging interaction with agents 130A-D, contacts during similar times (e.g., time of day or a particular date / time) that contact 105 attempted to initiate a messaging interaction with agents 130A-D, specific messaging interactions during which contact 105 attempted to initiate a messaging interaction with agents 130A-D contacts in a channel (e.g., text messaging, internet messaging, email, etc.), contacts 105 and / or all contacts in a particular messaging channel after an appropriate number of messages, contacts 105 based on a number of previous messaging interactions, contacts 105 based on a number of words used in a sentence, contacts 105 based on the sentiment of the messaging interaction (e.g., via text analysis), contacts 105 based on the urgency of the issue discussed in the messaging interaction, messaging interactions stored in a messaging interaction queue, the primary language of the contacts 105 and the conversational language of the contacts 105, the device type of the device used by the contacts 105 to conduct the messaging interaction, contacts conducted using the same and / or similar device type as the contacts 105, messaging interactions with contact typing errors.
[0065] Regardless, in one example, the assigned agent (e.g., agent 130A) may be presented with an option to accept the new contact 105, and upon acceptance by agent 130A, agent 130A may be connected to the new contact 105 to begin the messaging interaction. In another example, agent 130A may be connected to the new contact 105 without waiting for the agent's acceptance. Thus, the messaging function server 140 may automatically assign the contact 105 to the agent (e.g., agent 130A) that is predicted to provide the best messaging interaction experience for the contact center system 100A, thereby improving overall contact performance metrics (e.g., bandwidth, throughput, customer satisfaction, revenue, retention, etc.). The algorithms and analytics used to determine such optimal contact-agent pairings will be combined with Figure 2 and Figure 3 Further description.
[0066] Figure 1B 1 depicts a block diagram of a second example contact center system 100AB according to various aspects of the present disclosure. Figure 1B As shown, the communication system 100B may include one or more agent endpoints 151A, 151B and one or more contact endpoints 152A, 152B. The agent endpoints 151A, 151B may include an agent terminal and / or an agent computing device (e.g., a laptop, a mobile phone). The contact endpoints 151A, 151B may include a contact terminal and / or a contact computing device (e.g., a laptop, a mobile phone). Depending on the capabilities of the endpoint devices, the agent endpoints 151A, 151B and / or the contact endpoints 152A, 152B may be connected to a contact center as a service (CCaaS) 170 via the Internet or a public switched telephone network (PSTN) 160.
[0067] Figure 1C A block diagram of an example communication system 100C is depicted, in accordance with various aspects of the present disclosure, including an example configuration of a contact center as a service (CCaaS) 170. For example, the CCaaS 170 may include multiple data centers 180A, 180B. The data centers 180A, 180B may be physically separated, even located in different countries and / or continents. The data centers 180A, 180B may communicate with each other. For example, one data center is a backup for another data center; such that in some embodiments, only one data center 180A or 180B receives agent endpoints 151A, 151B and contact endpoints 152A, 152B at a time.
[0068] Each data center 180A, 180B includes a web demilitarized zone device 171A and 171B, respectively, which is configured to receive agent endpoints 151A, 151B and contact endpoints 152A, 152B, which are communicatively connected to CCaaS via the Internet. The web demilitarized zone (DMZ) devices 171A and 171B can operate outside the firewall to connect with the agent endpoints 151A, 151B and contact endpoints 152A, 152B, while the remaining components of the data center 180A, 180B can be within the firewall (except for the phone DMZ devices 172A, 172B, which can also be outside the firewall). Similarly, each data center 180A, 180B includes a phone DMZ device 172A and 172B, respectively, which is configured to receive the agent endpoints 151A, 151B and contact endpoints 152A, 152B, which are communicatively connected to CCaaS via PSTN 160. The telephony DMZ devices 172A and 172B may operate outside of a firewall to connect with the agent endpoints 151A, 151B and contact endpoints 152A, 152B, while the remainder of the data center 180A, 180B (excluding the webDMZ devices 171A, 171B) may be within the firewall.
[0069] In addition, each data center 180A, 180B may include one or more nodes 173A, 173B and 173C, 173D, respectively. All nodes 173A, 173B and 173C, 173D may communicate with web DMZ devices 171A and 171B, respectively, and with phone DMZ devices 172A and 172B, respectively. In some embodiments, only one node in each data center 180A, 180B may communicate with web DMZ devices 171A, 171B and phone DMZ devices 172A, 172B at a time.
[0070] Each node 173A, 173B, 173C, 173D may have one or more pairing modules 174A, 174B, 174C, 174D, respectively. Figure 1A Similar to the messaging feature server 140 of the contact center system 100A, the pairing modules 174A, 174B, 174C, 174D can pair contacts with agents. For example, the pairing modules 174A, 174b, 174C, 174D can alternate between enabling pairing via a behavioral pairing (BP) module and enabling pairing using a first-in-first-out (FIFO) module. For example, the pairing modules 174A, 174b, 174C, 174D can be configured to simulate other pairing strategies.
[0071] Figure 1D Describes various aspects of the present disclosure Figure 1B 1. A block diagram of a multi-tenant embodiment of an example contact center system of FIG. 1. Specifically, the disclosed CCaaS communication system (e.g., Figure 1B and / or 1C) can support multi-tenancy so that multiple contact centers (or contact center operations or businesses) can operate in a shared environment. That is, multiple tenants can be handled by the disclosed CCaaS communication system, each tenant having its own non-overlapping set of agents, where each agent only interacts with contacts of a single tenant. CcaaS 170 Figure 1D It is shown that there are two tenants 190A and 190B. Figure 1C For example, node 173A supports tenant 190A, while node 173B supports 190B, thereby supporting multiple tenants. In another embodiment, data center 180A supports tenant 190A, while data center 180B supports tenant 190B. In another example, multiple tenants can be supported through shared machines or shared virtual machines; such that node 173A can support tenants 190A and 190B at the same time, and nodes 173B, 173C, and 173D are similar. In other embodiments, the system can be configured for a single tenant within a dedicated environment (such as a private machine or private virtual machine).
[0072] Figure 2A block diagram of another example contact center system 200 utilizing the messaging function server 140 of FIG. 1 is depicted in accordance with various aspects of the present disclosure. Specifically, the messaging function server 140 includes an agent utilization monitor 210 and a contact activity monitor 220, which are collectively configured to track / determine agent capacity and contact conversation data and / or patterns in order to determine optimal contact-agent pairing for messaging interactions. The example contact center system 200 additionally includes an agent terminal 230, a research module 240, a supervisor terminal 250, a peer terminal 260, and a contact system 270.
[0073] In general, through the messaging feature server 140, an agent (e.g., through the agent terminal 230) can establish communications with any other party communicatively coupled to the messaging feature server 140, such as a supervisor terminal 250, a peer terminal 260 (e.g., another agent), and / or a contact (e.g., via a contact system 270). The agent terminal 230 can also access the research module 240 to retrieve / obtain information related to other entities with which the agent is engaging in messaging interactions. For example, if the agent terminal 230 is connected to the contact system 270 through the messaging feature server 140 to engage in messaging interactions with a contact, the agent can access the research module 240 to obtain information about the contact participating in the messaging interaction. The research module 240 can store information related to a contact or another agent, such as the number of previous messaging interactions, the length of the previous messaging interaction, the channel type of the previous messaging interaction (e.g., text message, Internet message, email, phone, etc.), contact demographic information, and / or any other suitable data or combination thereof. The research module may also store information related to the business entity hosting the messaging interaction (e.g., offers, products, available resources, resource amounts, etc.). Thus, in this manner, an agent may obtain information about a contact, a business entity, and / or another agent from the research module 240 before, during, or after a messaging interaction.
[0074] In addition, before, during, and / or after such messaging interactions, the agent utilization monitor 210 and the contact activity monitor 220 may obtain and / or analyze data related to agents and contacts to track / determine agent capacity and contact conversation data and / or patterns in order to determine the best contact-agent pairing for the messaging interaction. That is, the agent utilization monitor 210 may track active messaging interactions and dormant messaging interactions in order to determine the capacity of the agent at any given time. The agent utilization monitor 210 may also make decisions related to the determined agent capacity, such as whether the agent has sufficient capacity to handle additional messaging interactions, when the agent may have sufficient capacity to handle additional messaging interactions, what types of messaging interactions the agent may have capacity to handle, and / or which of the multiple agents should best handle the additional messaging interactions. Thus, the agent utilization monitor 210 may alleviate the accumulation of messaging interaction queues and maximize agent utilization by dynamically analyzing the capacity of each agent. These functions of the agent utilization monitor 210 are superior to traditional contact centers, at least because such traditional contact centers cannot provide such dynamic agent capacity analysis at all.
[0075] To illustrate, conventional contact centers typically include static caps for active and dormant messaging interactions that strictly limit agents to, for example, 3 active messaging interactions and 5 dormant messaging interactions (e.g., a predetermined active threshold and a predetermined dormant threshold). Thus, in these conventional contact centers, an agent with 3 active messaging interactions cannot receive any new messaging interaction assignments unless one or more of its active messaging interactions are converted to dormant interactions and the total number of dormant conversations for the agent is less than the predetermined dormant threshold. However, if the agent already has 5 dormant interactions, the agent may not receive any new interaction assignments.
[0076] This static way of determining active and dormant thresholds does not appropriately reflect the complexity of interactions between contacts and agents, and does not apply when the conversation does not fit into the binary classification of "active" or "dormant." For example, during a text messaging interaction, a contact may initially respond within seconds or minutes of sending a message from an agent, but contacts often prefer to send texts at their convenience (e.g., after consulting with others, etc.), and may extend the time frame over which the interaction occurs by responding later. These text messaging interactions, as well as other increasingly common interaction methods, create a more complex interaction environment with significantly longer interaction times than traditional contact centers are equipped to handle. Traditional contact centers may simply disconnect a contact after a contact has been unresponsive for a threshold period of time (e.g., five minutes). As a result, these longer-form interactions pose a significant problem for traditional contact centers that employ static threshold models to manage agent capacity, because agents have predefined interaction quotas that do not allow for flexibility in the assignment of interactions. Additionally, due to different expectations and usage patterns of asynchronous messaging channels, contacts may decide to take a long time (minutes, hours, days, or longer) to respond to agent messages, which creates time or other productivity issues. Specifically, if an agent holds an interaction in a personal workspace until the customer responds, the interaction will occupy a time slot outside of its (and the underlying system's) defined capacity for an unknown amount of time. This means lower productivity and utilization of the agent (and increased demand on system resources) because the contact may be responded to within a long time window (e.g., within 2 hours), during which the agent may have been working on other tasks, making it more efficient and better utilizing and freeing up system resources. Traditional call centers can choose to tolerate lower productivity / utilization in order to keep the interaction with the same agent. However, higher productivity and utilization can be achieved more effectively by disposing / terminating the interaction or connection between the agent and the contact. However, this can create a secondary problem when the customer responds later; in this scenario, the response to the contact may be designated as a new interaction, which is routed using traditional FIFO (or other methods), and therefore this connection is likely to be assigned to a different agent than the one that handled the original interaction. The new agent then needs to read through the entire history, customer information, and actions taken by the previous agent to provide adequate service, and may even ask questions and propose solutions similar to those already provided, resulting in a poor customer experience for both the agent and the customer and / or wasted time (as well as wasted underlying computing resources of the contact center), which also affects the productivity and utilization of the contact center and its underlying computing hardware.
[0077] To overcome these problems of traditional contact centers, the present disclosure provides an agent utilization monitor 210 for dynamically determining the capacity of an agent based on the number of active interactions and dormant interactions currently handled by the agent. The agent utilization monitor 210 can combine the number of active interactions and dormant interactions that a particular agent has to generate the total capacity of the agent. In some examples, each conversation can be associated with a weight, value, score, or pattern; and the weights, values, scores, or patterns of all conversations with the agent can be combined to generate the total capacity of the agent. In some aspects, the total capacity of the agent is also defined or determined by the utilization indicator or participation indicator of the agent. The total capacity of the agent can determine whether the agent has available capacity to accept additional interaction assignments, and the total capacity can be a dynamic allocation between active interactions and dormant interactions currently assigned to the agent. Additionally, or alternatively, subtracting the utilization indicator from the total capacity of the agent can determine whether the agent has available capacity to accept additional interaction assignments, and the total capacity can be a dynamic allocation between active interactions and dormant interactions currently assigned to the agent. The total capacity of the agents is also dynamic because a weight, value, score, or pattern for each conversation can be determined based on first data about the conversation available when a first determination is made; and a subsequent capacity determination can obtain a different weight, value, score, or pattern for the conversation based on second data about the conversation available when a second subsequent capacity determination is made.
[0078] Thus, the agent utilization monitor 210 enables the contact system to assign contacts to agents based on a dynamic interpretation of the agents' total capacity, such as the predicted response time for each agent's assigned interactions (active and dormant). Thus, the dynamic agent capacity determination by the agent utilization monitor overcomes the problems experienced by conventional static systems that have a single maximum for active / dormant interactions without considering the characteristics / actual circumstances of each active and dormant interaction assigned to the agent.
[0079] The contact activity monitor 220 may generally analyze information associated with a contact (e.g., the contact system 270) to determine a conversational pattern (e.g., as used herein, "pattern" may also refer to a value, weight, or score) of the contact. The conversational pattern of the contact may generally indicate a level of interaction / engagement required by the agent in order to successfully handle and / or otherwise terminate the interaction. In one example, the conversational pattern of a first contact may indicate that the agent may need to respond to the first contact relatively quickly (e.g., within 1 minute or less), and the entire interaction may occur in a relatively short period of time (e.g., 10 minutes or less). In this example, the messaging function server 140 may analyze the response times and interaction handling times of three agents (e.g., the first agent, the second agent, and the third agent), and may determine that the second agent has a typical response time and interaction handling time that is similar to the conversational pattern of the first contact. Therefore, the messaging function server 140 may assign the first contact to the second agent.
[0080] The contact activity monitor 220 may obtain / receive information associated with a contact from, for example, a request to initiate an interaction sent by the contact, the research module 240, and / or any other suitable location or combination thereof. For example, a request sent by a contact to initiate an interaction may include contextual data (e.g., metadata), which the contact activity monitor 220 may analyze to determine a conversation pattern, such as the country of the contact, the type of customer of the contact (e.g., a high priority contact, a low priority contact, a contact that requires a large number of interactions with an agent, etc.), a product purchased through the contact, the number of previous interactions with the contact, the age of the contact, and / or other suitable contextual data or combination thereof. Based on the contextual data, the contact activity monitor 220 may determine and / or update the conversation pattern of the contact in order to cause the messaging function server 140 to assign the contact to the best agent.
[0081] Additionally, or alternatively, the contact activity monitor 220 may analyze the responses of the contacts to the agents during the interaction to proactively update the conversational patterns of the contacts. For example, the contact activity monitor 220 may include and / or access a natural language processing (NLP) module (not shown) or other suitable language analysis software to analyze (e.g., parse, interpret, etc.) the responses of the contacts during the interaction. Based on such analysis of the contact responses, the contact activity monitor 220 may update the conversational patterns of the contacts to better reflect the current conversational patterns of the contacts. In this way, the contact activity monitor 220 may improve the overall assignment process performed by the messaging function server 140 by maintaining the latest conversational patterns for each contact, which the messaging function server 140 may use to accurately and efficiently assign each contact to the best agent for interaction.
[0082] To illustrate, a first contact may send an interaction request to the messaging function server 140, which may determine / retrieve a first conversation pattern for the first contact based on previous interactions of the first contact. For example, the first conversation pattern may indicate that the first contact typically requires intermittent attention and response from an agent during an interaction. Therefore, the messaging function server 140 may assign the first contact to a first agent that has capacity and a normal response time. During the interaction, the first contact may frequently respond to the first agent, and the response provided by the first agent may be read immediately after the first agent sends the response a few seconds / minutes. Therefore, the contact activity monitor 220 may update the conversation pattern for the first contact to indicate that, in fact, the first contact requires continuous attention and response from an agent during the interaction. Therefore, when the first contact next attempts to initiate an interaction, the messaging function server 140 may assign the first contact to a second agent that has capacity and is responsive to the contact quickly.
[0083] Figure 3 A block diagram of an agent capacity prediction implementation 300 of the messaging feature server 140 of FIG. 1 in accordance with aspects of the present disclosure is depicted. The agent capacity prediction implementation 300 includes an agent utilization monitor 210, a contact activity monitor 220, a capacity predictor 310, and a routing engine 320. In general, the agent capacity prediction implementation 300 uses the agent utilization monitor 210 to determine agent capacity, uses the contact activity monitor 220 to determine conversational patterns for contacts, uses the capacity predictor 310 to predict which agent(s) are best to handle the interaction for the contact based on the agent capacity and the conversational patterns, and uses the routing engine 320 to assign contacts to agents based on the predictions.
[0084] The capacity forecaster 310 may include computing instructions stored in a memory and configured to execute one or more processors located within or communicatively coupled to the contact center system 100A and the message feature server 140. Typically, the capacity forecaster 310 may be integrated with the message feature server 140 (e.g., stored in a memory with the message feature server or as part of a computing instruction set or application). However, in some aspects, the capacity forecaster 310 may be implemented by a separate computing device (e.g., a server) that is communicatively connected to the message feature server 140 (e.g., via a network or cable connection).
[0085] As described above, the capacity forecaster 310 may generally receive input from the agent utilization monitor 210 and the contact activity monitor 220 to output data corresponding to contacts that enables the routing engine 320 to assign contacts to appropriate agents. More specifically, the capacity forecaster 310 may receive agent capacities from the agent utilization monitor 210 and conversation patterns from the contact activity monitor 220 as inputs, and the capacity forecaster 310 may output a prediction of the expected capacity of the agent. In some cases, the prediction of the expected capacity of the agent output by the capacity forecaster 310 may include and / or otherwise indicate a predicted compatibility between the agent and the contact (e.g., a predicted contact-agent match). Additionally, or alternatively, the capacity forecaster 310 may receive input from the agent utilization monitor 210 and the contact activity monitor 220, and the capacity forecaster 310 may output a predicted contact-agent match. Regardless, routing engine 320 can receive the output of capacity forecaster 310 , and routing engine 320 can continue to assign contacts to agents based on the output of capacity forecaster 310 .
[0086] As an example, a first contact may request to initiate an interaction, and the contact activity monitor 220 may determine a conversation pattern for the first contact. The agent utilization monitor 210 may also determine agent capacities of agents connected to the contact center system, including a first agent and a second agent. The capacity predictor 310 may receive the conversation pattern for the first contact and the agent capacities of agents connected to the contact center system, including the first agent and the second agent, and the capacity predictor 310 may compare the agent capacity of the first agent with the agent capacity of the second agent. The capacity predictor 310 may determine that the capacity of the first agent is greater than that of the second agent, but either agent has sufficient capacity to handle additional interactions. In some examples, the capacity predictor 310 may compare the agent capacity of the first agent with the agent capacity of the second agent based on the conversation pattern for the first contact. For example, the capacity predictor 310 may analyze the first agent capacity and the second agent capacity in view of the conversation pattern for the first contact to determine predictions of expected capacity of the first and second agents, which indicate which agent will provide a service that better meets the requirements of the first contact. In this example, capacity forecaster 310 may determine forecasts of expected capacities for first and second agents that indicate the second agent is a better fit for the first contact even though the first agent had more capacity when the first contact requested to initiate the interaction. For example, the second agent may have a response time that is more consistent with the expected response time requirements of the first contact, or the second agent may have prior experience with the first contact. Regardless, as illustrated in this example, capacity forecaster 310 determines the optimal contact-agent pairing based on the agent capacities as well as the conversational patterns of the contact in a manner that facilitates a significant improvement in the contact-agent interaction and overall contact experience compared to conventional techniques.
[0087] The capacity predictor 310 may be trained using data corresponding to contacts and agents. That is, the capacity predictor 310 may be trained using a training data set that includes historical contact-agent interaction data, agent capacity, and conversational patterns of contacts. The historical contact-agent interaction data may include historical data related to contacts and / or the agent's interactions with the agent / contact during an interaction, such as message frequency, messages from the contact / agent, contextual information (e.g., country of contact, product purchased by the contact, number of previous interactions with the contact), and / or other suitable historical interaction data or combinations thereof. Using this training data set, the capacity predictor 310 may be trained to output a prediction of the expected capacity of the agent.
[0088] In general, the forecast output of capacity forecaster 310 may indicate the best contact-agent pairing that routing engine 320 may use to assign contacts to agents, and the output may also indicate / include patterns or weights corresponding to the interaction requirements of the contacts. For example, the output of capacity forecaster 310 may indicate that contacts have low responsiveness requirements for agents because contacts prefer to interact via text messages over the course of days. As another example, the output of capacity forecaster 310 may indicate that contacts have above average responsiveness requirements for agents because contacts prefer to interact via email over the course of minutes. In this way, capacity forecaster 310 and routing engine 320 may intelligently and appropriately allocate system resources by transferring and / or otherwise assigning contacts to more efficient agents based on the requirements of a particular contact.
[0089] Additionally, or alternatively, the capacity predictor 310 may be or include a machine learning (ML) model configured to receive inputs from the agent utilization monitor 210 and the contact activity monitor 220 and output a prediction of the expected capacity of the agent. For example, the capacity predictor 310 may include a machine learning model or an algorithm for training a machine learning model configured to receive historical contact-agent interaction data, agent capacity, and / or conversational patterns of contacts as inputs to output predictions of expected capacity of the agent and / or contact-agent pairings, as described herein. The capacity predictor 310 may be trained to determine optimal contact-agent pairings to be included as part of the expected capacity prediction of the agent. In various aspects, the machine learning model of the capacity predictor 310 may be trained using a reinforcement machine learning program or algorithm, a supervised machine learning program or algorithm, or an unsupervised machine learning program or algorithm. The machine learning program or algorithm may employ, for example, a state-action-reward-state (SARS) algorithm, which may be a state-action-reward-state-action (SARSA) algorithm. In some aspects, the artificial intelligence and / or machine learning based algorithms used to train the capacity predictor 310 can be included as a library. For example, the library can include a TENSORFLOW based library, a PYTORCH library, and / or a SCIKIT-LEARN Python library.
[0090] Machine learning applied to the capacity forecaster 310 may involve identifying and discerning patterns in existing data, such as historical contact-agent interaction data, agent capacity, and conversational patterns of contacts, in order to facilitate prediction or identification of subsequent data (such as predicting expected capacity of agents and / or contact-agent pairings). For example, a machine learning model (such as the machine learning model of the capacity forecaster 310 described herein) may be created and trained based on training data (e.g., data or 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 a contact center system, or other information or data described herein) as input 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 predicting expected capacity of agents and / or contact-agent pairings)).
[0091] Generally speaking, in reinforcement machine learning, the task of a machine learning program operating on a server, computing device, or other processor is to perform actions in an environment (e.g., predicted expected capacity of seats) in order to maximize a cumulative "reward". Reinforcement learning does not require the presentation of labeled input / output pairs, and similarly does not rely on explicit corrections for suboptimal actions. Instead, reinforcement learning focuses primarily on determining the balance between exploration of unknown relationships and exploitation of known relationships. Many reinforcement learning algorithms also use dynamic programming techniques, and the environment is often represented in the form of a Markov decision process (MDP).
[0092] In supervised machine learning, example inputs (e.g., "features") and their associated or observed outputs (e.g., "labels") may be provided to a machine learning program operating on a server, computing device, or other processor so that the machine learning program or algorithm determines or discovers rules, relationships, patterns, or other machine learning "models" that map these inputs (e.g., "features") to outputs (e.g., "labels"), such as by determining and / or assigning weights or other metrics to the model across its various feature categories. Subsequent inputs may then be provided to these rules, relationships, or other models so that the models are executed on the server, computing device, or other processor described herein to predict or classify an expected output, score, or value based on the discovered rules, relationships, or models.
[0093] In unsupervised machine learning, a server, computing device, or other processor may need 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, e.g., a model that provides sufficient predictive accuracy given test-level or production-level data or inputs.
[0094] Reinforcement learning, supervised learning, and / or unsupervised machine learning may also include retraining, relearning, or otherwise updating a model with new or different information, which may include information received, ingested, generated, or otherwise used over time. The disclosure herein may use one or more of such reinforcement, supervised, or unsupervised machine learning techniques.
[0095] It is to be appreciated that the capacity forecaster 310 may be used to determine a forecast of expected agent capacity using artificial intelligence (eg, a machine learning model of the capacity forecaster 310 ) or in alternative aspects without using artificial intelligence.
[0096] Figure 4An example interaction sequence 400 between agent A1 and multiple contacts C1, C2, C3 is illustrated, wherein, according to aspects of the present disclosure, the waiting time experienced by agent A1 and contacts C1, C2, C3 can be identified and minimized through the techniques of the present disclosure. Figure 4 The example interaction sequence 400 illustrated in includes agent A1 interacting with three contacts C1, C2, C3 over a time period from t1 to t20 (e.g., agent A1's shift). Agent A1 may interact with the three contacts C1, C2, C3 across three separate connections of a single communication channel (e.g., text message, email, web chat, etc.) or across three separate connections of multiple different communication channels. For example, agent A1 may interact with contact C1 across a text message communication channel, while agent A1 communicates with contacts C2 and C3 through separate email accounts. As another example, agent A1 may communicate with all contacts C1, C2, C3 through text messaging to each contact's C1, C2, C3 cell phone. As another example, agent A1 may communicate with all contacts C1, C2, C3 through multiple channels for each contact C1, C2, C3 (e.g., web chat, text, video, email, and / or voice, etc.).
[0097] In any case, if Figure 4 As illustrated, each of the time periods t1-t20 may represent a 30 second time interval, such that the entire time period extending from t1-t20 represents 10 minutes. Of course, it should be understood that the time period t1-t20 may represent any suitable time period (e.g., seconds, minutes, hours, etc.), such that the entire time period extending from t1-t20 represents any suitable time period. In the example interaction sequence 400, both contact C1 and contact C3 may initially respond to the agent, as indicated by the "x" indicators or other patterns in boxes 420 and 430. It should be understood that the indicators and / or patterns in boxes 420, 430, and 440 generally represent that the contact C1, C2, C3, or agent A1 interacted as part of the respective interaction, such that any box including such similar indicators and / or patterns (e.g., the contact C1 box at time t3, t5, t17, and t19, etc.) similarly represents that the corresponding contact C1, C2, C3, or agent A1 interacted as part of the respective interaction.
[0098] Agent A1 may respond to one or both of contacts C1, C3 during time period t1, as shown by similar indicators and / or patterns in box 440. Thereafter, the responsiveness of all contacts C1, C2, C3 may vary. For example, contact C1 initially responds during time periods t1, t3, and t5, and then has long gaps in responsiveness until times t17 and t19. Contact C2 continues to respond at times t2, t4, t6, t8, and t10 at the start of the time period, but does not respond for the remainder of the time period extending from t11-t20. Contact C3 is generally less responsive than contacts C1 or C2, and interacts with agent A1 only at times t1, t8, and t16.
[0099] Therefore, if Figure 4 As shown, agent A1 ends up having a lot of idle time while waiting for any of contacts C1, C2, C3 to respond. That is, agent A1 is idle during time periods t7 (as indicated by the indicator and / or pattern in box 450), t9, t11-t15, t18, and t20. It should be understood that the "w" indicator or other pattern in box 450 generally indicates that agent A1 is waiting or idle (e.g., not interacting as part of the corresponding interaction), so that any box including such a similar indicator and / or pattern (e.g., agent A1 box at times t9, t11-t15, t18, and t20) similarly indicates that agent A1 is idle. Therefore, in the example interaction sequence 400, agent A1 is idle during 45% of agent A1's shift, and therefore agent A1's time is not fully utilized.
[0100] In order to minimize Figure 4 In order to solve the problem of underutilization similar to that illustrated in the example interaction sequence 400 of , the systems and methods of the present disclosure can optimize the interactions of agents' assignments so as to provide agent A1 with opportunities for additional interactions if agent A1 is idle for a long period of time (e.g., t11-t15 of agent A1) in which agent A1 could have interacted with the contact. For example, Figure 2 and Figure 3 The agent utilization monitor 210 may determine that at least the interaction with contact C1 has become dormant before t11, leaving agent A1 with capacity for new active interactions. Figure 3 The capacity predictor 310 of the present disclosure can identify a contact (e.g., C4) having a conversation pattern determined by the contact activity monitor 220 that is well aligned with the agent's A1 capacity, as described herein, and the routing engine 320 can assign contact C4 to agent A1. In this way, the agent's A1 utilization can be increased because, for example, during a time period extending from t11-t15 when agent A1 would otherwise be idle, the systems and methods of the present disclosure enable agent A1 to interact with contact C4.
[0101] Figure 5 Another example interaction sequence 500 between multiple agents A1, A2, A3 and multiple contacts C1, C2, C3 is illustrated, wherein the waiting time experienced by each agent A1, A2, A3 and each contact C1, C2, C3 can be identified and minimized through the techniques and according to aspects of the present disclosure. Figure 5 The example interaction sequence 500 illustrated in FIG. 5 includes three agents A1, A2, A3 interacting with three contacts C1, C2, C3 across a time period from t1 to t24 (e.g., a 24-hour period including the shifts of A1, A2, A3 for each agent). Agents A1, A2, A3 may interact with the three contacts C1, C2, C3 across three separate connections of a single communication channel (e.g., text messaging, email, Internet chat, etc.) or across three separate connections of multiple different communication channels. For example, agent A1 may interact with contact C1 across a text messaging communication channel, while agent A1 communicates with contacts C2, C3 through their separate email accounts. As another example, agent A3 may communicate with all contacts C1, C2, C3 through telephone text messaging to each contact C1, C2, C3. As another example, agent A1 may communicate with all contacts C1 , C2 , C3 via multiple channels (eg, web chat, text, video, email, and / or voice, etc.) for each contact C1 , C2 , C3 .
[0102] In any case, if Figure 5 As illustrated, each of the time periods t1-t24 may represent a time interval of 1 hour, such that the entire time period extending from t1-t24 represents 24 hours. Of course, it should be understood that the time period t1-t24 may represent any suitable time period (e.g., seconds, minutes, hours, etc.), such that the entire time period extending from t1-t24 represents any suitable time period. In the example interaction sequence 500, contact C1 may initially respond to agent A1, as shown by the indicators and / or patterns in box 510. It should be understood that the indicators and / or patterns in box 510 generally represent that the contact C1, C2, C3 or agents A1, A2, A3 interact as part of the corresponding interaction, such that any box including such similar indicators and / or patterns (e.g., contact C2 boxes at times t4, t9, t17, etc.) similarly represents that the corresponding contact C1, C2, C3 or agents A1, A2, A3 interact as part of the corresponding interaction.
[0103] Agent A1 may respond to contact C1 during time period t1, and thereafter, all contacts C1, C2, C3 may be almost unresponsive until the transition period of agent A1's shift ends between time periods t8 and t9, at which time agent A2 assumes responsibility for agent A1's interactions with each of contacts C1, C2, C3. Each contact C1, C2, C3 may similarly be almost unresponsive to agent A2 until the transition period of agent A2's shift ends between time periods t16 and t17, at which time agent A3 assumes responsibility for agent A3's interactions with each of contacts C1, C2, C3. Furthermore, each contact C1, C2, C3 may similarly be almost unresponsive to agent A3 until agent A3's shift ends at time period t24.
[0104] Due to the lack of responses from contacts C1, C2, C3, each of agents A1, A2, A3 is idle for at least 50% of their respective shifts. That is, agent A1 is idle during time periods t2 (as indicated by the indicator and / or pattern in box 520), t3, and t5-t7. It should be understood that the indicator and / or pattern in box 520 generally indicates that agent A1 is idle (e.g., not interacting as part of the corresponding interaction), so that any box including such similar indicators and / or patterns (e.g., agent A2 box at time t12-t15, etc.) similarly indicates that agents A1, A2, A3 are idle. In addition, agent A2 is idle during time period t12-t15, and agent A3 is idle during time periods t18, t19, and t22-t24. Therefore, in the example interaction sequence 500, each agent's A1, A2, A3 time is underutilized.
[0105] To minimize the Figure 5 To solve the problem of underutilization as illustrated in the example interaction sequence 500 of FIG. 5 , the system and method of the present disclosure can optimize the interactions assigned to each agent A1, A2, A3 to provide agents A1, A2, A3 with opportunities to conduct additional interactions when agents A1, A2, A3 are idle for a long time when they could have interacted with the contact (e.g., t12-t15 of agent A2). For example, Figure 2 and Figure 3 The agent utilization monitor 210 may determine that at least the interactions with contacts C2 and C3 have been dormant for agent A3 before t22, leaving agent A3 with the capacity to conduct one or more new active interactions. Figure 3The capacity predictor 310 of the present disclosure may identify contacts (e.g., C4 and C5) having conversation patterns that are well aligned with the agent's A3 capacity as determined by the contact activity monitor 220, as described herein, and the routing engine 320 may assign contacts C4, C5 to agent A3. In this way, the agent's A3 utilization may be increased because, for example, during a time period extending from t22-t24 when agent A3 would otherwise be idle, the systems and methods of the present disclosure enable agent A3 to interact with contacts C4, C5.
[0106] Figure 6 Another example interaction sequence 600 between two agents A1, A2 is illustrated, each agent A1, A2 handling multiple contacts C1-C6 simultaneously, wherein the waiting time experienced by each agent A1, A2 and each contact C1-C6 can be identified and minimized by the techniques of the present disclosure according to aspects of the present disclosure. Figure 6 The example interaction sequence 600 illustrated in FIG. 6 includes two agents A1, A2, each of whom interacts with three contacts C1-C6 over a time period from t1 to t20 (e.g., a shift or a portion of a shift of agents A1, A2). Agents A1, A2 may interact with the three contacts C1-C6 across three separate connections of a single communication channel (e.g., text message, email, internet chat, etc.) or across three separate connections of multiple different communication channels. For example, agent A1 may interact with contact C1 across a text message communication channel, while agent A1 communicates with contacts C2, C3 through separate email accounts of the contacts. As another example, agent A2 may communicate with all contacts C4, C5, C6 through text messaging to the phone of each contact C4, C5, C6. As another example, agent A1 may communicate with all contacts C1, C2, C3 through multiple channels for each contact C1, C2, C3 (e.g., web chat, text, video, email, and / or voice, etc.).
[0107] In any case, if Figure 6As illustrated, each of the time periods t1-t20 may represent a 30 second time interval, such that the entire time period extending from t1-t20 represents 10 minutes. Of course, it should be understood that the time period t1-t20 may represent any suitable time period (e.g., seconds, minutes, hours, etc.), such that the entire time period extending from t1-t20 represents any suitable time period. In the example interaction sequence 600, each of the contacts C1, C2, C3 may initially respond to agent A1, as represented by the indication and / or pattern in box 610. It should be understood that the indicators and / or patterns in box 610 generally indicate that contacts C1-C6 are interacted as part of the corresponding interaction, such that any box including such similar indications and / or patterns (e.g., a contact C4 box at time t1, etc.) similarly indicates that the corresponding contacts C1-C6 are interacted as part of the corresponding interaction.
[0108] Agent A1 may respond to contact C1 at time t1, and may continue to respond to C1 at time t2 (e.g., agent A1's x at time t1 and t2 C1 ), so that after contact C2 sends an initial query to agent A1 at time t1, contact C2 waits for agent A1 to respond at time t2. Contact C3 may continue to send longer initial queries to agent A1 at times t1 and t2. Contact C2 waiting for agent A1's response at time t2 is represented by the indication and / or pattern in box 620. It should be understood that the indicators and / or patterns in box 620 generally represent that contacts C1-C6 are waiting for responses from agents A1, A2, while agents A1, A2 are responding to another contact C1-C6 as part of a corresponding interaction. Therefore, any box that includes such a similar indication or pattern (e.g., contact C3 boxes at times t3, t4, t7-t14, t17-t20, etc.) similarly represents that the corresponding contact C1-C6 is waiting for responses from agents A1, A2 as part of a corresponding interaction. Regardless, agent A1 may be occupied responding to contacts C1 , C2 , C3 throughout the time period extending from t1 to t20 , but contacts C1 , C2 , C3 may still spend a significant amount of time waiting for a response from agent A1 .
[0109] In contrast, contacts C4, C5, C6 may spend very little time responding and / or waiting for a response from agent A2. In fact, agent A2 may provide a final response to contact C6 at time t4, after which agent A2 is idle during a time period extending from t5 (as indicated by the indication and / or pattern in box 630) to t20. It should be understood that the indication and / or pattern in box 630 generally indicates that agent A2 is idle (e.g., not interacting as part of a corresponding interaction), so that any box including such a similar indication and / or pattern (e.g., the agent A2 box at times t6-t20) similarly indicates that agent A2 is idle. Therefore, and due to the lack of response to contacts C4, C5, C6, agent A2 may be idle for 80% of its A2 corresponding shift. Therefore, in the example interaction sequence 600, agent A2's time is underutilized, while agent A1 is overloaded due to interactions corresponding to contacts C1, C2, C3. In other words, contacts C1-C6 are not optimally distributed between agents A1, A2.
[0110] In order to minimize Figure 6 In order to solve the problem of non-optimal distribution similar to that illustrated in the example interaction sequence 600 of FIG, the systems and methods of the present disclosure can optimize the interactions assigned to each agent A1, A2 to provide agents A1, A2 with opportunities to conduct additional interactions and / or release interactions because agent A2 is idle for a considerable period of time (e.g., t5-t20 for agent A2) during which agent A2 could have interacted with contacts C1, C2, C3. For example, Figure 2 and 3 The agent utilization monitor 210 in FIG. 3 may determine that at least the interaction with any one of contacts C4, C5, C6 has become dormant for agent A2, for example, by t5, t6, or t7, leaving agent A2 with capacity for one or more new active interactions. Thus, the capacity predictor 310 of FIG. 3 may identify contacts (e.g., C1, C2, or C3) having conversation patterns determined by the contact activity monitor 220 that are well aligned with the agent's A2 capacity, as described herein, and the routing engine 320 may assign one or more of the contacts C1, C2, C3 to agent A2, or reassign one or more of the contacts C1, C2, C3 from agent A1 to agent A2. In this way, the agent's A2 utilization may be increased because, for example, the systems and methods of the present disclosure enable agent A2 to interact with contacts C1, C2, or C3 during a time period extending from t5 to t20 when agent A2 would otherwise be idle. In this way, the A1 utilization of agents may be reduced as the systems and methods of the present disclosure allow for more balanced utilization among agents in a contact center system.
[0111] To prove this, Figure 7The present disclosure is illustrated in accordance with various aspects of Figure 6 Example optimized interaction sequence 700 between two agents A1, A2 and multiple contacts C1-C6. Figure 6 Unlike the example interaction sequence 600, the example optimized interaction sequence 700 features agent A1 interacting with contacts C1, C4, and C5, and agent A2 interacting with contacts C2, C3, and C6. Figure 7 As shown, assigning contacts C1-C6 in this manner results in agents A1 and A2 being idle for only 20% and 30% of their respective shifts, respectively. Figure 3 The capacity forecaster 310 can be based on historical contact-agent interaction data (such as Figure 7 ) to output Figure 7 The selected pairing shown in .
[0112] That is, each of contacts C1, C4, and C5 initially responds to agent A1 (as indicated by the indications and / or patterns in block 710). It should be understood that the indications and / or patterns in block 710 generally indicate that contacts C1-C6 are interacted as part of a corresponding interaction, and thus, any block including such similar indications and / or patterns (e.g., a contact C4 block at time t1, etc.) similarly indicates that the corresponding contacts C1-C6 are interacted as part of a corresponding interaction. Thereafter, contacts C4 and C5 stop responding to agent A1, thereby making agent A1 available to respond to contact C1 during the remainder of agent A1's shift (from time t5 to t20).
[0113] Due to the example optimized interaction sequence 700 as compared to the interaction sequence 600, the waiting time for each of the contacts C1, C4, and C5 may also be significantly reduced because no contact C1, C4, C5 is forced to wait for more than 2 consecutive time periods (or 2 time periods in total), as indicated by the indicators and / or patterns in the box 720. It should be understood that the indicators and / or patterns in the box 720 generally indicate that the contacts C1-C6 are waiting for the response of the agents A1, A2, while the agents A1, A2 are responding to another contact C1-C6 as part of the corresponding interaction. Therefore, any box including such similar indicators and / or patterns (e.g., the contact C5 box at time t2, t3, etc.) similarly indicates that the corresponding contact C1-C6 is waiting for the response of the agents A1, A2 as part of the corresponding interaction. Additionally, the agent A1 may also have a significantly reduced idle time, as indicated by the indicators and / or patterns in the box 730. It should be understood that the indications and / or patterns in box 730 generally indicate that agent A1 is idle (e.g., not interacting as part of a corresponding interaction), such that any boxes including such similar indications and / or patterns (e.g., agent A2 boxes at times t15-t20) similarly indicate that agent A2 is idle.
[0114] Similarly, each of contacts C2, C3, C6 may initially respond to agent A2, and agent A2 may continue to respond to each contact C2, C3, C6 in turn. The interaction of each of contacts C2, C3, C6 may continue based on the response provided by agent A2, and agent A2 may successfully handle each interaction before time t15. Therefore, contacts C2, C3, C6 may only wait for a maximum of 3 time periods each, and agent A2 may only be idle for 30% of agent A2's shift. Therefore, if Figure 7 As illustrated in the example optimized interaction sequence 700 of FIG. 1 , the systems and methods of the present disclosure optimize the communication between agents A1 and A2 by determining how to reorganize the contacts C1-C6 between agents A1 and A2 to simultaneously minimize the waiting time of each contact C1-C6 and reduce the total idle time of agents A1 and A2 during the time period extending from t1 to t20. Figure 6 An example interaction sequence 600 is shown.
[0115] Figure 8A method 800 of determining agent capacity for managing contact interactions according to various aspects of the present disclosure is illustrated. The method 800 includes algorithms or computational instructions that can be implemented in a contact center or contact center system (e.g., contact center system 100A) 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 capacity of agents), and / or determination / prediction of expected agent capacity, conversation patterns, and other data, 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 can be used for reinforcement learning algorithms, such as implemented on one or more processors and / or memories of the contact center system, or similar or related circuits for implementing functions associated with determining / predicting expected agent capacity and assigning contacts to agents in a contact center system (e.g., contact center system 100A). Additionally, one or more processors operating in accordance with computing instructions may implement functionality associated with determining / predicting expected agent capacity and assigning contacts to agents in a contact center system (e.g., contact center system 100A), as described herein, including for use in method 800. 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, e.g., across one or more computer buses and / or computer networks. In various aspects, the one or more processors implementing the algorithms of method 800 or otherwise executing computing instructions 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 communicatively coupled to the contact center system, a server (e.g., messaging feature server 140), a router, etc.
[0116] Method 800 includes obtaining, by a communication server (e.g., messaging feature server 140), first information of a contact (block 810). In certain aspects, the first information includes at least one of a message text and contextual data associated with the message text. The message text may include the text of a message sent by the contact during an interaction with an agent, and / or may include other data. For example, the message text may include a response time of the contact in the current interaction, a text prompt indicating a specific response time for the contact (e.g., "I will respond tomorrow" or "I'll get back to youin the evening"), a reason for the contact interaction (product damage vs. sales inquiry), and / or other similar data or a combination thereof. The contextual data associated with the message text may include the country / region of the contact, the customer type of the contact (e.g., a high priority contact, a low priority contact, a contact that requires a large number of interactions with an agent, etc.), a product purchased by the contact, the number of previous interactions with the contact, and / or other suitable data or a combination thereof.
[0117] The method 800 includes obtaining, by the communication server, active agent device information including at least a first agent identifier and a second agent identifier (block 820). In general, the active agent device information may be or include data indicating an agent who is online and is currently actively / dormantly interacting with a contact, or is waiting to receive an assigned contact to begin interacting. The agent identifier may be or include a unique identification number / code / etc. corresponding to each agent. For example, the first agent identifier may uniquely identify a first agent, and the second agent identifier may uniquely identify a second agent different from the first agent. In this way, the communication server may identify agents that may be available to interact with the contact.
[0118] The method 800 includes determining a first capacity for a first agent identifier based on a number of active interactions associated with the first agent identifier and a number of dormant interactions associated with the first agent identifier (block 830). Similarly, the method 800 includes determining a second capacity for a second agent identifier based on a number of active interactions associated with the second agent identifier and a number of dormant interactions associated with the second agent identifier (block 840). As described herein, the number of active interactions and the number of dormant interactions are considered together to determine agent capacities for first and second agents. The number of active interactions, the number of dormant interactions, and the number of total interactions (active and dormant interactions combined) allowed for an agent may vary from contact center to contact center and even from agent to agent. In one embodiment, active interactions may have a first weight, and dormant interactions may have a second weight that is lower than the first weight.
[0119] The method 800 includes determining a conversation pattern for the contact based on the first information (block 850). In some aspects, determining the conversation pattern for the contact includes obtaining historical contact-agent interaction data, and determining the conversation pattern for the contact based on the historical contact-agent interaction data. For example, in some aspects, the historical contact-agent interaction data is associated with the contact and may include data such as response time patterns associated and / or related to any of the following: previous interactions involving the contact 105, the current interaction of the contact 105, the contact 105 or other contacts while participating in an interaction about a particular topic, the contact 105 after an appropriate number of messages and / or all contacts in a particular messaging channel, the contact 105 based on the number of previous interactions, the contact 105 based on the number of words used in the sentence, the contact 105 based on the sentiment of the interaction (e.g., via text analysis), the contact 105 based on the urgency of the issue discussed in the interaction, the interactions stored in the interaction queue, the primary language of the contact 105 and the conversational language of the contact 105, the device type of the device used by the contact 105 to conduct the interaction, and / or the interaction with the contact input error.
[0120] In some aspects, the historical contact-agent interaction data is based on information from at least one other contact, where the at least one other contact is different from the contact. For example, the historical contact-agent interaction data of these aspects may include response time patterns associated with and / or related to any of: contacts of a similar contact type as contact 105, contacts during the same day that contact 105 attempted to initiate an interaction with agents 130A-D, contacts during similar times (e.g., time of day or specific date / time) that contact 105 attempted to initiate an interaction with agents 130A-D, contacts in a specific messaging channel (e.g., text messaging, internet chat, email, etc.) that contact 105 attempted to initiate an interaction with agents 130A-D, and / or contacts that were interacted with using the same and / or similar device type as contact 105.
[0121] In some aspects, determining the conversation mode also includes determining an interaction handling time for the contact. The interaction handling time may generally correspond to the amount of time that the contact will engage in an interaction with the agent before the interaction is terminated. For example, a first contact that typically engages in interactions lasting more than 1 hour may have an associated interaction handling time of more than 1-2 hours. A second contact that typically engages in interactions lasting less than 10 minutes may have an associated interaction handling time of 5-10 minutes.
[0122] In certain aspects, determining the conversation pattern further comprises determining a response rate variability of a contact. The response rate variability may generally correspond to a variation in the length of time between contact responses. In other words, the response rate variability indicates a variation in the response time between subsequent responses of a single user as the conversation progresses with the agent. For example, if a first contact consistently responds to the agent quickly during a first phase of the interaction, but responds slowly during a second phase of the interaction, and then responds quickly again during a third phase of the interaction, the response rate variability of the contact may be relatively high. Conversely, if a second contact consistently responds to the agent during every 5 minute interaction, the response rate variability of the second contact may be relatively low.
[0123] In some aspects, determining the conversation pattern also includes training a machine learning model (e.g., capacity predictor 310) based on a training data set including historical contact-agent interaction data. In one example, the machine learning model can be configured to output a prediction of the expected capacity of an agent. In another example, the machine learning model can be configured to output a selected agent to pair with an available contact.
[0124] In certain aspects, determining the conversation pattern further comprises determining a response lag time measure based on historical contact-agent interaction data associated with a contact type of the contact. The response lag time measure may generally correspond to a consistent response type (e.g., short, intermittent, versus longer time range) for a particular contact based on the type of contact interacted with the agent. The response lag time measure may be roughly predicted based on historical contact-agent interaction data associated with the contact, which may associate the contact with a particular contact type having a known response lag time measure. For example, if the historical contact-agent interaction data associated with the contact indicates that the contact may belong to a contact type that engages in interaction late at night, and indicates that such a contact type generally has a response lag type that is consistent with infrequent, longer time range responses over several hours, then the response lag time measure may be associated with the contact.
[0125] The method 800 includes initiating a comparison of the first capacity and the second capacity based on the conversation pattern (block 860). In addition, the method 800 includes assigning the contact to either the first agent identifier and the second agent identifier based on the comparison (block 870). As part of block 870, assigning the contact may also include establishing a connection between a first device associated with the contact and a second device associated with the first agent identifier or the second agent identifier.
[0126] In some aspects, the method 800 also includes establishing a communication channel across the connection, obtaining, at the second device, a first message sent by the first device, and obtaining, at the first device, a second message sent by the second device. Further, in these aspects, the method 800 also includes, after obtaining, at the second device, the first message sent by the first device, obtaining second information of the contact. The method 800 may then also include determining an updated capacity of an agent identifier associated with the second device based on the second information of the contact.
[0127] In some aspects, the method 800 may also include, after obtaining at the second device the first message sent by the first device, determining an expected wait time for obtaining at the second device a third message sent by the first device. In these aspects, the expected wait time may be based on the first message. In addition, the method 800 may also include determining an updated capacity for an agent identifier associated with the second device based on the expected wait time.
[0128] In certain aspects, the contact is communicatively coupled to the contact center, and the contact can send one or more messages to a third device associated with the third agent identifier.
[0129] As previously mentioned, contact response times in interactions (e.g., instant messaging, live chat with an agent) depend on several variables, such as time of day, query resolution / response urgency of the contact, season, customer typing skills, etc. The ever-increasing number of contact-agent interactions recorded every day enables the systems and methods of the present disclosure to model these response times without explicitly extracting features of these interactions, but rather using only response time patterns observed for multiple (e.g., thousands or millions) contacts over a substantial period of time (e.g., several months).
[0130] Specifically, learning from response time patterns can be used to optimize representative scheduling in message delivery. Fig. 9 A method 900 of allocating contacts to agents in a manner that multiple contacts can be assigned to the same agent without compromising the agent's ability to effectively respond to each contact in accordance with various aspects of the present disclosure is illustrated. As an example, assume that the minimum contact message handling time may be 30 seconds, and the maximum number of contact inquiries that an agent can handle in one minute is 2. In this example, a 1-minute agent time slot can accommodate 2 contacts or a single contact whose response time is within 1 minute of the previously responded inquiry.
[0131] Fig. 9The method 900 can generally assign multiple contacts to the same agent based on reinforcement learning. A contact-agent pairing selection module can be trained to utilize such reinforcement learning with historical contact-agent interaction data and contact response times, and the module can be trained to assign incoming contacts to available agents in a manner that minimizes time slot gaps across all available agents, as previously described.
[0132] Method 900 may include obtaining contact center context data associated with a contact center system (block 910). Generally speaking, the contact center context data may include any of: (i) a number of active conversations associated with one or more of a plurality of agents in the contact center system, (ii) a number of dormant conversations associated with one or more of a plurality of agents in the contact center system, (iii) a pattern associated with one or more of a plurality of contacts handled by the contact center system, and / or (iv) a message text associated with one or more of a plurality of contacts handled by the contact center system.
[0133] The method 900 may include training a reinforcement learning model based on a training data set (block 920). In one example, the training data set includes historical contact-agent interaction data associated with a contact center system. In other examples, the training data set may include synthetic data, data that is a simulation of a contact center environment, and / or data simulated from historical contact-agent interaction data associated with a contact center system.
[0134] In one example, the reinforcement learning model can be configured to output a prediction of an expected capacity of an agent. In another example, the reinforcement learning model can be configured to output a contact-agent pairing selection. In some aspects, training the reinforcement learning model also includes determining a time period associated with an average agent response time for each single contact-interaction. Further, in these aspects, the training data set includes a time period, and the time period can be one of the following: 15 seconds, 30 seconds, 45 seconds, and 1 minute. Of course, it should be understood that these time periods are for purposes of discussion, and any suitable time period associated with an average agent response time for each single contact-interaction can be included as part of the training data set for the reinforcement learning model.
[0135] In some aspects, training the reinforcement learning model further comprises determining at least one positive reward based on at least one of: an agent utilization value and a length of the agent utilization. Further, in these aspects, the training data set comprises at least one positive reward, and the at least one positive reward may comprise (i) an allocated reward based on a number of utilized time slots of the corresponding agent, and (ii) a time difference between a first time value that the corresponding agent is available and a second time value that the corresponding agent handles a final interaction. Additionally, or alternatively, the at least one positive reward may comprise a total agent reward, comprising a sum of allocated rewards for each corresponding agent.
[0136] In certain aspects, training the reinforcement learning model further comprises determining at least one negative reward based on at least one of: an agent wait time and a contact wait time. In addition, the training data set can include at least one negative reward.
[0137] The method 900 may include obtaining a first state of the contact center system (block 930). The first state may include (i) a utilization value for each of a plurality of agents, and (ii) an indication of at least one available contact. In some aspects, the method 900 also includes determining a contact arrival event or an agent state change event. Further, in these aspects, obtaining the first state of the contact center system occurs after determining the contact arrival event or the agent state change event.
[0138] The method 900 may include assigning at least one available contact to a first agent of the plurality of agents based on using the first state as an input to a reinforcement learning model trained to output an expected capacity for each of the plurality of agents (block 940). In general, as previously described, the reinforcement learning model is configured to assign incoming contacts to available agents in a manner that minimizes the gaps in time slots between all available agents. More specifically, the reinforcement learning model may be configured to determine a calculated reward to ensure that sparsity between the first available time slot of each agent and the last assigned time slot of each agent is low and that a maximum number of contacts are assigned to each agent. In this manner, the reinforcement learning model may achieve a well-distributed assignment of contacts between / among the available agents that minimizes the gaps in time slots between all available agents.
[0139] The method 900 may include outputting a second state of the contact center system based on assigning the at least one available contact to the first agent (block 950). Thus, for example, during subsequent executions of the method 900, the reinforcement learning model may receive the second state of the contact center system as input in order to output the expected capacity of each agent. Thus, as contacts arrive at the contact center system for assignment, the reinforcement learning model may continue to receive updated system states (e.g., first state, second state, etc.) after each iteration of the method 900 in order to assign the incoming contacts to available agents in a manner that minimizes time slot gaps between all available agents based on the latest system state.
[0140] Additional considerations
[0141] 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 generation of output data may be implemented in hardware or software. For example, specific electronic components may be employed in a messaging function server or similar or related circuits to implement the functions associated with seat capacity determination according to the present disclosure as described above. Alternatively, one or more processors operating in accordance with instructions may implement the functions associated with seat capacity determination according to the present disclosure as described above. If this is the case, then within the scope of the present disclosure, these instructions may be stored on one or more non-transitory processor-readable storage media (e.g., disks or other storage media), or sent to one or more processors via one or more signals embodied in one or more carriers.
[0142] 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 is not 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 in a specific module, the functions performed at a specific module described herein may be performed in 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.
[0143] The scope of the present disclosure is not limited by the specific aspects described herein. In fact, in addition to those aspects described herein, various other aspects of the present disclosure and modifications to the present disclosure will be apparent to those of ordinary skill in the art from the foregoing description and the accompanying drawings. Therefore, these 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 for at least one specific purpose in at least one specific environment, those of ordinary skill in the art will recognize that its usefulness is not limited thereto, and the present disclosure can be beneficially implemented for any number of purposes in any number of environments.
Claims
1. A method comprising: Obtaining first contact information from the communication server; The communication server obtains active agent device information including at least a first agent identifier and a second agent identifier; determining a first capacity of the first agent identifier based on a number of active interactions associated with the first agent identifier and a number of dormant interactions associated with the first agent identifier; determining a second capacity of the second seat identifier based on a number of active interactions associated with the second seat identifier and a number of dormant interactions associated with the second seat identifier; determining a conversation mode of the contact based on the first information; Initiating a comparison between the first capacity and the second capacity based on the conversation mode; as well as assigning the contact to either of the first agent identifier and the second agent identifier based on the comparing, in, Assigning the contact includes establishing a connection between a first device associated with the contact and a second device associated with the first agent identifier or the second agent identifier.
2. The method according to claim 1, further comprising: establishing a communication channel across the connection; obtaining, at the second device, a first message sent by the first device; as well as A second message sent by the second device is obtained at the first device.
3. The method according to claim 2, further comprising: After obtaining the first message sent by the first device at the second device, obtaining second information of the contact; as well as An updated capacity of the agent identifier associated with the second device is determined based on the second information of the contact.
4. The method according to claim 2, further comprising: After obtaining the first message sent by the first device at the second device, determining an expected waiting time for obtaining a third message sent by the first device at the second device, wherein the expected waiting time is based on the first message; and An updated capacity for the agent identifier associated with the second device is determined based on the expected wait time.
5. The method according to claim 1, wherein: Determining the conversation mode of the contact includes: Obtain historical contact-agent interaction data; and The conversational pattern of the contact is determined based on the historical contact-agent interaction data.
6. The method according to claim 5, wherein: The historical contact-agent interaction data is associated with the contact.
7. The method according to claim 5, wherein: The historical contact-agent interaction data is based on information from at least one other contact, the at least one other contact being different from the contact.
8. The method according to claim 1, wherein: Determining the conversation mode further includes: An interaction handling time is determined for the contact.
9. The method according to claim 1, wherein: Determining the conversation mode further includes: A response rate variability of the contact is determined.
10. The method according to claim 1, wherein: Determining the conversation mode further includes: Train the machine learning model based on a training dataset consisting of historical contact-agent interaction data, The machine learning model is configured to output a prediction of the expected capacity of the agents.
11. The method according to claim 1, wherein: Determining the conversation mode further includes: A response lag time measure is determined based on historical contact-agent interaction data associated with a contact type for the contact.
12. The method according to claim 1, further comprising: in, The first information includes at least one of a message text and context data associated with the message text.
13. The method according to claim 1, wherein: The contact is communicatively coupled to a contact center, and The contact sends one or more messages to a third device associated with a third agent identifier.
14. A method for assigning a contact to an agent, comprising: obtaining contact center environment data associated with a contact center system; training a reinforcement learning model based on a training data set including historical contact-agent interaction data associated with the contact center system, wherein the reinforcement learning model is configured to output contact-agent pairings; obtaining a first state of the contact center system, the first state comprising (i) a utilization value for each of a plurality of agents, and (ii) an indication of at least one available contact; assigning the at least one available contact to a first agent of the plurality of agents based on using the first state as an input to a reinforcement learning model trained to output contact-agent pairings for the plurality of agents; and Based on assigning the at least one available contact to the first agent, a second status of the contact center system is output.
15. The method according to claim 14, wherein: Training the reinforcement learning model further includes: Determine the time period associated with the average agent response time for each individual contact-interaction, and Wherein, the training data set also includes the time period.
16. The method according to claim 15, wherein: The time period is one of: 15 seconds, 30 seconds, 45 seconds and 1 minute.
17. The method according to claim 14, wherein: Training the reinforcement learning model further includes: determining at least one positive reward based on at least one of: a seat utilization value and a length of the seat utilization, and Wherein, the training data set also includes the at least one positive reward.
18. The method according to claim 17, wherein: The at least one positive reward comprises: (i) an allocation reward based on the number of utilized time slots of the corresponding agent, and (ii) a time difference between a first time value at which the corresponding agent was available and a second time value at which the corresponding agent handled the final interaction.
19. The method according to claim 18, wherein: The at least one positive reward comprises a total seat reward comprising a sum of the allocated rewards for each respective seat.
20. The method according to claim 14, wherein: Training the reinforcement learning model further includes: At least one negative reward is determined based on at least one of: agent wait time and contact wait time, and Wherein, the training data set also includes the at least one negative reward.
21. The method of claim 14, further comprising: Identify contact arrival events or agent state change events, and The first state of the contact center system is obtained after the contact arrival event or the agent state change event is determined.
22. The method according to claim 14, wherein: The contact center environment data includes any one of the following: (i) a number of active conversations associated with one or more agents of the plurality of agents in the contact center system, (ii) a number of dormant conversations associated with one or more agents of the plurality of agents in the contact center system, (iii) a pattern associated with one or more of a plurality of contacts handled by the contact center system, and (iv) message text associated with one or more contacts of a plurality of contacts handled by the contact center system.
23. A communication system comprising: one or more processors; as well as a non-transitory computer-readable medium coupled to the one or more processors and having stored thereon instructions that, when executed by the one or more processors, cause the communication system to: Get the first contact information, obtaining active agent device information including at least a first agent identifier and a second agent identifier, determining a first capacity for the first agent identifier based on a number of active interactions associated with the first agent identifier and a number of dormant interactions associated with the first agent identifier, determining a second capacity for the second agent identifier based on a number of active interactions associated with the second agent identifier and a number of dormant interactions associated with the second agent identifier, determining a conversation mode of the contact based on the first information, Initiating a comparison of the first capacity and the second capacity based on the conversation mode, and The contact is assigned to either the first agent identifier or the second agent identifier based on the comparison, wherein assigning the contact establishes a connection between a first device associated with the contact and a second device associated with the first agent identifier or the second agent identifier.
24. A tangible, non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a computing device, cause the computing device to: Get the first contact information; obtaining active agent device information including at least a first agent identifier and a second agent identifier; determining a first capacity of the first agent identifier based on a number of active interactions associated with the first agent identifier and a number of dormant interactions associated with the first agent identifier; determining a second capacity of the second seat identifier based on a number of active interactions associated with the second seat identifier and a number of dormant interactions associated with the second seat identifier; determining a conversation mode of the contact based on the first information; comparing the first capacity and the second capacity based on the conversation mode; as well as The contact is assigned to either the first agent identifier or the second agent identifier based on the comparison, wherein assigning the contact establishes a connection between a first device associated with the contact and a second device associated with the first agent identifier or the second agent identifier.