Patent ID: 12244765

DETAILED DESCRIPTION

Examples of the present disclosure relate to contact centers and, more particularly, to one or more components, systems, computer-readable media and methods for improving agent assistance and customer service by monitoring real-time conversations between customers and human agents at a contact center. Contact center representatives (hereinafter referred to as “human agents”) assist customers using internal applications, virtual assistants, knowledge bases, group chats, or the like. The human agents are provided with assistance during customer conversations using an agent-assist model. For example, the agent-assist model may assist a human agent by recommending actions to be taken and/or responses to be sent to a customer, based on an ongoing conversation between the human agent and the customer, such that the human agent may provide quick and efficient assistance to the customer.

Referring toFIG.1A, a block diagram of an exemplary environment100with a contact center server150configured to improve customer service by monitoring real-time conversations between customers and human agents and providing automated assistance to the human agents. The environment100includes: a plurality of customer devices110(1)-110(n), a plurality of communication channels120(1)-120(n), a plurality of agent devices130(1)-130(n), a customer relationship management (CRM) database140, and a contact center server150coupled together via a network180, although the environment100can include other types and numbers of systems, devices, components, and/or elements and in other topologies and deployments. Although not illustrated, the environment100may include additional network components, such as routers, switches, and other devices, which are well known to those of ordinary skill in the art and thus will not be described here.

The contact center server150handles customer requests from one or more of the plurality of customer devices110(1)-110(n) reaching the contact center server150via voice and digital channels. The contact center server150may use automation and artificial intelligence (e.g., virtual assistants), the human agents, or a combination of the virtual assistants and the human agents to address the customer requests. In one example, a customer request from one of the plurality of customer devices110(1)-110(n) may be directly transferred to a human agent at one of the plurality of agent devices130(1)-130(n). In another example, the customer request from one of the plurality of customer devices110(1)-110(n) may be initially handled by the contact center server150and subsequently transferred to the human agent at one of the plurality of agent devices130(1)-130(n) when intervention of the human agent is required.

The contact center server150includes a processor152, a memory154, a network interface156, a data storage158and a knowledge base182, although the contact center server150may include other types and/or numbers of components in other configurations. In addition, the contact center server150may include an operating system (not shown). In one example, the contact center server150and/or processes performed by the contact center server150may be implemented using a networking environment (e.g., cloud computing environment). In another example, the contact center server150may be offered as a service by the cloud computing environment.

The components of the contact center server150may be coupled to each other by a graphics bus, a memory bus, an Industry Standard Architecture (ISA) bus, an Extended Industry Standard Architecture (EISA) bus, a Micro Channel Architecture (MCA) bus, a Video Electronics Standards Association (VESA) Local bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a serial advanced technology attachment (SATA) bus, a Personal Computer Memory Card Industry Association (PCMCIA) bus, a Small Computer Systems Interface (SCSI) bus, or a combination of two or more of these.

The processor152of the contact center server150may execute one or more computer-executable instructions stored in the memory154to implement the methods illustrated and described with reference to the examples herein, although the processor can execute other types and numbers of instructions and perform other types and numbers of operations. The processor152may comprise one or more central processing units (CPUs), or general-purpose processors with a plurality of processing cores, such as Intel® processor(s), AMD® processor(s), although other types of processor(s) could be used in other configurations.

The memory154of the contact center server150is an example of a non-transitory computer readable storage medium capable of storing information or instructions for the processor152to operate on. The instructions, which when executed by the processor152, perform one or more of the disclosed examples. In one example, the memory154may be a random access memory (RAM), a dynamic random access memory (DRAM), a static random access memory (SRAM), a persistent memory (PMEM), a nonvolatile dual in-line memory module (NVDIMM), a hard disk drive (HDD), a read only memory (ROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a programmable ROM (PROM), a flash memory, a compact disc (CD), a digital video disc (DVD), a magnetic disk, a universal serial bus (USB) memory card, a memory stick, or a combination of two or more of these. It may be understood that the memory154may include other electronic, magnetic, optical, electromagnetic, infrared or semiconductor based non-transitory computer readable storage medium which may be used to tangibly store instructions, which when executed by the processor152, perform the disclosed examples. The non-transitory computer readable storage medium is not a transitory signal per se and is any tangible medium that contains and stores the instructions for use by or in connection with an instruction execution system, apparatus, or device. Examples of the programmed instructions and steps stored in the memory154are illustrated and described by way of the description and examples herein.

As illustrated inFIG.1A, the memory154may include instructions corresponding to a virtual assistant platform160and an agent platform190of the contact center server150, although other types and/or numbers of instructions in the form of programs, functions, methods, procedures, definitions, subroutines, or modules may be stored. The contact center server150receives communications from one or more of the plurality of customer devices110(1)-110(n) and uses the virtual assistant platform160and/or the agent platform190to provide responses to the received communications. Further, the virtual assistant platform160and the agent platform190may be connected to each other using a middleware.

The network interface156may include hardware, software, or a combination of hardware and software, enabling the contact center server150to communicate with the components illustrated in the environment100, although the network interface156may enable communication with other types and/or number of components in other configurations. In one example, the network interface156provides interfaces between the contact center server150and the network180. The network interface156may support wired or wireless communication. In one example, the network interface156may include an Ethernet adapter or a wireless network adapter to communicate with the network180.

The plurality of customer devices110(1)-110(n) may communicate with the contact center server150via the network180. The customers at the plurality of customer devices110(1)-110(n) may access and interact with the functionalities exposed by the contact center server150via the network180. The plurality of customer devices110(1)-110(n) may include any type of computing device that can facilitate customer interaction, for example, a desktop computer, a laptop computer, a tablet computer, a smartphone, a mobile phone, a wearable computing device, or any other type of device with communication and data exchange capabilities. The plurality of customer devices110(1)-110(n) may include software and hardware capable of communicating with the contact center server150via the network180. Also, the plurality of customer devices110(1)-110(n) may render and display the information received from the contact center server150. The plurality of customer devices110(1)-110(n) may render an interface of one or more of the plurality of communication channels120(1)-120(n) which the customers may use to communicate with the contact center server150.

The customers at the plurality of customer devices110(1)-110(n) may communicate with the contact center server150via the network180by providing text input or voice input via one or more of the plurality of communication channels120(1)-120(n). The plurality of communication channels120(1)-120(n) may include channels such as, enterprise messengers (e.g., Skype for Business, Microsoft Teams, Kore.ai Messenger, Slack, Google Hangouts, or the like), social messengers (e.g., Facebook Messenger, WhatsApp Business Messaging, Twitter, Lines, Telegram, or the like), web & mobile channels (e.g., a web application, a mobile application), interactive voice response (IVR) channels, voice channels (e.g., Google Assistant, Amazon Alexa, or the like), live chat channels (e.g., LivePerson, LiveChat, Zendesk Chat, Zoho Desk, or the like), a webhook channel, a short messaging service (SMS), email, a software-as-a-service (SaaS) application, voice over internet protocol (VOIP) calls, computer telephony calls, or the like. It may be understood that to support voice-based communication channels, the environment100may include, for example, a public switched telephone network (PSTN), a voice server, a text-to-speech (TTS) engine, and/or an automatic speech recognition (ASR) engine.

The human agents at the plurality of agent devices130(1)-130(n) interact with the contact center server150, the CRM database140, and/or the plurality of customer devices110(1)-110(n) via the network180. In one example, the human agents at the plurality of agent devices130(1)-130(n) may access the data storage158, the knowledge base182, and the CRM database140via one or more application programming interfaces (APIs), one or more hyperlinks, or one or more uniform resource locators (URLs) by way of example. The plurality of agent devices130(1)-130(n) may be, a desktop computer, a laptop computer, a tablet computer, a smartphone, a mobile phone, or any other type of device with communication and data exchange capabilities. The plurality of agent devices130(1)-130(n) may include one or more communication devices (not shown) through which the human agents may communicate with the customers at the plurality of customer devices110(1)-110(n) over a cellular, a mobile, and/or a telephone network. Also, the plurality of agent devices130(1)-130(n) comprise a graphical user interface (GUI)132that may render, and display data received from the contact center server150and/or the plurality of customer devices110(1)-110(n). The plurality of agent devices130(1)-130(n) may run applications such as web browsers or a contact center software, which may render the GUI132, although other applications may render the GUI132.

The plurality of customer devices110(1)-110(n) and the plurality of agent devices130(1)-130(n) may include components, such as, one or more processors, one or more memories, one or more input devices such as a keyboard, a mouse, a display device, a touch interface, and one or more communication interfaces, which may be coupled together by a data communication bus or other link, although each of the plurality of customer devices110(1)-110(n) and the plurality of agent devices130(1)-130(n) may have other types and/or numbers of other systems, devices, components, and/or other elements.

The network180enables the plurality of customer devices110(1)-110(n), the plurality of agent devices130(1)-130(n), the CRM database140, or other such devices to communicate with the contact center server150. The network180may be, for example, an ad hoc network, an extranet, an intranet, a wide area network (WAN), a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wireless WAN (WWAN), a metropolitan area network (MAN), internet, a portion of the internet, a portion of the public switched telephone network (PSTN), a cellular telephone network, a wireless network, a Wi-Fi network, a worldwide interoperability for microwave access (WiMAX) network, or a combination of two or more such networks, although the network180may include other types and/or numbers of networks in other topologies or configurations.

The network180may support protocols such as, Session Initiation Protocol (SIP), Hypertext Transfer Protocol (HTTP), Hypertext Transfer Protocol Secure (HTTPS), Media Resource Control Protocol (MRCP), Real Time Transport Protocol (RTP), Real-Time Streaming Protocol (RTSP), Real-Time Transport Control Protocol (RTCP), Session Description Protocol (SDP), Web Real-Time Communication (WebRTC), Transmission Control Protocol/Internet Protocol (TCP/IP), User Datagram Protocol (UDP), or Voice over Internet Protocol (VOIP), although other types and/or numbers of protocols may be supported in other topologies or configurations. The network180may also support standards or formats such as, for example, hypertext markup language (HTML), extensible markup language (XML), voiceXML, call control extensible markup language (CCXML), JavaScript object notation (JSON), although other types and/or numbers of data, media, and document standards and formats may be supported in other topologies or configurations. The network interface156of the contact center server150may include any interface that is suitable to connect with any of the above-mentioned network types and communicate using any of the above-mentioned network protocols, standards, or formats.

The CRM database140may store the customers information comprising at least one of profile details (e.g., name, address, phone numbers, gender, age, and occupation), communication channel preferences for communicating with the human agents at the plurality of agent devices130(1)-130(n) (e.g., text chat, SMS, voice chat, multimedia chat, social networking chat, web, and telephone call), language preferences, membership information (e.g., membership ID, and membership category), transaction data (e.g., communication session details such as: date, time, call handle time, or the like), and past interactions data (such as sentiment, emotional state, call deflection, feedback, service ratings, or the like), although the CRM database140may store other types and numbers of customer information in other configurations. The CRM database140may be updated dynamically or periodically based on the customer conversations with the contact center server150and/or the human agents at the plurality of agent devices130(1)-130(n). Although depicted as an external component inFIG.1A, in one example, the CRM database140may be a part of the contact center server150.

The data storage158of the contact center server150may store a plurality of conversation transcripts159(1)-159(n), corresponding to the customer conversations handled by the contact center server150and/or the human agents at the plurality of agent devices130(1)-130(n). The plurality of conversation transcripts159(1)-159(n) comprise transcripts of text-based, or voice-based customer conversations, or the like. Although not shown, the data storage158may also store audio recordings of the voice-based customer conversations that are handled by the contact center server150and/or the human agents at the plurality of agent devices130(1)-130(n). The data storage158may also store metadata associated with each of the customer conversations, such as: session identifier (session ID), conversation ID, customer information (such as name, identifier, address, contact details, or the like), human agent information (such as name, Identifier, or the like), timestamp information, customer sentiment, disposition codes, conversation summary, message tags, annotation data, or the like. The data storage158may be updated dynamically with the plurality of conversation transcripts159(1)-159(n), audio recordings, and/or metadata associated with the customer conversations, in real-time. For example, a conversation transcript159(1), an audio recording, and/or metadata corresponding to a customer conversation may be logged and stored in the data storage158in real-time during the conversation between the customer at a customer device110(1) and the contact center server150or a human agent at an agent device130(1). In one example, the plurality of conversation transcripts159(1)-159(n) may comprise the metadata.

Further, one or more enterprise users such as administrators, managers, supervisors, developers, or the like may use the plurality of conversation transcripts159(1)-159(n), the audio recordings, and/or the metadata associated with each of the customer conversations to, for example, understand the behavior of the customers, understand most common issues faced by the customers, look for customer issues that can be automated, review performance of virtual assistants that interact with the customers, review behavior and performance of the human agents who handle the customer conversations, perform other contact center analytics, or the like. In one example, the one or more enterprise users may review and annotate one or more of the plurality of conversation transcripts159(1)-159(n), which will be stored as part of the metadata in the data storage158.

The knowledge base182of the contact center server150may be a product-specific database, domain-specific database, or a combination of the product-specific database and the domain-specific database that includes information about products and services in the form of, for example, frequently asked questions (FAQs), documents (e.g., articles, books, magazines), online content, hyperlinks, audio-video data, or graphical data that may be organized as relational data, tabular data, knowledge graph, or the like. The knowledge base182may be accessed by the human agents at the plurality of agent devices130(1)-130(n), the virtual assistant platform160, and/or the agent platform190to address the customer requests. The human agents at the plurality of agent devices130(1)-130(n) may search the knowledge base182, for example, using the GUI132, although other manners for interacting with the knowledge base may be used. The knowledge base182may be dynamically updated. The knowledge base182may comprise a number of different databases, some of which may be internal or external to the contact center server150. Although there may be multiple databases, a single knowledge base182is illustrated inFIG.1Afor simplicity.

The agent platform190of the contact center server150facilitates communication between the contact center server150and the plurality of agent devices130(1)-130(n). The agent platform190includes a routing engine192which handles routing the customer conversations to the plurality of agent devices130(1)-130(n), although the agent platform190may include other types and/or numbers of components in other configurations. In one example, the routing engine192manages transferring a customer conversation handled by one of the plurality of virtual assistants to one or more of the plurality of agent devices130(1)-130(n). In another example, messages from the virtual assistant platform160may be output to one or more of the plurality of agent devices130(1)-130(n) via the agent platform190. The routing engine192may be configured with artificial intelligence including one or more predictive models, rules, one or more programming modules, or one or more routing algorithms that are executable by the processor152to route the customer conversations to the human agents at the plurality of agent devices130(1)-130(n).

FIG.1Bis a block diagram of the virtual assistant platform160of the contact center server150illustrated inFIG.1A. As illustrated inFIG.1B, the virtual assistant platform160hosts a natural language processing (NLP) engine162, an agent-assist model170, a conversation engine172, a plurality of virtual assistants174(1)-174(n) deployed by the one or more enterprise users, and a tagging engine176, although the virtual assistant platform160may include other types and/or numbers of components in other configurations.

As illustrated inFIG.1B, the NLP engine162comprises one or more classification models such as, an empathy detection model164, an intent and entity model166, and a small-talk and greeting model168, although the NLP engine162may comprise a number of other classification models and/or algorithms in other configurations. The empathy detection model164is used to determine if there is any change in empathy between a message pair comprising an agent-assist response recommendation (hereinafter referred to as “automated response recommendation”) and an agent response data. The intent and entity model166is used to determine if there is any change in at least one of one or more intents, one or more entities, or one or more entity values between the message pair comprising the automated response recommendation and the agent response data. The small-talk and greeting model168is used to determine if there is any change in small-talk (e.g., hi, hello, hey, how are you, or the like), or greeting (e.g., good morning, good evening, nice to meet you, welcome to our customer service, thank you for contacting us, or the like) between the message pair comprising the automated response recommendation and the agent response data. In one example, the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168may be neural network models (e.g., feed-forward, recurrent, convolutional, and modular), or machine learning (ML) models (supervised, semi-supervised, or unsupervised).

The empathy detection model164, the intent and entity model166, and the small-talk and greeting model168are trained using a plurality of annotated message pairs, where each of the plurality of annotated message pairs comprises an automated response recommendation, an agent response data, and an expected output.FIG.2Ais a table of exemplary annotated message pairs that may be used for training the empathy detection model164, although other types of annotated message pairs or training data may be used in other configurations to train the empathy detection model164.FIG.2Bis a table of exemplary annotated message pairs that may be used for training the intent and entity model166, although other types of annotated message pairs or training data may be used in other configurations to train the intent and entity model166.FIG.2Cis a table of exemplary annotated message pairs that may be used for training the small-talk and greeting model168, although other types of annotated message pairs or training data may be used in other configurations to train the small-talk and greeting model168. In one example, each of the plurality of annotated message pairs may be manually entered by the one or more enterprise users using a graphical user interface presented by the contact center server150. In another example, the one or more enterprise users may provide the plurality of annotated message pairs in the form, for example, a json file, a csv file, and an xlsx file, although the plurality of annotated message pairs may be provided in other formats in other configurations. The example annotated message pairs ofFIGS.2A-2Care illustrated in tabular form for simplicity.

The NLP engine162uses the plurality of conversation transcripts159(1)-159(n) stored in the data storage158and generates the agent-assist model170. The NLP engine162may identify data patterns in the conversations of the plurality of conversation transcripts159(1)-159(n) and generate the agent-assist model170based on the identified data patterns. The enterprise users may use the plurality of conversation transcripts159(1)-159(n) to train the agent-assist model170. In one example, along with the plurality of conversation transcripts159(1)-159(n), the NLP engine162may also use annotations in the plurality of conversation transcripts159(1)-159(n) provided by the enterprise users to train the agent-assist model170.

The agent-assist model170may be a neural network or an ML model which learns from the conversations between the customers at the plurality of customer devices110(1)-110(n) and the human agents at the plurality of agent devices130(1)-130(n). Further, the agent-assist model170may be a domain-independent or a domain-specific model. A domain-specific agent-assist model may be easy to maintain and may provide better assistance to the human agents at the plurality of agent devices130(1)-130(n) when compared to a domain-independent agent-assist model. For example, the amount of training data required to train the domain-specific agent-assist model is very less when compared to the amount of training data required to train the domain-independent agent-assist model.

In one example, using the agent-assist model170of the virtual assistant platform160, the contact center server150may assist the human agent at the agent device130(1) to handle the conversation with the customer at the customer device110(1) by recommending data such as, one or more responses, one or more next best actions (e.g., buttons to trigger API calls, launch applications, or trigger a robotic process automation (RPA) processes), one or more knowledge articles, one or more snippets from the one or more knowledge articles, hyperlinks to the one or more knowledge articles, or other relevant information based on at least one or more intents of the customer, current message of the customer, one or more previous messages of the customer, and context of the customer conversation. In another example, using the agent-assist model170of the virtual assistant platform160, the contact center server150may assist the human agent at the agent device130(1) by presenting at least one of: one or more intents, one or more entities, or one or more entity values identified from one or more customer messages.

An intent may be defined as a purpose of the customer at the customer device110(1). The intent of the customer at the customer device110(1) may be identified from the one or more messages sent by the customer at the customer device110(1) and fulfilled by the contact center server150using one or more of the plurality of virtual assistants174(1)-174(n), one or more human agents at one or more of the plurality of agent devices130(1)-130(n), or a combination of one or more of the plurality of virtual assistants174(1)-174(n) and one or more human agents at one or more of the plurality of agent devices130(1)-130(n). Example intents include book flight, book train, book cab, restaurant search, check balance, transfer funds, search document, diagnose network, diagnose device, reset device, or the like, by way of example. To fulfill the customer's intent, the contact center server150may need one or more entities defined by entity parameters including at least one of an entity name, an entity type, and an entity value, although there may be other types and/or numbers of entity parameters in other configurations. In one example, the entity type may include airport, address, city, company name, color, currency, product category, date, time, location, place name, or the like. For example, in the customer's message—“book flight ticket from San Diego to New York”, the intent of the customer at the customer device110(1) is “book flight”, and “San Diego” and “New York” are the entity values whose entity type is “city”.

The conversation engine172of the virtual assistant platform160orchestrates the conversations between the customers at one or more of the plurality of customer devices110(1)-110(n) and the contact center server150by executing configurations of one or more of the plurality of virtual assistants174(1)-174(n). The conversation engine172may also orchestrate the conversations between the customers at one or more of the plurality of customer devices110(1)-110(n) and the human agents at one or more of the plurality of agent devices130(1)-130(n). The conversation engine172manages a context of the conversation between the customer at the customer device110(1) and the contact center server150or the human agent at the agent device130(1).

The conversation engine172may be implemented, for example, as a finite state machine that uses states and state information to orchestrate the conversation between the customer at the customer device110(1) and the contact center server150or the human agent at the agent device130(1), although the conversation engine172may be implemented in other ways and/or configurations. The conversation engine172may also comprise decision trees corresponding to one or more of the plurality of virtual assistants174(1)-174(n). Further, the conversation engine172may manage digressions or interruptions from the customer at the customer device110(1) during the conversation with the contact center server150and/or the human agent at the agent device130(1).

Each of the plurality of virtual assistants174(1)-174(n) may include one or more rules, one or more dialog flows, one or more neural networks, or one or more artificial intelligence-based definitions, models, or instructions. Further, in one example, the agent-assist functionalities may be defined and configured as part of one or more dialog flows. In this example, the one or more enterprise users may define and configure the agent-assist functionalities (e.g., one or more responses, one or more next best actions, one or more relevant knowledge articles, or the like) at each node of the one or more dialog flows corresponding to one or more intents of the plurality of virtual assistants174(1)-174(n), which may be triggered to assist the human agents at the plurality of agent devices130(1)-130(n) during the customer conversations. For example, during the conversation between the human agent at the agent device130(1) and the customer at the customer device110(1), when the virtual assistant platform160identifies a customer intent and executes a dialog flow corresponding to the identified customer intent, based on the stage in the dialog flow, the corresponding one or more agent-assist functionalities will be triggered by the virtual assistant platform160to assist the human agent at the agent device130(1).

The tagging engine176identifies and associates one or more tags to one or more messages sent as part of the conversation by the customer at the customer device110(1) and the human agent at the agent device130(1) based on at least one of: message content or the context of the conversation. In one example, the tagging engine176may not associate any tag(s) to one or more messages of the conversation. The one or more tags may include small-talk, greeting, intent, acknowledgement, escalation, empathy added, priority change, or the like, although other types and/or numbers of tags may be used. The tagging engine176may be configured as an ML model. For each tag, the one or more enterprise users may define one or more rules and/or provide training data comprising a plurality of annotated utterances.

In one example, when the human agent at the agent device130(1) sends an agent response data to the customer device110(1) by changing an automated response recommendation provided by the agent-assist model170of the virtual assistant platform160, the tagging engine176associates one or more tags to the agent response data based on outputs of the empathy detection model164, the intent and entity model166and the small-talk and greeting model168.

Referring toFIG.3, an example wireframe of a graphical user interface (GUI)132provided by the contact center server150to the human agents at the plurality of agent devices130(1)-130(n) is illustrated. The GUI132may be displayed using a contact center software executable on the plurality of agent devices130(1)-130(n), or a web page provided by the contact center server150and rendered in a browser executable on the plurality of agent devices130(1)-130(n), although the GUI132may be displayed by other types and/or numbers of applications in other configurations. The contact center software or the web page provided by the contact center server150enables the human agents at the plurality of agent devices130(1)-130(n) to communicate with the customers at the plurality of customer devices110(1)-110(n), view information related to the customers or customer conversations, view recommendation data (e.g., one or more automated response recommendations, one or more next best actions, or the like) provided by the virtual assistant platform160using the agent-assist model170, search and retrieve information from data sources (e.g., the CRM database140, the data storage158, or the knowledge base182), communicate with third-party applications or databases, or the like. Further, the contact center software or the web page provided by the contact center server150at the plurality of agent devices130(1)-130(n) allows the contact center server150to record conversations between the customers at the plurality of customer devices110(1)-110(n) and the human agents at the plurality of agent devices130(1)-130(n) and monitor performance of the human agents at the plurality of agent devices130(1)-130(n).

As illustrated inFIG.3, the GUI132may include a queue window302, a conversation window306, and an agent-assist window308, although other types and/or numbers of windows, panels, or widgets may be included in the GUI132in other configurations. The queue window302shows a list of conversations310(e.g., chat 1, chat 2, voice 1, chat 3, and voice 2) that are transferred to the human agent at the agent device130(1) by the routing engine192.

The conversation window306may include a profile icon304, a conversation transcript area312, and a compose bar314for the human agent at the agent device130(1) to compose and send a response to the customer at the customer device110(1) during the conversation. The human agent at the agent device130(1) may access the customer profile by clicking on the profile icon304. In the conversation transcript area312, the conversation data exchanged between the human agent at the agent device130(1) and the customer at the customer device110(1) is displayed to the human agent at the agent device130(1) by the contact center server150. In the conversation transcript area312, the conversation data corresponding to the conversation that is selected and active (i.e., chat 1 inFIG.3) from the list of conversations310by the human agent at the agent device130(1) is displayed. Further, the conversation that is selected and active (chat 1, in this example) from the list of conversations310by the human agent at the agent device130(1) may be highlighted as illustrated inFIG.3, although the conversation that is selected and active may be indicated in different ways such as, for example, by providing a small pop-out view, changing the font color, using a status indicator, or the like.

As illustrated inFIG.3, one or more automated response recommendations316(e.g., recommendation-1, recommendation-2, and recommendation-3) in recommendation data are displayed to the human agent at the agent device130(1) in the agent-assist window308by the virtual assistant platform160. The recommendation data is determined by the virtual assistant platform160using the agent-assist model170during the conversation between the human agent at the agent device130(1) and the customer at the customer device110(1). In one example, the recommendation data (e.g., the one or more automated response recommendations316) may be determined by the virtual assistant platform160using the agent-assist model170based on at least one of: a context of the conversation; one or more intents of the customer; a sentiment of the customer in the previous interaction(s); a stage in the conversation; or a current message data or previous messages of the customer in the conversation, although the recommendation data may be determined by the virtual assistant platform160using the agent-assist model170based on other types and/or number of parameters in other configurations.

Further, as illustrated inFIG.3, in the agent-assist window308, for each of the one or more automated response recommendations316in the recommendation data, a send option and a copy option are provided for selection by the human agent at the agent device130(1). The send option and the copy option may be provided as clickable buttons, as illustrated inFIG.3, although the send option and the copy option may be provided in other forms such as, radio buttons, check boxes, or any other user interface selectable controls.

In one example, as part of the conversation data, when the human agent at the agent device130(1) wants to use one of the one or more automated response recommendations316(for example, recommendation-1) “as-is” to respond to the customer at the customer device110(1), the human agent at the agent device130(1) selects the send option corresponding to the recommendation-1, so that the recommendation-1 will be sent “as-is” as an agent response data to the customer device110(1).

In another example, as part of the conversation data, the human agent at the agent device130(1) selects the copy option corresponding to one of the one or more automated response recommendations316(for example, recommendation-1) when the human agent at the agent device130(1) wants to modify and use the recommendation-1 to respond to the customer at the customer device110(1). In this example, when the copy option corresponding to the recommendation-1 is selected, the recommendation-1 will be presented in the compose bar314for editing by the human agent at the agent device130(1). Further, in this example, when the human agent at the agent device130(1) selects the copy option corresponding to the recommendation-1, a flag may be set by the agent-assist model170to indicate to the virtual assistant platform160that the human agent at the agent device130(1) is not using the recommendation-1 “as-is”. Subsequently, the human agent at the agent device130(1) may modify (e.g., by rephrasing, by adding new content, or by deleting content) the recommendation-1 in the compose bar314and send the modified recommendation-1 to the customer at the customer device110(1) as the agent response data by either pressing an enter key on a keyboard connected to the agent device130(1) or selecting a send button present in the compose bar314(illustrated inFIG.3).

Here, the rephrasing of the recommendation-1 by the human agent at the agent device130(1) may comprise at least one of changing tone or grammar of the recommendation-1 by the human agent at the agent device130(1). For example, if the recommendation-1 provided is “Book a flight from Washington DC to New York, is that correct?”, the human agent at the agent device130(1) may rephrase the recommendation-1 by changing tone as “Should I book a flight from Washington DC to New York?”. Further, adding new content to the recommendation-1 by the human agent at the agent device130(1) may comprise at least one of: adding one or more intents, adding one or more entities, adding one or more entity values, adding empathy, adding small-talk, or adding a greeting, although other content may be added by the human agent at the agent device130(1) to the recommendation-1. Further, modifying content of the recommendation-1 by the human agent at the agent device130(1) may comprise at least one of: modifying one or more intents, modifying one or more entities, or modifying one or more entity values, although other content may be modified by the human agent at the agent device130(1) in the recommendation-1. Further, deleting content from the recommendation-1 by the human agent at the agent device130(1) comprises at least one of: deleting one or more intents, deleting one or more entities, deleting one or more entity values, deleting empathy, deleting small-talk, deleting a greeting, or deleting any portion of the recommendation-1.

Referring toFIG.4, a sequence diagram illustrating an exemplary method for handling a conversation at the contact center server150. In one example, the conversation may be a text-based conversation or a voice-based conversation. It may be understood that theFIG.4depicts a few steps involved in the conversation between the customer at the customer device110(1), the contact center server150and the human agent at the agent device130(1), although other types and/or numbers of steps may be performed in other configurations. Further, it may be understood that the steps illustrated and described do not have to take place in the sequence illustrated.

In the illustrated exemplary method inFIG.4, the contact center server150receives a first customer message data402from the customer device110(1) and sends the received first customer message data402to the agent device130(1) for display to the human agent in the conversation window306of the GUI132. Further, based on the first customer message data402, the contact center server150using the agent-assist model170of the virtual assistant platform160, automatically generates a recommendation-1404and provides the recommendation-1404to the agent device130(1) for display to the human agent in the agent-assist window308of the GUI132of the agent device130(1). At406, from the agent-assist window308, the human agent at the agent device130(1) accepts the recommendation-1404“as-is” as a first agent response data408. Further, the contact center server150receives the first agent response data408from the agent device130(1) and sends the first agent response data408to the customer device110(1).

Further, in the illustrated exemplary method inFIG.4, the contact center server150receives a second customer message data410from the customer device110(1) and sends the received second customer message data410to the agent device130(1) for display to the human agent in the conversation window306of the GUI132. Further, based on the second customer message data410, the contact center server150using the agent-assist model170of the virtual assistant platform160, automatically generates a recommendation-2412and sends the recommendation-2412to the agent device130(1) for display to the human agent in the agent-assist window308of the GUI132. At414, the human agent at the agent device130(1) modifies the recommendation-2412to create a second agent response data416. Further, the contact center server150receives the second agent response data416from the agent device130(1) and sends the second agent response data416to the customer device110(1).

Referring toFIG.5, a flowchart of an exemplary method500for tagging agent response data in conversation data and updating training of the virtual assistant platform160at the contact center server150according to an example of the present disclosure is illustrated. The exemplary method500comprises the virtual assistant platform160which hosts and manages the agent-assist model170to assist the human agent at the agent device130(1) to handle the conversation with the customer at the customer device110(1). The exemplary method500may be performed by the contact center server150during the conversation between the human agent at the agent device130(1) and the customer at the customer device110(1), although the method500may be performed at other types and/or numbers of time periods. The contact center150may interact with other components of the environment100to perform the steps of the exemplary method500.

At step502, the contact center server150provides to the agent device130(1), recommendation data comprising one or more automated response recommendations316determined by the executable virtual assistant platform160to correspond to customer message data received from the customer device110(1) as part of conversation data. The conversation data between the customer at the customer device110(1) and the human agent at the agent device130(1) may be a text-based data, a voice-based data, or a combination of the text-based data and the voice-based data. The conversation data may comprise customer message data, agent response data, recommendation data, tags, or other metadata of the conversation, although the conversation data may comprise other types and numbers of information related to the conversation. The recommendation data corresponding to the customer message data may be determined by the executable virtual assistant platform160using the agent-assist model170. In one example, the recommendation data may comprise at least one of: the one or more automated response recommendations316, one or more next best actions, one or more knowledge articles, or one or more hyperlinks to the one or more knowledge articles, although the recommendation data may comprise other types and numbers of other relevant information. The one or more automated response recommendations316may comprise at least one of: one or more responses or one or more snippets from the one or more knowledge articles.

Further, the recommendation data (e.g., the one or more automated response recommendations316) is displayed to the human agent at the agent device130(1) in the agent-assist window308in the GUI132(as illustrated inFIG.3) by the contact center server150in real-time during the conversation between the human agent at the agent device130(1) and the customer at the customer device110(1).

The context of the conversation may be defined as a memory of a conversation flow comprising message turns between the customer at the customer device110(1) and the human agent at the agent device130(1). The context of the conversation is tracked and maintained by the conversation engine172. In one example, the context of the conversation is used to determine the meaning of each message data that is shared as part of the conversation data. The sentiment of the customer is defined as a metric that indicates customer feelings towards a brand or a service, which can be measured on a scale between positive and negative, or as an emotion (e.g., angry, sad, happy, or the like). The stage in the conversation may be one of: small-talk, greeting, information gathering and extracting (intent(s) and/or entities), resolution, or closing, although there may be other stages in the conversation that may be defined in other configurations.

Referring toFIG.5, at step504, the contact center server150receives an indication from the agent device130(1) of a selection of one of the one or more automated response recommendations316in the recommendation data by the human agent at the agent device130(1). Hereinafter, the selected one of the one or more automated response recommendations316is referred to as “selected response recommendation”. The contact center server150receives the indication about the selection when the human agent at the agent device130(1) selects either the “send” option or the “copy” option corresponding to the one of the one or more automated response recommendations316. In one example, when the human agent at the agent device130(1) selects the “send” option corresponding to the one of the one or more automated response recommendations316, the contact center server150sends the selected response recommendation to the customer device110(1) “as-is” as agent response data. In another example, when the human agent at the agent device130(1) selects the “copy” option corresponding to the one of the one or more automated response recommendations316, the contact center server150presents the selected response recommendation in the compose bar314of the GUI132, so that the human agent at the agent device130(1) may modify the selected response recommendation and send the modified version of the selected response recommendation to the customer device110(1) as the agent response data.

At step506, the contact center server150identifies the agent response data to the customer message data in the conversation data transmitted from the agent device130(1) to the customer device110(1). In one example, the contact center server150uses the metadata of the conversation, managed by the conversation engine172, such as a human agent identifier associated with the agent response data to identify the agent response data to the customer message data in the conversation data.

At step508, the contact center server150determines when there is a change between the selected one of the one or more automated response recommendations316(i.e., the selected response recommendation) in the recommendation data and the agent response data identified at step506, using one or more classification models. The one or more classification models may comprise the empathy detection model164, the intent and entity model166, or the small-talk and greeting model168. In one example, to determine the change, the contact center server150inputs the message pair comprising the selected response recommendation that is selected at step504and the agent response data to the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168in this example, although other types and/or numbers of other models and combinations may be used. The empathy detection model164, based on the training provided, determines if there is any change in empathy between the selected response recommendation and the agent response data. The intent and entity model166, based on the training provided, determines if there is any change in one or more intents, one or more entities, or one or more entity values between the selected response recommendation and the agent response data. The small-talk and greeting model168, based on the training provided, determines if there is any change in small-talk or greeting between the selected response recommendation and the agent response data. The outputs of the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168may indicate either there is “no change” or there are one or more changes between the selected response recommendation and the agent response data.

In another example, before inputting the selected response recommendation and the agent response data to the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168, to determine the change, the contact center server150may first compare the selected response recommendation and the agent response data for text similarity. The text similarity may be measured using techniques such as, cosine similarity, or string comparison, although other text similarity measuring techniques may be used. In this example, the contact center server150inputs the selected response recommendation and the agent response data to the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168to determine the change only when the measured text similarity is below a threshold that is predefined by the enterprise user.

Referring toFIG.5, at step510, the contact center server150associates one or more tags to the identified agent response data in the conversation data when the determination at step508indicates the change. Here, the contact center server150may use the tagging engine176to associate the one or more tags to the agent response data in the conversation data. In one example, the contact center server150associates the one or more tags to the agent response data in the conversation data based on the outputs of the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168. The one or more tags may comprise rephrased, small-talk added, greeting added, empathy added, empathy deleted, intent added, intent modified, intent deleted, entity added, entity modified, entity deleted, entity value added, entity value modified, entity value deleted, used as-is (recommendation used as-is), or the like, although other types and/or number of tags may be used. The contact center server150may store the conversation data along with the associated one or more tags, in the data storage158. Here, the associated one or more tags may be stored as part of metadata of the conversation data by way of an example. The conversation engine172or the tagging engine176may create and manage metadata of the conversations, although other types and/or numbers of components in the virtual assistant platform160may create and manage the metadata.

Subsequently, at step512, the contact center server150automatically updates training of the executable virtual assistant platform160based on the conversation data with the associated one or more tags. According to the exemplary method500, it may be understood that updating the training of the virtual assistant platform160implicitly indicates that the agent-assist model170is updated. In one example, the contact center server150automatically updates the training of the virtual assistant platform160based on the conversation data along with the associated one or more tags, either in real-time or during training update schedules defined for the virtual assistant platform160or the agent-assist model170by the enterprise user.

In another example, prior to automatically updating the training of the virtual assistant platform160, the contact center server150may send a notification to the enterprise user device (not shown) about the change that is determined at step508and receive an approval from the enterprise user device to update the training of the virtual assistant platform160. The contact center server150may also send the conversation data comprising the one or more associated tags along with the notification to the enterprise user device. In this example, the notification to the enterprise user device may be sent in the form of an SMS, an email, an audio, or pop-up alert in the GUI of the enterprise user device, although other types and number of notification mechanisms may be used. Further, the notification to the enterprise user device may include the enterprise user selectable options such as, approve, reject, and review later, although other types and number of options may be included in the notification for selection by the enterprise user. The enterprise user selectable options may be provided in the form of clickable buttons, radio buttons, check boxes, or any other user interface selectable controls. Further, in this example, the enterprise user at the enterprise user device may approve the determined change by selecting the approve option corresponding to the received notification. After receiving the approval from the enterprise user device, the contact center server150automatically updates the training of the virtual assistant platform160as described at step512. In this example, the enterprise user device may be operated by a supervisor, although the enterprise user device may be operated by any other enterprise user. Further, in this example, there may be other types and number of steps performed in other orders and/or configurations.

Further, in accordance with the above example, sending the notification about the determined change and receiving the approval from the enterprise user device, provides valuable feedback to the contact center server150that the change made by the human agent at the agent device130(1) is appropriate and the conversation data along with the associated one or more tags can be used for updating the training of the virtual assistant platform160, which may in turn improve the performance of the virtual assistant platform160. Also, prior to automatically updating the training of the virtual assistant platform160, sending the notification to the enterprise user device for approval, may prevent the training update of the virtual assistant platform160with inappropriate data or wrong feedback data.

In another example, instead of automatically updating training of the virtual assistant platform160with the conversation data along with the associated one or more tags, the contact center server150may send the notification about the change that is determined at step508, and/or one or more suggestions to the enterprise user device to modify the training of the virtual assistant platform160. The contact center server150may send the conversation data comprising the one or more associated tags along with the notification and the one or more suggestions to the enterprise user device. In this example, the one or more suggestions may include one or more utterances that may be added to training data of the agent-assist model170of the virtual assistant platform160, one or more utterances that may be removed from the training data of the agent-assist model170of the virtual assistant platform160, or one or more knowledge articles that may be added under frequently asked questions (FAQs) in a knowledge graph, although other types and number of suggestions may be provided.

In another example, when the agent-assist functionalities are defined and configured as part of a dialog flow of an intent, the contact center server150may send the notification about the determined change, the conversation data along with the associated one or more tags, and/or one or more suggestions to the enterprise user device operated by the enterprise user (e.g., a developer, and a system administrator) to modify the agent-assist functionalities. In this example, the one or more suggestions may include one or more alternate responses that may be added to the agent-assist functionalities, or one or more knowledge articles that may be added as part of the agent-assist functionalities, although other types and number of suggestions may be provided.

In another example, for the message pair comprising the selected response recommendation and the agent response data, when one of the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168output—“rephrased”, the contact center server150may add the agent response as an alternative to the selected response recommendation in the training data of the agent-assist model170of the virtual assistant platform160.

Thus, in accordance with the examples described in the present disclosure, it may be understood that tagging the agent responses based on the actions (i.e. changes) performed by the human agents at the plurality of agent devices130(1)-130(n) on the one or more automated response recommendations316provided by the agent-assist model170of the virtual assistant platform160, provides a comprehensive feedback to the contact center server150that can be used for updating the training of and improving the agent-assist model170of the virtual assistant platform160to provide better recommendation data to the human agents at the plurality of agent devices130(1)-130(n).

Referring toFIGS.6A-6D, exemplary tables of conversations between the customer at the customer device110(1) and the human agent at the agent device130(1), one or more tags associated to messages of the conversations and the response recommendations provided by the agent-assist model170of the virtual assistant platform160are illustrated. The examples inFIGS.6A-6Dare in tabular form for simplicity, although the conversations, the one or more tags associated to the messages of the conversations, and the response recommendations provided by the agent-assist model170of the virtual assistant platform160may be stored in the form of json files, txt files, csv files, relational data tables, or the like.

Referring toFIG.6A, a table of an exemplary conversation data between the human agent at the agent device130(1) and the customer at the customer device110(1) is illustrated. In this example, the response recommendations provided to the human agent at the agent device130(1) by the agent-assist model170of the virtual assistant platform160are used as-is by the human agent at the agent device130(1) as agent response data during the conversation. As illustrated inFIG.6A, the response recommendations —602,606and610provided by the agent-assist model170are used as-is by the human agent at the agent device130(1) as agent response data —604,608, and612, respectively. The message pairs comprising the response recommendation602—the agent response data604, the response recommendation606—the agent response data608, and the response recommendation610—the agent response data612are provided as inputs to the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168. In this example, each message pair is analyzed by the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168. Based on the analysis, the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168outputs “no change” for each message pair. Thus, based on the outputs of the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168, the tagging engine176associates a tag—“used as-is” to each of the agent response data —604,608, and612in the conversation data, as illustrated inFIG.6A.

Referring toFIG.6B, a table of an exemplary conversation data between the human agent at the agent device130(1) and the customer at the customer device110(1). In this example, one of the response recommendations provided by the agent-assist model170of the virtual assistant platform160is modified by the human agent at the agent device130(1) before sending it as the agent response data during the conversation. As illustrated inFIG.6B, the customer at the customer device110(1) expressed frustration in a customer message data620. But a response recommendation622provided to the human agent at the agent device130(1) by the agent-assist model170of the virtual assistant platform160for the customer message data620lacks empathy related phrase(s) or statement(s) to address the frustration expressed in the customer message data620. Therefore, the human agent at the agent device130(1) modifies the response recommendation622by adding an empathy statement—“I am sorry to hear that” at the beginning and sends the modified response recommendation as an agent response data624as part of the conversation data. The message pair comprising the response recommendation622and the agent response data624is provided as input to the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168to determine if there is any change between the response recommendation622and the agent response data624. In this example, by comparing the response recommendation622and the agent response data624, the empathy detection model164outputs “empathy added”, the intent and entity model166outputs “no change”, and the small-talk and greeting model168outputs “no change”. Subsequently, based on the outputs of the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168, the tagging engine176associates a tag—“empathy added” to the agent response data624in the conversation data, as illustrated inFIG.6B.

Referring toFIG.6C, a table of an exemplary conversation data between the human agent at the agent device130(1) and the customer at the customer device110(1). As illustrated inFIG.6C, a customer message data630sent as part of the conversation data by the customer at the customer device110(1) comprises two intents—“book flight” and “book hotel”. However, a response recommendation632provided to the human agent at the agent device130(1) by the agent-assist model170of the virtual assistant platform160for the customer message data630includes information related to the “book flight” intent but not the “book hotel” intent. Therefore, the human agent at the agent device130(1) modifies the response recommendation632by adding information related to the “book hotel” intent—“book a hotel for Saturday night in New York” at the end and sends the modified response recommendation as an agent response data634as part of the conversation data. The message pair comprising the response recommendation632and the agent response data634is provided as input to the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168to identify if there is any change between the response recommendation632and the agent response data634. In this example, by comparing the response recommendation632and the agent response data634, the empathy detection model164outputs “no change”, the intent and entity model166outputs “intent added”, and the small-talk and greeting model168outputs “no change”. Subsequently, based on the outputs of the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168, the tagging engine176associates a tag—“intent added” to the agent response data634in the conversation data, as illustrated inFIG.6C.

Referring toFIG.6D, a table of an exemplary conversation data between the human agent at the agent device130(1) and the customer at the customer device110(1). As illustrated inFIG.6D, the customer at the customer device110(1) via a customer message data640sent as part of the conversation data, is asking for two medium cheese pizzas with olives and tomatoes. But a response recommendation642provided to the human agent at the agent device130(1) by the agent-assist model170of the virtual assistant platform160for the customer message data640mentions only a single pizza instead of two. Therefore, the human agent at the agent device130(1) modifies the response recommendation642by changing the pizza count from one to two and sends the modified response recommendation as an agent response data644as part of the conversation data. The message pair comprising the response recommendation642and the agent response data644is provided as input to the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168to identify if there is any change between the response recommendation642and the agent response data644. In this example, by comparing the response recommendation642and the agent response data644, the empathy detection model164outputs “no change”, the intent and entity model166outputs “entity value modified”, and the small-talk and greeting model168outputs “no change”. Subsequently, based on the outputs of the empathy detection model164, the intent and entity model166, and the small-talk and greeting model168, the tagging engine176associates a tag—“entity value modified” to the agent response data644in the conversation data, as illustrated inFIG.6D.

FIG.7is a table of an exemplary association between outputs of the empathy detection model164, the intent and entity model166and the small-talk and greeting model168, and tags associated by the tagging engine176. The association between the outputs of the empathy detection model164, the intent and entity model166and the small-talk and greeting model168, and the tags associated by the tagging engine176to the agent response data may be stored in the memory154.

In accordance with the examples described in the present disclosure, it may be understood that by tagging the agent response data in the conversation data based on the changes made by the human agents at the plurality of agent devices130(1)-130(n) to the one or more automated response recommendations provided by the agent-assist model170of the virtual assistant platform160, a comprehensive feedback is collected and the feedback is used for updating the training and improving the agent-assist model170to provide better response recommendations to the human agents at the plurality of agent devices130(1)-130(n). Also, the supervisor's approval or rejection for the changes made by the human agents at the plurality of agent devices130(1)-130(n) to the one or more automated response recommendations provided by the agent-assist model170, acts as a filter to provide correct and relevant data to train the agent assist model170.

In one example, based on supervisor's actions, for example, multiple rejections for the changes performed by the human agent at the agent device130(1) corresponding to a specific intent, feedback may be collected and provided as input to a human agent coaching model. Subsequently, in this example, the human agent coaching model may provide necessary coaching to the human agent at the agent device130(1) regarding the specific intent.

Further, the one or more tags associated to the message data in the conversation data of the plurality of conversations provide a way to the enterprise users to quickly search, filter, review, analyze, and/or classify the conversations. Further, contact centers may use the one or more tags associated to the agent response data in the conversation data of the plurality of the conversations to learn about, for example, behavior of the human agents towards the customers, usage of response recommendations by the human agents, pain points of the human agents, frequently modified response recommendations by the human agents, scenarios in which the response recommendations are modified by the human agents, areas of improvement of the agent-assist model, identifying correct feedback to train the agent-assist model, or the like. Further, the supervisors may use the tags associated to the agent response data in the conversation data of the plurality of the conversations to analyze the conversations and identify the top human agents whose modifications can be used to train the agent-assist model. Furthermore, the developers or the system administrators may use the tags associated to the agent response data in the conversation data of the plurality of the conversations to filter and analyze the conversations to determine gaps in the training provided to the agent-assist model and bridge such gaps to provide improved training data to the agent-assist model.

In accordance with the methods, systems, and non-transitory computer-readable mediums described above, by improving the agent-assist model, the human agents may address and resolve customer queries effectively and quickly. Further, the contact centers may reduce average handling time (AHT) and improve key performance indicators (KPIs) such as, for example, customer satisfaction score (CSAT), customer effort score (CES), net promoter score (NPS), first-call resolution, service level, contact quality, and human agents' performances, although other KPIs may be measured.

Having thus described the basic concept of the invention, it will be rather apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only and is not limiting. Various alterations, improvements, and modifications will occur and are intended for those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested hereby, and are within the spirit and scope of the invention. Additionally, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations, therefore, is not intended to limit the claimed processes to any order except as may be specified in the claims. Accordingly, the invention is limited only by the following claims and equivalents thereto.