Techniques for Automated Process Discovery in Contact Center Systems
By recording and analyzing agent-customer interactions in the contact center, determining common action sequences and generating RPAs using machine learning algorithms, the problem of insufficient visibility of agent behavior in the contact center is solved, and more efficient agent behavior optimization is achieved.
Patent Information
- Application Number
- JP2024538302
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-12-29
- Filing Date
- 2022-12-29
- Publication Date
- 2025-02-12
AI Technical Summary
In the prior art, contact centers have limited visibility into agent-customer interactions, are difficult to identify best practices or top performers, and are unable to ensure that the agent responds to customer inquiries in real time following appropriate steps.
Record and analyze agent interactions with customers through a computing system, determine common action sequences using machine learning algorithms, and generate robot process automation (RPA) to optimize agent behavior.
Improves visibility of contact centers to agent behavior, identify best practices, and ensures that agents respond to customer inquiries at the best steps, improving efficiency and consistency.
Smart Images

Figure 2025504303000001_ABST
Abstract
Description
[Technical field]
[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims priority to U.S. Non-provisional Patent Application No. 17 / 565,230, filed December 29, 2021, the entirety of which is incorporated herein by reference. [Background technology]
[0002] Contact centers rely on agents to communicate with and respond to client inquiries. However, contact centers have little, if any, visibility into the actions taken by agents during agent-client interactions and the time taken by agents to handle each work item, and the limited visibility is often limited to monitored reviews of call recordings. Thus, it is difficult for contact centers to identify best practices or top performers among their agents, and there is no mechanism to ensure that agents follow the proper steps to respond to client inquiries in real time. Summary of the Invention
[0003] One embodiment is directed to unique systems, components, and methods for leveraging automated process discovery in contact center systems. Other embodiments are directed to apparatus, systems, devices, hardware, methods, and combinations thereof for leveraging automated process discovery in contact center systems.
[0004] According to one embodiment, a method for leveraging automated process discovery in a contact center system may include determining, by a computing system, for each of a plurality of agent-client interactions, a context of an interaction between a corresponding contact center agent and a corresponding contact center client; capturing, by the computing system, for each of the plurality of agent-client interactions, actions taken by the corresponding contact center agent during the corresponding interaction; determining, by the computing system, for each of the plurality of agent-client interactions, a corresponding sequence of actions taken by the corresponding contact center agent based on the captured actions; and applying, by the computing system, sequence matching to determine a common sequence of actions based on the determined corresponding sequence of actions taken for the plurality of agent-client interactions.
[0005] In some embodiments, determining a context of the interaction may include receiving, by a computing system, an incoming call from a corresponding contact center client to a corresponding contact center agent; recording, by the computing system, call audio from the incoming call; converting, by the computing system, the recorded call audio into a text conversation transcript; and determining, by the computing system, a context of the incoming call based on the text conversation transcript.
[0006] In some embodiments, determining the context of the interaction may include storing, by the computing system, a digital conversation transcript of the incoming call or interaction.
[0007] In some embodiments, determining the context may include performing at least one of lemmatization, stop word removal, summarization, or keyword extraction on the text conversation transcript.
[0008] In some embodiments, determining the context may include applying machine learning to the text conversation transcript.
[0009] In some embodiments, capturing actions may include generating agent traces based on events triggered across one or more agent applications accessed by a corresponding contact center agent during an interaction.
[0010] In some embodiments, the event may include a JavaScript event.
[0011] In some embodiments, capturing the actions may include analyzing a screen recording of a corresponding contact center agent from the corresponding interaction.
[0012] In some embodiments, capturing the actions may further include determining, based on the agent trace, a corresponding time spent on each of the one or more agent applications.
[0013] In some embodiments, applying sequence matching may include applying machine learning to determine common sequences of actions.
[0014] In some embodiments, applying sequence matching may include applying a top-k sequential (TKS) pattern mining algorithm.
[0015] In some embodiments, applying sequence matching may include applying a generalized sequential pattern (GSP) matching algorithm.
[0016] In some embodiments, applying sequence matching may include applying one of a convolutional neural network (CNN) or a recurrent neural network (RNN) with a long short-term memory (LSTM) architecture.
[0017] In some embodiments, the method may further include generating a robotic process automation (RPA) for the context based on the common sequence of actions.
[0018] In some embodiments, the method may further include auditing for common sequences of actions.
[0019] In some embodiments, the method may further include auditing a sequence of actions performed by an agent for a particular client-agent interaction based on the best sequence of actions determined by applying machine learning.
[0020] In some embodiments, determining the context of the interaction may include determining a context of at least one sub-interaction between the corresponding contact center agent and the corresponding contact center client.
[0021] In some embodiments, determining the corresponding sequence of actions may include determining a corresponding sequence of actions taken by the corresponding contact center agent during at least one sub-interaction of the corresponding agent-client interaction.
[0022] In some embodiments, applying sequence matching to determine a common sequence of actions may include applying sequence matching to determine the common sequence of actions based on the determined corresponding sequences of actions taken during at least one sub-interaction of the plurality of agent-client interactions.
[0023] In some embodiments, the method may further include associating a context of a sub-interaction with a sequence of actions performed by the agent during the sub-interaction based on a timeline of the interaction.
[0024] According to another embodiment, a system for leveraging automated process discovery may include at least one processor and at least one memory including a plurality of instructions stored therein, the instructions responsive to execution by the at least one processor causing the system to determine, for each of a plurality of agent-client interactions, a context of an interaction between a corresponding contact center agent and a corresponding contact center client; for each of the plurality of agent-client interactions, capture actions taken by the corresponding contact center agent during the corresponding interaction; for each of the plurality of agent-client interactions, determine a corresponding sequence of actions taken by the corresponding contact center agent based on the captured actions; and apply sequence matching to determine a common sequence of actions based on the determined corresponding sequence of actions taken for the plurality of agent-client interactions.
[0025] In some embodiments, determining a context of the interaction may include receiving an incoming call from a corresponding contact center client to a corresponding contact center agent, recording call audio from the incoming call, converting the recorded call audio into a text conversation transcript, and determining a context of the incoming call based on the text conversation transcript.
[0026] In some embodiments, determining the context may include performing at least one of lemmatization, stop word removal, summarization, or keyword extraction on the text conversation transcript.
[0027] In some embodiments, capturing actions may include generating agent traces based on JavaScript events triggered across one or more agent applications accessed by a corresponding contact center agent during an interaction.
[0028] In some embodiments, capturing the actions may further include determining, based on the agent trace, a corresponding time spent on each of the one or more agent applications.
[0029] In some embodiments, applying sequence matching may include applying a top-k sequential (TKS) pattern mining algorithm.
[0030] In some embodiments, applying sequence matching may include applying a generalized sequential pattern (GSP) matching algorithm.
[0031] In some embodiments, applying sequence matching may include applying one of a Convolutional Neural Network (CNN) or a Concurrent Neural Network (RNN) with a long short-term memory (LSTM) architecture.
[0032] In some embodiments, the instructions may further cause the system to generate a robotic process automation (RPA) for the context based on the common sequence of actions.
[0033] In some embodiments, the method and / or system may include associating the determined context of an agent-client interaction or sub-interaction with a corresponding sequence of actions taken by a corresponding contact center agent.
[0034] This Summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in limiting the scope of the claimed subject matter. Further embodiments, forms, features, and aspects of the present application will become apparent from the description and figures provided herein. [Brief description of the drawings]
[0035] The concepts described herein are illustrated by way of example, and not by way of limitation, in the accompanying drawings. For simplicity and clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. Where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements. [Figure 1] FIG. 1 illustrates a simplified block diagram of at least one embodiment of a contact center system. [Diagram 2] 1 is a simplified block diagram of at least one embodiment of a computing device. [Diagram 3] FIG. 1 is a simplified flow diagram of at least one embodiment of a method for automated process discovery in a contact center system. [Figure 4] FIG. 1 is a simplified flow diagram of at least one embodiment of a method for automated process discovery in a contact center system. [Diagram 5] FIG. 1 is a simplified flow diagram of at least one embodiment of a method for determining a context of an interaction between an agent and a contact center client. [Figure 6] 1 is an example of JavaScript code for capturing events triggered by agent interaction with an application. [Figure 7] FIG. 1 is an example of an agent trace generated from JavaScript events triggered by an agent interaction with an application during an interaction with a contact center client. [Figure 8] 1 is an example of Python code for executing a Robotic Process Automation (RPA) workflow created from the technology described herein. [Figure 9] 1 is an example of Python code for executing a Robotic Process Automation (RPA) workflow created from the technology described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0036] While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are herein described in detail, It should be understood, however, that there is no intention to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives consistent with the scope of the present disclosure and the appended claims.
[0037] References herein to "one embodiment," "an embodiment," "an exemplary embodiment," and the like indicate that the embodiment being described may include a particular feature, structure, or characteristic, but that all embodiments may or may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. It should be further understood that references to "preferred" components or features may indicate the desirability of a particular component or feature with respect to one embodiment, but that the present disclosure is not so limited with respect to other embodiments that may omit such component or feature. Moreover, when a particular feature, structure, or characteristic is described in connection with an embodiment, the implementation of such feature, structure, or characteristic in connection with other embodiments, whether or not expressly described, is within the knowledge of one of ordinary skill in the art. Moreover, particular features, structures, or characteristics may be combined in any suitable combinations and / or subcombinations in various embodiments.
[0038] Additionally, it should be understood that an item in a listing of "at least one of A, B, and C" can mean (A), (B), (C), (A and B), (B and C), (A and C), or (A, B, and C). Similarly, it should be understood that an item in a listing of "at least one of A, B, or C" can mean (A), (B), (C), (A and B), (B and C), (A and C), or (A, B, and C). Further, with respect to the claims, use of words and phrases such as "a," "an," "at least one," and / or "at least a portion" should be construed as limited to only one such element, unless specifically stated to the contrary, and use of phrases such as "at least a portion" and / or "a portion" should be construed to encompass both embodiments including only a portion of such element and embodiments including the entirety of such element, unless specifically stated to the contrary.
[0039] The disclosed embodiments may be implemented in hardware, firmware, software, or a combination thereof, in some cases. The disclosed embodiments may also be implemented as instructions executed by or stored on one or more transitory or non-transitory machine-readable (e.g., computer-readable) storage media that may be read and executed by one or more processors. A machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a form readable by a machine (e.g., a volatile or non-volatile memory, a media disk, or other media device).
[0040] In the drawings, some structural or method features may be shown in a specific arrangement and / or ordering. However, it should be understood that such specific arrangement and / or ordering may not be required. Rather, in some embodiments, such features may be arranged in a different manner and / or order than that shown in the illustrative drawings, unless indicated to the contrary. Additionally, the inclusion of a structural or method feature in a particular figure does not imply that such feature is required in all embodiments, and in some embodiments, it may not be included or may be combined with other features.
[0041] It should be appreciated that the techniques described below provide insight into the various actions that contact center agents take during agent-client interactions and the time it takes agents on each application to perform those actions in response to a client inquiry. Additionally, the techniques described herein can leverage machine learning and / or other techniques to analyze a large volume of agent-client interactions to automatically identify, for example, a sequence of actions that an agent takes to resolve a particular client inquiry (e.g., the most common sequence of actions). The sequence of actions can be used, for example, to determine and leverage process benchmarks for agents, to implement common-context robotic process automation (RPA), and / or to provide real-time agent assistance (e.g., notifying an agent of a mistake).
[0042] 1, there is shown a simplified block diagram of at least one embodiment of a communications infrastructure and / or content center system that may be used in conjunction with one or more of the embodiments described herein. The contact center system 100 may be embodied as any system capable of providing contact center services (e.g., call center services, chat center services, SMS center services, etc.) to end users and otherwise performing the functions described herein. The exemplary contact center system 100 includes customer devices 102, a network 104, a switch / media gateway 106, a call controller 108, an interactive media response (IMR) server 110, a routing server 112, a storage device 114, a statistics server 116, agent devices 118A, 118B, 118C, a media server 120, a knowledge management server 122, a knowledge system 124, a chat server 126, a web server 128, an interaction (iXn) server 130, a universal contact server 132, a reporting server 134, a media services server 136, and an analytics module 138.The exemplary embodiment of FIG. 1 includes one customer device 102, one network 104, one switch / media gateway 106, one call controller 108, one IMR server 110, one routing server 112, one storage device 114, one statistics server 116, one media server 120, one knowledge management server 122, one knowledge system 124, one chat server 126, one iXn server 130, one universal contact server 132, one reporting server 134, one media services server 136, and one analytics model server 138. Although only one module 138 is shown, in other embodiments, the contact center system 100 may include multiple customer devices 102, a network 104, a switch / media gateway 106, a call controller 108, an IMR server 110, a routing server 112, a storage device 114, a statistics server 116, a media server 120, a knowledge management server 122, a knowledge system 124, a chat server 126, an iXn server 130, a universal contact server 132, a reporting server 134, a media services server 136, and / or an analytics module 138. Additionally, in some embodiments, one or more of the components described herein may be excluded from the system 100, and one or more of the components described as being separate may form part of another component and / or one or more of the components described as forming part of another component may be separate.
[0043] It should be understood that, as used herein, the term "contact center system" is used to refer to the system illustrated in Figure 1 and / or its components, whereas the term "contact center" is used more generally to refer to contact center systems, the customer service providers operating those systems, and / or the organizations or companies associated therewith. Thus, unless specifically limited otherwise, the term "contact center" generally refers to a contact center system (such as contact center system 100), the associated customer service providers (such as particular customer service providers / agents providing customer service via contact center system 100), and the organizations or companies on behalf of which such customer service is provided.
[0044] By way of background, customer service providers may offer many types of services through contact centers. Such contact centers may be staffed with employees or customer service agents (or simply "agents") who act as an interface between a company, enterprise, government agency, or organization (hereinafter interchangeably referred to as an "organization" or "enterprise") and people, such as users, individuals, or customers (hereinafter interchangeably referred to as "individuals," "customers," or "contact center clients"). For example, contact center agents may assist customers in making purchasing decisions, placing orders, or resolving issues with products or services already received. Within the contact center, such interactions between contact center agents and external entities or customers may occur over a variety of communication channels, such as, for example, voice (e.g., telephone calls or voice over IP, i.e., VoIP calls), video (e.g., video conferencing), text (e.g., email and text chat), screen sharing, co-browsing, and / or other communication channels.
[0045] Operationally, contact centers generally strive to provide quality service to customers while minimizing costs. For example, one way that contact centers operate is to handle all customer interactions with live agents. While this approach may be fully successful from a service quality perspective, it would likely be prohibitively expensive due to the high cost of agent labor. For this reason, most contact centers utilize some level of automated processes, such as, for example, interactive voice response (IVR) systems, interactive media response (IMR) systems, Internet robots, or "bots," automated chat modules, or "chatbots," and / or other automated processes, in place of live agents. In many cases, this has proven to be a successful strategy, as automated processes can be highly efficient at handling certain types of interactions and effective at reducing the need for live agents. Such automation allows contact centers to target the use of human agents to more difficult customer interactions, while the automated processes handle the more repetitive or routine tasks. Furthermore, automated processes can be structured in a way that optimizes efficiency and promotes repeatability. Although a human agent, i.e., a live agent, may forget to ask a particular question or follow up on a particular detail, such mistakes are typically avoided by the use of automated processes. While customer service providers increasingly rely on automated processes to interact with customers, the use of such technologies by customers remains far less developed. Thus, on the contact center side of the interaction, IVR systems, IMR systems, and / or bots are used to automate parts of the interaction, while actions on the customer side remain manually performed by the customer.
[0046] It should be appreciated that the contact center system 100 can be used by customer service providers to provide various types of services to customers. For example, the contact center system 100 can be used to engage and manage interactions in which automated processes (or bots) or human agents communicate with customers. As should be appreciated, the contact center system 100 can be an in-house facility of a business or enterprise for performing sales and customer service functions for products and services available through the enterprise. In another embodiment, the contact center system 100 can be operated by a third-party service provider contracted to provide services for another organization. Furthermore, the contact center system 100 can be deployed on equipment dedicated to the enterprise or third-party service provider and / or in a remote computing environment, such as, for example, a private or public cloud environment with infrastructure to support multiple contact centers for multiple enterprises. The contact center system 100 can include software applications or programs that can be executed on-premise or remotely, or any combination thereof. Furthermore, it should be appreciated that the various components of the contact center system 100 can be distributed across various geographic locations, but need not necessarily be contained in a single location or computing environment.
[0047] Further, unless specifically limited otherwise, it should be understood that any of the computing elements of the present invention may be implemented within a cloud-based or cloud computing environment. As used herein and further described below with respect to computing device 200, "cloud computing" or simply "cloud" is defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned via virtualization, released with minimal management effort or service provider interaction, and then scaled accordingly. Cloud computing can be comprised of a variety of characteristics (e.g., on-demand self-service, wide area network access, resource pooling, rapid scalability, measurable services, etc.), service models (e.g., Software as a Service ("SaaS"), Platform as a Service ("PaaS"), Infrastructure as a Service ("IaaS"), and deployment models (e.g., private cloud, community cloud, public cloud, etc.). Cloud execution models, often referred to as "serverless architectures," generally involve a service provider dynamically managing the allocation and provisioning of remote servers to achieve desired functions.
[0048] It should be understood that any of the computer-implemented components, modules, or servers described in connection with Figure 1 may be implemented via one or more types of computing devices, such as, for example, computing device 200 of Figure 2. As can be seen, contact center system 100 generally manages resources (e.g., employees, computers, telecommunications equipment, etc.) to enable delivery of services via telephone, email, chat, or other communication mechanisms. Such services may vary depending on the type of contact center and may include, for example, customer service, help desk functions, emergency response, telemarketing, order taking, and / or other features.
[0049] A customer desiring to receive service from the contact center system 100 may initiate an inbound communication (e.g., a telephone call, an email, a chat, etc.) to the contact center system 100 via a customer device 102. While FIG. 1 shows one such customer device, namely, the customer device 102, it should be understood that there may be any number of customer devices 102. The customer device 102 may be, for example, a communication device such as a telephone, a smartphone, a computer, a tablet, or a laptop. In accordance with the functionality described herein, a customer may generally use the customer device 102 to initiate, manage, and conduct communications with the contact center system 100, such as telephone calls, emails, chats, text messages, web browsing sessions, and other multimedia transactions.
[0050] Incoming and outgoing communications from and to the customer device 102 may traverse a network 104, the nature of which typically depends on the type of customer device being used and the form of communication. By way of example, the network 104 may include a telephony, mobile telephony, and / or data service communications network. The network 104 may be a private or public switched telephone network (PSTN), a local area network (LAN), a private wide area network (WAN), and / or a public WAN such as the Internet. Additionally, the network 104 may include a wireless carrier network, including a code division multiple access (CDMA) network, a global system for mobile communications (GSM) network, or any wireless network / technology conventional in the art, including, but not limited to, 3G, 4G, LTE, 5G, etc.
[0051] The switch / media gateway 106 may be coupled to the network 104 for receiving and transmitting telephone calls between the customer and the contact center system 100. The switch / media gateway 106 may include a telephone or communication switch configured to act as a central switch for agent-level routing within the center. The switch may be a hardware switching system or may be implemented via software. For example, the switch 106 may include an automatic call distributor, a private branch exchange (PBX), an IP-based software switch, and / or any other switch having dedicated hardware and software configured to receive Internet-sourced and / or telephone network-sourced interactions from the customer and route these interactions, for example, to one of the agent devices 118. Thus, in general, the switch / media gateway 106 establishes a voice connection between the customer and the agent by establishing a connection between the customer device 102 and the agent device 118.
[0052] As further shown, the switch / media gateway 106 may be coupled to a call controller 108 that serves as an adapter or interface between, for example, the switch and other routing, monitoring, and communication processing components of the contact center system 100. The call controller 108 may be configured to process PSTN calls, VoIP calls, and / or other types of calls. For example, the call controller 108 may include computer-telephone integration (CTI) software for interfacing with the switch / media gateway and other components. The call controller 108 may include a session initiation protocol (SIP) server for processing SIP calls. The call controller 108 may also extract data regarding incoming interactions, such as the customer's phone number, IP address, or email address, and then communicate these to other contact center components in processing the interaction.
[0053] The interactive media response (IMR) server 110 may be configured to enable self-help or virtual assistant functions. Specifically, the IMR server 110 may be similar to an interactive voice response (IVR) server, except that the IMR server 110 is not limited to voice and may also cover a variety of media channels. In an example illustrating voice, the IMR server 110 may be configured with an IMR script to query a customer for their needs. For example, a bank contact center may instruct a customer via an IMR script to "press 1" if the customer wants to retrieve their account balance. Through ongoing interaction with the IMR server 110, the customer may receive service without needing to speak with an agent. The IMR server 110 may also be configured to ascertain the reason the customer is contacting the contact center so that the communication may be routed to the appropriate resource. The IMR configuration may be implemented through the use of self-service and / or assisted service tools, including web-based tools for developing IVR and routing applications that run within the contact center environment.
[0054] The routing server 112 may function to route incoming interactions. For example, once it is determined that an incoming communication should be handled by a human agent, functionality within the routing server 112 may select the most appropriate agent and route the communication to that agent. This agent selection may be based on which available agent is best suited to handle the communication. More specifically, the selection of the appropriate agent may be based on a routing strategy or algorithm implemented by the routing server 112. In doing so, the routing server 112 may query data related to the incoming interaction, such as data related to the particular customer, the available agents, and the type of interaction, which may be stored in a particular database, as described herein. Once an agent is selected, the routing server 112 may interact with the call controller 108 to route (i.e., connect) the incoming interaction to a corresponding agent device 118. As part of this connection, information about the customer may be provided to the selected agent via their agent device 118. This information is intended to enhance the services that the agents can provide to the customer.
[0055] It should be appreciated that the contact center system 100 may include one or more mass storage devices (generally represented by the storage device 114) for storing data in one or more databases related to the contact center's functions. For example, the storage device 114 may store customer data maintained in a customer database. Such customer data may include, for example, customer profiles, contact information, service level agreements (SLAs), and interaction history (e.g., details of previous interactions with a particular customer, including the nature of the previous interactions, disposition data, wait times, handling times, and actions taken by the contact center to resolve the customer's issues). As another example, the storage device 114 may store agent data in an agent database. The agent data maintained by the contact center system 100 may include, for example, agent availability, as well as agent profiles, schedules, skills, handling times, and / or other related data. As another example, the storage device 114 may store interaction data in an interaction database. The interaction data may include, for example, data related to a number of past interactions between the customer and the contact center. More generally, unless otherwise specifically specified, it should be understood that storage device 114 may include databases and / or be configured to store data related to any of the types of information described herein, and that these databases and / or data are accessible to other modules or servers of contact center system 100 in a manner that facilitates the functions described herein. For example, a server or module of contact center system 100 may query such databases to retrieve data stored therein or transmit data to a database for storage. Storage device 114 may take the form of, for example, any conventional storage medium and may be housed locally or operated from a remote location.By way of example, the database may be a Cassandra database, a NoSQL database, or a SQL database, and may be managed by a database management system such as Oracle, IBM DB2, Microsoft SQL Server, Microsoft Access, PostgreSQL, or the like.
[0056] The statistics server 116 may be configured to record and aggregate data related to the performance and operational aspects of the contact center system 100. Such information may be compiled by the statistics server 116 and made available to other servers and modules, such as the reporting server 134, which may then use the data to generate reports used to manage operational aspects of the contact center and to take automated actions in accordance with the functionality described herein. Such data may relate to the status of contact center resources, such as average wait times, abandon rates, agent occupancy, and others as may be required by the functionality described herein.
[0057] The agent devices 118 of the contact center system 100 may be communication devices configured to interact with various components and modules of the contact center system 100 in a manner to facilitate the functionality described herein. For example, the agent devices 118 may include telephones adapted for regular telephone calls or VoIP calls. The agent devices 118 may further include computing devices configured to communicate with the servers of the contact center system 100, perform data processing associated with operations, and interface with customers via voice, chat, email, and other multimedia communication mechanisms in accordance with the functionality described herein. Although FIG. 1 shows three such agent devices 118, namely, agent devices 118A, 118B, and 118C, it should be understood that in a particular embodiment, there may be any number of agent devices 118.
[0058] The multimedia / social media server 120 may be configured to facilitate media interactions (other than voice) with the customer devices 102 and / or the server 128. Such media interactions may relate to, for example, email, voicemail, chat, video, text messaging, web, social media, co-browsing, etc. The multimedia / social media server 120 may take the form of any IP router conventional in the art having dedicated hardware and software for receiving, processing, and forwarding multimedia events and communications.
[0059] The knowledge management server 122 may be configured to facilitate interactions between customers and the knowledge system 124. Generally, the knowledge system 124 may be a computer system capable of receiving questions or inquiries and providing answers accordingly. The knowledge system 124 may be included as part of the contact center system 100 or may be operated remotely by a third party. The knowledge system 124 may include an artificial intelligence computer system capable of answering questions posed in natural language by extracting information from sources such as encyclopedias, dictionaries, newswire articles, literary works, or other documents submitted to the knowledge system 124 as reference material. As an example, the knowledge system 124 may be embodied as an IBM Watson or similar system.
[0060] The chat server 126 may be configured to conduct, direct, and manage electronic chat communications with customers. In general, the chat server 126 is configured to implement and maintain chat conversations and generate chat transcripts. Such chat communications may be conducted by the chat server 126 in such a manner that the customer communicates with an automated chatbot, a human agent, or both. In an exemplary embodiment, the chat server 126 may act as a chat directing server that routes chat conversations between chatbots and available human agents. In such a case, the processing logic of the chat server 126 may be rule driven to leverage intelligent workload distribution among available chat resources. The chat server 126 may further implement, manage, and facilitate user interfaces (UIs) associated with the chat functionality, including user interfaces (UIs) generated on either the customer device 102 or the agent device 118. The chat server 126 may be configured to transfer chats between automated and human sources within a single chat session with a particular customer, such that, for example, the chat session may transfer from a chatbot to a human agent or from a human agent to a chatbot. The chat server 126 may also be coupled to the knowledge management server 122 and the knowledge system 124 to receive suggestions and answers to inquiries posed by the customer during the chat, for example, so that links to related articles may be provided.
[0061] A web server 128 may be included to provide site hosts for various social interaction sites to which customers subscribe, such as Facebook, Twitter, Instagram, etc. Although depicted as part of the contact center system 100, it should be understood that the web server 128 may be provided by a third party and / or maintained remotely. The web server 128 may also provide web pages to businesses or organizations supported by the contact center system 100. For example, customers may browse web pages to receive information about products and services of a particular business. Within such business web pages, mechanisms may be provided for initiating interactions with the contact center system 100, for example, via web chat, voice, or email. One example of such mechanisms is a widget that may be deployed on a web page or website hosted on the web server 128. As used herein, a widget refers to a user interface component that performs a particular function. In some implementations, a widget may include a graphical user interface control that may be overlaid on a web page displayed to customers over the Internet. A widget may include buttons or other controls that show information in a window or text box, or allow a customer to access a particular function, such as sharing or opening a file, or initiating a communication. In some implementations, a widget includes a user interface component that has a portable portion of code that can be installed and executed within a separate web page without compilation. Some widgets may include corresponding or additional user interfaces and may be configured to access various local resources (e.g., calendar or contact information on the customer device) or remote resources over a network (e.g., instant messaging, email, or social networking updates).
[0062] The interaction (iXn) server 130 may be configured to manage the contact center's deferrable activities and the routing of the activities to human agents for completion. As used herein, deferrable activities include back office work that may be performed offline, such as responding to emails, attending training, and other activities that do not require real-time communication with customers. As an example, the interaction (iXn) server 130 may be configured to interact with the routing server 112 to select an appropriate agent to handle each of the deferrable activities. Once assigned to a particular agent, the deferrable activities are pushed to that agent, such that the deferrable activities are displayed on the selected agent's agent device 118. The deferrable activities may be displayed in a work bin as a task for the selected agent to complete. The functionality of the work bin may be implemented via any conventional data structure, such as, for example, a linked list, an array, and / or other suitable data structures. Each of the agent devices 118 may include a work bin. As an example, the work bin may be maintained in a buffer memory of the corresponding agent device 118.
[0063] A universal contact server (UCS) 132 may be configured to retrieve information stored in a customer database and / or send information to a customer database for storage in the customer database. For example, UCS 132 may be utilized as part of a chat function to facilitate maintaining a history of how chats with particular customers were handled, which may then be used as a reference for how future chat communications should be handled. More generally, UCS 132 may be configured to facilitate maintaining a history of customer preferences, such as preferred media channels and best times to contact. To do this, UCS 132 may be configured to identify data related to each customer's interaction history, such as, for example, data related to comments from agents, customer communication history, and the like. Each of these data types may then be stored in customer database 222 or other modules and retrieved as needed by the functionality described herein.
[0064] The reporting server 134 may be configured to generate reports from data compiled and aggregated by the statistics server 116 or other sources. Such reports may include near real-time or historical reports and may relate to the status of contact center resources and performance characteristics, such as, for example, average wait times, abandon rates, and / or agent occupancy. The reports may be generated automatically or in response to a specific request from a requestor (e.g., an agent, an administrator, a contact center application, etc.). The reports may then be used to manage the operation of the contact center in accordance with the functionality described herein.
[0065] The media services server 136 may be configured to provide audio and / or video services to support contact center functions, which may include, according to functionality described herein, IVR or IMR system prompts (e.g., playing audio files), music on hold, voicemail / single-party recording, multi-party recording (e.g., of audio and / or video calls), screen recording, voice recognition, dual tone multi frequency (DTMF) recognition, fax, audio and video transcoding, secure real-time transport protocol (SRTP), audio conferencing, video conferencing, coaching (e.g., support for a coach to eavesdrop on an interaction between a customer and an agent and for a coach to provide comments to an agent without the customer hearing the comments), call analysis, keyword spotting, and / or other related functions.
[0066] The analytics module 138 may be configured to provide a system and method for performing analytics on data received from multiple different data sources, as may be required by the functionality described herein. According to an example embodiment, the analytics module 138 may also generate, update, train, and modify predictors or models based on collected data, such as, for example, customer data, agent data, and interaction data. The models may include customer or agent behavior models. The behavior models may be used to predict, for example, customer or agent behavior in various situations, thereby enabling embodiments of the present invention to adjust interactions based on such predictions or allocate resources in preparation for predicted characteristics of future interactions, thereby improving overall contact center performance and customer experience. Although the analytics module is described as being part of a contact center, it will be understood that such behavior models may also be implemented in customer systems (or, as also used herein, the “customer side” of an interaction) and used to the benefit of the customer.
[0067] According to an example embodiment, the analytics module 138 may have access to data stored in the storage device 114, including a customer database and an agent database. The analytics module 138 may also have access to an interaction database that stores data related to interactions and interaction content (e.g., transcripts of interactions and events detected therein), interaction metadata (e.g., customer identifiers, agent identifiers, medium of the interaction, interaction length, interaction start and end times, departments, tagged categories), and application settings (e.g., interaction paths through the contact center). Additionally, the analytics module 138 may be configured to retrieve data stored in the storage device 114 for use in developing and training algorithms and models, for example, by applying machine learning techniques.
[0068] One or more of the included models may be configured to predict customer or agent behavior and / or aspects related to contact center operations and performance. Additionally, one or more of the models may be used for natural language processing, including, for example, intent recognition, and the like. The models may be developed based on known first principles equations describing the system, data resulting in empirical models, or a combination of known first principles equations and data. In developing models for use in the present embodiments, it may generally be preferred to build empirical models based on collected and stored data, since first principles equations are often not available or easily derived. In order to adequately capture the relationships between manipulated / disturbance variables and controlled variables of a complex system, it may be preferred in some embodiments for the models to be nonlinear. This is because nonlinear models may exhibit curvilinear relationships, rather than linear relationships, between manipulated / disturbance variables and controlled variables, which are common for complex systems such as those discussed herein. Considering the aforementioned requirements, machine learning or neural network-based approaches may be preferred embodiments for implementing the models. For example, neural networks may be developed based on empirical data using advanced regression algorithms.
[0069] The analysis module 138 may further include an optimizer. As will be appreciated, an optimizer may be used to minimize a "cost function" objective subject to a set of constraints, where the cost function is a mathematical expression of a desired objective or system behavior. Because the model may be nonlinear, the optimizer may be a nonlinear programming optimizer. However, it is contemplated that the techniques described herein may be implemented using a variety of different types of optimization approaches, individually or in combination, including, but not limited to, linear programming, quadratic programming, mixed integer nonlinear programming, stochastic programming, global nonlinear programming, genetic algorithms, particle / swarm techniques, and the like.
[0070] According to some embodiments, the model and optimizer may be used together in an optimization system. For example, the analytics module 138 may utilize the optimization system as part of an optimization process in which aspects of the contact center's performance and operations are optimized or at least enhanced. This may include, for example, features related to customer experience, agent experience, interaction routing, natural language processing, intent recognition, or other functionality related to automated processes.
[0071] The various components, modules, and / or servers of FIG. 1 (as well as other figures contained herein) may each include one or more processors that execute computer program instructions and interact with other system components to perform various functions described herein. Such computer program instructions may be stored in memory implemented using standard memory devices such as, for example, random-access memory (RAM), or may be stored on other non-transitory computer-readable media such as, for example, CD-ROM, flash drive, etc. Although the functionality of each of the servers is described as being provided by a particular server, those skilled in the art should understand that the functionality of the various servers may be combined or consolidated into a single server, or the functionality of a particular server may be distributed across one or more other servers without departing from the scope of the present invention. Additionally, the terms "interaction" and "communication" are used interchangeably and generally refer to any real-time and non-real-time interaction using any communication channel, including, but not limited to, telephone calls (PSTN or VoIP calls), email, Vmail, video, chat, screen sharing, text messages, social media messages, WebRTC calls, etc. Access to and control of the components of the contact center system 100 may be affected through user interfaces (UIs), which may be generated on the customer device 102 and / or the agent device 118.
[0072] As previously mentioned, in some embodiments, contact center system 100 may operate as a hybrid system in which some or all components are hosted remotely, such as in a cloud-based or cloud computing environment. It should be understood that each of the devices of contact center system 100 may be embodied as part of, include, or form one or more computing devices similar to computing device 200 described below with reference to FIG.
[0073] 2, a simplified block diagram of at least one embodiment of a computing device 200 is shown. The exemplary computing device 200 illustrates at least one embodiment of each of the computing devices, systems, services, controllers, switches, gateways, engines, modules, and / or computing components (e.g., which may be collectively referred to indistinguishably as computing devices, servers, or modules for ease of description) described herein. For example, various computing devices may be processes or threads executing on one or more processors of one or more computing devices 200, which processors may execute computer program instructions and interact with other system modules to perform various functions described herein. Unless otherwise specifically limited, functionality described in conjunction with multiple computing devices may be integrated into a single computing device, or various functionality described in conjunction with a single computing device may be distributed across several computing devices. Additionally, with respect to a computing system described herein, such as the contact center system 100 of FIG. 1, the various servers and computer devices of the system may be located on a local computing device 200 (e.g., on-site in the same physical location as the contact center agents), a remote computing device 200 (e.g., off-site, or in a cloud-based or cloud computing environment, e.g., in a remote data center connected via a network), or some combination thereof.In some embodiments, functionality provided by a server located on an off-site computing device may be accessed and provided via a virtual private network (VPN) as if such server were on-site, or the functionality may be provided using software as a service (SaaS) accessed over the Internet using various protocols, e.g., by exchanging data via extensible markup language (XML), JSON, and / or the functionality may be accessed / utilized otherwise.
[0074] In some embodiments, computing device 200 may be embodied as a server, a desktop computer, a laptop computer, a tablet computer, a notebook, a netbook, an Ultrabook™, a mobile phone, a mobile computing device, a smartphone, a wearable computing device, a personal digital assistant, an Internet of Things (IoT) device, a processing system, a wireless access point, a router, a gateway, and / or any other computing, processing, and / or communications device capable of performing the functions described herein.
[0075] The computing device 200 includes a processing device 202 that executes algorithms and / or processes data in accordance with operational logic 208, an input / output device 204 that enables communication between the computing device 200 and one or more external devices 210, and a memory 206 that stores data received from the external device 210 via, for example, the input / output device 204.
[0076] The input / output devices 204 enable the computing device 200 to communicate with external devices 210. For example, the input / output devices 204 may include a transceiver, a network adapter, a network card, an interface, one or more communications ports (e.g., a USB port, a serial port, a parallel port, an analog port, a digital port, VGA, DVI, HDMI, FireWire, CAT5, or any other type of communications port or interface), and / or other communications circuitry. The communications circuitry of the computing device 200 may be configured to perform such communications using any one or more communications technologies (e.g., wireless or wired communications) and associated protocols (e.g., Ethernet, Bluetooth, Wi-Fi, WiMAX, etc.) depending on the particular computing device 200. The input / output devices 204 may include hardware, software, and / or firmware suitable for implementing the techniques described herein.
[0077] External device 210 may be any type of device that allows data to be input or output from computing device 200. For example, in various embodiments, external device 210 may be embodied as one or more of the devices / systems described herein and / or portions thereof. Further, in some embodiments, external device 210 may be embodied as another computing device, a switch, a diagnostic tool, a controller, a printer, a display, an alarm, a peripheral device (e.g., a keyboard, a mouse, a touch screen display, etc.), and / or any other computing, processing, and / or communication device capable of performing the functions described herein. Further, it should be understood that in some embodiments, external device 210 may be integrated into computing device 200.
[0078] The processing device 202 may be embodied as any type of processor capable of performing the functions described herein. In particular, the processing device 202 may be embodied as one or more single-core or multi-core processors, microcontrollers, or other processors or processing / control circuits. For example, in some embodiments, the processing device 202 may include or be embodied as an arithmetic logic unit (ALU), a central processing unit (CPU), a digital signal processor (DSP), a graphics processing unit (GPU), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or another suitable processor. The processing device 202 may be of a programmable type, a dedicated hardwired state machine, or a combination thereof. A processing device 202 having multiple processing units may utilize distributed processing, pipelined processing, and / or parallel processing in various embodiments. Further, the processing device 202 may be dedicated to performing only the operations described herein, or may be utilized in one or more additional applications. In an illustrative embodiment, the processing device 202 is programmable and executes algorithms and / or processes data according to operating logic 208 defined by programming instructions (e.g., software or firmware) stored in memory 206. Additionally or alternatively, the operating logic 208 of the processing device 202 may be defined at least in part by hardwired logic or other hardware. Further, the processing device 202 may include one or more components of any type suitable for processing signals received from the input / output device 204 or from other components or devices and providing a desired output signal. Such components may include digital circuits, analog circuits, or a combination thereof.
[0079] Memory 206 may be of one or more types of non-transitory computer-readable media, such as solid-state memory, electromagnetic memory, optical memory, or combinations thereof. Additionally, memory 206 may be volatile and / or non-volatile, and in some embodiments, some or all of memory 206 may be of a portable type, such as a disk, tape, memory stick, cartridge, and / or other suitable portable memory. In operation, memory 206 may store various data and software used during operation of computing device 200, such as an operating system, applications, programs, libraries, and drivers. It should be appreciated that memory 206 may store data that is manipulated by operating logic 208 of processing device 202, such as, for example, data representing signals received from and / or transmitted to input / output devices 204, in addition to or instead of storing programming instructions that define operating logic 208. As shown in FIG. 2, memory 206 may be included with and / or coupled to processing device 202, depending on the particular embodiment. For example, in some embodiments, the processing device 202, memory 206, and / or other components of the computing device 200 may form part of a system-on-a-chip (SoC) and be integrated into a single integrated circuit chip.
[0080] In some embodiments, various components of computing device 200 (e.g., processing device 202 and memory 206) may be communicatively coupled via an I / O subsystem, which may be embodied as circuits and / or components for facilitating I / O operations with processing device 202, memory 206, and other components of computing device 200. For example, the I / O subsystem may be embodied as or may otherwise include a memory controller hub, an I / O control hub, firmware devices, communications links (i.e., point-to-point links, bus links, wires, cables, light guides, printed circuit board traces, etc.), and / or other components and subsystems for facilitating I / O operations.
[0081] Computing device 200 may, in other embodiments, include other or additional components, such as those typically found in a typical computing device (e.g., various input / output devices and / or other components). It should be further understood that one or more of the components of computing device 200 described herein may be distributed across multiple computing devices. In other words, the techniques described herein may be employed by a computing system including one or more computing devices. Additionally, while only a single processing device 202, I / O device 204, and memory 206 are illustratively shown in FIG. 2, it should be understood that a particular computing device 200 may, in other embodiments, include multiple processing devices 202, I / O devices 204, and / or memory 206. Furthermore, in some embodiments, two or more external devices 210 may communicate with computing device 200.
[0082] The computing device 200 may be one of multiple devices connected by a network or connected to other systems / resources via a network. The network may be embodied as any one or more types of communication networks capable of facilitating communication between various devices communicatively connected via the network. Thus, the network may include one or more networks, routers, switches, access points, hubs, computers, client devices, endpoints, nodes, and / or other intervening network devices. For example, the network may be embodied as or otherwise include one or more cellular networks, telephone networks, local or wide area networks, publicly available global networks (e.g., the Internet), ad-hoc networks, short range communication links, or combinations thereof. In some embodiments, the network may include circuit-switched voice or data networks, packet-switched voice or data networks, and / or any other network capable of carrying voice and / or data. In particular, in some embodiments, the network may include an Internet Protocol (IP)-based network and / or an asynchronous transfer mode (ATM)-based network. In some embodiments, the network may handle voice traffic (e.g., via a Voice over IP (VOIP) network), web traffic, and / or other network traffic, depending on the particular embodiment and / or the devices of the system that communicate with each other.In various embodiments, the networks may include analog or digital wired and wireless networks (e.g., IEEE 802.11 networks, Public Switched Telephone Networks (PSTN), Integrated Services Digital Networks (ISDN), and Digital Subscriber Lines (xDSL)), Third Generation (3G) mobile networks, Fourth Generation (4G) mobile networks, Fifth Generation (5G) mobile networks, wired Ethernet networks, private networks (e.g., intranets, etc.), radio, television, cable, satellite, and / or any other distribution or tunneling mechanism for carrying data, or any suitable combination of such networks. It should be understood that various devices / systems may communicate with each other over different networks depending on the source and / or destination device / system.
[0083] It should be understood that computing devices 200 may communicate with other computing devices 200 via any type of gateway or tunneling protocol, such as Secure Socket Layer or Transport Layer Security. The network interface may include a built-in network adapter, such as a network interface card, suitable for interfacing the computing device to any type of network capable of performing the operations described herein. Furthermore, the network environment may be a virtual network environment in which various network components are virtualized. For example, the various machines may be virtual machines implemented as software-based computers running on a physical machine. The virtual machines may share the same operating system, or in other embodiments, different operating systems may run on each virtual machine instance. For example, a "hypervisor" type of virtualization is used in which multiple virtual machines run on the same host physical machine, each functioning as if it had its own dedicated box. Other types of virtualization may be employed in other embodiments, such as networks (e.g., via software-defined networking) or functions (e.g., via network function virtualization).
[0084] Accordingly, one or more of the computing devices 200 described herein may be embodied as or form a part of one or more cloud-based systems. In a cloud-based embodiment, the cloud-based system may be embodied, for example, as a server-ambiguous computing solution that executes instructions on demand, executes instructions only when prompted by a particular activity / trigger, and does not consume computing resources when not in use. That is, the system may be embodied as a virtual computing environment that exists "on" the computing system (e.g., a distributed network of devices) where various virtual functions (e.g., Lambda functions, Azure functions, Google Cloud functions, and / or other suitable virtual functions) may be executed corresponding to the functionality of the system described herein. For example, when an event occurs (e.g., data is transferred to the system for processing), the virtual computing environment may be communicated (e.g., via a request to the virtual computing environment's API), which may then route the request to the correct virtual function (e.g., a particular server-ambiguous computing resource) based on a set of rules. Thus, when a request for transmission of data is made by a user (eg, via an appropriate user interface to the system), an appropriate virtual function may be executed to perform the action before deleting the instance of the virtual function.
[0085] 3-4, in use, the contact center system 100 may execute a method 300 for automated process discovery. It will be understood that certain blocks of the method 300 are illustrated by way of example, and that such blocks may be combined or divided, added or removed, and / or reordered in whole or in part, depending on the particular embodiment, unless stated to the contrary.
[0086] The example method 300 begins at block 302 where the system 100 determines a context of an interaction between a contact center agent and a contact center client. For example, the system 100 may determine a subject or purpose of the agent-client interaction (e.g., changing a bill plan, updating contact information, etc.). It should be understood that the number, character, and / or scope of the context may vary depending on the particular embodiment. In some embodiments, the system 100 may perform a method 500 for determining a context of an interaction between an agent and a contact center client.
[0087] It is to be understood that certain blocks of method 500 are illustrated by way of example, and that such blocks may be combined or divided, added or removed, and / or reordered in whole or in part, depending on the particular embodiment, unless stated to the contrary. Exemplary method 500 begins at block 502, where system 100 receives an incoming call from a contact center client to an agent (e.g., to resolve a particular inquiry for the client). At block 504, system 100 records call audio and / or video associated with an interaction between the agent and the client. Additionally, in some embodiments, system 100 may also perform screen recording to capture the agent's interaction with one or more applications as the agent interacts with the client for a particular context.
[0088] At block 506, the system 100 converts the call audio into a text conversation transcript of the interaction. It should be appreciated that in other embodiments, the agent and client may interact via a text-based format (e.g., web-based chat), in which case a text conversation transcript may already exist without speech-to-text conversion.
[0089] In block 508, the system 100 determines the context of the call based on the conversation transcript. For example, the system 100 may extract the meaning, intent, subject matter, and / or purpose of the agent-client interaction as reflected by the conversation transcript. It is understood that the system 100 may utilize any text analysis technique or algorithm to do so. For example, in block 510, the system 100 may utilize lemmatization for lexical or linguistic morphological analysis of words in the conversation transcript or its derivative. In another embodiment, the system 100 may utilize stemming to extract surrounding prefixes, suffixes, and / or other derivational affixes from the words. In block 412, the system 100 may remove stop words from the conversation transcript or its derivative. For example, the system 100 may remove words that convey little useful information, such as, for example, articles, modal verbs, and / or similar terms. In block 514, the system 100 may perform summarization of the conversation transcript or its derivative to compress the text into a shorter version of the text. At block 516, system 100 may extract keywords from the conversation transcript or a derivative thereof. Although lemmatization, stop word removal, summarization, and keyword extraction are described as examples, it should be understood that in other embodiments, system 100 may utilize additional and / or alternative text analysis techniques to determine the context of the agent-client interaction. Moreover, it should be understood that in determining the context, system 100 may utilize any number of such techniques in any suitable order and / or combination. Thus, in some embodiments, the output text of one technique (e.g., lemmatization) may be used as input text for another technique (e.g., stop word removal), such that a series of text analysis techniques may be used in conjunction with each other.
[0090] Although blocks 502-516 are described relatively serially, it should be understood that various blocks of method 500 may be performed in parallel in some embodiments.
[0091] Returning to FIG. 3, in block 304, the system 100 captures actions taken by the agent during interaction with the client (e.g., in any desktop applications, web applications, and / or other applications used by the agent). In particular, in some embodiments, the applications used by the agent to respond to client inquiries may include software code (e.g., JavaScript) that triggers certain events when a corresponding action occurs by the agent in the application. For example, the actions may include mouse-related actions (e.g., click, double-click, etc.), focus-related actions, clipboard-related actions (e.g., copy, cut, paste, etc.), keyboard-related actions (e.g., key presses, etc.), and / or other related actions that trigger corresponding events when they occur within the related application. FIG. 6 is an example of JavaScript code for capturing events triggered by agent actions with the application. It should be appreciated that the agent may use any number of applications (e.g., agent desktop, CRM applications, billing applications, other web applications, etc.) in resolving client inquiries depending on the particular embodiment.
[0092] Additionally, in block 306, the system 100 may generate an agent trace based on events (e.g., JavaScript events) triggered across agent applications accessed by the agent during agent-client interaction. In some embodiments, the agent trace is a time series of events triggered by the agent during the interaction. FIG. 7 is an example of an agent trace generated from JavaScript events triggered by an agent interaction with an application during agent-client interaction. As shown, FIG. 7 depicts the agent trace in a tabular format, including an identifier, agent name, context, DOM element type, event, page URL, and values for each of the triggered events. However, it should be understood that the agent trace may be formatted differently and / or may include additional or alternative data in other embodiments.
[0093] At block 308, system 100 may determine the time spent in each application, each action, and / or each process or sub-process based on the agent trace. In some embodiments, system 100 may also determine the intent of why the agent was interacting with each application (e.g., using techniques similar to those described with reference to block 302, but during the portion of the timeline associated with use of the respective application).
[0094] In other embodiments, system 100 can determine actions taken by an agent during an interaction with a client (e.g., including the duration of each action) by analyzing a screen recording of the agent's application during the agent-client interaction. For example, system 100 can apply various computer vision algorithms, filters, and / or techniques to generate a processed version of the captured image and / or a reformatted version thereof that can be used to determine the relevant actions taken by the agent. In particular, in some embodiments, system 100 may utilize image filters (e.g., kernel-based convolution, masking, etc.), edge detection algorithms (e.g., Canny edge detection, Sobel filters, etc.), image segmentation algorithms (e.g., pyramid segmentation, watershed segmentation, etc.), blob detection algorithms, corner detection algorithms, feature identification and / or matching algorithms (e.g., scale-invariant feature transform (SIFT), speeded-up robust features (SURF), etc.), morphological image processing algorithms (e.g., erosion, dilation, opening, closing, etc.), and / or other suitable algorithms useful for performing the functions described herein. Additionally, in some embodiments, system 100 may leverage machine learning techniques to determine the action taken by the agent. For example, in some embodiments, the system 100 may utilize neural network algorithms, regression algorithms, instance-based algorithms, regularization algorithms, decision tree algorithms, Bayesian algorithms, clustering algorithms, association rule learning algorithms, deep learning algorithms, dimensionality reduction algorithms, and / or other suitable machine learning algorithms, techniques, and / or mechanisms.
[0095] In block 310, the system 100 determines a sequence of actions taken by the agent during the agent-client interaction based on the agent trace. It should be understood that in some embodiments, the agent trace itself may represent such a sequence of actions. In some embodiments, in block 312, the system 100 stores the sequence with other agent sequences corresponding to the same interaction context. For example, the system 100 may store all interactions with the “bill plan change” context together (e.g., in the same data storage, database, and / or data structure) for improved processing and analysis.
[0096] At block 314, system 100 determines whether to analyze the sequences of actions stored for multiple agent-client interactions to determine whether a pattern emerges. For example, in some embodiments, system 100 analyzes the stored sequences periodically. In other embodiments, system 100 may analyze the stored sequences after a threshold number of sequences have been stored (or added). In still other embodiments, system 100 may be prompted to analyze the sequences differently.
[0097] If the system 100 determines not to analyze the sequence for patterns, the method 300 returns to block 302, where the system 100 continues to capture context and agent actions taken during the agent-client interaction. It should be understood that blocks 302-312 may be performed simultaneously in parallel for many separate agent-client interactions. If the system 100 determines to analyze the sequence for patterns, the method 300 proceeds to block 316 of FIG. 4, where the system 100 applies sequence matching to multiple agent-client interactions associated with a particular interaction context to generate or determine common agent action sequences across the multiple agent-client interactions. For example, in block 318, the system 100 can apply a top-k sequential (TKS) pattern mining algorithm to the sequence to find common sequences. Additionally or alternatively, in block 320, the system 100 can apply a generalized sequential pattern (GSP) matching algorithm to the sequence to find common sequences. Additionally or alternatively, in block 322, the system 100 may apply a convolutional neural network (CNN) or a recurrent neural network (RNN) with a long short-term memory (LSTM) architecture to find common sequences. However, it should be appreciated that the system 100 may additionally or alternatively utilize one or more other pattern matching algorithms on the sequences to find common sequences in various embodiments. It should be appreciated that in some embodiments, the sequence matching of block 316 may output a sequence of most common events across agent-client interactions.Additionally, it should be appreciated that in other embodiments, the system 100 may analyze various sequences to identify the most efficient action sequence, or the most efficient action sequence having at least a threshold number of matches.
[0098] In block 324, system 100 and / or a contact center supervisor may audit the common sequence (or other sequences) to, for example, verify that the sequence is functional, edit the sequence for further clarity or efficiency (e.g., removing unnecessary steps), and / or otherwise verify the sequence. For example, in some embodiments, system 100 presents the supervisor with a graphical user interface that identifies each of the actions / events in the common sequence and allows the supervisor to select which of those actions / events should be executed (e.g., via robotic process automation (RPA)) for verification.
[0099] In block 326, the system 100 and / or the contact center use the common sequence. For example, in block 328, the system 100 and / or the contact center may utilize one or more process benchmarks based on the common sequence. In particular, in some embodiments, the fastest sequence of events for a particular context is identified, verified, and if successful, the fastest sequence may be used as a benchmark or baseline for training other agents. In other embodiments, the average / median duration or number of actions (or other statistical measures) to address a particular inquiry or context may be compared for individual agent-client interactions to determine whether the agent was sufficiently efficient in responding to the inquiry. Additionally, in some embodiments, benchmarks may be established to achieve certain initiatives or goals of the contact center. For example, benchmarks may be established to verify that cross-selling occurs (e.g., an agent must mention at least two alternative billing plans), that CRM usage is efficient (e.g., an agent must spend less than two minutes in a CRM application), and that client follow-up occurs (e.g., an agent must send an email confirmation following after-call work). Additionally, in various embodiments, process benchmarking can provide various insights including, for example, whether an agent has missed something, whether an agent is following best practice, whether an agent needs help with anything, whether an agent needs to be trained in a particular area, and / or the performance of each agent. In some embodiments, process benchmarking and / or monitoring can be integrated into an agent assistance system to provide real-time support to agents (e.g., notifying an agent if they are likely to have skipped a step).
[0100] At block 330, the system 100 can perform Robotic Process Automation (RPA) based on the common sequence. That is, to assist the agent and automate the repetitive workflow, the system 100 can automatically (or through monitoring) generate an RPA workflow that executes the common sequence (or an edited version thereof) on behalf of the agent. It should be appreciated that the actual execution of the RPA workflow can be prompted through various mechanisms, including, for example, an agent pre-executing the RPA workflow, the system 100 automatically executing the RPA workflow in response to identifying the relevant context, and / or others. FIGS. 8-9 are an example of Python code for executing an RPA workflow created using the techniques described herein. It should be appreciated that the RPA workflow can be executed from various touchpoints within the system 100.
[0101] Although blocks 302-330 have been described in a relatively serial manner, it should be understood that various blocks of method 300 may be performed in parallel in some embodiments. Additionally, while method 300 has been generally described with respect to performing various features at an agent-client interaction level, it should be understood that similar techniques may be applied with respect to sub-interactions. For example, in some embodiments, system 100 may determine the context of one or more sub-interactions between an agent and a client using techniques similar to those described with respect to determining the context of an agent-client interaction (see, e.g., FIG. 5).
Claims
1. 1. A method for leveraging automated process discovery in a contact center system, the method comprising: determining, by the computing system, for each of a plurality of agent-client interactions, a context of the interaction between a corresponding contact center agent and a corresponding contact center client; capturing, by the computing system, for each of the plurality of agent-client interactions, actions taken by the corresponding contact center agent during the corresponding interaction; determining, by the computing system, for each of the plurality of agent-client interactions, a corresponding sequence of actions taken by the corresponding contact center agent based on the captured actions; and applying sequence matching to determine a common sequence of actions based on the determined corresponding sequences of actions taken by the computing system for the plurality of agent-client interactions.
2. The method of claim 1 , wherein determining the context of the interaction includes determining a context of at least one sub-interaction between the corresponding contact center agent and the corresponding contact center client.
3. 2. The method of claim 1, wherein determining the corresponding sequence of actions comprises determining a corresponding sequence of actions taken by the corresponding contact center agent during at least one sub-interaction of the corresponding agent-client interaction.
4. 4. The method of claim 3, wherein applying sequence matching to determine the common sequence of actions comprises applying sequence matching to determine a common sequence of actions based on the determined corresponding sequence of actions taken during the at least one sub-interaction of the plurality of agent-client interactions.
5. Determining the context of the interaction includes: receiving, by the computing system, an incoming call from the corresponding contact center client to the corresponding contact center agent; recording, by the computing system, call audio from the incoming call; converting, by the computing system, the recorded audio of the call into a text conversation transcript; and determining, by the computing system, the context of the incoming call based on the text conversation transcript.
6. The method of claim 5 , wherein determining the context includes performing at least one of lemmatization, stop word removal, summarization, or keyword extraction on the text conversation transcript.
7. The method of claim 5 , wherein determining the context comprises applying machine learning to the text conversation transcript.
8. 2. The method of claim 1, wherein capturing the actions includes generating an agent trace based on events triggered across one or more agent applications accessed by the corresponding contact center agent during the interaction.
9. The method of claim 8 , wherein the event comprises a JavaScript event.
10. The method of claim 8 , wherein capturing the actions includes analyzing a screen recording of the corresponding contact center agent from the corresponding interaction.
11. The method of claim 8 , wherein capturing the actions further comprises determining a corresponding time spent on each of the one or more agent applications based on the agent trace.
12. The method of claim 1 , wherein applying the sequence matching comprises applying machine learning to determine the common sequences of actions.
13. 2. The method of claim 1, further comprising generating a robotic process automation (RPA) action for the context based on the common sequence of actions.
14. The method of claim 1 , further comprising auditing the common sequences of actions.
15. 1. A system for leveraging automated process discovery, the system comprising: At least one processor; and at least one memory containing a plurality of instructions stored therein, the instructions being responsive to execution by the at least one processor to cause the system to: determining, for each of a plurality of agent-client interactions, a context of the interaction between a corresponding contact center agent and a corresponding contact center client; for each of the plurality of agent-client interactions, capturing actions taken by the corresponding contact center agent during the corresponding interaction; determining, for each of the plurality of agent-client interactions, a corresponding sequence of actions taken by the corresponding contact center agent based on the captured actions; The system applies sequence matching to determine a common sequence of actions based on the determined corresponding sequences of actions taken for the multiple agent-client interactions.
16. Determining the context of the interaction includes: receiving an incoming call from the corresponding contact center client to the corresponding contact center agent; recording call audio from the incoming call; converting the recorded audio of the call into a text conversation transcript; and determining the context of the incoming call based on the text conversation transcript.
17. 20. The system of claim 16, wherein determining the context includes performing at least one of lemmatization, stop word removal, summarization, or keyword extraction on the text conversation transcript.
18. 16. The system of claim 15, wherein capturing the actions includes generating an agent trace based on JavaScript events triggered across one or more agent applications accessed by the corresponding contact center agent during the interaction.
19. 20. The system of claim 18, wherein capturing the actions further comprises determining a corresponding time spent on each of the one or more agent applications based on the agent trace.
20. 16. The system of claim 15, wherein the instructions further cause the system to generate a robotic process automation (RPA) action for the context based on the common sequence of actions.