Maintaining machine language model state across communication channels

Through the machine learning model and general logging system, the maintenance of dialogue state and smooth transition between channels are achieved, which solves the delay and interruption problems during channel switching in the prior art, and improves the efficiency and user experience of the customer support process.

CN113647067BActive Publication Date: 2025-02-11ASAPP INC
View PDF 17 Cites 0 Cited by

Patent Information

Application Number
CN202080028364.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-07-04
Filing Date
2020-04-10
Publication Date
2025-02-11
Estimated Expiration
2040-04-10

AI Technical Summary

Technical Problem

The prior art has delays and interrupts when switching between conversation channels and/or participants, resulting in poor communication.

Method used

By using machine learning models and general logging systems, maintaining dialogue states and smooth transitions between channels ensures continuity and efficiency of communication.

Benefits of technology

It effectively solves the delay and interrupt problems during channel switching, and improves the efficiency and user experience of the customer support process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113647067B_ABST
    Figure CN113647067B_ABST
Patent Text Reader

Abstract

Machine learning models can be used during a communication session to process natural language communications and perform actions related to the communication session. For example, machine learning models can be used to provide automatic responses to users, suggest completions for text entered by the user, or provide information about relevant resources. In addition, companies can implement automated workflows to facilitate users or reduce support costs. For example, allowing a user to change an address using an automated workflow may be faster or less expensive than using a human agent.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority claim

[0002] This patent application claims the benefit of U.S. Patent Application Serial No. 62 / 833,262 filed on April 12, 2019 and entitled “MAINTAINING MACHINE LANGUAGE MODEL STATE ACROSS COMMUNICATIONS CHANNELS” (ASAP-0021-P01).

[0003] This patent application claims the benefit of, and is a continuation of, each of the following U.S. patent applications: U.S. patent application serial number 16 / 503,528, filed on July 4, 2019, and entitled “MAINTAINING MACHINE LANGUAGE MODEL STATE ACROSS COMMUNICATIONS CHANNELS” (ASAP-0021-U01); U.S. patent application serial number 16 / 503,529, filed on July 4, 2019, and entitled “AUTOMATED COMMUNICATIONS OVER MULTIPLE CHANNELS” (ASAP-0021-U02); and U.S. patent application serial number 16 / 503,531, filed on July 4, 2019, and entitled “INITIALIZATION OF AUTOMATED WORKFLOWS” (ASAP-0021-U03).

[0004] The contents of each of the above-identified applications are hereby incorporated by reference in their entirety for all purposes. Background Art

[0005] Conversations between entities (e.g., people, automated response systems, and / or combinations of these) can occur in a variety of situations, such as a customer support session between a customer of a company and a customer service representative who is assisting the customer. Conversations can occur over different types of channels. For example, some conversations can occur over text channels, where the participants in the conversation exchange messages in text form, and some conversations can occur over voice channels, where the participants in the conversation speak to each other by transmitting audio signals.

[0006] In some instances, it may be desirable to switch between certain types of channels (e.g., from a voice channel to a text channel) or between various conversation entities (e.g., human and / or automated conversation entities). Currently known systems have many disadvantages when switching between conversation channels and / or participants. For example, delays and / or interruptions may occur during the conversion, such as: when a conversation entity determines that a channel or entity switch has occurred and takes time to determine the new correct channel or entity; when a conversation entity utilizes an incorrect channel (e.g., misses a switch and / or switches to the wrong channel); and / or when a conversation entity misses a message that must be repeated and / or causes an erroneous communication (e.g., when the channel has been switched but the conversation entity is unaware of the switch). In addition or alternatively, changes in channels and / or participants may result in more difficult or erroneous communications, for example, when previous communications are not easily accessible in a new channel format; when some communication histories are lost, forgotten, or omitted; and / or when changes in new channels (e.g., communication conventions, addresses, etc.) result in delays in providing new messages, understanding previous messages, and / or providing suboptimal messages for new channels. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The following detailed description of the invention and some of its embodiments may be understood by reference to the following drawings:

[0008] Figure 1 is an example system for translating customer support sessions between channels and / or between human and automated agents.

[0009] Figure 2A is an example method for switching a customer from a voice channel to a text channel.

[0010] Figure 2B is an example user interface for a text channel.

[0011] Figure 3 is an example system for transitioning a customer support session from a first channel to a second channel.

[0012] Figure 4A and 4B is an example method for transitioning a customer support session from a first channel to a second channel.

[0013] Figure 5 is an example system for implementing automated proxying on multiple channels.

[0014] Figure 6 is an example method for implementing automatic proxying on multiple channels.

[0015] Figure 7 is a list of examples of workflows that can be handled by an automated agent.

[0016] Fig. 8A and 8B is a sample user interface that can be used by a human agent to assist a customer.

[0017] Fig. 9 is an example approach for improving customer support by using machine learning models to handle communications between customers and human agents.

[0018] Fig.10 is an example general-purpose logging system for storing logs for multiple types of channels.

[0019] Figures 11A-11C is an example representation of common log entries across three channels.

[0020] Fig. 12A and 12B is an example method for implementing a general purpose logging system.

[0021] Fig.13 is an example system where a third-party company provides services to other companies.

[0022] Fig.14 is an exemplary computing device that can be used to implement any of the techniques described herein. DETAILED DESCRIPTION

[0023] Conversations between people occur in a variety of situations and using various types of communication channels. For example, a conversation may occur over the phone, in a video conference, or as an exchange of text messages. In some cases, a person may be engaging in a conversation where the other end of the conversation is generated using artificial intelligence techniques and machine learning models. The techniques described herein can be used with any type of conversation, but for clarity of presentation, examples of customer support conversations between a customer and a human customer service agent or between a customer and automated customer support will be used as example conversations.

[0024] Companies need to interact with customers efficiently to provide services to their customers. For example, customers may need to obtain information about the company's services, may have questions about billing, or may need technical support from the company. Companies interact with customers in a variety of different ways. A company may have a website, and customers can navigate the website to perform various actions. A company may have an application ("app") running on a user device (such as a smart phone or tablet computer) that provides services similar to a website. A company may have a phone number that a customer can call to obtain information or talk to a customer service representative via an interactive voice response. The company can also use various social media services (such as Facebook or Twitter) to respond to customers. The company can also use various forms of text messages to interact with customers. As used herein, text messages include any message sent as text, including but not limited to: messages sent using email, SMS (short message service) or dedicated applications (e.g., Facebook Messenger, Apple iMessage, Google Hangouts or WhatsApp).

[0025] In some instances, companies may provide automated support to customers. In these instances, the customer is part of a conversation in which the messages received from the company are generated by a "bot" and generated by a mathematical model or process. Thus, the conversation can include messages exchanged between a human and a computer or even between different computers (e.g., between two robots exchanging messages).

[0026] Customers can use a variety of communication technologies to seek support from the Company, and the techniques described herein are not limited to any particular communication technology. For example, customers can communicate by typing text messages or chatting, and customers can send messages using any appropriate device, such as a computer, smart phone, tablet computer, wearable device, or IoT device. Customers can use any appropriate technology to transmit messages, such as using an app running on the customer's device (e.g., the company's app or a third-party app created to handle customer requests), a web page, a text messaging client, or sending an email to transmit communications.

[0027] As used herein, a channel includes any means of transmitting communications between a company and a customer. The technology described herein is not limited to any particular channel, and the following are examples of possible channels: a voice call from a landline; a voice call from a mobile phone; a voice or video call using a third-party communication platform (such as Skype, Google Hangouts, and Apple Facetime, each of which may be a separate channel); an SMS or MMS message; or a third-party messaging platform (such as Facebook Messenger, Apple Business Chat, or Twitter, each of which may be a separate channel).

[0028] Channels may be grouped by their capabilities. For example, a voice channel includes any channel that allows communication via voice, and a text channel includes any channel that allows communication using text messages, and some channels may be both voice and text channels. A company may communicate with a single customer over multiple channels, such as based on the customer's preferences or the goals of the communication session. A company may also communicate with a customer over multiple channels simultaneously.

[0029] Machine learning tools can be used to facilitate various aspects of a conversation. In some conversations, one end of the conversation can be automated using machine learning tools. For example, for a text channel, an algorithm can generate a text message to send to someone, and for a voice channel, an algorithm can generate speech to present to someone. In some conversations, machine learning tools can be used to assist the people in the conversation, such as by suggesting text that someone is typing or automatically providing information relevant to the conversation.

[0030] In some cases, it may be desirable to change communication channels or switch between customer support provided by a human agent and automated customer support. For example, a person receiving customer support over the phone may lose the connection and desire to resume the conversation using a text channel. For another example, a person may be talking to a human agent, and the human agent may transfer the person to automated customer support because the automated customer support is available to resolve the customer's support issue.

[0031] Therefore, various types of conversions may occur. The first type of conversion is a conversion from a first channel with a human agent to a second channel with a human agent. For example, a conversion from text support to voice support, a conversion from voice support to text support, a conversion from a first type of text support (e.g., Apple Business Chat) to a second type of text support (e.g., SMS), or a conversion from a first type of voice support (e.g., Skype) to a second type of voice support (e.g., a phone call). The second type of conversion is a conversion from a first channel with an automatic agent to a second channel with an automatic agent (any of the above channel conversions). The third type of conversion is a conversion from receiving support from an automatic agent to receiving support from a human agent (including any of the above channel conversions that remain on the same channel). Finally, the fourth type of conversion is a conversion from receiving support from a human agent to receiving support from an automatic agent (including any of the above channel conversions that remain on the same channel). In addition to the above, the conversion may include a conversion from a first channel to both the first channel and the second channel. For example, a customer may communicate via a text channel and a voice channel at the same time.

[0032] Figure 1 is an example system 100 for transitioning customer support sessions between different channels and also for transitioning between human agents and automated agents.

[0033] exist Figure 1 In the example of FIG. 1 , a customer 110 may be seeking customer support from a company. The company may allow the customer to obtain support through various channels, such as any combination of text, audio, or video. The customer may have multiple devices that he can use to obtain support, such as a customer text device 111 that allows the customer to send text messages to the company or a customer voice device 112 that allows the customer to communicate with the company using voice. The customer may have a single device that supports both text and voice (e.g., a smartphone), and may have multiple devices that support either or both text and voice communications (e.g., a landline phone, a personal computer, a tablet, etc.).

[0034] Thus, customers can seek support using a variety of devices and channels, and can seek (or be assigned to) a support session with a human agent or an automated agent. As part of the support session, the customer device can establish a connection with the company's API (application programming interface) server 120. Although the company may have different servers for different types of support requests, for clarity of presentation, Figure 1 A single API server 120 is illustrated for handling support requests from customers.

[0035] The API server 120 may include any appropriate technology for communicating with clients, such as firewalls, load balancing, etc. The API server 120 may communicate with various other components for assisting in the customer support process. For example, when the client 110 is communicating via a text channel and receiving support from an automated agent, the API server 120 may communicate with an automated text support component 131 that is capable of processing text messages received from the client and providing an appropriate response. Similarly, when the client is communicating via a voice channel and receiving support from an automated agent, the API server 120 may communicate with an automated voice support component 132.

[0036] A company may have multiple human agents to support customers. Human agents may provide support via a text channel, support via a voice channel, or both. Figure 1 In the embodiment of the present invention, text agent 151, text agent 152, text agent 153, voice agent 161, voice agent 162 and voice agent 163 can be used to provide support to customers. When customer 110 receives support from a human agent, API server 120 can connect the customer with a text agent or a voice agent according to the communication channel used by the customer.

[0037] Companies that provide customer support services can use machine learning techniques to improve the customer support process. Figure 1 A machine learning component 140 is illustrated that can be used to facilitate both automated support and support by human agents. For example, with automated support, machine learning techniques can be used to understand communications from a customer and then generate responses and / or perform actions as part of the support process. With support by human agents, machine learning techniques can be used to assist the human agents. For example, machine learning can be used to provide automatic completion of text entered by the agent, suggest responses for the agent to send to the customer, or automatically provide resources related to the topic of the conversation, such as the customer's billing history or the customer's cable modem manual.

[0038] Machine learning techniques may include any of the techniques described in: U.S. Patent 9,715,496; U.S. Patent 10,109,275; U.S. Published Application Publication 2018 / 0374029; U.S. Patent 10,083,451; U.S. Published Application Publication 2019 / 0019197; U.S. Patent 9,892,414; U.S. Patent Application Serial No. 15 / 836,110; U.S. Patent Application Serial No. 15 / 863,225; U.S. Patent 10,210, 244; U.S. Patent 10,097,690; U.S. Patent 10,169,315; U.S. Patent Application Serial No. 16 / 035,062; U.S. Patent Application Serial No. 16 / 054,473; U.S. Patent Application Serial No. 16 / 189,584; U.S. Provisional Patent Application Serial No. 62 / 777,434; U.S. Patent Application Serial No. 16 / 252,063; and U.S. Provisional Patent Application Serial No. 62 / 800,099; each of which is hereby incorporated by reference.

[0039] During a customer support session, a customer may switch to a different channel or switch between support from a live agent and an automated agent. Switching may occur for a variety of reasons, such as the following: the customer wishes to switch to a different channel for their own convenience; the phone call was dropped; the customer's issue may be more easily resolved on a different channel; the company may recommend that the customer switch from a voice channel to a text channel to reduce costs; or the company may recommend that the customer switch from live support to automated support for customer convenience and to reduce costs.

[0040] During a customer support session on a particular channel, various computations may be performed by processing the communications of the session. In some implementations, a mathematical model or machine learning model, such as a neural network, may process the text or audio of the conversation. For example, a machine learning model may be used to determine the intent of a communication received from a customer, determine the sentiment of a customer, suggest messages for a human agent to send to a customer, or any application of a mathematical model described herein or in the patents and applications incorporated by reference. The computations may be used and updated throughout the customer support session.

[0041] When a customer switches from a first channel to a second channel, it may be desirable to use the results of calculations performed using the first channel after switching to the second channel. Thus, cache 160 may be used to store calculations performed during a customer support session using the first channel so that the calculations may be used after switching to the second channel, as described in more detail below.

[0042] A company may wish to store a log of customer support sessions with a customer. The log of the customer support session may include the text of the messages exchanged during the session, an audio transcript of the session, and other information, such as information about the user interface presented to the customer or the actions performed. Different channels may have different capabilities in terms of presenting information to the customer. In addition to the differences between text and audio channels, two different text channels may have different capabilities. For example, some text channels may only allow the exchange of text, such as SMS messages. Other text channels, such as text chat embedded in a web page, may allow enhanced content, such as presenting a form or one or more buttons to the customer.

[0043] A company may have different sets of logs for different channels, but having different logs for different channels may make obtaining all logs for a particular customer more difficult and / or more computationally intensive. To facilitate the use of multiple channels, a company may desire to use a common log format that allows interactions with customers to be stored in a single location regardless of the capabilities of the channel over which the communication occurred. Thus, a company may use common log data store 170 to store logs across multiple or all available channels.

[0044] Channel switching with human agents

[0045] In some implementations, a customer may be conversing with a human agent on a first channel, and the conversation may be transferred to a second channel with the same human agent or possibly a different human agent. Figure 2A and 2B An example is illustrated where a customer transitions from voice support to text support.

[0046] exist Figure 2A In step 210, customer support is provided to the customer via a voice channel. For example, the customer may have called a telephone number of a company seeking support. At step 220, customer support is switched to a text channel. For example, the customer or the company may have requested that the support process continue via a text channel. The support process may be switched to a text channel using any suitable technique. For example, the customer may access text support on the company's website, or support may continue using SMS messaging.

[0047] To facilitate the transition from the voice channel to the text channel, it may be desirable to present the client with a transcription or summary of what occurred on the voice channel. In the event that there is some delay in transitioning from the voice channel to the text channel, the transcription or summary may refresh the client's memory. At step 230, a text transcript or summary of the voice-based support is generated, and at step 240, the text transcript or summary is presented to the client via the text channel. In some implementations, a transcription may be generated for each communication as it is received.

[0048] Figure 2B Example messages that may be presented on a text channel are illustrated. Message 260 informs the customer that the support session on the voice channel is continuing on the text channel, and message 270 provides a summary of what is happening on the voice channel.

[0049] At step 250, the support session continues on the text channel, where the customer and the human agent exchange text messages. Figure 2B , message 280 is a message from the human agent continuing the support process, and message 290 is a response from the customer.

[0050] More generally, a client may switch from a first channel of any type to a second channel of any type. Figure 3 is an example system 300 for transitioning a customer support session with a customer from a first channel to a second channel, and Figure 4A and 4B is an example method for switching a client from a first channel to a second channel.

[0051] At step 410, a first customer support session is initiated with a customer on a first channel, wherein the support session is between the customer and a human agent. Figure 3 The client 110 may use the voice channel to establish a connection with the API server 120. In step 415, an identifier of the client that started the support session is obtained. In some implementations or instances, the client identifier may be available at the beginning of the session. For example, if the client is logged into a company's web page and the client is requesting support via the web page, the client identifier may be included in the client support request. In the event that the client identifier is not included in the support request, any suitable technique may be used to obtain the client identifier. For example, the client may be asked to provide a username and password.

[0052] Figure 3 API server 120 may perform any suitable actions to begin the customer support process, such as creating a new customer support session and connecting the customer with a human agent (e.g., human agent 310). In creating a new customer support session, API server 120 may use session manager component 340. Session manager component 340 may be configured to perform any suitable actions to create a session. For example, session manager component 340 may create an entry in session data store 350 that includes an identifier for the session, an identifier for the customer, an identifier for a human agent assigned to the customer support session, and any other suitable information.

[0053] One or more communications are transmitted between the customer and the human agent at step 420. For example, if the first channel is a voice channel, the customer and the human agent may talk to each other, or if the first channel is a text channel, a text message may be transmitted.

[0054] At step 425, the communication is processed with one or more machine learning models to provide assistance to the customer or human agent. Any suitable machine learning model may be used, such as an artificial neural network, a support vector machine, a Bayesian network, or a genetic algorithm. The machine learning model may process any suitable data, such as the text or audio of the communication, data from a customer profile, or any other data available to the company. The machine learning model may implement any suitable functionality, such as any functionality described herein or in the patents and applications incorporated by reference.

[0055] In some implementations, for text channels, a machine learning model may process each character as it is typed by the customer or agent and suggest completions for what is being typed. For example, a suggested completion may be presented near the text being typed, and the user may select the suggested completion and send it. In some implementations, a machine learning model may process the communication and suggest a complete message for the user to send to another user. In some implementations, a machine learning model may process the communication and suggest resources relevant to the conversation. For example, in a situation where a customer and an agent are discussing an issue with a modem, a link to a manual for the modem may be presented to the customer and / or agent.

[0056] In some implementations, some machine learning models may be used with more than one channel, and some machine learning models may be specific to a particular channel. Additional details of the machine learning models described below can be found in the patents and applications incorporated by reference.

[0057] The following are examples of machine learning models that can be used with more than one channel: a machine learning model that processes communication text and computes a context vector that describes the context of the conversation; and a machine learning model that processes input related to the conversation (e.g., a context vector computed by a previous machine learning model) and selects one or more resources related to the conversation (e.g., a manual for a modem).

[0058] The following are examples of machine learning models that may be specific to text channels: a machine learning model that processes individual characters as the user is typing and suggests completions for the text being typed; a machine learning model that processes input related to a conversation (e.g., a context vector as described above) and suggests communications transmitted by one person to another.

[0059] The following are examples of machine learning models that might be specific to the voice channel: a machine learning model that converts speech to text; a machine learning model that processes audio to determine the speaker's emotion; and a machine learning model that converts text to speech.

[0060] In some implementations, an instance of a machine learning model can be created for a customer support session. For example, a first machine learning model can have a definition, such as the type of model (e.g., convolutional neural network, recurrent neural network, support vector machine), parameters (e.g., number and size of layers), and initialization values ​​(e.g., values ​​of individual neurons). When a first customer support session begins, an instance of the first machine learning model can be created on a server computer assigned to the first session. The first instance of the first mathematical model can be created using the definition of the mathematical model described above. In some implementations, the first instance of the first mathematical model can exist only for the duration of the first session and can be removed from memory at the end of the session.

[0061] exist Figure 3 , general machine learning model 330 may represent a model that can be used in more than one channel, voice machine learning model 332 may represent a machine learning model specific to a voice channel, and text machine learning model 334 may represent a model specific to a text channel. Machine learning models may be further specific to a particular channel (e.g., a Skype call) or other channel characteristics (e.g., a video channel or a channel that supports both voice and text).

[0062] Machine learning models can be combined in any way that is appropriate for the channel. For example, the output of a speech or text machine learning model can be the input to a general machine learning model, and the output of a general machine learning model can be the input to a speech or text machine learning model.

[0063] The combination of the general machine learning model 330, the speech machine learning model 332, and the text machine learning model 334 can be used to provide any of the functionality described above, such as suggesting resources to a human agent or customer.

[0064] At step 430, a determination is made to switch to another channel. The switch to another channel may be based on any appropriate reason. For example, the customer may request to continue the conversation on a different channel, or the company may suggest to continue the conversation on a different channel. In some implementations or instances, there may not be an explicit determination to switch to another channel. For example, the cell phone connection with the customer may be dropped, and the customer may reconnect using a different channel. For another example, after the conversation ends, the customer may realize that his problem is not resolved or not fully resolved, and reconnect using a different channel.

[0065] At step 435, the session ends. Any suitable technique may be used to end the session. For example, the connection may be interrupted (e.g., the call is dropped), the customer may end the session, or the agent may end the session. In some implementations or instances, the session may not end, and the customer may be participating through two channels simultaneously.

[0066] At step 440, the session data and machine learning model data are saved to a data store so that the data can be reused in future sessions. Any suitable session data and machine learning model data may be saved, and the data may be saved in any suitable location, represented by cache 160. For example, the data may be saved in a database stored on disk, an in-memory database, or a hybrid database (a mix of in-memory and disk storage). For example, the session data and machine learning model data may be saved to a data store by machine learning state component 336.

[0067] Any suitable session data may be stored at step 440. For example, the session data may include an identifier of the customer, other information about the customer (e.g., the customer's name or other information from a customer profile), text of the communications from the session, a timestamp associated with the session, identifiers of issues resolved during the session, information indicating whether respective issues were resolved during the session, and the status of the workflow (described in more detail below).

[0068] Any suitable machine learning model data may be stored at step 440. For example, the machine learning model data may include values ​​of individual neurons of a neural network (e.g., in the form of an internal state vector), values ​​input to the machine learning model, and values ​​output by the machine learning model. For example, a first machine learning model may calculate and output a first value, and a second machine learning model may process the first value as input. The first value may be stored so that it may be processed later by another neural network. For another example, a first neural network may perform a process, and while performing the process, individual neurons of the neural network may take values ​​corresponding to a state of the neural network. The values ​​of the individual neurons may be stored so that another neural network may be initialized to have the same state as the first neural network.

[0069] The storage of session data and machine learning model data can be performed at any suitable time. In some implementations, updates to the session data and machine learning model data can be stored to the data store throughout the session. For example, the machine learning model data can be stored in the data store after each instance of the machine learning model performs processing (e.g., after each communication is processed). In some implementations, the session data and machine learning model data can be stored at less frequent intervals or only at the end of the session.

[0070] Go to Figure 4B At step 450, a second customer support session is initiated on a second channel, wherein the support session is Figure 4A between a customer and a human agent. A human agent can be a Figure 4AThe same agent or a different agent. In step 455, an identifier of the customer is obtained. Steps 450 and 455 may use any of the techniques described above for steps 410 and 415.

[0071] The second channel may be the same type of channel as the first channel or may be a different type of channel. For example, where the first channel is a voice channel over a phone call and the user can call back when the call is disconnected, the second channel may also be a voice channel over a phone call. For another example, the first channel may be a voice channel and the second channel may be a text channel. For another example, the first channel may be a text channel (e.g., SMS) and the second channel may be a different type of text channel (e.g., a customer support interface on a web page).

[0072] At step 460, a search is performed for previous sessions of the customer. In some implementations, the session information may be stored in session data store 350, and the identifier of the customer may be used to search session data store 350 to find the customer's current or previous session. For example, session manager component 340 may perform a search of session data store 350.

[0073] In step 465, it is determined that the second session is Figure 4A Although the second session is a different session from the first session, it is determined that the second session is expected to continue the subject matter addressed in the first session. For example, the second session will address the same customer support issue that was addressed in the first session.

[0074] Any suitable information may be used to determine that the second session is a continuation of the first session. For example, the determination may be based on one or more of the following factors: the timestamp of the first session is close to the current time (e.g., the first session is ongoing or recently ended); the first session terminated unexpectedly (e.g., the phone call was dropped); the problem with the first session was not resolved; comparing the content of the communications of the second session to the content of the communications of the first session (e.g., the customer sent communications about the subject of the first session); or asking the customer (using a human or automated agent) whether the customer would like to continue the subject of the first session.

[0075] Any suitable technique may be used to determine that the second session is a continuation of the first session. In some implementations, a rule-based approach may be used. For example, if the first session is within 5 minutes of the current time, then it may be determined that the second session is a continuation of the first session. In some implementations, a machine learning model may process information about the second session and the first session and determine whether the second session is a continuation of the first session. For example, a neural network or a support vector machine may process any of the information described herein and output a decision about whether the second session is a continuation of the first session.

[0076] At step 470, a description of the first conversation is obtained. For example, the description can be a transcript of the first conversation or a summary of the first conversation. In some implementations, the transcript generator component 342 can be used to generate a transcript of the first conversation. For example, the transcript generator component 342 can retrieve the text or audio of the first conversation from the general log data store 170 and generate a transcript from the text or audio. In some implementations, the summary generator component 344 can retrieve the text or audio of the first conversation from the general log data store 170 and generate text that summarizes the content of the first conversation. For example, the summary generator component 344 can implement any of the techniques described in the patents and applications incorporated by reference.

[0077] At step 475, the description of the first session is presented to one or both of the customer and the human agent of the second session. For example, where the session is a text session, the text of the description may be presented to the customer or the agent. Where the session is a voice session, the speech of the generated description may be presented to the customer or the agent (or the text may be presented to the agent in an agent user interface).

[0078] Steps 470 and 475 are optional and may not be performed in some implementations or some instances. In some implementations, the description of the first conversation may depend on the type of channel or other circumstances. For example, for a text channel, the description may be a transcript, and for a voice channel, the description may be a summary. For another example, steps 470 and 475 may be skipped if the time between the first conversation and the second conversation is less than a threshold or if the first conversation and the second conversation are conducted simultaneously.

[0079] At step 480, session data and machine learning data from the first session are retrieved from a data store such as cache 160. The session data and machine learning data can be used to initialize one or more machine learning models. For example, a second instance of the first machine learning model described above at step 425 can be created. The second instance can be initialized, for example, by setting values ​​of neurons of the second instance from the machine learning data, performing other initialization steps, or by setting the session data or machine learning data as input to the second instance and processing the session data or machine learning data to initialize the second instance.

[0080] At step 485, one or more communications are transmitted between the customer and the human agent. Step 485 may use any of the techniques described above for step 420.

[0081] At step 490, the communication is processed with one or more machine learning models to provide assistance to the customer or a human agent. Step 490 may use any of the techniques described above for step 425.

[0082] The second session may then continue until it is terminated. In some instances, a customer may begin a third customer support session on a third channel, and the third customer support session may be determined to be a continuation of the second customer support session. In some instances, where the first and second sessions are ongoing simultaneously, the second session may end, and the customer may continue with the first session. For example, some aspects of a customer support session may be preferred to be conducted on a particular type of channel (e.g., verifying or submitting a credit card number), and the second session may be used to complete those aspects, and then processing may return to the first session.

[0083] The above process can provide many advantages to improve the customer support process. Determining that the second customer support session is a continuation of the first customer support session can improve the customer's experience and can also reduce customer support costs. By searching and finding the first session and determining that the second session is a continuation of the first session, the information from the first session can be immediately available to the human agent who is helping the customer. Therefore, the customer may not need to explain the customer support issue that was the subject of the first customer support session again. In addition, because the information of the first customer support session is immediately available, the second customer support session can be conducted more quickly, thereby freeing up human agents to help other customers and reducing the company's customer support costs.

[0084] In some aspects, storing session data and machine learning model data from a first session and retrieving data for a second session can improve the performance of the machine learning model. Improving the performance of the machine learning model can provide improved assistance to customers and human agents, and thus resolve customers' issues more quickly. Resolving issues faster can provide customers with higher satisfaction and provide companies with reduced customer support costs.

[0085] Channel switching with automatic proxy

[0086] Customers can also receive customer support via automated agents. In some instances, automated agents may be preferable because customers can receive help faster (e.g., without having to wait on hold on the phone), and it can reduce a company's customer support costs.

[0087] In some implementations, automated support can be similar to communicating with a human agent in that a customer can communicate using natural language (e.g., text or voice) and receive automated natural language responses. In some implementations, where the support process allows a customer to communicate using natural language, the customer may be able to change the direction of the conversation at any time. For example, a customer may initially communicate about a first support issue and then instead desire to communicate about a second support issue.

[0088] In some implementations, automated support may use natural language to identify the customer's issue, and the support process may then continue with an automated workflow, where the automated workflow may enable more structured communications, such as selecting among options, answering questions, and filling out forms. For example, natural language may be used to identify that the customer needs to provide an updated credit card, and then an automated workflow may be used to obtain the credit card number, expiration date, and three-digit card verification code (CVC). In some implementations, the automated support process may include a combination of natural language communications and automated workflows.

[0089] Any suitable technique may be used to implement the automated workflow. For example, the automated workflow may be implemented using logic that describes the information that needs to be obtained from the client and a program for obtaining the information. In some implementations, the automated workflow may be implemented using a decision tree, a directed graph, a finite state machine, or a finite state transducer, where processing may continue to subsequent nodes at a node of the tree or graph and based on communications or information received from the client. When all required information is received, the workflow may be complete.

[0090] In some implementations, the automated workflow can include a list of required information items and instructions for requesting each of the information items from the client and processing the client's response to identify the requested information. The workflow can iterate over the required information items and request each of them from the client.

[0091] The state of a workflow can be used to indicate the progress of the workflow. For example, in the case where a workflow obtains a set of information items from a client, the state of the workflow can include one or more of the information items whose values ​​have been received, the values ​​of the information items received, and the information items whose values ​​have not yet been received. Nodes of a tree or graph can be associated with states.

[0092] The process of understanding communications from customers may be referred to as intent detection or recognition. A company implementing an automated support system may categorize the communications it expects to receive from customers into a fixed number of defined intents. By categorizing communications into intents, it may be easier for the company to provide automated responses. For example, a "yes" intent may include multiple ways of conveying agreement (e.g., "yes," "ok," "that's good," etc.). To provide a response, it may be sufficient to know the intent of the communication, and the specific way in which the intent is expressed may not be important.

[0093] To determine the intent of a communication, the company processes the received communication with a mathematical model, such as an intent classifier. The mathematical model can provide an output indicating the intent of the communication from a list of possible intents, or indicating that the communication does not match any intent in the list of intents.

[0094] As used herein, an intent is a collection of communications that have similar meanings. A company may define a collection of intents (such as hundreds, thousands, or more intents), and may use any appropriate technique to define intents. For example, intents may be defined by a mathematical model that processes communications to determine the intent of the communications, or by a corpus of training data that is used to create the mathematical model. Because a wide variety of languages ​​may be used to express concepts, an intent may correspond to a large number of communications.

[0095] Intents can be assigned labels to make it easier for humans to understand the type of communication corresponding to the intent. For example, a "yes" intent can include a message expressing agreement, a "no" intent can include a message expressing disagreement, and a "PAY_BILL" intent can include a message expressing a desire to pay a bill.

[0096] In some implementations, intents can have slots to allow for greater flexibility. For example, where a company sells a large number of products, it may not be feasible to have intents associated with purchasing each of the products. Instead, intents can have slots (e.g., parameters or variables) to allow a single purchase intent to cover the purchase of any product. For example, a purchase intent can have a slot for a product, and when it is determined that the message corresponds to a purchase intent, the communication can also be processed to determine the value of the slot (e.g., the customer wants to purchase a stapler).

[0097] The techniques described herein for determining the intent of communications received from a client may use any of the techniques described in the incorporated patents and applications.

[0098] Companies can define a set of workflows or issues that can be handled by an automated support process. For example, Figure 7 Is a table with a list of possible workflows that may be handled by the automated support process. Each workflow may have a workflow identifier, an intent corresponding to the workflow, a list of information items required by the client to complete the workflow, and any other appropriate information required to complete the operation corresponding to the workflow. For example, the table may include specifications for API calls to be executed after all required information items are received from the client.

[0099] exist Figure 7 In the example shown in Figure 1, the first workflow is related to updating a customer's credit card. This workflow includes the CC_UPDATE intent, which corresponds to the expected language that a customer might use to indicate that they need to update their credit card. The workflow also includes a list of information items that the customer needs to complete the credit card update. Figure 7 Other intents in are related to updating the customer's address and helping the customer pay the bill.

[0100] During an automated support session, the information item required by the customer may be obtained by processing free-form text, using form fields, or any other appropriate technique. In some implementations, named entity recognition and other techniques may be used to extract information from text communications from a user. Named entity recognition techniques may be able to identify that an information item is present in text even though the information item may be presented in a variety of ways. For example, a date may be represented as "12 / 6 / 2020"; "December 6, 2020"; or "the 6th of December next year."

[0101] In some implementations, during an automated support session, a customer's communication may be processed to determine (i) the intent of the communication, (ii) a workflow of an automated support process corresponding to the intent, and (iii) a list of information items corresponding to the workflow. Additional communications from the customer may then be processed to identify information items corresponding to the workflow.

[0102] In some implementations, information items may be identified prior to determining an intent, or information items may be processed for an intent that has not yet been identified. For example, a customer might first communicate that "the expiration date is 12 / 6 / 2020," and later communicate that he needs to renew his credit card. The expiration date may be identified and used even if it was communicated prior to identifying the intent to renew the credit card. For another example, a customer might indicate that he needs to renew his credit card and then state his address. Although an address may not be needed to renew a credit card, the address may be identified and potentially used for future actions corresponding to other intents.

[0103] When using an automated agent to provide customer support to a customer, in some instances it may be desirable to switch from one channel to another. For example, a customer moves from a private location to a public location and may prefer to communicate using text rather than voice. For another example, some support programs may be more suitable for a specific type of channel, such as support on a web page, where a wider variety of information can be presented to the customer.

[0104] When a customer switches from auto support on the first channel to auto support on the second channel, the above Figure 4A and 4B A customer may initiate a customer support session on a first channel (e.g., a voice channel), where support is provided by an automated agent, and an identifier of the customer may be obtained. One or more communications may be transmitted between the customer and the automated agent, and the communications may use natural language or be part of a structured automated workflow. The communications between the customer and the automated agent may be processed by one or more machine learning models, such as to determine the intent of the customer communication, identify information items in the customer communication, or determine a next automated response by the automated agent.

[0105] The customer may then choose to switch to the second channel or continue the support process using both the first channel and the second channel, such as by using the above-described techniques. During the customer support process on the first channel, the session data and the machine learning model data may be saved to a data store so that the data may be used on other channels.

[0106] The customer may then begin a second customer support session with the automated agent on a second channel, and the second channel may be a different type of channel than the first channel (e.g., a text channel instead of a voice channel). As described above, an identifier for the customer may be obtained, which may be used to search for prior support sessions with the customer, and a determination may be made that the second session is a continuation of the subject matter of the first session, such as by using any of the techniques described above. In some implementations, a description of the support process on the first channel may be presented to the customer on the second channel, as described above.

[0107] The session data and the machine learning data may then be retrieved from the data store and used for the support session on the second channel. For example, the machine learning data may be used to initialize one or more machine learning models, such as machine learning models that identify intent, identify information items, or generate responses to communications from the customer. One or more communications may be transmitted between the customer and the automated agent, and the machine learning model may process the communications. This process may continue until the customer support session is completed or the customer transitions to a third channel.

[0108] In some implementations, automated workflows can be used to automate communications over multiple types of channels. For example, both a text channel and a voice channel might use the same automated workflow to resolve a customer support issue. However, because different channels have different capabilities for presenting communications to customers, other techniques may be needed to determine how to adapt a single workflow so that it can operate over multiple channels.

[0109] For example, as part of an automated workflow, an action to be performed might be to obtain a credit card number from a customer. Since the automated workflow is used for multiple channels, it might be desirable for an implementation of the action to be available for each channel of the customer support process.

[0110] For a voice channel, the implementation of the action of obtaining a credit card number may include the following steps: (i) presenting speech to the customer, asking the customer to speak their credit card number; (ii) processing the customer's speech to obtain the credit card number; (iii) presenting speech to the customer, asking the customer to speak the expiration date of the credit card; (iv) processing the customer's speech to obtain the expiration date of the credit card; (v) presenting speech to the customer, asking the customer to speak a CVC; and (vi) processing the customer's speech to obtain the CVC.

[0111] For a text channel limited to transmitting text, the implementation of the action to obtain a credit card number may include steps similar to those for a voice channel, except that text may be transmitted and processed instead of voice. For a text channel capable of providing a wider variety of user interface elements (e.g., a customer service chat implemented on a web page), a form may be presented to the customer to allow the customer to enter a credit card number, expiration date, and CVC. The customer may provide all of the information requested by the form and then select a button to submit the form. Similarly, action implementations may be implemented for other channels and for other actions that may be performed with automated workflows.

[0112] Other aspects of the automated workflow may have different implementations for different types of channels. In some implementations, a channel implementation may be configured to resend a communication if no response is received from the customer. For example, under a voice channel, if a response is not received from the customer within 5-10 seconds, an additional voice communication may be sent to the customer to repeat the previous communication or to ask if the customer is still there. For a text channel, an implementation may wait for a longer period of time (as it may be more typical for the customer to do other things during the session) or may wait indefinitely for a customer response (or until the communication session ends).

[0113] In some implementations, a channel implementation may be configured to allow a client to interrupt a communication that is being transmitted, otherwise known as allowing a client to "barge in." For example, in the case of a voice channel, a voice communication presented to a client may last for several seconds. While the communication is presented, the client may speak, and the voice channel may be configured to stop presenting the communication and instead receive and process the client's communication. For a text channel, the transmission of the communication may be nearly instantaneous, and thus the text channel may not require any barge-in related functionality.

[0114] In some implementations, the order in which information is requested and / or the amount of information (e.g., the number of information items) may be different for different channels. For example, in a voice channel, the communication may simply ask the customer which ticket the customer would like to purchase and allow the customer to specify any relevant information (e.g., departure location, departure date and time, destination, etc.). In a text channel, the customer may instead be asked to provide one information item at a time.

[0115] In some implementations, various channel implementations may provide additional functionality to the client or agent. For example, for a text channel, machine learning tools may be used to provide features to the client or agent, such as automatic suggestions for completions of text entered by the user or automatic suggestions for complete messages to send. For a voice channel, such features may be less useful or difficult to implement, and therefore may not be provided.

[0116] Figure 5is an example system 500 for implementing automated workflows through multiple channels, and Figure 6 is an example method for implementing an automated workflow over multiple channels.

[0117] exist Figure 5 In the embodiment of the present invention, one or more customers may receive customer support via an automated workflow, and the automated workflow may be implemented using any of the techniques described herein. For example, customer 110 may receive automated support via a first channel, and customer 515 may receive automated support via a second channel. Although customer 110 and customer 515 may receive automated support via different channels, the same automated workflow may be used on both channels.

[0118] At step 610, an automated customer support session is created to assist a first customer via a first channel. The automated customer support session may use an automated workflow, and the automated workflow may be configured to process one or more communications from a customer and determine actions to perform, such as any of the actions described above.

[0119] Figure 5 An automated workflow 510 is included that includes actions 511, 512, and 513, and these actions may include any of the actions described herein. The API server 120 may create one or more instances of the automated workflow 510 and use these instances to determine actions to perform in response to communications received from clients.

[0120] At step 615, a plurality of first channel action implementations are obtained for implementing the actions on the first channel. Figure 5 A first channel action implementation 520 is included for implementing actions of the automated workflow 510 on a first channel. Each of the first channel action implementations may correspond to an action of the automated agent. For example, first channel action implementation 521 may correspond to action 511, first channel action implementation 522 may correspond to action 512, and first channel action implementation 523 may correspond to action 513. The relationship between actions and action implementations may or may not be a one-to-one correspondence.

[0121] The first channel action implementation may be implemented using any suitable technique. For example, the first channel action implementation may be specified using structured data that provides information about the implementation of the action. The structured data may include an identifier of the action being implemented; an identifier of the channel in which the implementation is to be used; a communication specification to be presented to the user (e.g., using a template); a specification of a communication sequence corresponding to the action; a list of information items to be obtained from the customer; a form to be presented to the customer; an API call to update a company server in response to completing the action (e.g., an API call to charge a customer's credit card).

[0122] At step 620, a first communication is received from a first client on a first channel. For example, API server 120 may receive the first communication from client 110. At step 625, a first action of a plurality of actions is selected by processing the first communication using an automated workflow. For example, API server 120 may use automated workflow 510 to select the first action.

[0123] In some implementations, the state and / or directed graph of the workflow may be used to obtain the first action. The first communication may be processed to obtain information present in the communication, such as a credit card number or a customer's expression of consent. Information may be obtained from the communication using any appropriate technology, such as identifying intent from the communication text or by performing named entity recognition on the communication text. The information obtained from the communication may be used to update the state of the workflow, such as by updating the state to indicate that information has been received from the customer. In some implementations, the information received from the customer or the updated state may cause the workflow to traverse from a first node of a tree or directed graph to a second node. For example, the workflow may be configured to proceed from a first node to a second node based on the received information or the updated state. The first action may then be selected using one or both of the current node of the graph or the current state of the workflow. For example, a mapping from states and / or nodes to actions of the workflow may be created.

[0124] At step 630, a first channel action implementation corresponding to the first action selected at step 625 is obtained. For example, the API server 120 can receive the selected first action from the automated workflow 510, and use the action implementation component 540 to obtain a first channel action implementation corresponding to the first action. The API server 120 can provide an indication that the first action and the first channel are being used to the action implementation component 540. The action implementation component 540 can then obtain the first channel action implementation from the first channel action implementation 520.

[0125] At step 635, a first response is determined using the first channel action implementation obtained at step 630. For example, the action implementation component 540 can generate a text or voice communication using the first channel action implementation obtained at step 630. The action implementation component 540 can perform any other suitable tasks, such as filling in variables or slots of a template and executing an API call to update the company's server.

[0126] The first response is transmitted to the client at step 640. For example, voice audio may be transmitted across a voice channel, text may be transmitted across a voice channel, or structured data (eg, JSON, XML, or HTML) may be transmitted to update the client's user interface.

[0127] The above process can be performed for any number of channels and any number of clients. Since different clients may seek support at the same time, the process can be simultaneous for different clients. Steps 645 to 675 can be performed on a second channel for a second client, such as Figure 5 Client 515 performs similar processing as described above.

[0128] At step 645, an automated customer support session is created to assist the second customer via the second channel. The automated customer support session may use the same automated workflow used at step 610 to handle communications on the first channel.

[0129] At step 650, a plurality of second channel action implementations are obtained for implementing the actions on the second channel. Figure 5 Second channel action implementations 530 are included for implementing actions of the automated workflow 510 on a second channel. Each of the second channel action implementations may correspond to an action of the automated agent. For example, second channel action implementation 531 may correspond to action 511, second channel action implementation 532 may correspond to action 512, and second channel action implementation 533 may correspond to action 513. The relationship between actions and action implementations may or may not be a one-to-one correspondence. In some instances, the action implementations of the second channel may be the same or similar to the action implementations of the first channel (e.g., two different text channels with similar capabilities).

[0130] At step 655, a second communication is received from a second customer on a second channel. At step 660, a first action of a plurality of actions is selected by processing the second communication with a second instance of the automated workflow. Note that the first action selected here is the same first action selected at step 625 (e.g., both the first customer and the second customer are asked to provide a credit card number). At step 665, a second channel action implementation corresponding to the first action is obtained. At step 670, a second response is determined using the second channel action implementation obtained at step 665. Although the same first action is being performed, the first response at step 635 is configured for the first channel and the second response at step 670 is configured for the second channel. At step 675, the second response is transmitted to the customer. Steps 645 to 675 may use any of the techniques described above for steps 610 to 640.

[0131] During a customer support process, a customer receiving support via an automated workflow may also transition from a first channel to a second channel, such as using any of the techniques described herein. For example, a first customer may receive support on a first channel via an automated workflow, and session data (which may include, for example, the state of the automated workflow) may be saved to a data store. The first customer may then transition to a second channel to continue the support process. On the second channel, the session data may be retrieved from the data store and used to initialize an instance of the automated workflow for the second channel. The customer may then continue the support process on the second channel using the automated workflow without having to repeat the actions performed on the first channel.

[0132] Thus, automated workflows can be used to implement actions with customers across multiple channels. Using the same automated workflow across multiple channels can reduce the cost of automated support, because implementing a single automated workflow may be less expensive and time-consuming than implementing a separate automated workflow for each channel. Using the same automated workflow across multiple channels can also improve the performance of the automated workflow. For example, where the same automated workflow is used for both text and voice channels, both voice and text data can be used to train the automated workflow. Having a larger corpus of training data available for training the automated workflow can improve the accuracy of the models used in the automated workflow.

[0133] Channel conversion from automated agent to human agent

[0134] Another type of transition is a transition from a customer receiving support from an automated agent to receiving support from a live agent. For this transition, the customer might remain on the same channel, or the customer might switch to a different channel. For example, the customer might prefer to receive support from a live agent rather than an automated agent, or the customer's issue might not be applicable to any of the available automated support programs.

[0135] The above can also be used when a customer transitions from receiving support from an automated agent to receiving support from a live agent. Figure 4A and 4B The techniques described (and also those described above for adapting Figure 4A and 4B to technology for channel switching with automatic proxies).

[0136] During a session with an automated agent, the session data and the machine learning model data can be saved to a data store, as described above. When a customer transitions to receiving support from a human agent, the session data and the machine learning data can be used to initialize instances of one or more machine learning models, as described above.

[0137] In some implementations, a description (e.g., a summary or transcript) of the automated support between the customer and the automated agent can be presented to the human agent who is now assisting the customer. For example, a summary or transcript of the automated session can be presented as described above. In some implementations, the description of the automated support session can include information about one or more intents identified during the automated support session and information items identified during the support session. A score or probability can be associated with each intent and information item identified during the automated session.

[0138] For example, the communications of an automated conversation may be processed and the following may be identified: a first intent to renew a credit card, where the score is 91 out of 100; a second intent to make a payment, where the score is 9 out of 100; and a credit card number, where the score is 99 out of 100. The human agent may then use this information to assist the customer without the customer having to repeat the information already provided. For example, the human agent confirms with the customer that he wants to renew his credit card, explains that the credit card number has already been provided, and then requests the expiration date and three-digit card verification code. In the event that the customer actually intends to pay, the human agent may then assist the customer in making the payment and using the credit card number already provided.

[0139] Channel conversion from human agent to automated agent

[0140] Another type of transition is a transition from a customer receiving support from a human agent to receiving support from an automated agent. For this transition, the customer might remain on the same channel, or the customer might switch to a different channel. For example, a human agent might, after identifying the customer's problem, inform the customer that automated support is available to help resolve the issue and suggest that the customer transfer him to automated support.

[0141] The above support for live agents can also be used when a customer switches from receiving support from live agents to receiving support from live agents. Figure 4A and 4B The techniques described (and also those described above for adapting Figure 4A and 4B to technology for channel switching with automatic proxies).

[0142] During a session with a human agent, the session data and the machine learning model data can be saved to a data store, as described above. When a customer transitions to receiving support from an automated agent, the session data and the machine learning data can be used to initialize instances of one or more machine learning models, as described above.

[0143] In some implementations, during a support session with a human agent, one or more machine learning models may process communications of the session to identify one or both of intents expressed during the session and information items included in the communications. These machine learning models may be the same machine learning models used during an automated support session, or may be different machine learning models. The identified intents and information items may be used to assist the human agent or facilitate transferring a customer to automated support. While the human agent is receiving the communications, processing the communications with the machine learning models allows for automatic extraction of information that can be used as described below.

[0144] Fig. 8A is an example user interface (UI) that a human agent may use to assist a customer. The UI may allow a human agent to assist multiple customers simultaneously. For example, an agent may respond to a first customer, and while waiting to hear back from the first customer, the agent may respond to a second customer. The UI may be presented to the agent using any suitable technique. The agent may communicate with the customer through the UI using any suitable technique, such as typing a message, speaking a message that is transcribed to text using speech recognition, or speaking with the customer over an audio connection (e.g., a VOIP connection). For clarity of presentation, the following description will use text communications as an example, but the same techniques may be used when communicating by voice.

[0145] Fig. 8A A client list section 810 is included which may include a list of clients with which the agent is currently communicating. Fig. 8A Also included is a conversation section 820 that allows the agent to view messages typed by the customer, type messages to the customer, and view the conversation history. Fig. 8A Also included is an information section 830 that provides additional information to assist the agent, such as customer profile, billing information, or the status of the company's services.

[0146] In some implementations, the information section 830 can be used to present information obtained from the communication by processing the communication with the machine learning model. For example, the information section 830 can present the intent and information items identified by the machine learning model in the communication along with a score or probability corresponding to the likelihood that the identification is correct.

[0147] In some implementations, the information portion 830 may include a user interface for completing a workflow with a customer or for transferring a customer to automated support for resolving the customer's issue. The intent and information items identified by the machine learning model may be used to help a human agent complete an operation corresponding to a workflow or initiate automated support for a customer.

[0148] For example, in Fig. 8AIn the example, the customer wrote "I need to pay the bill on my account and cancel the movie that was billed to me." The machine learning model can process this communication to identify intents present in the communication. In this example, three intents are identified: the pay bill intent, where the score is 97 out of 100, the cancel movie intent, where the score is 93 out of 100; and the update credit card intent, where the score is 31 out of 100. In response to identifying these intents, the UI of the information section 830 can be updated to help the human agent complete the workflow corresponding to these intents.

[0149] exist Fig. 8A In the example of , information section 830 includes a UI for completing a workflow corresponding to each of the identified intents. The UI for each workflow includes a list of information items required to complete the workflow along with a button to complete the workflow or transfer the customer to automated support to complete the workflow. Each information item is followed by a space because the customer has not yet provided information corresponding to the information item.

[0150] As the conversation continues, the human agent may ask the customer to provide additional information related to the customer's request. For example, the human agent may ask the customer to provide a credit card number for paying a bill. When the customer transmits a communication containing a credit card number, the machine learning model can process the communication to identify the credit card number, and the credit card number (or a redacted version of it for privacy reasons) can be presented in the information section 830, as shown in FIG. Figure 8B Because both workflows include the information item of the credit card number, the credit card number can be presented for both workflows.

[0151] The human agent can then notify the customer of the bill amount, and the machine learning model can process the communication to extract the amount and enter the amount in the information portion 830. The machine learning model can identify the information items in the customer's communication and the human agent's communication accordingly.

[0152] In some implementations, the value of the information item can be obtained from a source other than the conversation with the customer. For example, the customer's profile can include a credit card number, and the credit card number can be automatically entered for the pay bill workflow and the update credit card workflow. For another example, the customer's most recent bill amount or the name or identifier of the customer's most recent movie purchase can be obtained from the company's data store, and these values ​​can be presented in the information section 830.

[0153] In some implementations, a human agent may be able to enter values ​​in information portion 830 or correct values ​​in information portion 830 (eg, if there are errors in speech recognition or named entity extraction).

[0154] When all values ​​for the pay bill workflow have been obtained, the human agent may then select the Complete Workflow button to have the customer's credit card charged and receipt of the payment indicated in the customer's account.

[0155] In some implementations, the human agent may also transfer the customer to automated support to complete the workflow. For example, the customer may also indicate that he wants to update the credit card on his account to the credit card just provided for bill payment. To complete the process of updating the credit card, the expiration date and CVC are required. To obtain this information and complete the workflow of updating the credit card, the human agent may select the Transfer Customer button to transfer the customer to automated support for updating the credit card.

[0156] The auto-support for updating the credit card may be initialized with the value of the credit card number already received. Initializing the auto-support in this manner allows the automatic use of the already provided credit card number and avoids requiring the customer to provide the credit card number again. The auto-support process may obtain the expiration date and CVC from the customer as described above and then complete the workflow for updating the credit card number.

[0157] Fig. 9 is an example approach for improving customer support by using a machine learning model to process communications between customers and human agents to identify intent and information items expressed in the communications.

[0158] A customer support session is established between the customer and a human agent at step 910. During the customer support session, the customer may communicate using natural language, such as text messaging or voice.

[0159] At step 915, one or more communications between the customer and the human agent are processed to select one or more intents from a set of possible intents. Any suitable technique may be used to identify the intents, such as processing the one or more communications with a machine learning model. For example, a company might create a list of intents that it expects customers to express during customer support calls and train a machine learning model to identify those intents.

[0160] At step 920, the user interface presented to the human agent is updated to present a form for the workflow corresponding to the identified intent. As used herein, a form includes any appropriate technique for presenting information in a user interface, such as a list of items, a table, or an HTML form. Any appropriate information about the intent may be presented, such as a title, a description of the workflow, a score associated with the identification of the intent, and one or more items of information required to complete the workflow. The form may include a button to complete the workflow, such as a button that immediately implements the actions corresponding to the workflow (after receiving all information required to complete the workflow) or a button to transfer the customer to automated support to complete the workflow.

[0161] At step 925, one or more communications between the customer and the human agent are processed to identify the value of one or more information items included in the communication. An information item may represent any information that can be used to complete a workflow. For example, an information item may include a name, a date, an address, a product or service purchased, or credit card information. The value of the information item may be obtained using any suitable technique, such as processing one or more communications with a machine learning model or performing named entity recognition. The value of the information item may be represented in any suitable format, such as text (e.g., the text of an address) or a number (e.g., a credit card number). The communication processed at step 925 may be the same communication or a different communication processed at step 915. Step 925 may occur before step 915, and each of steps 915 and 925 may be performed multiple times to identify additional intents and information items expressed in the communication.

[0162] At step 930, the user interface presented to the human agent is updated to present the identified information item. For example, a blank space in a form may be replaced with the value of the information item identified from the communication.

[0163] At step 935, input is received from the human agent related to completing the workflow using the identified intent and the identified information items. For example, the input may be selecting a button to complete the workflow (which may only be possible if all of the information items for the workflow are received), or it may be selecting a button to transfer the customer to an automated workflow using the identified intent and the identified information items.

[0164] In the event that the input received at step 935 is input to complete the workflow, then processing proceeds to step 940, where an operation corresponding to the workflow is performed. The operation may be performed using any suitable technique. For example, in the event that no information items required to complete the workflow are received, an error message may be presented to the human agent and the operation may not be performed. In the event that all required information has been received, the operation may be performed, such as by making an API call to a server, wherein the API includes an indication of the operation to be performed (e.g., an identifier of the workflow) and the information required to perform the operation (e.g., a credit card number, etc.).

[0165] In the event that the input received at step 935 is input to transfer the customer to an automated workflow, processing may proceed to step 950. At step 950, the customer is transferred to a communication session with an automated workflow for the workflow using the value of the information item identified at step 925. The automated workflow may be obtained, for example, using an identifier of the workflow. For example, an API call may be used to create an instance of the automated workflow. The instance of the automated workflow is updated to include the value of the information item identified at step 925. In some implementations, an API call (which may be the same as a previous API call) may be used to set the value of the information item in the automated workflow. For example, a variable or storage location for a credit card number may be set to the value of the credit card number identified at step 925. The customer may then be connected to the automated workflow using any appropriate technique.

[0166] At step 955, an automated workflow is implemented with the customer to obtain any additional information needed to complete the workflow. During step 955, since the value of the first information item has already been obtained, the logic of the workflow for obtaining the value of the first information item can be bypassed or skipped. The automated workflow can be implemented using any suitable technology. In some implementations, the automated workflow can be an exchange of natural language communications, where the customer's communications are processed by a machine learning model and the automated agent's communications are generated by a machine learning model. In some implementations, the automated workflow can be more structured, such as filling out a form or using interactive voice response (IVR) technology.

[0167] In step 960, after all information for implementing the workflow is obtained, operations corresponding to the workflow are performed. The operations may be performed using any suitable technology, such as the technology described in step 940.

[0168] In some implementations, an automated workflow may be run during a customer support session between a customer and a human agent (e.g., during steps 910 through 930). Even if the customer is being assisted by a human agent, each of the customer's communications may be handled by an automated workflow. Thus, an automated workflow may be continually updated during a customer support session, even if a human agent is providing responses to the agent and the automated workflow is not (although responses generated by the automated workflow may be presented to the human agent to provide the human agent with suggested responses). When the customer receives a support transition from a human agent to an automated workflow, the automated workflow may already have all of the required information and may not require separate initialization. In some implementations, multiple automated workflows may be run during a customer support session between a customer and a human agent, such that each of the multiple automated workflows may be used without a separate initialization step.

[0169] In some implementations, other options may be presented to the human agent for automating portions of the support process. For example, a customer may be transferred to an automated workflow to receive information items from the customer, but the human agent may be able to review or oversee aspects of the automated support process. For example, while the customer is going through the automated workflow, the value of the information items obtained may be presented to the human agent, such as in Figure 8B The human agent may then review the received values ​​and, if necessary, request clarification from the customer or make changes. In some implementations, the automated workflow may collect the required information items but not perform the operations corresponding to the workflow. Alternatively, after receiving the required information items, an indication may be presented to the human agent to notify the human agent that all required information items have been received for performing the operations of the workflow. The human agent may then review and cause the operations to be performed, such as by selecting a button to perform the operations.

[0170] Processing communications between customers and human agents with machine learning models can improve the customer support process for both customers and companies providing support. Automatically determining intent and information items from conversations can reduce the burden on human agents. By automatically identifying intents, workflows corresponding to those intents can be automatically presented to human agents so that the human agent does not need to manually find a user interface that corresponds to the customer's request. Automatically determining information items and presenting them in a user interface to complete the workflow can reduce the burden on human agents and also reduce errors where human agents may inadvertently enter information incorrectly.

[0171] Improving the customer experience by initiating automated workflows using information gained during the conversation between the customer and a human agent. The customer saves time while completing his customer support request and does not have to bear the burden of providing the same information more than once.

[0172] General Log

[0173] In implementing the above techniques, communications may be transmitted over different types of channels having different capabilities for presenting information, and communications may be transmitted by human agents or automated agents. The following are examples of different types of channels: a voice channel with a human agent; a voice channel with an automated agent in which a customer is able to communicate using free-form voice; a voice channel with an automated agent using IVR technology; a text channel with a human agent or an automated agent in which only text may be transmitted; and a text channel with a human agent or an automated agent in which the channel may display user interface elements other than text, such as forms, buttons, or widgets.

[0174] A company may desire to log interactions and communications with customers. Due to the different capabilities of different channels, conventional logging techniques may require creating different logging systems and / or databases (or other kinds of data stores) for each type of channel. For example, a company may have a first logging system and a first database for a text channel and a second logging system and a second database for a voice channel. Maintaining multiple logging systems may increase the cost of implementing the logging system and may make it more difficult for a human agent to review a previous interaction with a customer because the human agent may need to check multiple logging systems.

[0175] To improve the functionality of the logging system and also reduce costs, a company might implement a universal logging system that is capable of providing logging services across all channels and also stores individual log entries in a universal format in a single data store (although the single data store can be distributed and data can be stored on more than one physical storage device or on multiple storage devices at different locations).

[0176] Fig.10 is an example general logging system 1000 for storing logs of multiple types of channels, Figures 11A-11C is an example representation of a common log entry across three channels, and Fig. 12A and 12B is an example method for implementing a general purpose logging system.

[0177] exist Fig.10 In , customer 110 may receive support from a human agent 310 or an automated agent 320 through a customer support session, and the customer support session may occur through any type of channel. Fig.10 In, API server 120 and session manager component 340 can implement any of the above functions. Session data store 350 can store data about customer sessions as described above, and general log data store can store log entries of customer support sessions through multiple types of channels in a general format as described in more detail below.

[0178] Fig. 12A is an example method for storing communications for a customer support session using the Common Log Format and storing the Common Format log entries in a data store.

[0179] exist Fig. 12A In step 1210, a customer support session with a first customer is initiated. The customer support session may occur over any type of channel, may be conducted with a human agent or an automated agent, and may implement any of the techniques described herein.

[0180] At step 1215, a first communication is determined for transmission to the first customer. Where supported by a human agent, the human agent may, for example, type the first communication, speak the first communication, or select a user interface element (eg, a button) to indicate the first communication.

[0181] At step 1220, a first general log entry is generated for the first communication. The general log entry may include any relevant information useful for later understanding the content of the first communication. The general log entry may be in any suitable format, such as structured data (e.g., JSON or XML). The following are examples of information that may be included in the general log entry: an identifier of the customer, an identifier of a human agent (if present), an identifier of a channel (e.g., a text channel, a voice channel, or Apple Business Chat), a session identifier, a timestamp, and information about the content of the first communication.

[0182] The content of the first communication may depend on the type of channel and the particular communication. The following are examples of content that may be stored in a general log entry: text; an audio file; a transcript of an audio file; an identifier of a form, widget, or user interface element; an action performed (e.g., a payment received from a customer may be a communication that is an action); and data or parameters for the action performed.

[0183] The general log entry may then be stored in the data store so that it can be accessed at a later point in time. Any suitable technique may be used to generate and store the general log entry in the data store. For example, the general log entry creation component 1010 may receive information about a communication generated by a human or automated agent and then create a general log entry. The general log entry creation component 1010 or another component, such as the session manager component 340, may then store the general log entry in the general log data store 170.

[0184] Fig.11A -C illustrates an example of common log entries for three different channels. Fig.11A shows a generic log entry for a text channel. Fig. 11B illustrates a generic log entry for a voice channel, and Fig. 11C Illustrated is a generic log entry for a text channel that supports other user interface elements (eg, forms and widgets), such as a customer support channel on a web page.

[0185] Each general log entry includes information that makes it possible to present a description of the general log entry to a human. In some implementations, a general log entry may include enough information to recreate a conversation as viewed by a customer and an agent. These example log entries use the JSON format, but any suitable format may be used for general log entries.

[0186] exist Fig.11A , for a text channel, the first log entry is a text communication from the agent to the customer, the second log entry is a text communication from the customer to the agent, the third log entry is another communication from the agent to the customer, ellipses indicate other text communications, and the final log entry describes an action by the customer to complete a payment with a credit card. The final log entry indicates that a payment action was performed, the customer who performed the action, the payment amount, and the payment method used, such as a credit card identifier.

[0187] exist Fig. 11B For voice channels, the log entries are Fig.11A The log entry is similar to that of , except that the log entry includes an audio file of the communication between the customer and the agent and, for convenience, includes a transcript of the audio communication that may be obtained using speech recognition.

[0188] exist Fig. 11C , for a text channel with enhanced content, the generic log entries also describe receiving payment from the customer, but in different ways. The first log entry is a text communication from the agent to the customer indicating that the agent will send a form to allow the customer to provide payment information. The second log entry indicates that the payment form was transmitted to the customer for presentation on the customer's device to allow the customer to enter a credit card number, expiration date, and CVC. The third log entry indicates that the payment action was performed when the customer completed and submitted the payment form.

[0189] At step 1225, a transmission representation of the first communication is generated. The transmission representation of the first communication is then transmitted to the client's device over the network connection so that the client's device presents the first communication. The generation of the transmission representation may depend on the channel over which the transmission is being sent. For example, for a text channel, the transmission representation may be a format for sending an SMS message; for a voice channel, the transmission representation may be a sequence of UDP packets; and for a text channel with enhanced content, the transmission representation may be a JSON object transmitted using the TCP / IP protocol. In some implementations, the transmission representation may be generated from a generic log entry for the first communication. Any suitable technique may be used to generate the transmission representation. For example, the transmission representation component 1020 may generate the transmission representation, and the API server 120 may cause the transmission representation to be transmitted to the client.

[0190] At step 1230, a second communication is received from the client. The second communication may be received using any suitable technique, such as any of the techniques described herein. At step 1235, a second general log entry is generated for the second communication and the second general log entry is stored in the data store. Step 1235 may be implemented using any of the techniques described above.

[0191] The customer support session may continue with any number of communications, and at step 1240, the customer support session ends.

[0192] The first customer may request customer support multiple times through different channels, and each customer support session may be as follows: Fig. 12A The common log data store will store log entries from all customer support sessions for the customer, even though the customer support sessions may have occurred over different channels. Storing all customer support sessions in the common log data store can facilitate later review of the log entries.

[0193] Fig. 12B is an example method for reviewing log entries for a first customer, where the log entries are from a customer support session over more than one channel.

[0194] At step 1250, a request to review a log entry for a first customer is received. For example, a human agent currently assisting a first customer may desire to review what occurred during a previous customer support session with the customer. Any suitable technique may be used to request a review of the log entry. For example, a user interface used by the human agent may include a button for viewing the log for the current customer, or the user interface may allow a person to enter an identifier for a customer or search by customer name to request a customer's log.

[0195] At step 1255, a general log entry for the first customer is retrieved from the general log data store. The log entry may be retrieved using any suitable technique, such as performing a query using an identifier of the customer.

[0196] At step 1260, a first review representation is generated for a first channel general log entry (e.g., a general log entry generated from a customer support session on the first channel). The first review representation may include information that is most likely to be helpful to the reviewer, and may also present information from the log entry in a manner that enables it to be viewed on a user interface used by the reviewer. For example, for a log entry from a text channel, the first review representation may include the text of the communication; for a log entry from a voice channel, the first review representation may include a transcript of the audio communication and a link to play the audio to the reviewer; and for a text channel with enhanced content, the first review representation may include a description of the enhanced content, such as a payment form being presented to the customer. Any suitable technique may be used to generate the first review representation. The review representation component 1030 may generate the first review representation from the first channel general log entry.

[0197] At step 1265 , a second review representation is generated for a second channel generic log entry (eg, a generic log entry generated from a customer support session on a second channel, where the second channel is a different channel than the first channel). Step 1265 may be performed using any of the techniques described for step 1260 .

[0198] At step 1270, the first review representation and the second review representation are presented to a person, such as a human agent. Any suitable technique may be used to present the first and second review representations. For example, the first and second review representations may be presented on a web page that the person is using. In some implementations, the first and second review representations may allow for interactive presentation. For example, the person may request to view additional information about the log entry or to hear transcribed audio.

[0199] Fig. 12B The method can allow the log of the customer support session of the first customer to be presented across any number and type of channels. The method can also be used to view the logs of other customers and to view the logs of multiple customers at the same time. For example, a supervisor of a human agent may want to view the log of the human agent helping a customer.

[0200] Thus, storing log entries from multiple channels in a common log format in a common log data store simplifies the process of allowing a person to view all logs for a customer or all logs for multiple customers. Instead of accessing multiple data stores to view all logs for a customer, a single data store may be accessed and the common log format may allow log entries from multiple channels to be presented in a single user interface.

[0201] accomplish

[0202] In some implementations, third-party companies may provide services related to any of the techniques described herein to other companies. For example, a company may allow its customers to obtain customer support through multiple channels, and the company may use the services of a third-party company to handle communications from customers through multiple channels, allow conversion between channels, store communications in a common log format, and any other techniques described herein. A company may find that using the services of a third-party company is more cost-effective than implementing its own services. Fig.13 Illustrated is an example architecture that a company may use to obtain assistance from a third-party company when communicating with its customers.

[0203] Fig.13 A system 1300 is illustrated that allows a third party company 1310 to provide services to multiple companies. Fig.13 , third party company 1310 is providing services to company A 1330, company B 1331, and company C 1332. Third party company 1310 may provide services to any number of companies.

[0204] Each company's customers may communicate with the company whose support process uses the services of third-party company 1310. For example, customer A 1320 may be seeking support from company A 1330, customer B 1321 may be seeking support from company B 1331, and customer C 1322 may be seeking support from company C 1332. It may or may not be obvious to the customer whether the services of third-party company 1310 are used.

[0205] The third party company 1310 can help the company in various ways. In some implementations, the third party company 1310 can help connect customers with customer service representatives working on behalf of the company. For example, the third party company 1310 can select a customer service representative, can provide a user interface to the customer to make it easier for the customer to request support, and can provide a user interface to the customer service representative to help the customer service representative respond to the customer's request. The customer service representative can have any appropriate relationship with the company on whose behalf the customer service representative is providing customer support. For example, the customer service representative can be an employee or contractor of the company and only provide customer support to the customers of the company, or the customer service representative can provide services to multiple companies and provide support to the customers of the multiple companies at the same time.

[0206] The network communication between the third party company 1310, the customer and the company can be constructed in various ways. In some implementations, all communications between the customer and the company can be carried out via the third party company 1310, and there may not be any direct connection between the customer and the company. In some implementations, the third party company 1310 can communicate with the company, but may not communicate directly with the customer. In some implementations, the customer can communicate directly with the company and also with the third party company 1310.

[0207] In the case where the customer is connected to both the Company and the third-party company 1310, each of the two connections can be used for different kinds of requests. For example, in the case where the customer interacts with the Company in a way that does not require the services of the third-party company 1310 (e.g., browsing the Company's website), the customer can use the network connection with the Company. In the case where the customer interacts with the Company in a way that uses the services of the third-party company 1310, the customer can use the network connection with the third-party company. It may not be obvious to the customer whether the customer is using the network connection with the Company or with the third-party company 1310.

[0208] Fig.14 Components of one implementation of a computing device 1400 for implementing any of the techniques described above are illustrated. Fig.14, the components are shown as being on a single computing device, but the components may be distributed among multiple computing devices such as a system of computing devices including, for example, an end-user computing device (e.g., a smart phone or tablet computer) and / or a server computing device (e.g., cloud computing).

[0209] The computing device 1400 may include any typical components of a computing device, such as volatile or non-volatile memory 1410, one or more processors 1411, and one or more network interfaces 1412. The computing device 1400 may also include any input and output components, such as a display, a keyboard, and a touch screen. The computing device 1400 may also include a variety of components or modules that provide specific functions, and these components or modules may be implemented in software, hardware, or a combination thereof. Below, several examples of components are described for an example implementation, and other implementations may include additional components or exclude some of the components described below.

[0210] The computing device 1400 may have an API server component 1420 that may provide any appropriate interfaces and functionality to provide manual and automated support through multiple channels. The computing device 1400 may have an automatic text support component 1421 that may implement techniques for implementing automated support through a text channel, such as using one or more machine learning models to process communications and generate responses. The computing device 1400 may have an automatic voice support component 1422 that may implement techniques for implementing automated support through a voice channel, such as using one or more machine learning models to process communications and generate responses. The computing device 1400 may have a machine learning component 1423 that may implement one or more machine learning models using any of the techniques described herein. The computing device 1400 may have a conversion component 1424 that may help convert customers between different channels or between automated support and support from a human agent. The computing device 1400 may have a general log component 1425 that may generate log entries in a general format and generate transmission representations and review representations of log entries in a general format.

[0211] Computing device 1400 may include or have access to various data stores. The data store may use any known storage technology, such as a file, a relational database, a non-relational database, or any non-transitory computer-readable medium. Computing device 1400 may have a session data store 1430, which may be used to store information about a customer support session, such as any of the information described above. Computing device 1400 may have a general log data store 1431, which may store log entries from multiple channels in a general format. Computing device 1400 may have a machine learning data store 1432, which may store machine learning model data (such as the state, input, or output of a machine learning model) and session data so that it can be used on customer support sessions on different channels.

[0212] The methods and systems described herein may be deployed in part or in whole by machines executing computer software, program codes and / or instructions on a processor. "Processor" as used herein is intended to include at least one processor, and unless the context clearly indicates otherwise, the plural and singular should be understood to be interchangeable. Any aspect of the present disclosure may be implemented as a computer-implemented method on a machine, as a system or device as part of or associated with a machine, or as a computer program product implemented in a computer-readable medium executed on one or more of the machines. The processor may be a server, client, network infrastructure, mobile computing platform, fixed computing platform, or part of other computing platforms. The processor may be a computing or processing device capable of executing program instructions, codes, binary instructions, and the like. The processor may be or include a signal processor, a digital processor, an embedded processor, a microprocessor, or any variant, such as a coprocessor (mathematical coprocessor, graphics coprocessor, communication coprocessor, and the like), and the like, which may directly or indirectly facilitate the execution of program codes or program instructions stored thereon. In addition, the processor may enable the execution of multiple programs, threads, and codes. Threads may be executed simultaneously to enhance the performance of the processor and facilitate simultaneous operation of applications. As an implementation, the methods, program codes, program instructions, and the like described herein may be implemented in one or more threads. The thread may spawn other threads that may have been assigned priorities associated with them; the processor may execute these threads based on priorities or based on any other order of instructions provided in the program code. The processor may include a memory storing methods, codes, instructions, and programs as described herein and elsewhere. The processor may access a storage medium through an interface, which may store methods, codes, and instructions as described herein and elsewhere. The storage medium associated with the processor for storing methods, programs, codes, program instructions, or other types of instructions that can be executed by a computing or processing device may include, but may not be limited to, one or more of a CD-ROM, a DVD, a memory, a hard disk, a flash drive, a RAM, a ROM, a cache, and the like.

[0213] The processor may include one or more cores that can enhance the speed and performance of the multiprocessor. In embodiments, the process may be a dual-core processor, a quad-core processor, other chip-level multiprocessors, and the like, which combine two or more independent cores (referred to as dies).

[0214] The methods and systems described herein can be deployed in part or in whole by machines executing computer software on servers, clients, firewalls, gateways, hubs, routers or other such computers and / or networking hardware. Software programs can be associated with servers, which can include file servers, print servers, domain servers, Internet servers, intranet servers and other variants, such as auxiliary servers, host servers, distributed servers and the like. Servers can include memory, processors, computer-readable media, storage media, ports (physical and virtual), communication devices and interfaces that can access other servers, clients, machines and devices through wired or wireless media and one or more of the like. Methods, programs or codes as described herein and elsewhere can be executed by servers. In addition, other devices required for executing the methods as described in this application can be considered as part of the infrastructure associated with the server.

[0215] The server can provide an interface to other devices, and the other devices include but are not limited to client, other servers, printer, database server, print server, file server, communication server, distributed server and the like. In addition, this coupling and / or connection can promote the remote execution of the program across the network. Some or all of the networking in these devices can promote the parallel processing of programs or methods at one or more locations, without departing from the scope of the present disclosure. In addition, any device in the device attached to the server by the interface can include at least one storage medium that can store method, program, code and / or instruction. The central repository can provide the program instruction to be performed on different devices. In this implementation, the remote repository can serve as the storage medium for program code, instruction and program.

[0216] The software program may be associated with a client, which may include a file client, a print client, a domain client, an Internet client, an intranet client, and other variants such as an auxiliary client, a host client, a distributed client, and the like. The client may include one or more of a memory, a processor, a computer-readable medium, a storage medium, a port (physical and virtual), a communication device, and an interface capable of accessing other clients, servers, machines, and devices through a wired or wireless medium, and the like. The methods, programs, or codes described herein and elsewhere may be executed by the client. In addition, other devices required to perform the methods described in the present application may be considered as part of the infrastructure associated with the client.

[0217] The client can provide an interface to other devices, and the other devices include but are not limited to servers, other clients, printers, database servers, print servers, file servers, communication servers, distributed servers and the like. In addition, this coupling and / or connection can promote the remote execution of programs across networks. Some or all of the networking in these devices can promote the parallel processing of programs or methods at one or more locations, without departing from the scope of the present disclosure. In addition, any device in the device attached to the client by the interface can include at least one storage medium that can store methods, programs, applications, codes and / or instructions. The central repository can provide program instructions to be performed on different devices. In this implementation, the remote repository can serve as a storage medium for program code, instructions and programs.

[0218] The methods and systems described herein may be deployed in part or in whole through a network infrastructure. The network infrastructure may include elements such as computing devices, servers, routers, hubs, firewalls, clients, personal computers, communication devices, routing devices, and other active and passive devices, modules, and / or components as known in the art. In addition to other components, (one or more) computing and / or non-computing devices associated with the network infrastructure may also include storage media such as flash memory, buffers, stacks, RAM, ROM, and the like. The processes, methods, program codes, instructions described herein and elsewhere may be executed by one or more of the network infrastructure elements.

[0219] The methods, program codes, and instructions described herein and elsewhere may be implemented on a cellular network having multiple cells. The cellular network may be a frequency division multiple access (FDMA) network or a code division multiple access (CDMA) network. The cellular network may include mobile devices, cell sites, base stations, repeaters, antennas, towers, and the like. The cellular network may be GSM, GPRS, 3G, EVDO, mesh, or other network types.

[0220] The methods, program codes and instructions described herein and elsewhere can be implemented on or by a mobile device. Mobile devices may include navigation devices, cellular phones, mobile phones, mobile personal digital assistants, laptop computers, palmtop computers, netbooks, pagers, e-book readers, music players and the like. In addition to other components, these devices may also include storage media, such as flash memory, buffers, RAM, ROM and one or more computing devices. The computing device associated with the mobile device may be enabled to execute the program code, methods and instructions stored thereon. Alternatively, the mobile device may be configured to execute instructions in collaboration with other devices. The mobile device may communicate with a base station, which interfaces with a server and is configured to execute program codes. The mobile device may communicate on a peer-to-peer network, a mesh network or other communication network. The program code may be stored on a storage medium associated with a server and executed by a computing device embedded in the server. The base station may include a computing device and a storage medium. The storage device may store program codes and instructions executed by a computing device associated with the base station.

[0221] Computer software, program code and / or instructions may be stored and / or accessed on machine-readable media, which may include: computer components, devices and recording media that retain digital data used for computing for intervals of time; semiconductor memory devices known as random access memory (RAM); mass storage devices typically used for more permanent storage, such as optical disks, magnetic storage devices in the form of hard disks, tapes, drums, cards and other types; processor registers, cache memory, volatile memory, non-volatile memory; optical storage devices such as CDs, DVDs; removable media such as flash memory (e.g., USB sticks or keys), floppy disks, magnetic tape, paper tape, punch cards, stand-alone RAM disks, Zip drives, removable mass storage devices, off-line, and the like; other computer memory, such as dynamic memory, static memory, read / write storage devices, mutable storage devices, read-only storage devices, random access storage devices, sequential access storage devices, location-addressable storage devices, file-addressable storage devices, content-addressable storage devices, network-attached storage devices, storage area networks, bar codes, magnetic ink, and the like.

[0222] The methods and systems described herein may transform a physical and / or intangible item from one state to another state. The methods and systems described herein may also transform data representing a physical and / or intangible item from one state to another state.

[0223] The elements described and depicted herein, including the flow charts and block diagrams throughout the accompanying drawings, imply the logical boundaries between the elements. However, according to software or hardware engineering practices, the depicted elements and their functions can be implemented on a machine through a computer executable medium, which has a processor capable of executing program instructions stored thereon, as a single-chip software structure, as an independent software module, or as a module using external routines, codes, services, etc., or any combination of these, and all such implementations can be within the scope of the present disclosure. Examples of such machines may include but may not be limited to personal digital assistants, laptop computers, personal computers, mobile phones, other handheld computing devices, medical equipment, wired or wireless communication equipment, transducers, chips, calculators, satellites, tablet PCs, e-books, gadgets, electronic devices, devices with artificial intelligence, computing devices, networking equipment, servers, routers, and the like. In addition, the elements or any other logical components depicted in the flow charts and block diagrams can be implemented on a machine capable of executing program instructions. Therefore, although the aforementioned drawings and descriptions set forth the functional aspects of the disclosed system, unless explicitly stated or otherwise clear from the context, the specific arrangement of the software used to implement these functional aspects should not be inferred from these descriptions. Similarly, it will be appreciated that the various steps identified and described above may vary, and the order of the steps may be adapted to the specific application of the technology disclosed herein. All such variations and modifications are intended to fall within the scope of the present disclosure. Therefore, the depiction and / or description of the order of the various steps should not be construed as requiring a specific order of execution of those steps, unless required by a specific application, or explicitly stated or otherwise clear from the context.

[0224] The method and / or process described above and steps thereof can be implemented with hardware, software or any combination of hardware and software suitable for a particular application. Hardware can include a general-purpose computer and / or a special-purpose computing device or a specific aspect or component of a specific computing device or a specific computing device. The process can be implemented in one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors or other programmable devices and internal and / or external memories. The process can also or instead be implemented in a special integrated circuit, a programmable gate array, a programmable array logic or any other device or combination of devices that can be configured to process electronic signals. It will be further understood that one or more of the processes can be implemented as a computer executable code that can be executed on a machine-readable medium.

[0225] Computer executable code may be created using a structured programming language such as C, an object-oriented programming language such as C++, or any other high-level or low-level programming language (including assembly language, hardware description languages, and database programming languages ​​and techniques), which may be stored, compiled, or interpreted to run on one of the above devices and a heterogeneous combination of processors, processor architectures, or a combination of different hardware and software, or any other machine capable of executing program instructions.

[0226] Therefore, in one aspect, each method described above and combinations thereof can be implemented in a computer executable code that performs its steps when executed on one or more computing devices. In another aspect, the method can be implemented in a system that performs its steps and can be distributed across devices in a variety of ways, or all of the functions can be integrated into a dedicated stand-alone device or other hardware. In another aspect, the apparatus for performing the steps associated with the process described above may include any of the hardware and / or software described above. All such permutations and combinations are intended to fall within the scope of the present disclosure.

[0227] Although the present invention has been disclosed in conjunction with the preferred embodiments shown and described in detail, various modifications and improvements thereto will become readily apparent to those skilled in the art. Therefore, the spirit and scope of the present invention will not be limited by the foregoing examples, but rather understood in the broadest sense permitted by law.

[0228] All documents cited herein are hereby incorporated by reference.

Claims

1. A computer-implemented method for implementing an automated workflow, the method comprising: creating a first communication session between a first user and a second user; processing one or more communications between a first user and a second user to select a first intent from a plurality of possible intents; selecting a first automated workflow from a plurality of automated workflows using the first intent, wherein the first automated workflow includes a plurality of information items and logic for obtaining values ​​of the plurality of information items from the first user; Using the interface to present a list of information items required to complete the first automated workflow; processing one or more communications between the first user and the second user to extract a first value corresponding to a first information item; determining that a first automated workflow includes a first information item; updating the first automated workflow to include a first value for a first information item; updating the information item list on the interface to display the extracted first value corresponding to the first information item; receiving an instruction from a second user to transfer the first user to a first automated workflow; transferring the first user to a second communication session using the first automated workflow; implementing a first automated workflow with the first user, wherein implementing the first automated workflow includes bypassing logic for requesting a value for the first information item; and A first operation is performed using information obtained from the first automated workflow.

2. The computer-implemented method of claim 1 , comprising: A suggestion is presented to the second user to transfer the first user to the second communication session.

3. The computer-implemented method of claim 1 , comprising: presenting an indication of the first intent and the first information item to a second user; and The button is presented to the second user to allow the second user to cause the first operation to be performed.

4. A computer-implemented method according to any one of claims 1-3, wherein processing one or more communications between the first user and the second user to select the first intent includes processing the one or more communications with a machine learning model.

5. The computer-implemented method of any of claims 1-3, wherein processing one or more communications between a first user and a second user to identify the first value corresponding to the first information item comprises processing the one or more communications using named entity recognition.

6. The computer-implemented method of claim 1, wherein the first communication session and the second communication session are on a text channel. The computer-implemented method of claim 1 , wherein the first automated workflow comprises a directed graph.

8. The computer-implemented method of claim 1, wherein the second user is not participating in the second communication session.

9. A system for implementing an automatic workflow, the system comprising: At least one server computer comprises at least one processor and at least one memory, wherein the at least one server computer is configured to: creating a first communication session between a first user and a second user; processing one or more communications between a first user and a second user to select a first intent from a plurality of possible intents; selecting a first automated workflow from a plurality of automated workflows using the first intent, wherein the first automated workflow includes a plurality of information items and logic for obtaining values ​​of the plurality of information items from the first user; Using the interface to present a list of information items required to complete the first automated workflow; processing one or more communications between the first user and the second user to extract a first value corresponding to a first information item; determining that a first automated workflow includes a first information item; updating the first automated workflow to include a first value for a first information item; updating the information item list on the interface to display the extracted first value corresponding to the first information item; receiving an instruction from a second user to transfer the first user to a first automated workflow; transferring the first user to a second communication session using the first automated workflow; implementing a first automated workflow with the first user, wherein implementing the first automated workflow includes bypassing logic for requesting a value for the first information item; and A first operation is performed using information obtained from the first automated workflow.

10. The system of claim 9, wherein the first communication session is on a voice channel and the second communication session is on a text channel.

11. The system of claim 9, wherein the at least one server computer is configured to: storing the first machine learning model data from the first communication session to a data store; and The first machine learning model data is obtained from the data store during the second communication session.

12. The system of claim 11, wherein the first machine learning model data comprises a state of a neuron or an output of a machine learning model.

13. The system of claim 9, wherein the first user is a customer of the company and the second user is providing customer support to the first user.

14. The system of claim 9, wherein the at least one server computer is configured to implement the first automated workflow with the first user by: receiving a first communication from a first user during a second communication session; selecting a first action of a plurality of actions by processing a first communication using a first automated workflow; Obtaining a first channel action implementation from a plurality of first channel action implementations using a first action; A first response is transmitted to a first user using a first channel action.

15. The system of claim 9, wherein the at least one server computer is configured to identify the first value corresponding to the first information item by processing the one or more communications using named entity recognition.

16. One or more non-transitory computer-readable media comprising computer-executable instructions that, when executed, cause at least one processor to perform actions comprising: creating a first communication session between a first user and a second user; processing one or more communications between a first user and a second user to select a first intent from a plurality of possible intents; selecting a first automated workflow from a plurality of automated workflows using the first intent, wherein the first automated workflow includes a plurality of information items and logic for obtaining values ​​of the plurality of information items from the first user; Using the interface to present a list of information items required to complete the first automated workflow; processing one or more communications between the first user and the second user to identify a first value corresponding to a first information item; determining that a first automated workflow includes a first information item; updating the first automated workflow to include a first value for a first information item; updating the information item list on the interface to display the extracted first value corresponding to the first information item; receiving an instruction from a second user to transfer the first user to a first automated workflow; transferring the first user to a second communication session using the first automated workflow; implementing a first automated workflow with the first user, wherein implementing the first automated workflow includes bypassing logic for requesting a value for the first information item; and A first operation is performed using information obtained from the first automated workflow.

17. The one or more non-transitory computer-readable media of claim 16, wherein the actions comprise: storing session data from the first communication session in a data store; and The first session data is used during the second communication session.

18. The one or more non-transitory computer-readable media of claim 17, wherein the session data comprises a state of the first automated workflow.

19. The one or more non-transitory computer-readable media of claim 16, wherein processing one or more communications between the first user and the second user to select the first intent comprises processing the one or more communications with a machine learning model.

20. The one or more non-transitory computer-readable media of claim 16, wherein the first automated workflow comprises a directed graph.

Citation Information

Patent Citations

  • Using semantic processing for customer support

    US10083451B2

  • Detecting events from customer support sessions

    US10097690B1

  • Word hash language model

    US10109275B2

  • Removing personal information from text using a neural network

    US10169315B1

  • Updating natural language interfaces by processing usage data

    US10210244B1