Intelligent matching of a user to an agent for a communication session

Embodiments for intelligently matching a user to an agent for a communication session are disclosed. In one example, a system that comprises a computing device with a processor and a memory. The system also includes machine-readable instructions stored in the memory, that when executed, cause the computing device to at least receive a request from a client device to communicate with an agent. The request is associated with a user account. Interaction data associated with the user account is identified. User scores for the user account are determined based on the interaction data. A user segment for the user account is determined based on the user scores. The system identifies an agent to participate in the communication session based on the agent being associated with the user segment and establishes the communication session between an agent client device of the agent and the client device.

BACKGROUND

Oftentimes, customers contact a customer service department in order to resolve a specific issue. Customers can contact the customer service department through a variety of different communication channels, such as a voice service, a messaging service, and other forms of communication. In some cases, agents are assigned to handle a set of specific tasks for the sake of efficiency and customer experience. Accordingly, an improved system and method for intelligently matching a user to an appropriate agent for a communication session is desired.

DETAILED DESCRIPTION

The embodiments of the present disclosure relate to intelligently matching users to an agent in a customer service context. In many cases, customers contact a customer service department in order to resolve a specific issue. Customers can contact the customer service department through a variety of different communication channels, such as a voice service, a messaging service, and other forms of communication. Agents can be assigned to handle a set of specific tasks for the sake of efficiency and customer experience. However, various agents can have different temperaments, and different personalities when conversing with customers in a variety of mental states. As such, some agents may not be well suited for resolving customer service issues of customers in certain moods, mental states, or with particular personalities.

For example, even though a first agent and a second agent may be capable of handling contract cancelations, the first agent may not be suited to handle irate, high-attention seeking customers. Instead, the first agent may be better suited to handle customers that are mild mannered or in a calm state of mind. The second agent may have a better performance record when dealing with irate, high-attention seeking customers. Thus, it would be preferable to route high-attention seeking customers to the second agent, when possible. As such, the embodiments have improved functionality to implicitly identify a mental state of a user and an agent from communication sessions. Therefore, some of the more practical applications of the various implementations would increase the likelihood that customers are routed to the agent best suited to communicate with them based on a present indication and/or prior indication of the mental state or mood of the customer.

Various embodiments of the present disclosure are directed to improved systems and methods for intelligently matching users to agents that are better suited for communicating with users in particular moods, mental states, or with certain personalities. As a result, the embodiments can involve classifying the users into certain user segments based on the messages (e.g., chat messages), the voice samples, feedback data (e.g., surveys) and other suitable communication input provided by the user during a customer service session. Likewise, the embodiments can involve classifying agents into certain user segments that the agents have a positive record of communicating and assisting the users with their issues. The agents can be classified by the messages (e.g., chat messages), voice samples, feedback data (e.g., surveys) and other suitable communication data associated with the agent during a customer service session. Additionally, the embodiments can dynamically update the user segment classifications and the agent segment classifications over time as more interactions occur with other users and agents. In the following discussion, a general description of the system and its components is provided, followed by a discussion of the operation of the same.

FIG.1depicts a networked environment100according to various embodiments. The networked environment100includes a computing environment103, a user client device106, and an agent client device109, which are in data communication with each other via a network112. The network112includes, for example, the Internet, intranets, extranets, wide area networks (WANs), local area networks (LANs), wired networks, wireless networks, or other suitable networks, etc., or any combination of two or more such networks. For example, such networks may comprise satellite networks, cable networks, Ethernet networks, and other types of networks.

Various applications and/or other functionality may be executed in the computing environment103according to various embodiments. Also, various data is stored in a data store115that is accessible to the computing environment103. The data store115may be representative of a plurality of data stores115as can be appreciated. The data stored in the data store115, for example, is associated with the operation of the various applications and/or functional entities described below.

The components executed on the computing environment103, for example, can include a communication service118, a matching service121, a scoring service124, one or more machine learning models127, and other applications, services, processes, systems, engines, or functionality not discussed in detail herein. The communication service118is executed to initiate and establish a communication session between a user and an agent. The communication service118can represent communication channels such as a webpage-based message service (e.g., instant message web page or instant messaging application), a mobile communication application (e.g., a voice or an instant messaging application), a virtual assistant chat service (e.g., Amazon's Alex®, Apple's Siri®, Apple's Business Chat, Google Assistant®), and other suitable communication services.

The matching service121is executed to match a user to an agent for a communication session. The matching service121can identify one or more potential agents for a user based on a combination of one or more of a set of user scores, a set of agent scores, a user segment classification, an agent segment classification, user interaction data, and other suitable data.

The scoring service124can collect data from the data store115and can generate new data elements, such as a set of user scores, a set of agent scores, user segment classifications, agent segment classifications, user characteristics, and other suitable data. In some embodiments, the scoring service124can analyze the collected data to determine a message intent, a message sentiment, an attitude, a mood, a feeling or other suitable data related to a mental state of the user. Thus, the scoring service124can be used to transform or interpret the raw collected data into an intent, a mood, an emotion, or a mental state of a person. In some embodiments, the scoring service124can use one or more machine learning models127to generate these new data elements.

The machine learning models127can be used to generate new data elements from interaction data, such as audio of communication sessions, chat messages, transcripts, and other suitable forms of interaction data. The machine learning models127can include natural language processing models such as Bidirectional Encoder Representations from Transformers (BERT), Robustly Optimized BERT Pretraining Approach (RoBerta), OpenAI's GPT2, and other suitable natural language processing models. The machine learning models127can also include sentiment analysis models that detect a sentiment and/or an emotion from audio and/or text data. Some other non-limiting examples of machine learning models127may include Naïve Bayes, discrete emotion models, and other suitable models.

The data stored in the data store115includes, for example, user accounts130and agent accounts133, and potentially other data. The user accounts130can represent an account, a profile, or an identifier of a user that is contacting or interacting with an entity (e.g., a customer service department of a company). The user account130can include user scores136, user segment classifications139, user characteristics140, user interaction data142, and other suitable data.

The user scores136can represent a set of one or more scores that reflect different degrees of user characteristics140exhibited from a communication session with the user. Some non-limiting examples of user characteristics140can include a sentiment, a mood, an emotion, a mental state, a behavior, and other suitable user characteristics140. As such, the scoring service124can generate one or more user characteristics140, such as an empathy score145, a behavior score148, an attitude score151, a sentiment score154, and other suitable user characteristics. In another example, the scoring service124can also include user characteristics such as financial stability, social media engagement, digital adoption, and/or other suitable user characteristics.

The user segment classification139can represent a group classification for a user based on a combination of one or more of the user scores136, the user interaction data142, the user characteristics140, and other suitable data. The user segment classification139can be useful for matching a user to an agent that is proficient in communicating and resolving issues with users in this classification. Some examples of a user segment classification139can include a high attention group, a low attention group, a premium status group, a mild-mannered group, and other suitable segment classifications.

The user characteristics140can include various mental states and attitudes of a user, such a sentiment, a mood, an emotion, a mental state, a behavior, and other suitable user characteristics140. Also, the user characteristics140can represent other characteristics such as the user being associated with a certain status group (e.g., VIP club, Premium group, etc.), user location, financial stability, social media engagement, and other suitable characteristics.

The user interaction data142can represent stored communication sessions associated with the user client device106in the computing environment103. The communication sessions can represent stored transcriptions of chat sessions and voice sessions that the user, via the user client device106, participated. The user interaction data142can also include other forms of engagement or interaction with the user, such as feedback surveys and follow-up sessions.

The agent accounts133can represent an account, a profile, or an identifier of an agent associated with the entity. For example, the agent can be an individual that works in a customer service department of the entity. The agent can be responsible for answers to questions for the general public through various communication channels, such as a phone system, a chat platform, a virtual assistant, an instant message platform, and other suitable communication channels.

The agent account133can include agent scores157, agent segment classifications160, agent interaction data163, and other suitable data. The agent scores157can represent a set of one or more scores that reflect different agent characteristics exhibited from the agent while communicating with various users. Some non-limiting examples of agent characteristics can include a sentiment, a mood, an emotion, a mental state, a behavior, and other suitable agent characteristics. As such, the scoring service124can generate one or more agent scores157, such as, for example an agent empathy score166, an agent behavior score169, an agent attitude score172, an agent sentiment score175, and other suitable agent characteristics.

The agent segment classifications160can represent a group classification for an agent based on a combination of one or more of the agent scores157, the agent interaction data163, and other suitable data. The agent segment classification160can be useful for matching an agent to a group of users that the agent is proficient in communicating and resolving issues. For example, some agents may be more proficient in handling high attention seeking or demanding users than other agents.

The agent interaction data163can represent stored communication sessions associated with the agent in the computing environment103. The communication sessions can represent stored transcriptions of chat sessions and/or voice sessions in which the agent participated. The agent interaction data163can also include other forms of engagement or interaction, such as feedback surveys and follow-up sessions collected regarding a session with the agent.

The user client device106may be configured to execute various applications such as a client application178and/or other applications. The client application178may also be executed in a user client device106, for example, to access network content served up by the computing environment103and/or other servers, thereby rendering a user interface on the display. To this end, the client application178may comprise, for example, a browser, a dedicated application, etc., and the user interface may comprise a network page, an application screen, etc. The user client device106may be configured to execute applications beyond the client application178such as, for example, email applications, social networking applications, word processors, spreadsheets, and/or other applications.

The client application178can represent a communication interface (e.g., for voice or chat sessions) for enabling a user to communicate through one or more different communication channels with an agent. For example, the client application178can be used by a user to initiate a communication session with an agent in a customer service group of an entity. The client application178can be used to initiate a chat messaging application, to initiate a phone application, and other suitable communication mediums via the communication service118.

The agent client device109may be configured to execute various applications such as an agent application181and/or other applications. The agent application181may be executed in an agent client device109, for example, to access network content served up by the computing environment103and/or other servers, thereby rendering a user interface on the display. To this end, the agent application181may comprise, for example, a browser, a dedicated application, etc., and the user interface may comprise a network page, an application screen, etc. The agent client device109may be configured to execute applications beyond the agent application181such as, for example, email applications, social networking applications, word processors, spreadsheets, and/or other applications.

The agent application181can represent a communication interface for enabling an agent to communicate through one or more different communication channels with a user. For example, the agent application181can be used by an agent to establish a communication session with a user that desires to contact an individual about a customer service issue. The agent application181can be used to initiate a chat messaging application, to initiate a phone application, and other suitable communication mediums via the communication service118.

Also, various data is stored in a client data store183and an agent data store186that are accessible to the user client device106and the agent client device109. The data stored in the client data store183and the agent data store186, for example, is associated with the operation of the various applications and/or functional entities associated with the user client device106and the agent client device109. The client data store183can include client data189associated with communication sessions or feedback data collected by the user client device106. The agent data store186can include agent data192associated with the communication sessions collected by the agent client device109.

Next, a general description of the operation of the various components of the networked environment100is provided. To begin, a user may desire to contact a customer service department of an entity. The user may initiate a chat session with the client application176. The client application176may transmit a request for a chat session to the communication service118.

The communication service118can identify that the user is associated with a user account130that has no previous interactions with the computing environment103. The communication service118can also identify a user intent, such as a reason for contacting the customer service department (e.g., product support, billing question, desire to cancel service or transaction account). The communication service118may determine a user intent from an initial message or from a selection of user interface components. Then, the communication service118can route the user client device106to a particular agent client device109of an agent that is capable of resolving the issue of the user.

During the chat session, the scoring service124can collect user interaction data142for processing. Each message during the chat session can be processed in order to generate user scores136, user characteristics140, agent scores157, and other suitable data. After the end of the chat session, the communication service118can solicit feedback data, such as from a survey or a follow-up contact. The data can be stored in the user account130for the user. Then, the scoring service124can generate a user segment classification139based on one or more of the user scores136, the user characteristics140, and user interaction data142.

Upon a subsequent interaction, the client application178can send a request to contact an agent. A user intent can be determined from an initial message or from a user interface selection, such as a desire to cancel a credit card account. The communication service118can identify the user account130as having at least one previous interaction with the computing environment103. The matching service121can retrieve data from the user account130, such as the user scores136, the user interaction data142, and/or user segment classification139. The user account data can be used to identify an appropriate agent account133.

In one non-limiting example, the user segment classification139of the user can be used for finding a corresponding agent segment classification160. For instance, the user segment classification139can be set to a High Attention group. A corresponding agent segment classification160may be an agent group for Premium clients. Within the Premium client group, the matching service121can identify an agent account133of an agent that is presently available and capable of handling users that want to cancel their credit cards. The matching service121can route the user client device106of the user to the agent client device109of the identified agent.

After the end of the chat session, the communication session can be stored as user interaction data142and/or agent interaction data163. Additionally, each message in the chat session can be processed for updating the user scores136, the agent scores157, the user characteristics140, and other suitable data.

Referring next toFIG.2A, shown is a flowchart that provides one example of the operation of a matching service121for matching a user to an agent in a customer service context according to various embodiments. In some alternative embodiments, the communication service118and/or the scoring service124may be involved in implementing portions of the operations forFIG.2A. It is understood that the flowchart ofFIG.2provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the matching service121as described herein. As an alternative, the flowchart ofFIG.2Amay be viewed as depicting an example of elements of a method implemented in the computing environment103(FIG.1) according to one or more embodiments.

Beginning with box203, the matching service121can receive a request from a user client device106to initiate a communication session with an agent via an agent client device109. For example, a user can use their user client device106to navigate to a web page of a company. The user can click on a “Chat with a customer representative” button on the web page. The click on the web page can generate a request to initiate a communication session with an agent. In some embodiments, the web page can generate one or more user interfaces for collecting user information, such as user credentials, a user identifier, a customer account, a payment identifier, a payment instrument, a customer order number, a customer receipt, or other suitable means for identifying a user.

In another example, the user may be identified by a token, a device identifier, and other user identifiers that can be communicated by the user client device106to the matching service121. The identifying information can be useful for identifying a particular user account130. The one or more interfaces can also be used to collect a particular issue or problem as the reason for the user initiating the communication session. For example, in a chat session, the user may enter the message “Cancel my credit card! I'm so frustrated!”

Next, in box206, the matching service121can determine whether the present session is the first time the user has interacted with the computing environment103. If this is not the first interaction with the computing environment103, the matching service121proceeds to “A,” which in turn proceeds to the boxes illustrated inFIG.3. In some embodiments, the determination can be based on whether there is a user account130for the user. If there is a user account130, the matching service121can determine if there are any previous communication sessions, which may be stored in the user interaction data142. If this is the first interaction with the computing environment103, the matching service121proceeds to the box209.

In box209, the matching service121can route or establish a communication session between the user client device106and an agent client device109. In some embodiments, the routing can be based on the issue that the user wants resolved. For example, in the initial message, the user indicated a desire to cancel a credit card. As such, the matching service121can identify the user intent from the initial message and route the user to an agent that is skilled in cancelling credit card accounts. The communication session between the user client device106and the agent client device109can be stored as user interaction data142. For instance, a transcript of a chat or vocal conversation can be stored for analysis.

After the termination of the session, the user client device106may provide feedback data regarding the communication session. For example, the user may fill out a survey for capturing the feelings or thoughts of the user as to their satisfaction for the interaction with the agent. The feedback data collected can also be stored as user interaction data142.

In box212, the matching service121can collect the user interaction data142from the communication session. The user interaction data142can be collected based on various criteria. Some example criteria can include customer interaction, upsell/cross sell opportunities and outcomes, issue resolution, follow-up conversation, survey responses from the user, and other suitable data related to the communication session. For example, the customer interaction can be stored as a transcript of a chat or vocal session between the user client device106and agent client device109. The upsell/cross sell opportunities can include a list of potential opportunities for upselling and cross selling that were discussed with the agent client device109. The outcome of the discussed opportunities can be stored. Issue resolution, follow-up conversations, and surveys can represent feedback data collected on the whether the desired issue was resolved and other user feedback on the interaction with the agent.

In box215, the matching service121can generate user scores136and user characteristics140from the initial interactions (e.g., from the user interaction data142) of the user client device106. The matching service121can involve receiving the user interaction data142as input data and transforming or interpreting the input data into user scores136or user characteristics140. Some examples of user characteristics140may include an intent classification (e.g., cancel card, product support, billing), a sentiment classification (e.g., positive, negative), user chat speed (e.g., fast, or slow), a vocal tone of user during a voice session, age group, a topic of interest (e.g., sports, favorite movies, favorite music, etc.), user location, and other suitable characteristics. In some embodiments, each message from the user client device106can be analyzed to generate a variety of user characteristics140and user scores136. For example, the initial chat message provided by the user client device106can be processed to generate user scores136for a variety of different categories, such as an empathy score145, behavior score148, an attitude score151, a sentiment score154, and other suitable scoring categories. For instance, the initial message from the previous example stated “Cancel my credit card. I don't need it.”

The matching service121can generate one or more user scores136(e.g., an empathy score145, a behavior score148, an attitude score151, a sentiment score154) based on the initial message. The set of user scores136can be stored in the user account130. A second message by the user client device106may be “Hurry up!” in the conversation. The second message can generate a second set of user scores136. Likewise, the matching service121can also generate or update a set of agent scores157for the agent based on responses provided by the communication session, which may be stored in the agent interaction data163.

In box218, the matching service121can generate a user segment classification139and in some cases, the matching service121may update the agent segment classification160. The user segment classification139can be determined based on a combination of one or more user scores136and other user characteristics. For example, a user account130that indicates a low empathy score, a negative sentiment classification, and a low interaction score may be classified as a “High Attention” user. Other examples of user segment classification139can include poor attitude, great attitude, high empathy, low empathy, low attention, irate mood, and other suitable classifications. The combinations of scores and user characteristics for each user segment classification139can vary and can be dynamically adjusted.

Likewise, the agent segment classification160can be updated based on the recent communication session with the user client device106. The user segment classification139can be stored in the user account130, and the agent segment classification160can be stored in the agent account133. Then, the matching service121can proceed to the end.

Referring next toFIG.2B, shown is a flowchart that provides one example of the operation of a matching service121for matching a user to agent in a customer service context according to various embodiments. It is understood that the flowchart ofFIG.2Bprovides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of the matching service121as described herein. As an alternative, the flowchart ofFIG.2Bmay be viewed as depicting an example of elements of a method implemented in the computing environment103(FIG.1) according to one or more embodiments. In some alternative embodiments, the communication service118and/or the scoring service124may be involved in implementing portions of the operations forFIG.2B.

Beginning with box225, it is assumed that a request to initiate a communication session has been received by a user client device106. It has been determined that the user client device106has had a previous interaction with the computing environment103. As a result, the matching service121can involve retrieving the user scores136and the user interaction data142from the data store115.

Next, in box228, the matching service121can involve retrieving the user segment classification139. In some embodiments, a combination of one or more of the user segment classification139, the user scores136, and the user interaction data142can be used for identifying one or more agent segment classifications160.

In box231, the matching service121can determine whether an agent is available in the one or more agent segment classifications160that have been selected. In some cases, if one or more agent segment classifications160are determined, then an order of priority can be determined among the one or more agent segment classifications160. If an agent is available in one or more of the agent segment classifications160, then the matching service121proceeds to box234. If an agent is not available in one or more of the agent segment classifications160, then the matching service121proceeds to box237.

In box234, the matching service121can route the user client device106to a special agent in the selected one or more agent segment classifications160. For example, the selected agent segment classification160can be a high attention group. If one of the five agents in the high attention group is available, then the matching service121will route the user client device106to the available agent in the high attention group. It is also assumed that the available agent is capable of resolving the specific issue that the customer desires to address. Thus, the high attention group can exist among the group of agents that handle card cancellations. After the communication session has terminated, then data can be collected from the communication session and stored in the user interaction data142.

In box237, the matching service121can route the user client device106to a default or any available agent that is capable of handling the requested task (e.g., card contraction, product support, billing). After the communication session has terminated, then data can be collected from the communication session and stored in the user interaction data142.

In box240, the matching service121can update the user scores136based on the recent communication session stored in the user interaction data142. The matching service121can also update the agent scores157based on the stored communication session as well. Then, the matching service121can proceed to the end.

Turning now toFIG.3, shown is a user table300of examples for transforming input data elements into output data elements that can be stored in the user account130. The user table300includes columns for the Interaction Type, Input Element, Transform Logic, and Output Data. The Interaction Type column can represent examples of different types of user interactions with the computing environment103. The Input Element can represent the input elements provided by the user client device106for the interaction type. The Transform Logic can represent various types of functionality for interpreting and/or transforming the input data of the interaction into an output data format. The Transform Logic can also represent functionality that involves extracting portions of the input data that are relevant for assigning user segment classifications139and agent segment classifications160. The Transform Logic can also represent one or more machine learning models127that employ natural learning processing. The Transform Logic can include determining a message intent, an intent list, an overall sentiment of a communication session, a message sentiment and other suitable natural language processing data elements. The Transform Logic can also include getting various user scores136and agent scores157. Some examples of scores can include a message confidence score, an empathy score145, a behavioral score148, an attitude score151, a sentiment score154, a financial stability score, social media score, and other suitable scores.

The output data can represent data generated from the Transform Logic functionality and is stored in the user accounts130. The output data can be used for assigning user segment classifications139and agent segment classifications160.

Moving on toFIG.4, shown is an agent table400of examples for transforming input data elements from an agent into output data elements that can be stored in the agent account133. The agent table400can include similar columns as the user table300. The agent table400illustrates different example interaction types from the user table300. For example, the agent table400also includes a follow-up entry for interaction type. The agent table400also illustrates that similar Transform Logic can be used to generate similar output data elements (e.g., agent scores157, message intent, message sentiment). Additionally, the output data elements can be used to determine one or more agent segment classifications160for an agent.

Turning now toFIG.5, shown is a segment table500of examples for determining user segment classifications139and/or agent segment classifications160. The segment table500includes columns for the Interaction Type, Input Element, Agent Segmentation, and User Segmentation. The Interaction Type column represents examples of different types of user interactions with the computing environment103. The Input Element represents the input elements provided by the user client device106for the interaction type.

The Agent Segmentation includes further columns for an empathy score145, a sentiment classification (e.g., Positive), an interaction score (e.g., 10), and an agent segment classification160(e.g., Premium). The User Segmentation column includes additional columns such as a user empathy score (e.g., 4), a sentiment classification (e.g., negative), an interaction score (e.g., 2), and a user segment classification139(e.g., High Attention).

In one non-limiting example, reference number503refers to a chat interaction between an agent and a client. The user segment classification139for a user account130is determined to be High Attention based on an empathy score of 4, a sentiment classification of Negative, and an interaction score of 2. The user scores136have been determined from the chat message in the Input element column. Next, the agent segment classification160is determined to be set to the Premium group. This agent segment classification160is based on an empathy score of 10, a sentiment classification of Positive, and an interaction score of 10. These agent scores157were generated from the reply chat message provided by the agent in the Input element column.

In another non-limiting example, multiple thresholds can be used in comparison to the user scores136in order to determine the user segment classification139. For instance, the empathy score145may need to meet a first threshold, such as a threshold score of 4, and the interaction score may need to meet a second threshold, such as a threshold score of 2, in order for the user segment classification139to be set to the High Attention group.

Next, moving toFIG.6, shown is a sequence diagram600of operations performed in the networked environment100. The sequence diagram600can represent an alternative embodiment fromFIGS.2A and2B. The sequence diagram600relates to matching a user to an agent in a customer service context based on the moods or mental states the user has exhibited in prior interactions according to various embodiments. In an alternative embodiment, the sequence diagram600can represent a method of an operations implemented in the networked environment100or the computing environment103.

To begin, at block603, the user could be a first time user with no previous interactions with the computing environment103. In one example, the user may navigate to an application or a web site of an entity. The user may desire to contact the customer service department through the application or the web site.

At block606, the user client device106transmits a request to the communication service118to open a chat session with an agent. The communication service118can identify a user account130associated with the request. The communication service118can determine that the user account130has no previous interactions with the computing environment103. Then, the communication service118can establish a chat session with an agent client device109.

At block609, the user client device106and the agent client device109can participate in a chat session. Block609acan represent the user client device106transmitting a message to the agent client device109that states “Cancel Card. I'm frustrated.” Block609bcan represent the agent client device109replying with a message that states, “I can help.”

At block612, after the end of the chat session, the scoring service124can process the user's message in order to generate user scores136and user characteristics140(e.g., message intent, survey results, message sentiment). The scoring service124can record the chat session in the user interaction data142and the agent interaction data163.

At block615, the user can request to initiate a subsequent chat session as a repeat user. The subsequent request may be related to the first issue addressed earlier or it can be related to a different issue of the user. The subsequent request can be identified from the client application178or a web site associated with the entity.

At block618, the user client device106transmits a request to the communication service118to open a chat session. The communication service118can identify a user account130associated with the request. The communication service118can determine that the user account130had a previous interaction with the computing environment103. Thus, the communication service118can transmit a request to the matching service121to retrieve one or more of the user scores136, the user segment classification139, and the user interaction data142for the user account130. The matching service121can use one or more of the retrieved data elements to identify an agent segment classification160.

At block621, the matching service121can identify an available agent in the selected agent segment classification160. In some embodiments, there may be a ranking of multiple agent segment classifications160. For example, the matching service121can attempt to identify an available agent in the High Attention group first. If there are no available agents, then the matching service121can attempt to identify an available agent in the Medium Attention group. If there are no available agents in either of these agent groups, then the matching service121can assign an agent from a default group.

At block624, the user client device106and the agent client device109can communicate in a chat session. Block624acan represent the user client device106stating, “Cancel my credit card. I'm frustrated.” Block624bcan represent the agent client device109stating, “I'm extremely sorry. I can help resolve this situation for you.”

At block627, the chat has been terminated. The chat session can be stored as user interaction data142and/or the agent interaction data163. The scoring service124can update the user scores136and the agent scores157based on one or more of the messages in the chat session. Then, the sequence600proceeds to the end.

A number of software components previously discussed are stored in the memory of the respective computing devices and are executable by the processor of the respective computing devices. In this respect, the term “executable” means a program file that is in a form that can ultimately be run by the processor. Examples of executable programs can be a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of the memory and run by the processor, source code that can be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory and executed by the processor, or source code that can be interpreted by another executable program to generate instructions in a random access portion of the memory to be executed by the processor. An executable program can be stored in any portion or component of the memory, including random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, Universal Serial Bus (USB) flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components.

The flowcharts and sequence diagram ofFIGS.2A,2B and6represent the functionality and operation of an implementation of portions of the various embodiments of the present disclosure. If embodied in software, each block can represent a module, segment, or portion of code that includes program instructions to implement the specified logical function(s). The program instructions can be embodied in the form of source code that includes human-readable statements written in a programming language or machine code that includes numerical instructions recognizable by a suitable execution system such as a processor in a computer system. The machine code can be converted from the source code through various processes. For example, the machine code can be generated from the source code with a compiler prior to execution of the corresponding application. As another example, the machine code can be generated from the source code concurrently with execution with an interpreter. Other approaches can also be used. If embodied in hardware, each block can represent a circuit or a number of interconnected circuits to implement the specified logical function or functions.

Further, any logic or application described herein can be implemented and structured in a variety of ways. For example, one or more applications described can be implemented as modules or components of a single application. Further, one or more applications described herein can be executed in shared or separate computing devices or a combination thereof. For example, a plurality of the applications described herein can execute in the same computing device, or in multiple computing devices in the same computing environment103.

Disjunctive language such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to present that an item, term, etc., can be either X, Y, and/or Z, or any combination thereof (e.g., X; Y; Z; X and/or Y; X and/or Z; Y and/or Z; X, Y, and/or Z, etc.). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, and/or at least one of Z to each be present.