Management of agents of participants mentioned in communication session
By introducing a proxy mechanism in the collaborative system, the problem of communication session interruption when users are not available is solved, the communication continuity and information security are achieved, and efficiency and resource utilization are improved.
Patent Information
- Application Number
- CN202380043857.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-21
- Filing Date
- 2023-05-05
- Publication Date
- 2025-01-10
AI Technical Summary
When existing collaboration systems are unavailable, the workflow of communication sessions may be delayed or stopped, resulting in inefficient information location, waste of resources and reduced security.
Provides a proxy system that automatically identifies the proxy and sends relevant messages to the proxy when the system detects that the user is unavailable, ensuring that the communication continues and restores the original state when the user is available.
Improves the efficiency of communication sessions, reduces resource waste, enhances information security, and avoids workflow interruptions and information leakage caused by user unavailability.
Smart Images

Figure CN119301908A_ABST
Abstract
Description
Background Art
[0001] There are many different types of collaborative systems that allow users to communicate. For example, some systems allow people to share content to collaborate by using video streaming, shared files, chat messages, emails, etc. Some systems also allow users to edit documents simultaneously while also enabling them to communicate using video streaming, audio streaming, and messages. In another example, some systems allow users to exchange text messages within individual documents and directly quote specific content within the documents. In yet another example, some systems allow users to exchange text messages within a user interface that displays video content while also allowing users to directly quote specific video content using time stamps.
[0002] Although existing collaboration systems provide features that enable users to exchange messages, some systems still have a number of disadvantages. In one example, when a thread includes messages that create a specific task, the workflow of the collaborative work may be delayed or completely stopped when the task is given to an individual who is unavailable. For example, when a person is @mentioned in a message, the author of the message can ask that person a question or request additional shared content. When the person is unavailable, for example, they are on vacation or if they are in a long meeting, this may stop the progress of the thread until the person returns.
[0003] Such problems may be exacerbated by the fact that the necessary information may only be held by one person on the thread. Other people who may have access to the requested information may not be on the thread, or may have to rely on other people and other messages to find the person with the requested information. These problems may lead to a series of inefficiencies in the way people interact with computers. If the necessary information is missing only because someone is unavailable, multiple users may have to send multiple messages or use different communication media to make multiple calls to try to locate the information. Even if the information is located, permissions and other security settings may not allow the information to be inserted into the original message thread. When users must deviate from standard workflows to locate necessary information, this may lead to many inefficiencies in network resources, processing resources, memory resources, and other resources. Summary of the invention
[0004] The technology disclosed herein provides a system for providing an agent for an unavailable participant mentioned in a communication session (such as a channel, a chat session, an email thread, a conference chat, etc.). When the system detects that a person (also referred to herein as a "primary participant") is mentioned in a message, for example, an "@mention" or "@name" is detected, and the system detects that the person mentioned has set an out-of-office reply or otherwise indicates an unavailable status, the system automatically identifies the agent and packages the instant message including the "@name" and the message thread including the instant message, and sends the packaged communication to the agent. The permissions are also modified so that the computer associated with the agent can display the messages of the thread and send messages to the thread on behalf of the person mentioned. When the agent responds, the system automatically directs the response to the main thread. The out-of-office status or unavailable status of the primary participant can be set by setting an automatic reply message in the email system, blocking a time in the calendar, or generating any other communication indicating that they will be unavailable. The system automatically creates a folder or grouping of all messages related to the "@mention" in the agent's user interface (UI). For purposes of illustration, when a participant is mentioned in a message, an identifier of the participant may be embedded in the message and linked to a portion of the message, e.g., a person's name in a message may provide a link to the person's identifier. When a participant is mentioned in a message, it may be referred to herein as an "@mention" or "reference" to the participant.
[0005] In some embodiments, the primary participant can add different proxy users for different granularity levels involving different delivery interfaces: groups, threads, teams, channels, group chats, communities, pages, etc. For the purpose of illustration, a "delivery interface" may also be referred to as a "message forum", and a delivery interface may include categories such as user interfaces, applications, documents, document types, etc. When a primary participant is @mentioned in a particular thread, the agent will be notified of the @mention in the thread post. The primary participant may also specify that the agent participate in threads associated with the category of the delivery interface. Thus, the primary participant may specify a person as an agent for all threads in a particular delivery interface (such as a team). In this example involving a team, when the primary participant is unavailable and the primary participant has specified a specific agent, the agent may view all threads in the team and respond to specific messages in which the primary participant is mentioned (e.g., @mention). This may be applied to any category of delivery interfaces, where the delivery interface may include platforms, applications, file types, user interface arrangements, etc. In another example, when a primary participant names a specific group of files (e.g., any excel spreadsheets owned by a specific person or documents with a specific word in the file name), the system can automatically grant access to the agent to view and interact with threads in those identified files when the primary participant is out of the office.
[0006] The technology disclosed herein provides many technical benefits. For example, by providing a technology that allows the system to specify an agent and provide the agent with automatic access to a specific set of threads when a preset event occurs, the user or administrator does not need to interact with the system multiple times to grant the agent permission to one or more threads. In addition, the disclosed technology provides additional security for the system. If the system relies on manual input of data and manual input of people to specify agents, such a system may expose the thread for a longer time than necessary. If someone forgets to remove the agent appointment, this may happen, especially when someone assigns dozens of agents to many threads. When a thread participant is marked as unavailable, the technology disclosed herein grants each agent permission to access the thread and reply to those threads, and when the thread participant is marked as available, the system can also remove the agent appointment and the granted permission. The granted permission can also be extended to other systems, such as cloud storage services, so that the agent can also access other files of the participant, which can help promote the ability of the person to provide appropriate information to the message thread. This allows a higher level of security for the participant's message thread and a lower exposure of potentially sensitive information.
[0007] In addition, by providing a technique that allows the system to grant each agent permission to access threads and permission to reply to those threads when a thread participant is marked as unavailable, the workflow of one or more message threads will not be put on hold until the person becomes available. If necessary information is missing simply because someone is unavailable, multiple users may have to send multiple messages or make multiple calls using different communication media (such as telephones, email systems, or chat applications) to try to locate the information. Even if the information is located, permissions and other security settings may not allow the information to be inserted into the original message thread. When users must deviate from the standard workflow to locate necessary information, this can lead to many inefficiencies in network resources, processing resources, memory resources, and other resources.
[0008] In some configurations, when thread participants are also marked as available, the system can grant each agent permission to access threads and permission to reply to those threads. In this way, even when the user is in the office, the user can appoint agents to distribute workloads to others even when they are available. The user can share their responsibilities with others. In this way, the user can also respond. If the necessary information is indeed only because someone cannot respond, multiple users may have to send multiple messages or make multiple calls using different communication media (such as telephones, email systems, or chat applications) to try to locate the information. Therefore, all examples described herein can change permissions, delivery notifications, and delivery thread containers in the manner described herein even when thread participants are available.
[0009] These features can also have other benefits, because users do not have to manually appoint agents or grant permissions in real time when agents are needed. This reduction in manual input and the reduction in manual input can lead to a reduction in user distraction. Moreover, by improving the workflow of threads and minimizing user disengagement, the disclosed system helps to avoid situations where shared content is missing or ignored. This can reduce the situation where users need to resend information. More efficient communication of shared content can also help avoid the need for external systems (such as mobile phones and other messaging platforms for texting). This can help reduce the reuse of networks, processors, memory or other computing resources, especially when extended meetings or additional meetings can be avoided.
[0010] Features and technical benefits other than those explicitly described above will be apparent by reading the following detailed description and reading the associated drawings. This summary is provided to introduce a selection of concepts further described below in the detailed description in a simplified form. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. For example, the term "technology" may refer to systems, methods, computer-readable instructions, modules, algorithms, hardware logic, and / or operations as allowed by the context and the entire document as described above. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The detailed description is described with reference to the accompanying drawings. In the drawings, the leftmost digit of a reference number identifies the drawing in which the reference number first appears. The same reference numerals in different drawings indicate similar or identical items. References to individual items of a plurality of items may use reference numerals with letters in the alphabetical sequence to reference each individual item. Generic references to items may use specific reference numerals without the alphabetical sequence.
[0012] Figure 1 An example system is shown that can grant each agent permission to access at least one thread and permission to reply to those threads when the thread participant is listed as unavailable and when the thread participant is mentioned in a message in one of the threads.
[0013] Figure 2A A data set is shown in which a participant has selected a proxy for a particular thread and the activity data indicates that the participant is unavailable.
[0014] Figure 2B A portion of a message thread is shown, wherein participants of a particular thread are mentioned in the messages.
[0015] Figure 2C An example of modified permissions that grants an agent permission to access at least one thread and permission to reply to at least one thread when a thread participant is listed as unavailable and when the thread participant is mentioned in a message in one of the threads is shown.
[0016] Figure 2D An example is shown in which an agent's computer has permission to display a thread of thread participants and the agent has provided a response to the thread.
[0017] Figure 3A A data set is shown in which a participant has already selected a proxy for another particular thread and the activity data indicates that the participant is unavailable.
[0018] Figure 3B A portion of a message thread is shown in which a participant of another thread is mentioned in the message.
[0019] Figure 3C An example of modified permissions that grants an agent permission to access another particular thread and permission to reply to a thread when a thread participant is listed as unavailable and when the thread participant is mentioned in a message in one of the threads is shown.
[0020] Figure 3D An example is shown in which the agent's computer has permission to display another specific thread of the thread participants and the agent has provided a response to the other specific thread.
[0021] Figure 4A A data set is shown where a participant has selected a particular agent for threads of two different delivery interfaces, all threads in a particular team, and all threads in a spreadsheet file owned by the participant, and the activity data indicates that the participant is unavailable.
[0022] Figure 4B A portion of a message thread is shown in which a participant of another thread is mentioned in the message, wherein the message is part of a thread in a spreadsheet file.
[0023] Figure 4C An example of a modified permission is shown that grants a particular agent access to all threads in a particular team and all threads in spreadsheet files owned by a participant when the participant is listed as unavailable and when the particular agent is named as the agent for the following thread.
[0024] Figure 4D An example is shown in which a particular agent's computer has permission to display a thread of a spreadsheet owned by a participant and in which the agent has provided a response to the thread.
[0025] Figure 4E An example is shown in which a particular agent's computer has permission to display a thread for a specified team owned by a participant and in which the agent has provided a response to the thread.
[0026] Figure 5A A data set is shown in which a participant has selected a proxy for a particular thread and the activity data indicates the data sets available to the participant.
[0027] Figure 5B A portion of a message thread is shown, where participants of a particular thread are mentioned in the message.
[0028] Figure 5C An example of permissions is shown that are limited to being modified to grant the agent permission to access a particular thread and permission to reply to a particular thread when the thread participant is listed as available and when the thread participant is mentioned in a message in one of the threads.
[0029] Figure 5D An example of permissions is shown that are modified to grant the agent permission to access a particular thread and permission to reply to a particular thread when the thread participant is listed as available and when the thread participant is mentioned in a message in one of the threads.
[0030] Fig. 6A An example of a user interface of a communication application is shown showing a private chat session viewed by a user designated as a proxy for a message thread participant.
[0031] Figure 6B An example of a notification to a user designated as a proxy for a message thread participant is shown, where the notification indicates that the message thread participant is mentioned in a message.
[0032] Figure 6C An example of a thread preview displayed when an agent has selected a notification indicating that a message thread participant is mentioned in a message is shown.
[0033] Fig.6D An example of a UI is shown, which shows that when the agent has selected Figure 6C The thread preview shown is a display of the thread.
[0034] Fig. 6E An example of a UI is shown, which shows the response generated by the agent in Fig.6D A display of the replies to the thread shown.
[0035] Fig. 7A An example of a user interface of a communication application showing a private chat session viewed by a user designated as an agent for a message thread participant is shown, the user interface showing a folder group for threads associated with the agent.
[0036] Figure 7B An example of a user interface is shown, which shows that when the agent has selected Fig. 7A The thread preview of the first thread shown is a display of threads for the team.
[0037] Figure 7C An example of a UI is shown, which shows a response generated by an agent in Figure 7B A display of the replies to the thread shown.
[0038] Fig. 8A An example of a user interface of a communication application showing a private chat session viewed by a user designated as an agent for a message thread participant is shown, the user interface showing a folder group for threads associated with the agent.
[0039] Figure 8BAn example of a user interface is shown, which shows that when the agent has selected Fig. 8A The thread preview of the second thread is shown as a display of the threads of the spreadsheet file.
[0040] Figure 8C An example of a UI is shown, which shows a response generated by an agent in Figure 8B A display of the replies generated by the thread shown.
[0041] Fig. 9 are flow diagrams illustrating aspects of routines for implementing aspects of the techniques and technologies presented herein.
[0042] Fig.10 is a computer architecture diagram showing an illustrative computer hardware and software architecture for a computing system capable of implementing various aspects of the techniques and technologies presented herein.
[0043] Fig.11 is a computer architecture diagram illustrating a computing device architecture of a computing device capable of implementing various aspects of the techniques and technologies presented herein. DETAILED DESCRIPTION
[0044] Figure 1 A system 100 is shown that can grant each agent permission to access at least one thread and permission to reply to those threads when the thread participant is listed as unavailable and when the thread participant is mentioned in a message in one of the threads. In this example, multiple people 10 are participating in a communication session, which can involve communication of messages, shared content, audio and video streams. The communication session can be managed by the system 100 including multiple computers 11, each computer corresponding to multiple users 10. The technology disclosed herein can operate on a single device, or on a computing platform utilizing a combination of computers including the servers described herein.
[0045] In this example, a first user 10A is associated with a first computer 11A, a second user 10B is associated with a second computer 11B, a third user 10C is associated with a third computer 11C, a fourth user 10D is associated with a fourth computer 11D, a fifth user 10E is associated with a fifth computer 11E, a sixth user 10F is associated with a sixth computer 11F, a seventh user 10G is associated with a seventh computer 11G, an eighth user 10H is associated with an eighth computer 11H, a ninth user 10I is associated with a ninth computer 11I, a tenth user 10J is associated with a tenth computer 11J, an eleventh user 10K is associated with an eleventh computer 11K, and a twelfth user 10I is associated with a twelfth computer 11L. The users may also be referred to as "user A", "user B", up to user N, respectively. The computer may be in the form of a desktop computer, a head mounted display unit, a tablet computer, a mobile phone, or the like.
[0046] Users can communicate using live message threads, which can display messages 122 of threads 121, and each thread can be displayed using a specific "delivery interface". An example of a delivery interface can be a user interface of a messaging application. A messaging application can allow users to exchange real-time messages and include links to users and content. When a user is mentioned by name in a message, the system can build a link within a portion of the message that conveys the user's name 135, and the link can point to an identifier 134 of the user. The link can also be configured so that when a user selects a person's name from the text of the message, the system can invoke multiple actions, including generating an email, providing additional information about the user, etc. When a user is mentioned by name in a message and an identifier is linked to the text of the person's name, this is referred to herein as an "@mention" or "user mention".
[0047] Other examples of delivery interfaces may include teams, channels, documents, or any other data collection that can be displayed with the messages of a message thread. For example, if participants of several message threads wish to select a specific set of threads, they can provide input that defines a set of delivery interfaces, such as a specific set of teams or channels. This will allow the system to select all threads in that specific set of teams or channels. In another example, a user or computer can provide input that defines a set of delivery interfaces (e.g., a set of documents). This will allow the system to select all message threads in that specific set of documents. In this way, a user can assign permissions to other specific users as agents for a specific set of threads without selecting each message thread.
[0048] The system 100 can utilize the agent assignment 130, user state information 140, and actions associated with a thread 121 to determine when permissions 150 should be modified to allow the agent to view and respond to messages for the thread. Message threads can be stored in one or more thread containers 120, and each container 120 can also include data indicating a delivery interface type 124 and a member list 125. Figure 1 As shown, in this example, a license can define multiple attributes to grant each user the right to read from and / or write to a thread. A license can also restrict a user from accessing a specific thread.
[0049] In one example, the system may perform a method for managing permissions 150 assigned to an agent 10F of a participant 10A of a message thread 121A. Figure 1 A first user 10A is shown being @mentioned in a message 122C. An @mention, also referred to herein as a "user mention," may include a user identity associated with the text of a message. The identity may include an email address or any other type of unique identifier for the user. The system may analyze the messages 122 of the message thread 121A to identify a message 122C that includes a user mention 129 (e.g., an @mention). The user mention 129 may include an identifier 134 of the participant 10A embedded within a portion of the message 122C, including, for example, a portion of a user's name or tag.
[0050] In this example, status information 140 indicates that the first user is unavailable. This status can be established by having the user set a calendar event indicating that they are unavailable, set an automatic reply on an email indicating that they are out of the office, send one or more emails indicating that they are unavailable, etc. It is also shown that the first user 10A has designated user 10 as a proxy for a specific message thread (thread 1), and the first user 10A has also designated user 10G as a proxy for another specific message thread (thread 2). In addition, the first user 10A has designated user B as a proxy for a collection of threads that are part of a specific team (team A) and threads embedded in a spreadsheet document (e.g., XLSX file). As will be described in more detail below, in one example, when user 10A is mentioned in the first thread thread 1, the system can modify the permissions of user 10F to read and write access to thread 1 in response to the @mention of user 10A in thread 1 while user 10A is unavailable (e.g., out of office, offline, etc.). Then, user 10 can have access rights to the messages of the thread 1 container.
[0051] Figures 2A-2DAn example is shown in which a primary participant, user 10A, has selected a particular agent, user 10F, for a particular thread, first thread 121A. The example involves message thread 121A, which involves several participants: user 10A, user 10B, user 10C, and user 10D. Figure 2A The state of the data set is shown in which a participant, user 10A, has selected an agent, user 10F, for a particular thread, first thread 121. It is also assumed that activity data, such as user status information 140, indicates that participant user 10A is unavailable. At this time in the chat thread, there is no user mention in messages 122A and 122B.
[0052] like Figure 2B As shown, when an @mention is detected, the system can determine whether the mentioned person is unavailable, such as having set an out of office status. In response to determining that the message 122C includes a user mention 129 including an identifier 134 of the participant 10A, the system can perform an operation for analyzing the status information 140 to determine that the status information 140 indicates that the participant 10A associated with the user mention 129 is unavailable. When the system detects that the mentioned person is unavailable, such as having set an out of office message to be sent, the system can also identify a proxy. In response to determining that the status information 140 indicates that the participant 10A associated with the user mention 129 is unavailable, the system can analyze data defining one or more proxy assignments 130 to identify a proxy, such as the user 10. The data can indicate that a particular set of users, such as the user 10, are assigned as proxies and are eligible to receive messages 122 of the message thread 121A and are eligible to respond to the message thread 121A as a representative of the participant 10A associated with the user mention 129.
[0053] like Figure 2C As shown, in response to determining that the status information 140 indicates that the participant 10A associated with the user mention 129 is unavailable and the agent 10F is assigned to respond to the message thread 121A on behalf of the participant 10A, the system can modify the permission 150 to generate a modified permission 150' for the message thread 121A to grant the agent 10F access rights to receive the message thread container 120A including the message 122 of the message thread 121A and the message 122C including the user mention 129. Figure 2C As shown, in this example, user 10 has read and write permissions. Permissions may also include other attributes indicating that user 10F is a proxy, such as a "D" attribute, which may cause the system to display a custom message when the proxy responds to the thread of primary participant user 10A. The custom message may indicate that user 10 is replying on behalf of user 10A.
[0054] Figure 2CIt is also shown that the system can package the instant message including the "@name" information of the primary participant user 10A, and the message 122 of the message thread 121A including the instant message 122C, and send the packaged container 120A to the computer 11F of the agent user 10F. This may include an operation for transmitting at least a portion of the message thread container 120A to the computing device 11F associated with the agent 10F. The portion of the message thread container 120A may include the message 122 of the message thread 121A and the message 122C including the user mention 129 to the participant 10A. The modified permission 150' may cause or allow the computing device 11F associated with the agent 10F to display the message 122 of the message thread 121A and the message 122C including the user mention 129.
[0055] like Figure 2D As shown, once the agent responds, the system automatically directs the response to the main thread, such as thread 1, and the UI can display a graphical relationship indicating that the reply message is related to the original message with the @mention. Figure 2D As shown, the system can receive a reply message 133 from a computing device 11 associated with an agent 10. The system can then direct the reply message 133 to a message thread container 120A including message 122 of message thread 121A. The message thread container 120A causes the reply message 133 to be displayed with the display interface of the message thread 121A. The location of the reply message 133 can be close to the message 122C including the user mention 129, where the proximity (e.g., separation less than a threshold distance) shows the relationship between the reply message 133 and the original message 122C. The graphical element showing the initials of the primary participant (e.g., "TI" for Traci Isaac) can have a distinguishing feature, such as a double ring, to show that the agent has responded to the participant.
[0056] Figures 3A-3D Another example is shown where the primary participant, user 10A, has selected another agent, user 10G, for another particular thread, second thread 121B. These examples show that the system can manage permissions at a granular level where different agents can be assigned to different threads or different sets of threads. This example involves message thread 121B, which involves several participants: user 10A, user 10C, and user 10F. Figure 3A The state of the data set is shown in which a participant, user 10A, has selected an agent, user 10G, for a particular thread, second message thread 121B. It is also assumed that the activity data (e.g., user status information 140) indicates that the participant, user 10A, is not available. At this time in the chat thread, there are no user mentions in messages 122A and 122B.
[0057] like Figure 3B As shown, when an @mention is detected, the system can determine whether the mentioned person is unavailable, for example, having set an out of office status. In response to determining that message 122C includes a user mention 129 including an identifier 134 of participant 10A, the system can perform operations for analyzing status information 140 to determine that status information 140 indicates that participant 10A associated with user mention 129 is unavailable.
[0058] The system can also identify a proxy when the system detects that the person mentioned is unavailable, for example, when an out of office message has been set to be sent. In response to determining that the status information 140 indicates that the participant 10A associated with the user mention 129 is unavailable, the system can analyze the data defining one or more proxy assignments 130 to identify a designated proxy, such as user 10G. The data can indicate that a particular set of users (such as user 10G) are assigned as proxies and are eligible to receive messages 122 of message thread 121B and are eligible to respond to message thread 121B on behalf of participant 10A associated with user mention 129.
[0059] like Figure 3C As shown, in response to determining that status information 140 indicates that participant 10A associated with user mention 129 is unavailable and agent 10G is assigned to respond to message thread 121B on behalf of participant 10A, the system can modify permission 150 to generate a modified permission 150' for message thread 121B to grant agent 10G access rights to receive message thread container 120B including message 122 of message thread 121B and message 122C including user mention 129. Figure 3C As shown, in this example, user 10G has read and write permissions in the modified license 150'. The license may also include other attributes indicating that user 10G is a proxy, such as a "D" attribute that may cause the system to display a custom message when the proxy responds to the thread of primary participant user 10A. The custom message may indicate that user 10G is replying on behalf of user 10A.
[0060] Figure 3CIt is also shown that the system can package the instant message including the "@name" information of the primary participant user 10A, and the message 122 of the message thread 121B including the instant message 122C, and send the packaged container 120B to the computer 11G of the agent (user 10G). This may include an operation for transmitting at least a portion of the message thread container 120B to the computing device 11G associated with the agent 10G. The portion of the message thread container 120B may include the message 122 of the message thread 121B and the message 122C including the user mention 129 of the participant 10A. The modified permission 150' may cause or allow the computing device 11G associated with the agent 10G to display the message 122 of the message thread 121B and the message 122C including the user mention 129.
[0061] like Figure 3D As shown, once the agent responds, the system automatically directs the response to the main thread, such as thread 2, and the UI can display a graphical relationship indicating that the reply message is related to the original message with the @mention. Figure 4C As shown, in this example, the system may receive a reply message 133 from a computing device 11G associated with an agent 10G. The system may then direct the reply message 133 to a message thread container 120B including message 122 of a message thread 121B.
[0062] The message thread container 120B can enable the system to display the reply message 133 with the display interface of the message thread 121B. The position of the reply message 133 can be close to the message 122C including the user mention 129, where the proximity (e.g., separation less than a threshold distance) shows the relationship between the reply message 133 and the original message 122C of the second thread 121B. The graphical element showing the initials of the primary participant (e.g., "TI" for Traci Isaac) can have some distinguishing features, such as a double ring, to show that the agent has responded for the participant.
[0063] As described herein, a user can add different proxy users at different granularities, e.g., different delivery interfaces: groups, threads, teams, channels, group chats, websites, communities, pages, etc. Thus, whenever a user is mentioned in that specific delivery interface or in a specific thread, the proxy user will be notified of the participant being @mentioned in the thread post. Figures 4A-4E The following example shows additional scenarios that represent these features, where one can add different proxies for individual threads or individual delivery interfaces, for example, one can select proxies for certain teams, documents, channels, etc.
[0064] Figures 4A-4EAnother example is shown where the primary participant, user 10A, has selected another agent, user 10B, for a set of threads defined by parameters provided by the primary participant. In this example, the primary participant has indicated that they have selected user B Miguel as the agent for all threads that are part of a particular team (e.g., team A) and all threads embedded in spreadsheet files (e.g., all XLSX files). This example, along with other examples, shows that the system can manage permissions at a granular level, where different agents can be assigned to different threads or different sets of threads. The example involves two message threads, a third thread 121C and an Nth thread 121N. The third thread 121C has participants user 10A, user 10C, and user 10E, and the Nth thread 121N has participants user 10A, user 10C, and user 10E.
[0065] Figure 4A The state of a data set is shown where a participant, user 10A, has selected a delegate, user 10B, for all threads that are part of a particular team (e.g., team A) and all threads embedded in a spreadsheet file (e.g., all XLSX files). It is also assumed that the activity data (e.g., user status information 140) indicates that the participant, user 10A, is not available. At this time in the chat thread, there are no user mentions in messages 122A and 122B.
[0066] like Figure 4B As shown, when an @mention is detected in the third thread 121C, the system can determine whether the mentioned person is unavailable, such as having set an out of office status 136. In response to determining that the message 122C in the third thread 121C includes a user mention 129 including an identifier 134 of the participant 10A, the system can perform an operation for analyzing the status information 140 to determine that the status information 140 indicates that the participant 10A associated with the user mention 129 is unavailable.
[0067] The system may also identify a proxy when the system detects that the person mentioned is unavailable, for example, when an out of office message has been set to be sent. In response to determining that the status information 140 indicates that the participant 10A associated with the user mention 129 is unavailable, the system may analyze the data defining one or more proxy assignments 130 to identify a designated proxy, such as user 10B. The data may indicate that a particular set of users (such as user 10B) are assigned as proxies and are eligible to receive messages 122 for all threads that are part of a particular team (e.g., team A) and all threads embedded in spreadsheet files (e.g., all XLSX files). As a representative of the participant 10A associated with the user mention 129, the proxy may also send messages to all threads that are part of the particular team (e.g., team A) and all threads embedded in spreadsheet files (e.g., all XLSX files). For this example, the set of threads includes the third thread 121C and the Nth thread 121N because the third thread 121C is part of a defined team (Team A) and because the Nth thread 121N is in the XLSX file as indicated in the type 124 attribute of each container.
[0068] like Figure 4C As shown, in response to determining that the status information 140 indicates that the participant 10A associated with the user mention 129 is unavailable and the agent 10B is assigned to respond to the message in the third thread 121C as an agent for the participant 10A, the system can modify the permission 150 to generate a modified permission 150' for the third thread 121C and the Nth thread 121N to grant the agent 10B access rights to receive the message thread container of each thread. The container can include the messages 122 of the third thread 121C and the Nth thread 121N, which include any message containing the user mention 129, such as the message 122C. In any embodiment, the analysis of the status information and / or agent assignment can be responsive to detecting the user mention 129 in the message of any identified thread (e.g., a specific thread, a thread in a specific team, a thread in a specific file collection, etc.) that meets the criteria defined in the agent assignment 130. The user can also identify files for assigning agents by file type, identification information of any file content, search strings for content or file names, etc. Similar techniques may be implemented for other delivery interfaces (e.g., teams, channels, etc.) For example, a user may identify a particular set of teams by using a search string for content or team names to cause the system to select certain threads within the team for assigning agents.
[0069] like Figure 4CAs shown, in this example, user 10B has read and write permissions in the modified license 150' for the identified thread, the third thread, and the Nth thread. In this example, it is assumed that the third thread 121C is part of a team (Team A) and that thread N 121N is within an excel document, both of which delivery interfaces are defined in the agent assignment. The license may also include other attributes indicating that user 10B is a proxy, such as a "D" attribute that may cause the system to display a custom message when the proxy responds to a thread of the primary participant, user 10A. The custom message may indicate that user 10B is replying on behalf of user 10A.
[0070] Figure 4C It is also shown that the system can package the instant messages including the "@name" information of the primary participant, user 10A, and the messages 122 (including instant messages 122C) of the message thread 121C, and send the packaged container 120C to the computer 11B of the agent, user 10B. The system can also package any other identified threads, including the "@name" information of the primary participant, user 10A, and the messages 122 of other threads (such as thread N 121N), and send the packaged container 120N to the computer 11B of the agent, user 10B. This can include operations for transmitting at least a portion of the message thread containers 120C and 120N to the computing device 11B associated with the agent 10B. The portion of the message thread container includes the messages 122 of the message thread and the messages 122 including the user mention 129 to the participant 10A. The modified license 150' can cause or allow the computing device 11B associated with the agent 10B to display the messages 122 of the identified message thread 121B and the messages 122 including the user mention 129.
[0071] like Figure 4D As shown, for the third thread 121C, once the agent responds, the system automatically directs the response to the main thread, such as thread 3, and the UI can display a graphical relationship indicating that the reply message is related to the original message with the @mention. Figure 4D As shown, in this example, the system may receive a reply message 133 from a computing device 11B associated with an agent 10B. The system may then direct the reply message 133 to a message thread container 120C including message 122 of a message thread 121C.
[0072] The message thread container 120C may enable the system to display the reply message 133 with the display interface of the message thread 121C. The position of the reply message 133 may be close to the message 122C including the user mention 129, wherein the proximity (e.g., separation less than a threshold distance) shows the relationship between the reply message 133 and the original message 122C of the third thread 121C. The graphical element showing the initials of the primary participant (e.g., "TI" for Traci Isaac) may have some distinguishing features, such as a double ring, to show that the agent has responded for that participant.
[0073] like Figure 4E As shown, for the Nth thread 121N, the example shows that the participant of the Nth thread has mentioned user 10A. Since agent 10B now has permission as a result of the status information of participant 10A and agent assignment 130, the agent can respond. Once the agent responds, the system automatically directs the response to the main thread, such as thread N, and the UI can display a graphical relationship indicating that the reply message is related to the original message with the @mention. Figure 4E As shown, in this example, the system may receive a reply message 133 from computing device 11B associated with agent 10B. The system may then direct the reply message 133 to message thread container 120N including message 122 of message thread 121C.
[0074] The message thread container 120N can enable the system to display the reply message 133 with the display interface of the message thread 121 N. The position of the reply message 133 can be close to the message 122C including the user mention 129, where the proximity (e.g., separation less than a threshold distance) shows the relationship between the reply message 133 and the original message 122C of the Nth thread 121 N. The graphical element showing the initials of the primary participant (e.g., "TI" for Traci Isaac) can have some distinguishing features, such as a double ring, to indicate that the agent has responded for that participant.
[0075] In embodiments disclosed herein, a modified permission that allows an agent to access a particular thread or threads of certain delivery interfaces can be changed back to a permission that restricts the agent from accessing a particular thread or threads of certain delivery interfaces. When the system detects that the participant's status data indicates that the participant is available, the permission can be changed back to a state where the agent is restricted from accessing a particular thread. Thus, the system can automatically restrict agent access to any thread defined in assignment 130 when a person returns to the office, turns off their out of office reply, a sensor determines that they are in the office, their calendar indicates that they are available, or an email or agent from them indicates that they have returned.
[0076] Figures 5A-5C An example is shown in which a primary participant, user 10A, has selected a particular agent, user 10F, for a particular thread, first thread 121A. However, in this example, the status information indicates that user 10A is available. When this occurs, in some embodiments, the system may not grant access to the thread to the agent. The example relates to a first message thread 121A with several participants: user 10A, user 10B, user 10C, and user 10D. Figure 5A The state of the data set is shown in which a participant, user 10A, has selected an agent, user 10F, for a particular thread, first thread 121A. It is also assumed that the activity data (e.g., user status information 140) indicates that the participant, user 10A, is available. This means that the user has returned.
[0077] like Figure 5B As shown, when an @mention is detected, the system can determine whether the mentioned person is available, for example, if out of office replies are turned off. In response to determining that the message 122C includes a user mention 129 including an identifier 134 of a participant 10A, the system can perform operations for analyzing the status information 140 to determine that the status information 140 indicates that the participant 10A associated with the user mention 129 is available. When the system detects that the person is available, the system can also identify a proxy. In response to determining that the status information 140 indicates that the participant 10A associated with the user mention 129 is available, the system can analyze data defining one or more proxy assignments 130 to identify a proxy, such as the user 10.
[0078] like Figure 5C As shown, when the status information indicates that the participant is available, the system maintains the permission by maintaining restrictions that prevent the agent from accessing any identified thread and prevent any agent from sending a reply to any identified thread. When the status information indicates that the participant is available, the system can verify that the agent does not have access rights to any identified thread. If the system detects that the agent has access rights to the identified thread, the system can restrict the access rights, for example, changing it from read or write to a restricted setting.
[0079] Figure 5D An example of permissions is shown, which are modified to grant the agent permission to access a particular thread and permission to reply to a particular thread when the thread participant is listed as available and when the thread participant is mentioned in a message in one of the threads. Figure 5C In an alternative embodiment of the present invention, the system may still grant notification and permission for delegation regardless of the participant's availability status.
[0080] Now refer to the attached Figures 6A-6E, an example of a user interface showing how an agent can receive notification of an @mention is shown and described below. Figures 2A-2D This example also shows how the system can display threads to an agent in the agent's own working environment without having to switch applications. In this example, reference Figure 2A In the example data set of , user 10F is the agent of the first thread 121A of user 10A. Fig. 6A As shown, in this example, user 10F is working independently in his own private workspace, which in this case is a private chat with another user. This is at time T0, before the @mention in the first thread 121A where user 10A is a participant. Then, at time T1, after the @mention in the first thread 121A where user 10A is a participant, user interface 101 of user 10F shows notification 311. This notification 311 is in response to the @mention, and the notification indicates that the message thread participant is mentioned in the message.
[0081] Figure 6C An example of a thread preview displayed when an agent has selected a notification 311 indicating that a message thread participant has been mentioned in a message is shown. Here, user 10F has selected the notification, and in response, the system displays a thread preview 312. The preview may show the @mention and a portion of the message containing the @mention. The preview may also show the names of the attendees. The preview is also referred to herein as a folder group because selection of notification 311 may cause the system to display all threads that the agent needs to respond to, with the threads displayed in folders that may be collapsed or expanded when the user interacts with notification 311.
[0082] Fig.6D shows an example of a UI that displays when the agent has selected Figure 6C The thread preview shown is a display of a thread. In this example, the thread container of the first thread causes the thread to be displayed in the UI area 451 reserved for the thread of the main participant (eg, the proxied thread, ie, the first thread 121A). Fig. 6E An example of a UI is shown, which shows the pair generated by the agent in Fig.6D In response, the system may also show a graphical element 430 indicating that the agent has responded for the primary participant (user 10A).
[0083] Now refer to the attached Figures 7A-7C , an example of a user interface showing how an agent can receive notification of an @mention is shown and described below. Figures 4A-4DIn this example, an agent is assigned to multiple threads. This example also shows how the system can display threads to the agent in its own working environment without having to switch applications. In this example, reference Figure 4A In the example data set of , based on the criteria set in the proxy assignment 130, the user 10B is the proxy for the third thread 121C and the Nth thread 121N of the user 10A. Fig. 7A 1. As shown, in this example, user 10B is working independently in his own private workspace, which in this case is a private chat with another user. In this UI, notification 311 is displayed in response to an @mention of user 10A in third thread 121C and an @mention of user 10A in Nth thread 121N, of which user 10A is a member. In response to user selection of notification 311, a preview of each thread with an @mention of user 10A is displayed.
[0084] The preview may show the @mention and a portion of the message containing the @mention. The preview may also show the names of the attendees. The preview or collection of previews is referred to herein as a folder group 312, where threads may be displayed in folders that may be collapsed or expanded when a user interacts with the notification 311 (e.g., selects or deselects).
[0085] Figure 7B An example of a UI is shown, which shows that when the agent has selected Fig. 7A 4. The display of the third thread 121C when viewing the thread preview of the third thread (listed as Team A) shown in FIG. In this example, the thread container of the third thread 121C causes the thread to be displayed in the UI area 451 reserved for the thread of the primary participant (e.g., the proxied thread, in this example, the third thread 121C). Figure 7C An example of a UI is shown showing a display of a reply to a third thread generated by an agent. In this response, the system may also show a graphical element 430 indicating that the agent has responded for the primary participant (user 10A).
[0086] Reference now Figures 8A-8C , which is an extension of the previous example, used to show how agents can access different threads. Fig. 7A The example shown in Fig. 8A1, user 10B is working independently in his own private workspace, which in this case is a private chat with another user. As with the previous example, in this UI, notifications 311 are displayed in response to an @mention of user 10A in third thread 121C and an @mention of user 10A in Nth thread 121N, of which user 10A is a member. In response to user selection of notifications 311, previews of each thread with an @mention of user 10A are displayed.
[0087] Figure 8B An example of a UI is shown, which shows the display of the Nth thread 121N within the editor of the XLSX file containing the Nth thread. Fig. 8A When previewing the thread for the Nth thread (listed as an XLSX file) shown in Figure 8B In this example, the thread container of the Nth thread causes the thread to be displayed in the UI area 451 reserved for the main participant thread (eg, the proxied thread, in this example, the Nth thread 121N). Figure 8C An example of a UI is shown showing the display of a reply to the Nth thread generated by the agent. In the response, the system may also show a graphical element 430 indicating that the agent has responded for the primary participant (user 10A).
[0088] Fig. 9 900 is a diagram showing aspects of a routine for controlling the delivery of an invitation capable of invoking an action, such as initiating a meeting recording. The technology disclosed herein provides a system with dynamic control of event invitations capable of invoking event recording and other event functions such as content sharing or input for voting. The system also enables a person to control event functions without requiring the user to join a communication session.
[0089] It will be appreciated by those of ordinary skill in the art that the operations of the methods disclosed herein are not necessarily presented in any particular order, and that it is possible and contemplated to perform some or all of the operations in an alternative order. For ease of description and illustration, the operations have been presented in the order shown. Operations may be added, omitted, performed together, and / or performed simultaneously without departing from the scope of the appended claims.
[0090] It should also be understood that the method shown can be started or ended at any time and does not need to be performed as a whole. Some or all of the operations and / or substantially equivalent operations in the method can be performed by executing computer-readable instructions included on a computer storage medium, as defined herein. The term "computer-readable instructions" and its variations as used in the specification and claims are widely used herein to include routines, applications, application modules, program modules, programs, components, data structures, algorithms, etc. Computer-readable instructions can be implemented on various system configurations, including single-processor or multi-processor systems, minicomputers, mainframe computers, personal computers, handheld computing devices, microprocessor-based programmable consumer electronics, combinations thereof, etc. Although the example routines described below operate on a system (e.g., one or more computing devices), it is understood that the routines can be executed on any computing system, which can include any number of computers working together to perform the operations disclosed herein.
[0091] Therefore, it should be understood that the logical operations described herein are implemented as a series of computer-implemented actions or program modules running on a computing system such as described herein, and / or as interconnected machine logic circuits or circuit modules within a computing system. Implementation is a matter of choice depending on the performance and other requirements of the computing system. Therefore, the logical operations may be implemented in software, firmware, dedicated digital logic, and any combination thereof.
[0092] in addition, Fig. 9 The operations shown in the and other figures can be implemented in association with the example user interfaces and systems described herein. For example, the various devices and / or modules described herein can generate, send, receive, and / or display data associated with the content of a communication session (e.g., live content, broadcasted events, recorded content, etc.) and / or a rendering UI including a rendering of one or more participants of a remote computing device, avatar, channel, chat session, video stream, image, virtual object, and / or application associated with the communication session.
[0093] Routine 900 includes operation 903, where the system can analyze the messages 122 of message thread 121A to identify a message 122C that includes a user mention 129, such as an @mention. User mention 129 includes an identifier 134 of participant 10A embedded within a portion of message 122C. Figure 1 2 and other examples in which a user, namely user A, is mentioned in the message.
[0094] At operation 905 , the system may analyze the status information 140 to determine whether the status information 140 indicates that the participant 10A associated with the user mention 129 is unavailable or available. Figure 2BAn example is shown in , where when an @mention is detected and the system detects that the mentioned person has set an out of office status, or otherwise indicated that they are unavailable in some communication, in response to determining that message 122C includes a user mention 129 that includes an identifier 134 of participant 10A, the system can analyze status information 140 to determine that status information 140 indicates that participant 10A associated with user mention 129 is unavailable.
[0095] At operation 907, the system may analyze data defining one or more agent assignments 130 to identify an agent 10F assigned to receive the message 122 of the message thread 121A and to respond to the message thread 121A as a representative of the participant 10A associated with the user mention 129. For example, in some embodiments, the operation may be invoked by any suitable operation described herein. In some embodiments, the operation may be invoked in response to determining that the status information 140 indicates that the participant 10A associated with the user mention 129 is unavailable and / or when the participant 10A is mentioned in the thread and has an assigned representative.
[0096] At operation 909, the system may modify the permission 150 to generate a modified permission 150' for the message thread 121A to grant the agent 10F access to receive access to the message thread container 120A including the messages 122 of the message thread 121A and the messages 122C including the user mention 129. The modification of the permission may be in response to determining that the status information 140 indicates that the participant 10A associated with the user mention 129 is unavailable and / or when the participant 10A is mentioned in the thread and has an assigned agent.
[0097] At operation 911, the system may cause at least a portion of the message thread container 120A to be transmitted to a computing device 11F associated with the agent 10F. The portion of the message thread container 120A may include the message 122 of the message thread 121A and the message 122C containing the user mention 129 of the participant 10A. The modified permission 150' may also cause the computing device 11F associated with the agent 10F to display the message 122 of the message thread 121A and the message 122C containing the user mention 129. For example, in Figure 2C In the example, the system may package the instant message including "@name" and the message thread including the instant message and send the packaged communication to the agent.
[0098] Once the agent responds, the system automatically retrieves the response to reply to the main thread at operation 913. The system may receive a reply message 133 from a computing device 11F associated with the agent 10F. In response, the system may direct the reply message 133 to a message thread container 120A including the message 122 of the message thread 121A, wherein the message thread container 120A causes the reply message 133 to be displayed with the display of the message thread 121A, the reply message 133 being located proximate to the message 122C including the user mention 129, wherein the system causes the display of one or more graphical elements showing a visual relationship between the display of the reply message and the display of the message 122C including the user mention 129.
[0099] Fig.10 600 is a diagram showing an example environment 600 in which a system 602 can implement the technology disclosed herein. It should be understood that the above-mentioned subject matter can be implemented as a computer-controlled device, a computer process, a computing system, or an article such as a computer-readable storage medium. The operation of the example method is shown in each box and is summarized with reference to these boxes. These methods are shown as a logical flow of blocks, each of which can represent one or more operations that can be implemented with hardware, software, or a combination thereof. In the context of software, an operation represents a computer-executable instruction stored on one or more computer-readable media, which, when executed by one or more processors, enables one or more processors to perform the described operation.
[0100] Typically, computer executable instructions include routines, programs, objects, modules, components, data structures, etc. that perform specific functions or implement specific abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations may be performed in any order, combined in any order, subdivided into multiple sub-operations, and / or performed in parallel to implement the described processes. The described processes may be performed by resources associated with one or more devices such as one or more internal or external CPUs or GPUs and / or one or more hardware logic such as a field programmable gate array ("FPGA"), a digital signal processor ("DSP"), or other types of accelerators.
[0101] All of the methods and processes described above may be embodied in, and fully automated via, software code modules executed by one or more general-purpose computers or processors. The code modules may be stored in any type of computer-readable storage medium or other computer storage device, such as those described below. Some or all of the methods may alternatively be embodied in dedicated computer hardware, such as the computer hardware described below.
[0102] Any routine description, element or block in the flowcharts described herein and / or depicted in the accompanying drawings should be understood to potentially represent a module, segment or portion of code that includes one or more executable instructions for implementing a specific logical function or element in the routine. Alternative implementations are included within the scope of the examples described herein, in which elements or functions may be deleted, or executed out of the order shown or discussed, including substantially simultaneously or in reverse order, depending on the functions involved, as will be understood by those skilled in the art.
[0103] In some implementations, system 602 can be used to collect, analyze, and share data for display to users of communication session 604. As shown, communication session 603 can be implemented between a plurality of client computing devices 606(1)-606(N) (where N is a number having a value of 2 or greater) associated with or as part of system 602. Client computing devices 606(1)-606(N) enable users (also referred to as individuals) to participate in communication session 603.
[0104] In this example, communication session 603 is hosted by system 602 via one or more networks 608. That is, system 602 can provide services that enable users of client computing devices 606(1) to 606(N) to participate in communication session 603 (e.g., via live viewing and / or recorded viewing). Thus, "participants" of communication session 603 can include users and / or client computing devices (e.g., multiple users can be in a room participating in a communication session via the use of a single client computing device), each of which can communicate with other participants. Alternatively, communication session 603 can be hosted by one of client computing devices 606(1) to 606(N) using peer-to-peer technology. System 602 can also host chat conversations and other team collaboration functionality (e.g., as part of an application suite).
[0105] In some implementations, such chat conversations and other team collaboration functions are considered external communication sessions distinct from the communication session 603. The computing system 602 that collects participant data in the communication session 603 may be able to link to such an external communication session. Thus, the system may receive information such as date, time, session details, etc. that enables connection to such an external communication session. In one example, a chat conversation may be conducted in accordance with the communication session 603. Additionally, the system 602 may host a communication session 603 that includes at least a plurality of participants co-located at a meeting location (such as a conference room or auditorium) or located at different locations.
[0106] In the example described herein, client computing devices 606(1) to 606(N) participating in a communication session 603 are configured to receive and render communication data for display on a user interface of a display screen. The communication data may include a collection of various instances or streams of live content and / or recorded content. The collection of various instances or streams of live content and / or recorded content may be provided by one or more cameras (such as a video camera). For example, an individual live stream or recorded content stream may include media data associated with a video feed provided by a camera (e.g., audio and visual data capturing the appearance and voice of a user participating in the communication session). In some embodiments, the video feed may include such audio and visual data, one or more still images, and / or one or more avatars. The one or more still images may also include one or more avatars.
[0107] Another example of an individual live stream or recorded content stream may include media data including avatars of users participating in the communication session and audio data capturing the user's voice. Yet another example of an individual live stream or recorded content stream may include media data containing files displayed on a display screen and audio data capturing the user's speech. Thus, the various live streams or recorded content streams within the communication data enable remote conferencing to be facilitated between a group of people and content sharing within the group. In some embodiments, the various live streams or recorded content streams within the communication data may originate from a plurality of co-located cameras in a space such as a room to record or stream live broadcasts including one or more individuals making presentations and one or more individuals consuming the content presented.
[0108] Participants or attendees can view the content of communication session 603 in real time as the activity occurs, or alternatively, view the content of communication session 603 via recording at a later time after the activity occurs. In the examples described herein, client computing devices 606(1) to 606(N) participating in communication session 603 are configured to receive and render communication data for display on a user interface of a display screen. The communication data may include a collection of various instances or streams of live and / or recorded content. For example, an individual content stream may include media data associated with a video feed (e.g., audio and visual data capturing the appearance and speech of users participating in the communication session). Another example of an individual content stream may include data containing avatar media of users participating in the conference session and audio data capturing the speech of the users. Yet another example of an individual content stream may include media data and / or audio data, the media data including content items displayed on a display screen, the audio data capturing the speech of the users. Thus, the various content streams within the communication data enable facilitating a conference or broadcast presentation among a group of people dispersed in remote locations.
[0109] Participants or attendees of a communication session are people within range of a camera or other image and / or audio capture device, so that the person's movements and / or sounds generated when the person is viewing and / or listening to content shared via the communication session can be captured (e.g., recorded). For example, a participant may be sitting in a crowd watching shared content live at a broadcast location where a stage presentation is taking place. Or a participant may be sitting in an office conference room, watching shared content of a communication session with other colleagues via a display screen. Still further, a participant may be sitting or standing in front of a personal device (e.g., a tablet computer, a smart phone, a computer, etc.), watching the shared content of a communication session alone in their office or home.
[0110] Fig.10 System 602 includes device 610. Device 610 and / or other components of system 602 may include distributed computing resources that communicate with each other and / or with client computing devices 606(1)-606(N) via one or more networks 608. In some examples, system 602 may be a stand-alone system responsible for managing various aspects of one or more communication sessions, such as communication session 603. As an example, system 602 may be managed by an entity such as SLACK, WEBEX, GOTOMEETING, GOOGLEHANGOUTS, etc.
[0111] The network 608 may include, for example, a public network such as the Internet, a private network such as an institutional and / or personal intranet, or some combination of private and public networks. The network 608 may also include any type of wired and / or wireless network, including but not limited to a local area network ("LAN"), a wide area network ("WAN"), a satellite network, a wired network, a Wi-Fi network, a WiMax network, a mobile communication network (e.g., 3G, 4G, etc.), or any combination thereof. The network 608 may utilize communication protocols, including packet-based and / or datagram-based protocols, such as the Internet Protocol ("IP"), the Transmission Control Protocol ("TCP"), the User Datagram Protocol ("UDP"), or other types of protocols. In addition, the network 608 may also include multiple devices that facilitate network communications and / or form the hardware foundation of the network, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, backbone devices, etc.
[0112] In some examples, network 608 may also include devices that enable connection to a wireless network, such as a wireless access point (“WAP”). Examples support connection through WAPs that send and receive data over various electromagnetic frequencies (e.g., radio frequencies), including WAPs that support the Institute of Electrical and Electronics Engineers (“IEEE”) 802.11 standards (e.g., 802.11g, 802.11n, 802.11ac, etc.) and other standards.
[0113] In various examples, device 610 may include one or more computing devices that operate in a cluster or other grouping configuration to share resources, balance loads, improve performance, provide failover support or redundancy, or for other purposes. For example, device 610 may belong to various categories of devices, such as traditional server-type devices, desktop computer-type devices, and / or mobile devices. Therefore, although shown as a single type of device or server-type device, device 610 may include various device types and is not limited to a particular type of device. Device 610 may represent, but is not limited to, a server computer, a desktop computer, a web server computer, a personal computer, a mobile computer, a laptop computer, a tablet computer, or any other type of computing device.
[0114] The client computing device (e.g., one of client computing devices 606(1)-606(N)), each of which is also referred to herein as a "data processing system") can belong to a variety of device categories, which can be the same as or different from device 610, such as a traditional client-type device, a desktop computer-type device, a mobile device, a dedicated device, an embedded device, and / or a wearable device. Thus, the client computing device can include, but is not limited to, a desktop computer, a game console and / or a gaming device, a tablet computer, a personal data assistant ("PDA"), a mobile phone / tablet hybrid device, a laptop computer, a telecommunications device, a computer navigation-type client computing device such as a satellite-based navigation system including a global positioning system ("GPS") device, a wearable device, a virtual reality ("VR") device, an augmented reality ("AR") device, an implanted computing device, an automotive computer, a network-enabled television, a thin client, a terminal, an Internet of Things ("IoT") device, a workstation, a media player, a personal video recorder ("PVR"), a set-top box, a camera, an integrated component (e.g., a peripheral device) for inclusion in a computing device, an appliance, or any other kind of computing device. Furthermore, the client computing device may include a combination of the previously listed examples of client computing devices, such as, for example, a desktop computer-type device or a mobile-type device combined with a wearable device, and the like.
[0115] Client computing devices 606(1) to 606(N) of various classes and device types may represent any type of computing device having one or more data processing units 692 such as operably connected to a computer-readable medium 694 via a bus 616, which in some instances may include a system bus, a data bus, an address bus, a PCI bus, a Mini-PCI bus, and one or more of any of a variety of local, peripheral, and / or independent buses.
[0116] Executable instructions stored on computer-readable medium 694 may include, for example, operating system 619 , client module 620 , profile module 622 , and other modules, programs, or applications that may be loaded and executed by data processing unit 692 .
[0117] The client computing devices 606(1)-606(N) may also include one or more interfaces 624 to enable communication between the client computing devices 606(1)-606(N) and other networked devices (such as device 610) over the network 608. Such network interfaces 624 may include one or more network interface controllers (NICs) or other types of transceiver devices to send and receive communications and / or data over the network. In addition, the client computing devices 606(1)-606(N) may include input / output ("I / O") interfaces (devices) 626 that enable communication with input / output devices (such as peripheral input devices (e.g., game controllers, keyboards, mice, pens, voice input devices (such as microphones), cameras for obtaining and providing video feeds and / or still images, touch input devices, gesture input devices, etc.) and / or output devices (including peripheral output devices (e.g., displays, printers, audio speakers, tactile output devices, etc.)). Fig.10 Client computing device 606 ( 1 ) is shown connected in some manner to a display device (eg, display screen 629 (N)) that can display a UI in accordance with the techniques described herein.
[0118] exist Fig.10 In the example environment 600 of FIG. 600 , client computing devices 606 ( 1 ) to 606 (N) can use their respective client modules 620 to connect to each other and / or other external devices to participate in a communication session 603 or to contribute activities to the collaborative environment. For example, a first user can use client computing device 606 ( 1 ) to communicate with a second user of another client computing device 606 ( 2 ). When executing client module 620 , users can share data, which can cause client computing device 606 ( 1 ) to connect to system 602 and / or other client computing devices 606 ( 2 ) to 606 (N) via network 608 .
[0119] The client computing devices 606(1) to 606(N) may use their respective profile modules 622 to generate participant profiles ( Fig.10), and provide the participant profile to other client computing devices and / or devices 610 of system 602. The participant profile may include one or more of an identity of a user or group of users (e.g., name, unique identifier (“ID”), etc.), user data such as personal data, machine data such as location (e.g., IP address, room in a building, etc.), and technical capabilities, etc. The participant profile may be used to register the participant for the communication session.
[0120] like Fig.10 As shown, device 610 of system 602 includes server module 630 and output module 632. In this example, server module 630 is configured to receive media streams 634(1) to 634(N) from individual client computing devices, such as client computing devices 606(1) to 606(N). As described above, the media streams may include video feeds (e.g., audio and visual data associated with a user), audio data to be output with the presentation of the user's avatar (e.g., an audio-only experience that does not send the user's video data), text data (e.g., a text message), file data, and / or screen sharing data (e.g., a document, a slideshow, an image, a video displayed on a display screen, etc.), etc. Thus, server module 630 is configured to receive a collection of various media streams 634(1) to 634(N) (the collection is referred to herein as "media data 634") during real-time viewing of communication session 603. In some scenarios, not all client computing devices participating in communication session 603 provide media streams. For example, the client computing device may be a consuming or “listening” only device such that it only receives content associated with the communication session 603 but does not provide any content to the communication session 603 .
[0121] In various examples, the server module 630 may select aspects of the media stream 634 to be shared with each of the participating client computing devices 606(1) to 606(N). Thus, the server module 630 may be configured to generate session data 636 based on the stream 634 and / or to communicate the session data 636 to the output module 632. The output module 632 may then transmit communication data 639 to the client computing devices (e.g., the client computing devices 606(1) to 606(3) participating in the real-time viewing of the communication session). The communication data 639 may include video, audio, and / or other content data provided by the output module 632 based on content 650 associated with the output module 632 and based on the received session data 636. The content 650 may include the stream 634 or other shared data, such as an image file, a spreadsheet file, a slide deck, a document, etc. The stream 634 may include a video component depicting an image captured by the I / O device 626 on each client computer. The content 650 also includes input data from each user, which may be used to control the direction and position of the presentation. The content may also include instructions for sharing the data and an identifier of a recipient of the shared data. Thus, content 650 is also referred to herein as input data 650 or input 650.
[0122] like Fig.10 As shown, output module 632 sends communication data 639(1) to client computing device 606(1), and sends communication data 639(2) to client computing device 606(2), and sends communication data 639(3) to client computing device 606(3), etc. The communication data 639 sent to the client computing devices may be the same or may be different (e.g., the positioning of the content stream within the user interface may vary from device to device).
[0123] In various embodiments, the device 610 and / or the client module 620 may include a GUI rendering module 640. The GUI rendering module 640 may be configured to analyze the communication data 639 for delivery to one or more of the client computing devices 606. Specifically, the UI rendering module 640 at the device 610 and / or the client computing device 606 may analyze the communication data 639 to determine an appropriate manner for displaying the video, image, and / or content on the display screen 629 of the associated client computing device 606. In some embodiments, the GUI rendering module 640 may provide the video, image, and / or content to a presentation GUI 646 rendered on the display screen 629 of the associated client computing device 606. The presentation GUI 646 may be rendered on the display screen 629 by the GUI rendering module 640. The presentation GUI 646 may include the video, image, and / or content analyzed by the GUI rendering module 640.
[0124] In some implementations, the presentation GUI 646 may include multiple sections or grids that may render or include video, images, and / or content for display on the display screen 629. For example, a first section of the presentation GUI 646 may include a video feed of a presenter or individual, and a second section of the presentation GUI 646 may include a video feed of an individual consuming the conference information provided by the presenter or individual. The GUI presentation module 640 may populate the first section and the second section of the presentation GUI 646 in a manner that appropriately mimics an environmental experience that the presenter and individual may be sharing.
[0125] In some embodiments, the GUI presentation module 640 can zoom in or provide a zoomed view of an individual represented by a video feed to highlight the individual's reaction to the presenter, such as facial features. In some embodiments, the presentation GUI 646 can include video feeds of multiple participants associated with a conference, such as a general communication session. In other embodiments, the presentation GUI 646 can be associated with a channel, such as a chat channel, an enterprise team channel, etc. Thus, the presentation GUI 646 can be associated with an external communication session that is different from a general communication session.
[0126] Fig.11 A diagram showing example components of an example device 700 (also referred to herein as a "computing device") configured to generate data for some user interfaces disclosed herein is shown. The device 700 can generate data that can include one or more parts that can render or include video, images, virtual objects, and / or content for display on a display screen 629. The device 700 can represent one of the devices described herein. Additionally or alternatively, the device 700 can represent one of the client computing devices 606.
[0127] As shown, device 700 includes one or more data processing units 702, computer-readable media 704, and communication interface 706. The components of device 700 are operably connected, for example, via bus 709, which may include one or more of a system bus, a data bus, an address bus, a PCI bus, a Mini-PCI bus, and any of a variety of local, peripheral, and / or independent buses.
[0128] As used herein, a data processing unit (such as data processing unit 702 and / or data processing unit 692) may represent, for example, a CPU-type data processing unit, a GPU-type data processing unit, a field programmable gate array ("FPGA"), another type of DSP, or other hardware logic components that may be driven by a CPU in some cases. By way of example and not limitation, illustrative types of hardware logic components that may be utilized include application specific integrated circuits ("ASICs"), application specific standard products ("ASSPs"), systems on chips ("SOCs"), complex programmable logic devices ("CPLDs"), and the like.
[0129] As used herein, computer-readable media such as computer-readable media 704 and computer-readable media 694 can store instructions that can be executed by a data processing unit. The computer-readable medium can also store instructions that can be executed by an external data processing unit such as an external CPU, an external GPU, and / or can be executed by an external accelerator such as an FPGA-type accelerator, a DSP-type accelerator, or any other internal or external accelerator. In various examples, at least one CPU, GPU, and / or accelerator is incorporated into the computing device, while in some examples, one or more of the CPU, GPU, and / or accelerator is external to the computing device.
[0130] Computer readable media (which may also be referred to herein as computer readable media) may include computer storage media and / or communication media. Computer storage media may include one or more of volatile memory, non-volatile memory and / or other persistent and / or secondary computer storage media, removable and non-removable computer storage media implemented in any method or technology for storing information such as computer readable instructions, data structures, program modules or other data. Thus, computer storage media includes media in tangible and / or physical form included in a device and / or hardware component that is part of a device or external to a device, including, but not limited to, random access memory ("RAM"), static random access memory ("SRAM"), dynamic random access memory ("DRAM"), phase change memory ("PCM"), read-only memory ("ROM"), erasable programmable read-only memory ("EPROM"), electrically erasable programmable read-only memory ("EEPROM"), flash memory, compact disk read-only memory ("CD-ROM"), digital versatile disk ("DVD"), optical cards or other optical storage media, cassettes, magnetic tape, magnetic disk storage, magnetic cards or other magnetic storage devices or media, solid-state memory devices, storage arrays, network attached storage, storage area networks, hosted computer storage, or any other storage memory, storage device, and / or storage medium that can be used to store and maintain information for access by a computing device. Computer storage media may also be referred to herein as computer-readable storage media, non-transitory computer-readable storage media, non-transitory computer-readable media, or computer storage media.
[0131] In contrast to computer storage media, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal (such as a carrier wave) or other transmission mechanism. As defined herein, computer storage media does not include communication media. That is, computer storage media does not include communication media that consists solely of a modulated data signal, a carrier wave, or a propagation signal itself.
[0132] The communication interface 706 may represent, for example, a network interface controller ("NIC") or other type of transceiver device that sends and receives communications over a network. In addition, the communication interface 706 may include one or more cameras and / or audio devices 722 to enable the generation of video feeds and / or still images, etc.
[0133] In the illustrated example, computer-readable medium 704 includes data store 708. In some examples, data store 708 includes a data store, such as a database, a data warehouse, or other type of structured or unstructured data store. In some examples, data store 708 includes a corpus and / or a relational database having one or more tables, indexes, stored procedures, etc., to enable data access including, for example, one or more of a Hypertext Markup Language (“HTML”) table, a Resource Description Framework (“RDF”) table, a Web Ontology Language (“OWL”) table, and / or an Extensible Markup Language (“XML”) table.
[0134] The data store 708 may store data for the operation of processes, applications, components, and / or modules stored in the computer-readable medium 704 and / or executed by the data processing unit 702 and / or accelerators. For example, in some examples, the data store 708 may store the assignment data 130, the state data 140, and the permission data 150. The state data 140 may include the total number of participants (e.g., users and / or client computing devices) in the communication session, the activities occurring in the communication session, the list of invitees to the communication session, and / or other data related to when and how the communication session is conducted or hosted.
[0135] Status data 140 can define any type of activity or status associated with individual users 10A-10L. For example, context data can define the level of people in the organization, how each person's level is related to other people's levels, people's performance levels, or any other activity or status information about each person on the system. In some configurations, status data can indicate whether a person is available or unavailable. When a person is in a meeting or performing an activity that cannot be interrupted, the unavailable state can be indicated by the vacation schedule of the person on the calendar. This information can be established by using calendar information indicating a vacation or indicating the status of a specific meeting or other communications that can indicate that the person is unavailable. For example, if a person indicates in an email that they will be out of the office between 9 am and 5 pm on a specific day, the system can update the status information and indicate that the person is unavailable. The out-of-office state or unavailable state can also be detected by one or more sensors. For example, if a user does not interact with a keyboard or input device for more than a predetermined period of time, the system can automatically move the person's state to indicate that they are unavailable.
[0136] Some or all of the above data may be stored on a separate memory 716 on one or more data processing units 702, such as a CPU-type processor, a GPU-type processor, an FPGA-type accelerator, a DSP-type accelerator, and / or a memory on another accelerator. In this example, the computer-readable medium 704 also includes an operating system 718 and an application programming interface 719 (API) configured to display the functions and data of the device 700 to other devices. In addition, the computer-readable medium 704 includes one or more modules, such as a server module 729, an output module 732, and a GUI presentation module 740, although the number of modules shown is only an example, and the number can vary. That is, the functions associated with the modules described herein can be performed by a smaller number of modules or a larger number of modules on a device, or distributed on multiple devices.
[0137] Finally, although various configurations have been described using language specific to structural features and / or methodological acts, it should be understood that the subject matter defined in the appended representations is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed subject matter.
Claims
1. A method for managing permissions for a proxy assigned to a participant of a message thread, the method for execution on a system, the method comprising: analyzing messages of the message thread to identify a message including a user mention, wherein the user mention includes an identifier of the participant embedded within a portion of the message; responsive to determining that the message includes the user-mention including the identifier of the participant, analyzing status information to determine that the status information indicates that the participant associated with the user-mention is unavailable; responsive to determining that the status information indicates that the participant associated with the user mention is unavailable, analyzing data defining one or more agent assignments to identify an agent assigned to receive messages of the message thread and assigned to respond to the message thread as a representative of the participant associated with the user mention; In response to determining that the status information indicates that the participant associated with the user-mention is unavailable and the agent is assigned to respond to the message thread as a representative of the participant, modifying permissions to generate a modified permission for the message thread to grant the agent access to receive messages including the message thread and a message thread container including the user-mention; and transmitting at least a portion of the message thread container to a computing device associated with the agent, the portion of the message thread container including messages of the message thread and messages including user mentions of the participant, wherein the modified permission causes the computing device associated with the agent to display the messages of the message thread and messages including the user mentions.
2. The method according to claim 1, further comprising: receiving a reply message from the computing device associated with the agent; as well as Directing the reply message to the message thread container that includes the messages of the message thread, wherein the message thread container causes the reply message to be displayed together with the display of the message thread, and the reply message is located proximate to the messages that include the user mentions, wherein the system causes display of one or more graphical elements that display a visual relationship between the display of the reply message and the display of the messages that include the user mentions.
3. The method according to claim 2, wherein: Modifying the permissions of the message thread includes generating the modified permissions to grant the agent access rights to write the reply message to the thread container, and using the modified permissions, the system allows the computing device associated with the agent to submit the reply message to the message thread without requiring the agent to be a member of the message thread.
4. The method according to claim 1, further comprising: Causes the computing device associated with the agent to display at least a portion of the messages of the message thread and a portion of the messages including the user mentions in a group container, wherein the folder group container is selectable by user input so that the portion of the messages of the message thread and the messages including the user mentions are displayed in an area reserved for the messages.
5. The method according to claim 1, wherein: The agent is a first agent assigned to a specific thread, wherein the one or more agent assignments identify a second agent, the second agent being assigned to receive messages of respective threads (120C and 120N) respectively associated with respective delivery interfaces, wherein the respective delivery interfaces include at least one of a channel, a chat, or a file type or a file name, wherein the modified permission is configured to allow the second agent to receive messages of the respective threads (120C and 120N) and to reply to the respective threads (120C and 120N), wherein the method further comprises transmitting at least a portion of a second message thread container to a computing device associated with the second agent, the portion of the second message thread container including messages of the second message thread, and messages in the second message thread including user mentions of the participant, wherein the modified permission causes the computing device associated with the second agent to display messages of the second message thread, and messages in the second message thread including user mentions of the participant.
6. The method according to claim 1, further comprising: Selecting a subset of messages of the message thread, wherein individual messages in the subset of messages have a threshold level of relevance to messages including the user mention, wherein transmitting at least a portion of the message thread container to the computing device associated with the agent comprises: transmitting the subset of messages to the computing device associated with the agent.
7. The method according to claim 1, wherein: In response to determining that the participant associated with the user-mention is available, the system limits analyzing the proxy assignment to identify the proxy.
8. The method according to claim 1, wherein: In response to determining that the participant associated with the user-mention is available, the system disallows modifying the permissions of the message thread to grant the agent access rights to receive data of a message thread container.
9. The method according to claim 1, further comprising: A graphical element is generated that provides notification that the agent is assigned to the message thread, the status information indicates that the participant is unavailable, and the user mentions a message that was added to the message thread.
10. A system for managing permissions for a proxy assigned to a participant of a message thread, the system comprising: one or more processing units; as well as A computer-readable storage medium having computer-executable instructions encoded thereon, the computer-executable instructions causing the one or more processing units to perform the following operations: analyzing messages of the message thread to identify a message including a user mention, wherein the user mention includes an identifier of the participant embedded within a portion of the message; responsive to determining that the message includes the user-mention including the identifier of the participant, analyzing status information to determine that the status information indicates that the participant associated with the user-mention is unavailable; responsive to determining that the status information indicates that the participant associated with the user mention is unavailable, analyzing data defining one or more agent assignments to identify an agent assigned to receive messages of the message thread and assigned to respond to the message thread as a representative of the participant associated with the user mention; In response to determining that the status information indicates that the participant associated with the user-mention is unavailable and the agent is assigned to respond to the message thread as a representative of the participant, modifying permissions to generate a modified permission for the message thread to grant the agent access to receive messages including the message thread and a message thread container including the user-mention; and transmitting at least a portion of the message thread container to a computing device associated with the agent, the portion of the message thread container including messages of the message thread and messages including user mentions of the participant, wherein the modified permission causes the computing device associated with the agent to display the messages of the message thread and messages including the user mentions.
11. The system according to claim 10, wherein: The instructions further cause the one or more processing units to perform the following operations: receiving a reply message from the computing device associated with the agent; and Directing the reply message to the message thread container that includes the messages of the message thread, wherein the message thread container causes the reply message to be displayed together with the display of the message thread, and the reply message is located proximate to the messages that include the user mentions, wherein the system causes display of one or more graphical elements that display a visual relationship between the display of the reply message and the display of the messages that include the user mentions.
12. The system according to claim 10, wherein: Modifying the permissions of the message thread includes generating the modified permissions to grant the agent access rights to write the reply message to the thread container, and using the modified permissions, the system allows the computing device associated with the agent to submit the reply message to the message thread without requiring the agent to be a member of the message thread.
13. The system according to claim 10, wherein: The instructions also cause the one or more processing units to perform the following operations: cause the computing device associated with the agent to display at least a portion of the messages of the message thread and a portion of the messages including the user mentions in a group container, wherein the folder group container is selectable by user input so that the portion of the messages of the message thread and the messages including the user mentions are displayed in an area reserved for the messages.
14. The system according to claim 10, wherein: The agent is a first agent assigned to a specific thread, wherein the one or more agent assignments identify a second agent, the second agent being assigned to receive messages of respective threads (120C and 120N) respectively associated with respective delivery interfaces, wherein the respective delivery interfaces include at least one of a channel, a chat, or a file type or a file name, wherein the modified permission is configured to allow the second agent to receive messages of the respective threads (120C and 120N) and to reply to the respective threads (120C and 120N), wherein the method further comprises transmitting at least a portion of a second message thread container to a computing device associated with the second agent, the portion of the second message thread container including messages of the second message thread, and messages in the second message thread including user mentions of the participant, wherein the modified permission causes the computing device associated with the second agent to display messages of the second message thread, and messages in the second message thread including user mentions of the participant.
15. The system according to claim 10, wherein: The instructions also cause the one or more processing units to perform the following operations: select a subset of messages of the message thread, wherein each message in the subset of messages has a threshold level of relevance to the message including the user mention, wherein transmitting at least a portion of the message thread container to the computing device associated with the agent includes: transmitting the subset of messages to the computing device associated with the agent.