The present invention relates to the use of an automated service agent to service one or more issues described or discussed in a group communication channel.
The use of group communication channels (e.g., communication means that allow communication between a group of individuals) has become more widespread, allowing users of the group communication channels to ask questions in real time to human agents, and to share knowledge among users. However, due to the increased use of group communication channels by users, it has become more time consuming for the human agents to respond to requests and/or questions from the users, and more difficult for an organization to monitor the service level agreement (SLA) or the quality of answers provided. Furthermore, it has become more challenging for users to search for answers in the chat history of a group communication channel, as users may need to browse through a lengthy chat history in order to locate relevant postings that contain answers to issues. Users may also ask questions that have been previously asked (i.e., ask duplicate questions), which may cause human agents to post repeated answers.
The above-described problems and other problems present in the servicing of issues described in a group communication channel are addressed by the techniques discussed hereinbelow.
In accordance with one embodiment of the invention, machine learning may be applied to a group communication channel in order to provide more relevant and timely answers to users, and further to reduce the workload of human agents. More specifically, machine learning may be used to train an automated service agent, which can be used to identify issues described in messages, triage the issues (e.g., resolve basic issues in real time, reach out to a human agent as needed for more advanced or complex issues), and collect user information before handing an issue off to a human agent. The automated service agent can also increase the readability of the chat history of a group communication channel, by, for example, labeling one or more time points at which a communication thread of the group communication channel has been assigned (either to an automated service agent or to a human agent), and/or labeling one or more time points at which an issue of the communication thread has been resolved. If not already apparent, a communication thread refers to a time ordered sequence of messages from users and agents that generally relate to a single topic.
In the process of resolving an issue, the automated service agent may differentiate the roles of the participants, and identify the requester of the issue. Once the requester has been identified, the automated service agent may contact the requester on a private communication channel (e.g., via a direct message (DM) chat mode) in order to collect more detailed or private information from the requester. When a checkpoint or milestone has been reached (e.g., requester is denied a service, approval request has been sent to a supervisor, the issue has been fully resolved), a message may be posted back to the group communication channel so as to keep the other participants (and possibly human agents) of the group communication channel informed on the resolution status of the issue.
In accordance with one embodiment of the invention, a top level view of the group communication channel may display a sparse representation of multiple concurrent communication threads (also known as “topics”). The top level view may include a brief synopsis of the issue of each of the threads, graphical status indicators (e.g., an “eyes” emoji indicating that a thread has been assigned, a “checkmark” emoji indicating that an issue described or discussed in a thread has been resolved), and graphical user interface elements that when selected cause the top level view of a thread to be expanded into a bottom level view. The bottom level view may include the complete sequence of messages that are communicated between the one or more users of the group communication channel and the automated service agent.
In accordance with one embodiment of the invention, the benefits of the “networking effect” can be leveraged in the group communication channel. For example, useful answers can be shared among all participants. As another example, common incidents (e.g., outages) or trending topics (e.g., new acquisitions, company events) that affect a large number of users can be detected by monitoring the group communication channel, allowing the automated service agent to make proactive announcements to the group communication channel and/or to alert human agents to prepare for anticipated issues or risks.
In accordance with one embodiment of the invention, the service level agreement (SLA) in a group communication channel can be maintained and/or managed by the use of the automated service agent. For example, an automated service agent can monitor when an issue described in a thread has not been resolved after a long period of time, and contact a human agent (or other user) to follow up with the unresolved issue. Use of an automated service agent is advantageous as an automated service agent can work around the clock, with virtually no downtime.
These and other embodiments of the invention are more fully described in association with the drawings below.
In the following detailed description of the preferred embodiments, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the invention may be practiced. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention. Descriptions associated with any one of the figures may be applied to different figures containing like or similar components/steps.
In the embodiment of interest, the communication between the group of users describes or relates to an issue (e.g., a problem such as a login error, a request for a resource such as hardware or software, a knowledge question, etc.). Automated service agent 114, which may be instantiated on server 116, may monitor one or more messages that are communicated via the group communication channel in order to identify the issue. In some instances, the automated service agent may be able to determine a resolution to the issue on the spot without human intervention immediately upon identifying the issue (e.g., by querying the issue in a database and retrieving a resolution to the issue from the database and/or through diagnosis and resolution using artificial intelligence means), and communicate the resolution to the group of users via the group communication channel (e.g., post message including the public Wi-Fi password, post message with a meeting location, etc.).
In other instances, it may not be possible to address the issue on the spot, and automated service agent 114 may need to communicate privately with one of the users (via one or more communication channels other than the group communication channel) in order to address the issue. The private communication may take place via a private communication channel that is only accessible to one of the users and automated service agent 114. A private communication channel generally refers to the communication means (e.g., client devices 106a, . . . 106f, network 108, server 120, private communication application 118) that allows two entities (occasionally, more than two entities) to communicate privately with one another. In most embodiments described herein, the two entities are a human and automated service agent 114. However, it is possible that the two entities could be two humans (e.g., two people communicating privately with one another). In some instances where automated service agent 114 needs to communicate privately with multiple users, each of the users may communicate with the automated service agent 114 via his or her own private communication channel. In other instances, more than two entities may use a single private communication channel to communicate privately with one another (e.g., one automated service agent and a group of approvers). In such cases, a private communication channel may be more specifically referred to as a private group communication channel.
To further elaborate on the distinctions between a group communication channel and a private communication channel, a group communication channel may be a channel in which all participants of the group communication channel have access to most or all of the questions and/or discussions (also called communication threads) that are communicated in the channel. One group communication channel may typically include multiple unrelated discussions (as in the example of
Communication via a private communication channel may be preferred rather than communication via the group communication channel in the instance that sensitive or private information (e.g., a date of birth, a social security number, an address, a bank account number, a credit card number, a user id, a password, medical data, etc.) needs to be communicated between the user and automated service agent 114 or simply because of a desire or policy not to crowd the group communication channel with multiple posts that represent only intermediate communications/steps during an issue resolution procedure. In the context of trouble-shooting an issue, a user may use the private communication channel to privately communicate to automated service agent 114 more detailed information that might not be of interest to or suitable for viewing by the other users of group communication channel 202 (e.g., measures the user has already attempted without any success).
During communication with one of the users via the private communication channel, a status of the issue resolution process may occasionally be posted to the group communication channel by automated service agent 114 so as to keep users of the group communication channel and/or human agents monitoring the channel informed of the progress (or lack of progress) with resolving the issue. Status updates may be posted upon the occurrence of milestones or checkpoints, such as the expiration of predetermined time periods since the initial posting of the issue and/or attention to that issue by the automated service agent, a user being denied a service, an approval request being sent, a user rejecting the help of automated service agent 114, a ticket being filed to request help from an agent (either a human agent or an automated service agent), an issued being fully resolved, etc.
In some instances, while communicating with the user via a private communication channel, automated service agent 114 may determine that assistance from one or more human agents 104a, 104b is needed to resolve the issue. To contact the human agent, automated service agent 114 may post a message on the group communication channel, in the instance that one or more human agents 104a, 104b are monitoring the group communication channel. In addition or alternatively, automated service agent 114 may directly contact one or more human agents via a private communication channel or other communication means (e.g., an alert/message to a mobile phone, email, etc.). The term “human agent” may broadly encompass any person that may be of assistance to resolve the issue, and may include a member of an enterprise's information technology department, a supervisor of one of the users of the group, a system administrator, a colleague of one of the users of the group, one of the users of the group, etc.
Once the communication via the private communication channel has concluded (or temporarily ceased), a summary of the communication that occurred in the private communication channel may be posted on the group communication channel. The summary of the communication may include an outcome of the automated service agent's attempt to resolve the issue (whether successful, or not successful). The summary of the communication may include answers to a knowledge question, the reasons for a login failure, the procedure to request a software update, the procedure to order a piece of hardware equipment, etc. Such a “post back” to the group communication channel may take advantage of the “networking effect” on a group communication channel such that useful information received by one of the users may be benefit and enlighten all users of the group communication channel.
If not already apparent, a group communication channel may be hosted by the Lync®, Skype for Business, or Teams, messaging applications from Microsoft Corp.® of Redmond, Wash.; the WhatsApp® messaging application from Facebook Inc.® of Menlo Park, Calif.; or the Slack® messaging application from Slack Technologies® of San Francisco, Calif., or other messaging application/platform. In particular, there are two forms of communication in the Slack messaging application that could be used as a group communication channel. First, the “public channel” in the Slack messaging application could be used as a group communication channel, in which messages are accessible to all members of a team of individuals. Second, the “direct message” in the Slack messaging application could be used as a group communication channel, in which multiple participants are invited to a direct message thread. A group communication channel may also include an Internet forum (or message board), in which a group of people (who may or may not be members of the same enterprise or business) may communicate with one another in the form of posted messages. A group communication channel may also include a chat room. A chat room may be similar to an Internet forum, except that users typically communicate with one another using shorter expressions, rather than longer expressions, such as full sentences. A group communication channel may also be hosted by an short message service (SMS) application (such as that provided by the iOS® operating system from Apple Inc.® of Cupertino, Calif.; or provided by the Android® operating system from Alphabet Inc.® of Mountain View), in which a group of users send text messages that are visible to a group of users. A group communication channel may also include a video conference (such as that provided by Zoom Video Communications® of San Jose, Calif.; or provided by BlueJeans Network® of San Jose, Calif.), in which users can communicate with one another via video communication, voice communication, chat via a chat window, and/or any combination thereof.
If not already apparent, a private communication channel may also be hosted by any of the above-mentioned messaging or other applications. In particular, there are two forms of communication in the Slack messaging application that could be used as a private communication channel. First, the “private channel” of the Slack messaging application could be used as a private communication channel of the invention. In the Slack messaging application, members must be invited to a private channel in order to view, search and participate in that channel's discussion. Second, the “direct message” (DM) of the Slack messaging application could be used as a private communication channel of the invention, in which a single user and an automated service agent are the only participants of a direct message thread. In some cases, the software application (or operating system) used to host a private communication channel may be the same as that used to host a group communication channel. The only difference may be how the software application is used. In a private communication channel, a “chat” (or conversation) is created in a messaging application that is only between one user and an automated service agent, whereas in a group communication channel, a “group chat” is created in the messaging application with multiple users (and possibly the automated service agent) as participants.
In a group communication channel, automated service agent 114 may be explicitly listed or added as a participant or may be implicitly implemented as a default participant (i.e., a background process). For instance, in a group communication channel using a group SMS session, an automated service agent may be assigned a phone number (e.g., 123-456-7890), and if the users decide that they would like the automated service agent to participate in the group SMS session, the phone number of the automated service agent can be included as one of the participants of the group chat. Alternatively, in an Internet forum, it may initially be unclear that an automated service agent is monitoring the communication (i.e., automated service agent is not explicitly listed as a participant), and the participants may be surprised (but pleased) when an automated service agent posts a message on the Internet forum with a resolution to an issue described in the Internet forum.
A group communication channel may be provided by group communication application 110. In the case of a web-based or a cloud-based group communication channel, group communication application 110 may be instantiated on server 112 (as depicted in
Similarly, one or more private communication channels may be provided by private communication application 118. In the case of a web-based or a cloud-based private communication channel, private communication application 118 may be instantiated on server 120 (as depicted in
Users may communicate with each other, with automated service agent 114 and/or with one or more human agents via one or more client devices. As shown in
In step 210, user A 102a may post a message on group communication channel 202 that describes an issue. Example messages are provided in
In step 212, automated service agent 114 may monitor group communication channel 202. For simplicity of illustration, the monitoring is depicted as a single step in
In step 214, a triage operation may be performed by automated service agent 114. The triage operation may include one or more of determining whether the communication thread has already been assigned (either to an automated service agent or to a human agent), identifying an issue described in one or more messages of the communication thread, determining whether a resolution to the issue can be identified on the spot, determining whether the issue should be assigned to a human agent (in the case of a more complex issue), etc. In the example of
In step 216, automated service agent 114 may post a message on group communication channel 202 that provides a resolution to the issue. For instance, the message may include the guest Wi-Fi login and password. In step 218, user A 102a may post a message on group communication channel 202 that confirms the successful resolution of the issue.
Unspecified interactions 220, 224 and 226 from user B 102b, human agent X 104a, and user C 102c, respectively, are also depicted. Examples of these interactions could be these participants reading messages on group communication channel 202; these participants posting messages on group communication channel 202; etc. These unspecified interactions are included in
In step 210, user A 102a may post a message on group communication channel 202 that describes an issue. In step 212, automated service agent 114 may monitor group communication channel 202. In step 214, a triage operation similar to that described above in
In step 228, automated service agent 114 may post a message on group communication channel 202 that invites user A 102a to communicate with automated service agent 114 via private communication channel 204. One example of such invitation is illustrated in
In steps 230 and 232, user A 102a and automated service agent 114 communicate via private communication channel 204 in order to attempt to resolve the issue. To emphasize, the same “bot” instance (i.e., automated service agent 114) may communicate with user A 102a via group communication channel 202 and private communication channel 204. An advantage of using the same bot instance in group communication channel 202 and private communication channel 204 is that there is no loss in context by automated service agent 114. Automated service agent 114 can apply whatever knowledge it learns in group communication channel 202 to the communication in private communication channel 204, and vice versa.
The communication that takes place in private communication channel 204 may include automated service agent 114 sending a request to user A 102a (step 232) and user A 102a responding to the request (step 230) and/or user A 102a sending a question to automated service agent 114 (step 230) and automated service agent 114 replying with an answer (step 232). Steps 230 and 232 may be repeated as necessary. One example of the communication via private communication channel 204 will be provided below in
Once the communication via the private communication channel has concluded (or temporarily ceased), automated service agent 114 may post, in group communication channel 202, information including at least one aspect of the communication with user A 102a that occurred in private communication channel 204. Such information could include a summary of the discussion between user A 102a and automated service agent 114, could include steps to place a purchase order, could include user A 102a rejecting the assistance of automated service agent 114, could include steps to request a software upgrade, could include the outcome of the attempt to resolve the issue (whether successful or not successful, etc.), etc. In the scenario of
In step 210, user A 102a may post a message on group communication channel 202 that describes an issue. In step 212, automated service agent 114 may monitor group communication channel 202. In step 214, a triage operation similar to that described above in
At step 236, automated service agent 114 may post a message on group communication channel 202 that the issue has been assigned to an automated service agent. At step 232, automated service agent 114 may contact user A 102a via private communication channel 204 in order to attempt to resolve the issue. For instance, automated service agent 114 may send an SMS message to user A 102a (assuming that automated service agent 114 has the phone number of user A 102a readily available) or automated service agent 114 may send a DM to user A 102a (assuming that a user ID or login name of user A 102a is known to automated service agent 114). If not already apparent, there may be at least two ways in which automated service agent 114 can invite user A 102a to communicate with automated service agent 114 via private communication channel 204. In the embodiment of
At steps 240 and 242, user A 102a and automated service agent 114 continue their communication via private communication channel 204. Once the communication via the private communication channel has concluded (or temporarily ceased), automated service agent 114 may post, in group communication channel 202, information including at least one aspect of the communication with user A 102a that occurred in private communication channel 204. Such information could include a summary of the discussion between user A 102a and automated service agent 114, could include steps to place a purchase order, could include user A 102a rejecting the assistance of automated service agent 114, could include steps to request a software upgrade, could include the outcome of the attempt to resolve the issue (whether successful or not successful, etc.), etc.
In step 210, user A 102a may post a message on group communication channel 202 that describes an issue. In step 212, automated service agent 114 may monitor group communication channel 202. In step 214, a triage operation similar to that described above in
In step 228, automated service agent 114 may post a message on group communication channel 202 that invites user A 102a to communicate with automated service agent 114 via private communication channel 204. In the scenario of
In step 244, automated service agent 114 requests information from user A 102a via private communication channel 204. The information requested is that needed to better understand the nature of the problem being experienced by the user and/or required to attempt a resolution thereof, and may include information such as the circumstances surrounding the events that led to the problem being experienced, actions by the user to self-remediate the problem (if any), diagnostic information that may be available from the user's computer system, and/or personal information of the user such as a login ID, a password, financial data (e.g., credit/debit card number, bank account number), personal information (e.g., date of birth, gender, address, social security number, etc.), etc. In step 246, user A 102a may provide the requested information to automated service agent 114 via private communication channel 204. While not discussed above, it is noted that such collection of information from user A 102a may similarly occur in one or more of steps 230 and 232 of
In the example of
In another embodiment (not depicted), it is possible that after determining that it is preferable to let a human agent take over the servicing of the issue, automated service agent 114 may post a message on group communication channel 202 asking for any available human agent that is monitoring group communication channel 202 to take over the servicing of the issue. Once a human agent responds (e.g., human agent X 104a), automated service agent 114 can communicate the collected user information to human agent X 104a via a private communication channel (not depicted), and human agent X 104a can take over the servicing of the issue.
In step 210, user A 102a may post a message on group communication channel 202 that describes an issue. In step 212, automated service agent 114 may monitor group communication channel 202. In step 214, a triage operation similar to that described above in
At step 302, automated service agent 114 may monitor one or more communication threads of a group communication channel. The monitoring may include monitoring messages posted to the one or more communication threads of the group communication channel.
At step 304, automated service agent 114 may determine whether a communication thread had been assigned, either to an automated service agent or to a human agent. If so, automated service agent 114 may determine whether or not the issue identified in the assigned thread has been resolved. As will be described in
If a time period has not elapsed (No branch of step 308), this determination may indicate the issue that is currently being resolved by an agent, and to allow some additional time for the issue to be resolved. Accordingly, the action is essentially “do nothing”, and automated service agent 114 may return to step 302 and monitor one or more threads of group communication channel 202. If a time period has elapsed (Yes branch of step 308), this determination may indicate an issue that has been assigned to an agent, but that has not been successfully resolved by the agent after a period of time. Perhaps the agent has not even started looking into the issue, or the agent has started looking into the issue, but cannot find a satisfactory resolution to the issue. In response to such determination, automated service agent 114 may create a ticket for the issue to be addressed by a human (step 358) and post a status on group communication channel 202 that a ticket has been created for the issue to be addressed by a human (step 360). Following step 360, automated service agent 114 may return to previously described step 302 in which automated service agent 114 monitors one or more threads of a group communication channel.
Returning to step 304, if the thread has not been assigned (No branch of step 304), the thread may be assigned to automated service agent 114 (step 310). In step 312, automated service agent 114 may differentiate the roles of the users and identify one or more requesters. For example, any user that asks a question or states a problem may be identified as a requester. In another example, only the first user that asks a question may be identified as a requester. In another example, any users that provide instructions (e.g., “you should . . . ”) may be removed from consideration as a requester. For the sake of simplicity in the example of
In step 314, automated service agent 114 may identify an issue described in one or more messages of the thread. The analysis of messages need not be limited to messages only from the requester, but an emphasis may be placed on messages from the requester, as those message may be more relevant in describing the issue of the requester. Identifying the issue from the one or more messages from the first user may utilize natural language processing (NLP). At step 316, automated service agent 114 may determine whether the issue can be resolved on the spot. In some instances, an issue may have been addressed in another thread, so automated service agent 114 can resolve the issue on the spot by repeating a previously provided resolution.
If the issue can be resolved on the spot (Yes branch of step 316), in step 352, automated service agent 114 may post information on the group communication channel (more specifically, post information in the communication thread assigned in step 310), such information providing a resolution to the issue described in the communication thread. At step 354, automated service agent 114 may post a status message on the group communication channel (more specifically, post a status message in the communication thread assigned in step 310) indicating that the issue has been resolved.
Returning to step 316, if the issue cannot be resolved on the spot (No branch of step 316), automated service agent 114 may determine whether use of a private communication channel with the requester would be beneficial. For instance, if private or sensitive information of the requester is needed to resolve the issue, automated service agent 114 may determine that use of a private communication channel with the requester would be beneficial.
If automated service agent 114 determines that use of a private communication channel would not be beneficial, automated service agent 114 may attempt to resolve in the issue in group communication channel 202 (step 324). If a resolution to the issue can be determined (Yes branch of step 342), automated service agent 114 may perform previously described steps 352 and 354. If a resolution to the issue cannot be determined (No branch of step 342), automated service agent 114 may perform previously described steps 358 and 360.
Returning to step 322, if automated service agent 114 determines that use of a private communication channel would be beneficial, automated service agent 114 may invite the requester to join a private communication channel (step 328) As previously mentioned, an invitation for a requester to join a private communication channel may include directions for a requester to click (or select) a link or for a requester to send an SMS message to a phone number.
If the requester does not accept the invitation to join the private communication channel (No branch of step 330), automated service agent 114 may post a status message on the group communication channel (more specifically, post information in the communication thread assigned in step 310) that the requester has rejected the assistance of automated service agent 114 (step 332), following by performing previously described steps 358 and 360. If the requester accepts the invitation to join the private communication channel (Yes branch of step 330), automated service agent 114 may determine in step 336 whether information (e.g., personal or sensitive information) from the requester is needed.
If information from the requester is needed (Yes branch of step 336), automated service agent 114 collects information from the requester in step 338 and attempts to resolve the issue in the private communication channel (step 340). If information from the requester is not needed (No branch of step 336), automated service agent 114 may proceed directly to step 340 and attempt to resolve the issue in the private communication channel. Attempting to resolve the issue in the private communication channel may include discussion between the requester and automated service agent 114 via the private communication channel. For example, automated service agent 114 can ask the requester whether certain measures have already been attempted.
At step 342, automated service agent 114 determines whether a resolution to the issue can be determined. If a resolution to the issue cannot be determined (No branch of step 342), automated service agent 114 may determine whether assistance from a human agent (e.g., system administrator, supervisor, colleague, etc.) would be beneficial. If assistance from a human agent would not be beneficial (No branch of step 344), automated service agent 114 may post a status message (step 356) on the group communication channel (more specifically, post information in the communication thread assigned in step 310) that the issue is unresolved, and return to previously described step 302. If assistance from a human agent would be beneficial (Yes branch of step 344), automated service agent 114 may determine whether the issue should be assigned to a human agent (i.e., whether the a human agent should take over). If the issue should be assigned to a human agent (Yes branch of step 346), automated service agent 114 may perform previously described steps 358 and 360. Otherwise, if the issue should not be assigned to a human agent (No branch of step 346), automated service agent 114 may contact a human agent to request information or to perform an action in step 348. For instance, automated service agent 114 may contact a person in the purchasing department to find out when a laptop will arrive. As another example, automated service agent 114 may contact a supervisor to authorize the purchase of a laptop. Following step 348, the process may resume from step 340.
Returning to step 342, if a resolution to the issue can be determined (Yes branch of step 350), automated service agent 114 may communicate (in step 350) the resolution of the issue to the requester in the private communication channel, followed by posting information (in step 352) that addresses the issue on the group communication channel (more specifically, post information in the communication thread assigned in step 310). In one embodiment, the information posted on the group communication channel (in step 352) may be identical to the information communicated in the private communication channel (in step 350). In another embodiment, the information posted on the group communication channel (in step 352) may be a shortened version of the information communicated in the private communication channel (in step 350), for example, omitting any personal or sensitive information of the requester. In another embodiment, the information posted on the group communication channel (in step 352) may be a summary of the information communicated in the private communication channel (in step 350). At step 354, automated service agent 114 may post a status message on the group communication channel (more specifically, post a status message in the communication thread assigned in step 310) indicating that the issue has been resolved, prior to returning to previously described step 302.
At step 404, group communication application 110 may receive, from automated service agent 114, a status of an issue being addressed in a private communication channel. In the example of
At step 406, group communication application 110 may determine whether the status is associated with the first or second communication thread. In the example of
In step 408, group communication application 110 may determine whether the status is associated with the first communication thread. If so (Yes branch of step 408), group communication application 110 may cause the status of the issue being addressed in the private communication channel to be displayed in connection with the first communication thread. If not (No branch of step 408), group communication application 110 may determine whether the status is associated with the second communication thread (step 412). If so (Yes branch of step 412), group communication application 110 may cause the status of the issue being addressed in the private communication channel to be displayed in connection with the second communication thread. If not (No branch of step 412), an error state (416) may be encountered in the scenario that there are only two communication threads, and the status is not associated with either of the communication threads. In the example of
In top level view 500, each of the communication threads may display a brief synopsis of the issue being addressed in the respective communication threads. The brief synopsis could include a group of keywords, the initial message of the communication thread (which typically describes an issue), a summary of the issue, etc. In the example of
In top level view 500, each of the communication threads may also display one or more status indicators, specifically a graphical status indicator such as an emoji. In the example of
In the example of
The display of graphical status indicators in the top level view is useful as it allows an agent (whether a human agent or automated service agent) or users in general to quickly determine whether a communication thread has been assigned, whether the issue described in a communication thread has been resolved, etc. In the case that an issue has been assigned, but has not been resolved for a long period of time (e.g., 1 day), an agent (whether a human agent or automated service agent) may more closely examine the associated thread to see if additional assistance is needed to help resolve the issue.
In the top level view, a user interface element (506a, 506b, 506c) may also be displayed with each of the communication threads (502a, 502b, 502c), and clicking on (or more generally, performing a selection action on) such user interface element may cause a bottom level view of the communication thread to be displayed. In the example of
The bottom level view of communication thread 502a includes messages from Alice, a user named “Kat”, a user named “George” and an automated service agent named “Bot”. It should be apparent that Alice, Kat and George are all users of a group communication channel, and that Bot is able to monitor the messages of the group communication channel. In the bottom level view, message 504a from Alice is displayed (“Emails from my customer are going straight to the junk folder! Has this problem happened to anyone before?”). In real time (e.g., almost instantaneously), automated service agent 114 (or “Bot”) is able to identify an issue from message 504a of Alice (e.g., emails from trusted sender are being received in the junk folder). Automated service agent 114 is also able to recognize that Alice is the requester of the issue based on the issue being described in Alice's message. Automated service agent 114 posts message 522a inviting Alice to join a private communication channel (“Alice, I think I can help you. Can you join me in a DM by clicking this link? xyz.privatechat/123 I will need your email login credentials to check on your email settings”). Automated service agent 114 may also trigger the display of the “eyes” emoji 508a, indicating that the thread has been assigned (in this case, assigned to the automated service agent). In the present example, message 522a from automated service agent 114 is followed by message 522b from Kat (“Nope! Sorry . . . ”). Message 522b from Kat is followed by message 522c from George (“Yes it's such an annoying problem, but I've not been able to find a solution”). Next, automated service agent 114 posts message 522d regarding the status of handling the issue in the private communication channel (“ . . . working with Alice in a private chat to fix the email issue”). Finally, automated service agent 114 posts message 522e, indicating that the issue has been resolved (“Email problem has been resolved!”) and how the issue was resolved (“I helped Alice input her customer's email address into a Senders Whitelist. FYI—you can find this whitelist under the settings tab.”). Automated service agent 114 also triggers the display of the “checkmark” emoji 508b, indicating that the issue has been resolved.
In the example of
It is noted that at this time (i.e., at 1:30 PM), automated service agent 114 also posts status update 522d on the group communication channel (referring back to
At step 704, the user request may be mapped to a set of pre-determined actions based on the interpretation of the request. The interpretation of the user request and the mapping of the request to the set of pre-determined actions may be performed based on learning from responses provided to the user requests, their outcomes, past tickets, frequently asked questions by users, and the like. Automated service agent 114 may be configured to leverage such machine learning (ML) capabilities and use natural language processing (NLP) to engage in interactions with the users. Furthermore, automated service agent 114 may also be caused to leverage unstructured or “private” data—from external knowledge databases (such as Wikipedia for instance), online question-answer forums, run books and past chat transcripts to achieve accurate interpretation of user requests.
At step 706, execution of the set of pre-determined actions is effected to facilitate resolution of the request provided by the user. In some embodiments, automated service agent 114 may be configured to connect with one or more applications to effect automatic execution of the set of pre-determined actions. In an illustrative example, automated service agent 114 may be configured to connect to the servers hosting relevant service applications such as Google Groups™, Microsoft AD™, Okta™, among others to perform various actions. In some cases, this may involve making specific API calls (REST or Soap), and in other instances it may involve making modifications to a database. In an embodiment, an entry corresponding to each executed action may be logged for meeting at least one of compliance and audit requirements. In at least one example embodiment, the entries may be logged in the form of tickets. Further information regarding process 700 may be found in application Ser. No. 15/466,791 (filed on 22 Mar. 2017), which is incorporated herein by reference in its entirety.
At step 806, the conversation input may be interpreted to identify a user intent from among a plurality of user intents. A natural language processor may parse the input messages and an intent model may interpret the user intent from the parsed data, wherein the identified user intent is one of a plurality of stored user intents. The intent model may further store the input messages and the parsed data (data strings) corresponding to the input messages in a table. At step 808, automated service agent 114 may determine an action to perform based on the context determined by the probabilistic matching and the user intent. The action may include a resolution to an issue. Further information regarding process 800 may be found in application Ser. No. 15/688,190 (filed on 28 Aug. 2017), which is incorporated herein by reference in its entirety.
At step 904, automated service agent 114 may analyze an intent of the input message. At step 906, bidding modules of automated service agent 114 may generate a plurality of bids (e.g., B1, B2, B3) for response to the input message based on the intent of the input message. Each of the bidding modules may be able to serve the user request present in the input message, and may be willing to participate in serving the user request. At step 908, automated service agent 114 may assign an intent confidence score to each bid of the plurality of bids. For instance, the intent confidence scores such as S1, S2, and S3 may be assigned to the bids B1, B2 and B3, respectively. In an example embodiment, each of the bidding modules may provide corresponding intent confidence score.
At step 910, automated service agent 114 may determine a winning bid from the plurality of bids based at least on the intent confidence score associated with each bid from the plurality of bids. For instance, automated service agent 114 may consider the intent confidence scores S1, S2 and S3 for the bids B1, B2 and B2 to determine the winning bid. As an example, the bid B1 may be determined as the winning bid. At step 912, automated service agent 114 may generate a response (which may be a resolution to an issue) based on the winning bid. Further information regarding process 900 may be found in application Ser. No. 16/166,179 (filed on 22 Oct. 2018), which is incorporated herein by reference in its entirety.
As is apparent from the foregoing discussion, aspects of the present invention involve the use of various computer systems and computer readable storage media having computer-readable instructions stored thereon.
System 1000 includes a bus 1002 or other communication mechanism for communicating information, and a processor 1004 coupled with the bus 1002 for processing information. Computer system 1000 also includes a main memory 1006, such as a random access memory (RAM) or other dynamic storage device, coupled to the bus 1002 for storing information and instructions to be executed by processor 1004. Main memory 1006 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1004. Computer system 1000 further includes a read only memory (ROM) 1008 or other static storage device coupled to the bus 1002 for storing static information and instructions for the processor 1004. A storage device 1010, for example a hard disk, flash memory-based storage medium, or other storage medium from which processor 1004 can read, is provided and coupled to the bus 1002 for storing information and instructions (e.g., operating systems, applications programs and the like).
Computer system 1000 may be coupled via the bus 1002 to a display 1012, such as a flat panel display, for displaying information to a computer user. An input device 1014, such as a keyboard including alphanumeric and other keys, may be coupled to the bus 1002 for communicating information and command selections to the processor 1004. Another type of user input device is cursor control device 1016, such as a mouse, a trackpad, or similar input device for communicating direction information and command selections to processor 1004 and for controlling cursor movement on the display 1012. Other user interface devices, such as microphones, speakers, etc. are not shown in detail but may be involved with the receipt of user input and/or presentation of output.
The processes referred to herein may be implemented by processor 1004 executing appropriate sequences of computer-readable instructions contained in main memory 1006. Such instructions may be read into main memory 1006 from another computer-readable medium, such as storage device 1010, and execution of the sequences of instructions contained in the main memory 1006 causes the processor 1004 to perform the associated actions. In alternative embodiments, hard-wired circuitry or firmware-controlled processing units may be used in place of or in combination with processor 1004 and its associated computer software instructions to implement the invention. The computer-readable instructions may be rendered in any computer language.
In general, all of the above process descriptions are meant to encompass any series of logical steps performed in a sequence to accomplish a given purpose, which is the hallmark of any computer-executable application. Unless specifically stated otherwise, it should be appreciated that throughout the description of the present invention, use of terms such as “processing”, “computing”, “calculating”, “determining”, “displaying”, “receiving”, “transmitting” or the like, refer to the action and processes of an appropriately programmed computer system, such as computer system 1000 or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within its registers and memories into other data similarly represented as physical quantities within its memories or registers or other such information storage, transmission or display devices.
Computer system 1000 also includes a communication interface 1018 coupled to the bus 1002. Communication interface 1018 may provide a two-way data communication channel with a computer network, which provides connectivity to and among the various computer systems discussed above. For example, communication interface 1018 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN, which itself is communicatively coupled to the Internet through one or more Internet service provider networks. The precise details of such communication paths are not critical to the present invention. What is important is that computer system 1000 can send and receive messages and data through the communication interface 1018 and in that way communicate with hosts accessible via the Internet. It is noted that the components of system 1000 may be located in a single device or located in a plurality of physically and/or geographically distributed devices.
Thus, an automated service agent for servicing issues described in a group communication channel has been described. It is to be understood that the above-description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.