State indicator for conveying user activity across digital contexts
By providing status indicators in different digital contexts, it solves the problem that existing tools cannot understand user activity in real time, improving collaboration efficiency and utilization of computing resources.
Patent Information
- Application Number
- CN202080074232.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-10-24
- Filing Date
- 2020-10-09
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2040-10-09
AI Technical Summary
Existing collaboration tools are unable to understand user activity in real time across different digital contexts, resulting in lost productivity and inefficient use of computing resources.
By monitoring user activity and providing status indicators in different digital contexts, users can understand the interaction status of other users without switching contexts and dynamically adjust the actions that can be performed.
It improves collaboration efficiency, reduces the use of computing resources, reduces manual input and human error, and improves the efficiency of the computing system.
Smart Images

Figure CN114600086B_ABST
Abstract
Description
Background Technology
[0001] Many existing tools allow users to collaborate and share information. Some web-based word processor programs even allow different users to view and edit web-based documents simultaneously. For example, two different users can open the same document on their respective computing devices at the same time and even see each other's contributions in real time. Some web-based word processor programs also provide visual indicators that indicate who is currently viewing or editing a particular web-based document. For example, in a web-based word processor interface, the system can generate visual indicators that identify the person editing the web-based document and even which part of the document that person is editing.
[0002] While many existing tools exist that allow different users to collaborate in real time and even view each other's contributions, these tools still have several drawbacks. One drawback is that existing tools typically require different users to simultaneously use a web-based document within the same digital context in order to accurately see how each other user interacts with that web-based document. For example, to see who is actively contributing to a web-based document and what those contributions are, users typically must have the web-based document open on their computing device. Therefore, unless two different users happen to have the same web-based document open simultaneously on their respective devices, neither user will know in real time who is actively viewing or contributing to the web-based document. Such drawbacks of existing systems can lead to lost productivity and inefficient use of computing resources.
[0003] The following disclosure is made in light of these and other considerations. Summary of the Invention
[0004] The techniques disclosed herein enable systems to provide status indicators for various forms of user activity occurring across different digital contexts on a collaborative platform. Generally, a system can monitor the activities performed by a specific user within a specific digital context and provide status indicators to different users in different digital contexts when the monitored activity meets one or more criteria. For example, when a particular type of user activity occurs in relation to a data object within a digital context of an application that facilitates editing the content of a data object, the system can display a status indicator associated with the data object within the digital context of a message thread. In such an example, a data object (e.g., a document, spreadsheet, etc.) can be shared among multiple users by attaching it to a message within the digital context of a message thread. Then, without escaping the digital context of the message thread, a status indicator describing the status of the person sharing the data object (or even other users viewing the relevant message thread) can be presented to the person sharing the data object (or even other users viewing the relevant message thread) while another person is interacting with the data object in a manner that meets one or more criteria. Therefore, the system can deliver timely and context-sensitive status indicators about how team members are currently interacting with data objects in various different digital contexts. The timely delivery of status indicators about how another person is currently interacting with the data object enables the recipient of the status indicator to establish an effective collaborative protocol with that other person. For example, the recipient of the status indicator can send a message to someone else while they are interacting with the data object to notify that the recipient that it is available when needed. As another example, the recipient of the status indicator can switch their own digital context relative to the data object to match the digital context of someone else who is interacting with the data object.
[0005] The techniques disclosed herein can also provide the recipient of a status indicator with the ability to perform various actions that become available based on the current state of the user corresponding to the status indicator. For example, the system can monitor the activity of a specific user and determine that the specific user is using a word processor application to edit the content of a document. Based on this determination, the system can provide the status indicator to the recipient within an appropriate digital context, such as, for example, the digital context of a message thread through which the document is shared. In this example, the system can also analyze calendar data associated with a specific user who is editing the content of a document to determine that the specific user's current state is "available." Here, based on the combination of a specific user with an "available" current state simultaneously using a word processor application to edit the content of a document, the system can provide the recipient of the status indicator with the ability to directly send messages to a specific user within the word processing application. For example, the recipient can "right-click" a portion of the status indicator to display a list of one or more available actions. The recipient can then select a "messaging" action to transcribe the message within the digital context in which the status indicator is displayed and transmit that message to a specific user in a different digital context they are using to interact with a data object.
[0006] However, suppose the opposite is true, and a particular user's current state changes to "busy"—for example, because calendar data indicates that the user is currently attending a meeting. For instance, a user might be using a word processor application to edit a document, but could do so while meeting with someone else. In these contrasting scenarios, based on the combination of a user currently in a "busy" state simultaneously editing a document using a word processor application, the system can still provide a status indicator, but may not provide the recipient of the status indicator with the ability to directly send messages to the specific user within the word processor application. Therefore, it is appreciated that the techniques described herein allow the system to facilitate appropriate specific actions based on the user's current state corresponding to the status indicator.
[0007] In some configurations, the system can also provide the recipient of the status indicator with the ability to perform various actions based on a specific digital context in which the user corresponding to the status indicator is interacting with a data object. For example, the system can monitor the activity of a specific user and determine that the specific user is using a word processor application to edit the content of a document. Based on this determination, the system can provide the recipient of the status indicator with the ability to transcribe a message within the digital context of a message thread and then transmit that message to the specific user within the digital context of the word processor application. For example, based on the determination that the specific user is interacting with a data object via a word processor application, a right-click on the status indicator can display options for sending a message directly to the specific user within the word processor application. Conversely, if the system determines that the specific user is sharing the content of a document within a video conferencing session (e.g., a live two-way audio / video stream between two or more users), the system can provide the recipient of the status indicator with the ability to join the video conferencing session. For example, based on the determination that a specific user is sharing a data object via a video conference session, a right-click on the status indicator can display options for joining the video conference session, thereby allowing the user to listen to and / or participate in a discussion of the data object.
[0008] In this way, when a receiver receives a status indicator within a specific digital context (e.g., a message thread), the receiver can also be provided with the ability to perform various actions deemed appropriate based on a digital context in which another user interacts with a data object associated with the status indicator. Alternatively, the receiver can be restricted from performing actions deemed inappropriate based on a digital context in which another user interacts with a data object associated with the status indicator.
[0009] The techniques disclosed herein offer numerous technical benefits. For example, when user activity is detected relative to a data object within a different digital context, the system can increase the utilization of status indicators by providing them to the receiver within that specific digital context. This allows, for instance, the provision of status information that the receiver might otherwise be unable to recognize. Furthermore, the automatic delivery of status information within a specific digital context reduces or eliminates the need for the receiver to periodically switch to other digital contexts (e.g., to perform the detected user activity) to check current and / or recent user activity. Such techniques can improve the efficiency of computing systems by reducing the number of times users need to switch between digital contexts using computing devices to obtain relevant information. Therefore, the use of various computing resources, such as network resources, memory resources, and processing resources, can be significantly reduced.
[0010] The efficiencies derived from the analysis described above can also lead to other efficiencies. Specifically, by automating multiple different processes used to generate status notifications, user interaction with computing devices can be improved. The reduction in manual data input and the improvement in human-machine interaction can bring many other benefits. For example, by reducing the need for manual input, unintentional input and human error can be reduced. This ultimately leads to more efficient use of computing resources, such as memory usage, network usage, and processing resources.
[0011] Features and technical benefits beyond those explicitly described above will become apparent upon reading the following detailed description and viewing the associated drawings. The summary of this invention is provided in a simplified form to introduce the selected concepts, which will be further described in the detailed description below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to aid in determining the scope of the claimed subject matter. For example, the term "technology" may refer to one or more systems, methods, computer-readable instructions, modules, algorithms, hardware logic, and / or operations permitted in the context described above and throughout this document. Attached Figure Description
[0012] A detailed description is provided with reference to the accompanying drawings. In the drawings, the leftmost number(s) of the reference numerals identify the drawing where the reference numeral first appears. The same reference numerals in different drawings indicate similar or identical items. References to individual items among multiple items can be made using reference numerals with letters in a letter sequence to refer to each individual item. General references to items can be made using specific reference numerals without a letter sequence.
[0013] Figure 1 The illustration depicts a system 100 in an exemplary scenario that illustrates various aspects of this disclosure.
[0014] Figure 2A The illustration depicts a scenario where a collaboration platform provides a status indicator from the first digital context to the first user in response to another user interacting with a data object in a second digital context that is different from the first digital context.
[0015] Figure 2B The illustration shows a scenario where a collaboration platform restricts the triggering of status indicators for specific types of user activities based on the current state of the user performing the user activity.
[0016] Figure 2C The illustration depicts a scenario in which the status indicator standard defines identifiable characteristics of specific forms of user activity used to trigger and / or prevent the display of status indicators.
[0017] Figure 2D The illustration shows a scenario where the status indicator standard defines one or more threshold activity levels for triggering the display of a specific form of user activity to the status indicator.
[0018] Figure 2E The illustration shows a scenario where the status indicator standard defines a identifiable characteristic of user activity that can be performed to specifically attract the attention of one or more other users.
[0019] Figure 2F The illustration depicts a scenario where the status indicator standard specifies displaying a status indicator to a specific user when a specific form of user activity occurs relative to a section of content associated with that user.
[0020] Figure 3 The illustration depicts another exemplary scenario involving the transmission of messages between different digital contexts, used to illustrate various aspects of this disclosure.
[0021] Figure 4A The illustration shows an exemplary status indicator that can be presented to the user in response to the fulfillment of status indicator criteria.
[0022] Figure 4B It demonstrates the ability to respond to user selections in Figure 4A The example preview mode GUI is shown with the user interface elements shown.
[0023] Figure 4C It demonstrates the ability to respond to user selections in Figure 4A The example cross-context messaging GUI is shown as another user interface element.
[0024] Figure 5A An exemplary status indicator is shown that can be displayed in response to user activity that meets one or more status indicator criteria.
[0025] Figure 5B An exemplary menu is shown, which can be displayed to the recipient of the status indicator so that the recipient can select an individual computational action from the available computational actions.
[0026] Figure 5C The illustration shows an exemplary message generation GUI that can respond to and Figure 5A The status indicator is displayed in relation to the selection of the user interface element.
[0027] Figure 6 This is a diagram illustrating various aspects of a routine used to compute and generate state indicators that indicate when user activities occur across different contexts.
[0028] Figure 7This is a diagram illustrating an exemplary environment in which the technology disclosed herein can be implemented.
[0029] Figure 8 The diagram illustrates exemplary components of an example device (also referred to herein as a “computing device”) configured to generate data for some user interfaces in the user interfaces disclosed herein. Detailed Implementation
[0030] Figure 1 The illustration depicts a system 100 in an exemplary scenario illustrating aspects of this disclosure. The techniques disclosed herein improve upon existing systems by providing a status indicator 128 to an intended recipient regarding various forms of user activity 110 occurring across different digital contexts 118 of a collaboration platform 102. For example, system 100 is capable of monitoring activities performed by a particular user within a specific digital context and providing status indicators 128 to different users in different digital contexts when the monitored activity meets one or more criteria. As a specific, but non-limiting, example, in response to a particular type of user activity 110 occurring within the digital context of a data object 116 relative to an application facilitating editing of the content of a data object 116, system 100 may cause a status indicator 128 to be displayed in association with the data object 116 within the digital context of a message thread 130. In such an example, by attaching data object 116 to message 124(1) within the digital content of message thread graphical user interface (GUI) 130 (also referred to herein as the “message thread GUI layout”), a first user 112(1) is able to share data object 116 (e.g., document, spreadsheet, meeting invitation, survey, etc.) among multiple users. Then, without switching from message thread GUI 130, the first user 112(1) sharing data object 116 (or even other users actively viewing the relevant message thread) can be presented with a status indicator 128, indicating when another user (e.g., a third user 112(3) in the illustrated example) is interacting with data object 116 in a manner that meets one or more criteria. In this way, system 100 is able to deliver timely and context-sensitive status indicators 128 about how users are currently interacting with data object 116 in various different digital contexts 118—thereby enabling the recipient of status indicator 128 to establish effective collaboration protocols with those users.
[0031] In various implementations, one or more components of system 100 can analyze activity data 120 with respect to status indicator standard 104 to generate status indicator data 106. Generally, status indicator data 106 defines how status indicator 128 will be displayed to indicate when and, in some cases, how a particular user 112 interacts with data object 116 or its content using client device 114. For example, status indicator data 106 can identify the user interacting with data object 116 and the specific digital context 118 within which the user is interacting with data object 116. Then, as this status indicator data 106 is generated, digital context interface data 108 can be updated based on the status indicator data 106 in a manner that ensures status indicator 128 is displayed to the recipient within the appropriate digital context 118—digital context 118, as described above, may differ from the digital context 118 within which a particular user interacts with data object 116. Digital context interface data 108 can define how one or more aspects of a graphical user interface (GUI) are displayed on client device 114 when client device 114 is communicating with collaboration platform 102 to facilitate a specific digital context. For example, digital context interface data 108 can define how message thread GUI 130 will be presented on client device 114 when user 112 has selected the digital context. As another example, digital context interface data 108 can define how a word processor preview GUI is presented on client device 114 in response to user 112 selecting data object 116 within message thread GUI 130 to change the selected digital context. As used herein, the term "digital context" refers to a computing environment within which at least one of the following is presented to a user via a computer output device (e.g., a graphical representation of a file) or the content of a data object (e.g., text, graphics, and / or other digital media types) is displayed: a graphical representation of a data object (e.g., an icon representing a file) or the content of a data object (e.g., text, graphics, and / or other digital media types). For example, an icon representing a word processing file presented within a chat message in a persistent chat graphical user interface (GUI) can be appropriately referred to as a first digital context displaying aspects of a word processing file. As another example, the underlying content of a work-processing document presented via a word processing application GUI for viewing and / or editing can be aptly referred to as a second digital context that reveals various aspects of the work-processing document.
[0032] For the purposes of this discussion, the exemplary scenario is as follows: Figure 1The user activities 110 are graphically represented. In this exemplary scenario, each of the first user 112(1), the second user 112(2), and the third user 112(3) collaborates with each other within one or more digital contexts 118 using one or more corresponding client devices 114. In some embodiments, one or more of these digital contexts 118 may be facilitated, in whole or in part, by the collaboration platform 102. For example, the collaboration platform 102 may facilitate the first digital context 118(1), which enables multiple users 112 to collaborate with each other by sending and receiving messages within the message thread GUI 130. The collaboration platform 102 may also enable users to share data objects 116 within the message thread GUI 130. For example, in Figure 1 In the scenario illustrated in user activity 110, a first user 112 (1) is shown sharing a data object 116 with a second user 112 (2) and a third user 112 (3) within a first digital context 118 (1). Therefore, the data object 116 is shown flowing from a first client device 114 (1) into the first digital context 118 (1). Furthermore, the data object 116 is shown flowing to each of the second client devices 114 (2) and the third client devices 114 (3) associated with the first digital context 118 (1). In this way, when the first user 112 (1) attaches the data object 116 to a first message 124 (1) within the first digital context 118 (1), each of the second user 112 (2) and the third user 112 (3) enables access to the data object 116 via the first digital context 118 (1) (e.g., by clicking the icon 122 representing the data object 116). As used herein, the term “icon” refers to a graphical representation of a data object. As further illustrated, the message thread GUI 130 may include one or more other messages (e.g., a second message 124(2)) and a message generation field 126 for typing and / or dictating message content.
[0033] exist Figure 1 In the exemplary scenario illustrated in user activity 110, a third user 112 (3) is shown interacting with a data object 116 within a second digital context 118 (2). In some implementations, the third user 112 (3) may utilize an application on a third client device 114 (3) to open the data object 116 and view and / or edit its content. For example, the third user 112 (3) may select the data object 116 (e.g., by clicking icon 122) to open the data object 116 within a word processor application, thereby making the underlying content of the data object 116 visible and / or editable. Figure 4BAn exemplary graphical user interface is illustrated that can be displayed to user 112 in response to a user clicking icon 122 within a first digital context 118(1) to enter a second digital context 118(2), within which the content of data object 116 can be actively viewed, edited, or otherwise interacted with. An exemplary application for interacting with data object 116 within the second digital context 118(2) can be a web-based application whose functionality can be accessed via a web browser application running on client device 114. For example, a web-based word processor application can facilitate functions such as viewing the content of data object 116 (e.g., text, images, data values, etc.), editing the content (e.g., adding content, deleting content, moving content, reformatting content, etc.), attaching comments to various parts of the content, etc.—all through a web browser that serves as the portal for this underlying functionality. Alternatively or additionally, the application for interacting with data object 116 within the second digital context 118(2) can be a local desktop application whose functionality is implemented locally on the individual client device 114.
[0034] As further illustrated, status indicator data 106 is transmitted to the first client device 114(1) so that status indicator 128 is displayed to the first user 112(1) (also referred to herein as the “recipient” of status indicator 128). For example, in response to determining that a third user 112(3) is currently interacting with data object 116 within a second digital context 118(2), status indicator 128 may be displayed to the first user 112(1) within the first digital context 118(1) and associated with icon 122, which graphically represents data object 116 within a first message 124(1). In this way, after sharing data object 116 within the digital context of message thread GUI 130, the first user 112(1) may be automatically presented along with status indicator 128 when the activity data 120 associated with the third user 112(3) satisfies some or all of the status indicator criteria in status indicator criteria 104. Alternatively, status indicator data 106 can be transmitted to a second client device 114 (2) so that status indicator 128 is displayed to a second user 112 (2). In this way, system 100 presents status indicator 128 to each user 112, which transmits real-time information about how other users 112 are interacting with a specific data object 116. This enables each recipient of status indicator 128 to establish an effective communication protocol with those other users while they are currently interacting with data object 116.
[0035] exist Figure 1Within the context of a word processor application, activity data 120 indicates substantially real-time user activity 110 occurring within one or more digital contexts 118 of the collaboration platform 102 concerning a data object 116 (e.g., a document, spreadsheet, etc.). For example, activity data 120 may indicate that a particular user 112 is currently viewing the content of a data object 116 within the digital context of a word processor application. In other words, activity data 120 may indicate that a particular user is currently opening a data object 116 within a word processor application running locally on client device 114 and / or that client device 114 is accessing it via a web browser application. As another example, activity data 120 may indicate whether a particular user 112 is currently making substantial edits to the content of a data object 116 within the digital context of a word processor application. In such an example, system 100 may monitor user activity 110 to identify edits that a particular user 112 is making to the content of a digital document 116. System 100 may then analyze these edits to determine whether to classify them as substantial or non-substantial. As a specific but non-limiting example, system 100 may determine that one or more edits correspond to a particular user 112 correcting various grammatical problems that are not substantial in nature (e.g., a particular user may change the word "there" to "they're" to match the appropriate context). Conversely, system 100 may determine that one or more edits correspond to a particular user substantially changing the content of digital document 116 (e.g., a particular user may delete a portion of the content, a particular user may add new content, etc.). As described in more detail below, in some embodiments, status indicator criterion 104 may be defined such that providing status indicator 128 to the receiver depends on edits that are substantial in nature to the data object. The foregoing examples of user activities 110 that may be indicated within activity data 120 are provided for illustrative purposes only. Many other types of user activities 110 are contemplated—some of which are described in detail below.
[0036] In some embodiments, the status indicator standard 104 may include an activity type parameter 104A, which specifies that a particular type of user activity 110 will cause a status indicator 128 to be provided to the environment of one or more users 112. For illustrative purposes, assume that a first user 112 (1) is currently viewing the message thread GUI 130 on a first client device 114 (1). Further assume that while the first user 112 (1) is viewing the message thread GUI 130, a third user 112 (3) begins to interact with a data object 116 on a third client device 114 (3). As a result, corresponding activity data 120 is generated based on the third user 112 (3) interacting with the data object 116.
[0037] In some embodiments, the activity type parameter 104A may specify that whenever one or more other users 112 begin interacting with the data object 116, a status indicator 128 is displayed to the receiver within a specific digital context (e.g., a first digital context 118(1)). For example, in Figure 1 Within the context of the scenario illustrated in user activity 110, the status indicator standard 104 can be satisfied by simply opening the data object 116 within the second digital context 118(2) based on the third user 112(3) – even without editing the underlying content of the data object 116. Then, in response to the third user 112(3) simply opening the data object 116 within the second digital context 118(2), the status indicator data 106 can be transmitted to the first client device 114(1) so that the status indicator 128 is directly displayed to the first user 112(1) within the first digital context 118(1).
[0038] In some embodiments, the activity type parameter 104A may specify that when one or more other users 112 begin editing the underlying content of the data object 116, a status indicator 128 is displayed to the recipient within a specific digital context 118. For example, when a third user 112 (3) opens the data object 116 within a second digital context 118 (2), the status indicator criterion 104 may not be immediately met. In such an example, the third user 112 (3) may potentially view the contents of a document or spreadsheet without notifying other users via the presentation of the status indicator 128. Then, in response to the third user 112 (3) beginning to edit the contents of the data object 116 within the second digital context 118 (2), the system 100 may determine that the status indicator criterion 104 has been met. At this point, the status indicator data 106 may be transmitted to the first client device 114 (1) so that the status indicator 128 is displayed directly to the first user 112 (1) within the first digital context 118 (1).
[0039] In some embodiments, the activity type parameter 104A may specify that when one or more other users 112 make a specific type of edit to the underlying content of the data object 116, a status indicator 128 is displayed to the receiver within a specific digital context 118. As a specific but non-limiting example, the system 100 may monitor user activity 110 to identify one or more edits being made to the data object 116 by a third user 112 (3). The system 100 may then determine whether these edits belong to one or more predefined categories (e.g., substantive edits, non-substantive edits, formatting edits, etc.). For illustrative purposes, suppose that the third user 112 (3) edits the content of the data object 116 by changing the word “there” to “they’re”, but does not edit the content in any other way. In these cases, the system 100 may determine that the edit is limited to correcting spelling errors and therefore may classify the edit as non-substantive. In some cases, the activity type parameter 104A may be defined such that non-substantive edits will not result in the status indicator 128 being displayed to the receiver. In other words, non-substantial editing does not result in the satisfaction of the determination criterion 104. Conversely, suppose a third user 112(3) alternatively edits the content of data object 116 by deleting an entire paragraph and replacing it with five new paragraphs. In these cases, system 100 can determine that the editing substantially alters one or more aspects of data object 116 and therefore classifies the editing as substantial. In some cases, activity type parameter 104A can be defined such that substantial editing will result in the display of status indicator 128 to the receiver. In other words, substantial editing does result in the determination that status indicator criterion 104 is satisfied.
[0040] In some embodiments, the activity type parameter 104A may specify that when one or more other users 112 edit content in a predefined manner (e.g., to make those edits noticeable), a status indicator 128 is displayed to a recipient within a specific digital context 118. For example, suppose user 112 opens data object 116 within a word processor application and then activates a feature designed to track any edits made (an exemplary such feature is the "Track Changes" feature in Microsoft Word). Further suppose that once this feature is activated, the user edits data object 116 once or multiple times. As another example, suppose user 112 makes one or more edits and then adds some predefined emphasis to these edits, such as by highlighting the edits, bolding the edits, italicizing the edits, etc. Based on these examples, it will be appreciated that editing the content of data object 116 (e.g., a document, spreadsheet, PowerPoint presentation, etc.) in some predefined manner can serve as an indication that the user making the edits intends to make those edits known to other users. Therefore, in some implementations, the activity type parameter 104A can be defined such that editing performed in a certain predefined manner will cause the status indicator 128 to be displayed to the receiver.
[0041] In some embodiments, the activity type parameter 104A may specify that when user activity 110 reaches a threshold level with respect to data object 116, a status indicator 128 is displayed to a recipient within a specific digital context 118. As a specific example, activity type parameter 104A may be satisfied when a user edits (e.g., adds, deletes, etc.) a digital document for at least a threshold number of characters (e.g., 100 characters, or any other suitable number). In this example, a third user 112 (3) may open data object 116 within the digital context of a web-based word processor application and may even begin editing the document without any status indicator 128 being displayed to the first user 112 (1). However, once the cumulative amount of editing input by the third user 112 (3) reaches a predefined threshold, system 100 may determine that the user activity 110 satisfies status indicator criterion 104. As another specific example, activity type parameter 104A may be satisfied when a user interacts with data object 116 for a predefined amount of time in a specific manner (e.g., viewing, actively editing, etc.). In this example, the third user 112 (3) can open the data object 116 and interact with its content for less than a predefined amount of time without displaying the status indicator 128 to the first user 112 (1). However, once the user's interaction time reaches the predefined amount of time, the system 100 will transmit the status indicator data 106 to the first client device 114 (1) – thereby causing the status indicator 128 to be displayed in the first digital context 118 (1).
[0042] In some embodiments, the activity type parameter 104A may specify that when user activity 110 occurs with respect to a specific portion of data object 116 associated with a specific user, a status indicator 128 is displayed to the specific user within a specific digital context 118. For illustrative purposes, it is assumed that the metadata associated with digital object 116 indicates that the first user 112(1) is the principal author of a specific sub-section of the content and / or has been assigned responsibility for that specific sub-section. In these cases, if user activity 110 indicates that a third user 112(3) is actively editing a portion of a document that is different from the specific sub-section, the system 100 may avoid displaying any status indicator 128 to the first user 112(1). Conversely, if user activity 110 indicates that a third user 112(3) is actively editing a specific sub-section, the system 100 may respond immediately by transmitting status indicator data 106 to the first client device 112(1) so that the status indicator 128 is displayed to the first user 112(1).
[0043] In some implementations, system 100 can determine the association of a specific portion of data object 116 with a specific user based on the level of contribution made by that user to that specific portion. For example, when one or more users generate content associated with data object 116, metadata can be generated and stored to maintain a record of which specific users generated (or otherwise contributed to) that specific portion of the content. To illustrate this, suppose a specific sub-part of the data object comprises 1000 alphanumeric characters, and the metadata associated with data object 116 indicates which specific user(s) added each of those 1000 alphanumeric characters to the content. In these cases, system 100 can determine the level of contribution for one or more specific users as the percentage of characters generated by those individual users(s). For example, if first user 112(1) contributes 900 alphanumeric characters and second user 112(2) contributes 100 alphanumeric characters, then system 100 can determine that the contribution level of first user 112(1) is 90% and the contribution level of second user 112(2) is 10%. In some implementations, the activity type parameter 104A can be defined such that a status indicator 128 is presented to users whose contribution level exceeds a threshold contribution level. In this way, system 100 can be configured to provide a status indicator to one or more specific users 112 when other users begin to interact with a specific part (e.g., a document, etc.) of a data object 116 (e.g., viewing, editing, commenting, etc.) by contributing at least a threshold amount (e.g., by adding at least 25% of the total content of a specific part, by becoming the largest contributor to a specific part, by being among the top N contributors (N is a positive integer value), or any other suitable threshold amount) of a specific part (e.g., a document, etc.).
[0044] In some embodiments, the status indicator standard 104 may include a digital context parameter 104B that specifies a particular digital context 118 within which a particular type of user activity 110 will cause a status indicator 128 to be provided to one or more users 112. For illustrative purposes, assume that a first user 112(1) is currently interacting with a collaboration platform 102 within a first digital context 118(1), for example, the first user 112(1) may be viewing a message thread GUI 130 on a first client device 114(1). Furthermore, assume that a second user 112(2) is currently interacting with a collaboration platform 102 within some other digital context, for example, the second user 112(2) may be using the collaboration platform 102 to actively participate in video conferences with other users. In these cases, the digital context parameter 104B may specify that a particular type of user activity 110 (including but not limited to the specific examples provided above) will trigger the presentation of a status indicator to the user currently interacting with the collaboration platform 102 in the first digital context, but not to the user currently interacting with the collaboration platform 102 in the second digital context.
[0045] In some embodiments, system 100 may determine the digital context 118 for an individual user 112 based on a variety of factors. For example, in some embodiments, collaboration platform 102 may be a unified communications platform that combines a variety of functions, including but not limited to: persistent workplace chat (e.g., represented by a messaging thread GUI 130), video conferencing, file storage, and application integration (e.g., direct access to word processing applications, spreadsheet applications, etc. from collaboration platform 102). In some implementations, one or more functions of collaboration platform 102 may be facilitated via integration with online productivity suites (such as, for example, Microsoft Office 365, Google G-Suite, etc.). In this example, system 100 may determine the current digital context 118 associated with a particular user based on which specific functions of collaboration platform 102 a particular user is currently utilizing. For example, if a particular user is currently utilizing, for example, in Figure 1 The message thread GUI 130 shown is used to view and / or generate one or more persistent chat messages, which the system 100 can then use as a factor to determine the digital context of a particular user. As another example, if different users are currently using word processor functionality associated with the collaboration platform 102 to view and / or edit the content of data objects, the system 100 can use this as a factor to determine the different digital contexts for different users.
[0046] In some embodiments, the status indicator standard 104 may include available action parameters 104C, which specify one or more calculated actions to make the status indicator 128 available to the recipient based on various factors. Such exemplary factors include, but are not limited to: the current state of a particular user 112 whose corresponding user activity 110 causes the status indicator 128 to be provided to the recipient, the current state of the recipient of the status indicator 128, the current digital context of the particular user 112 whose corresponding user activity 110 causes the status indicator 128 to be provided to the recipient, and / or the current digital context of the recipient of the status indicator 128.
[0047] For illustrative purposes, consider, for example, in Figure 1 The scenario illustrated in user activity 110 involves a first user 112(1) being provided with a status indicator 128 within the digital context of the message thread GUI 130 in response to an interaction between a third user 112(3) and a data object 116 within the digital context of the word processing application. Within this scenario, it is assumed that the available action parameter 104C specifies that the receiver of the status indicator 128 within the digital context of the message thread GUI 130 will be provided with the ability to generate a message directly within the message thread GUI 130 and transmit that message directly to the specific user 112 whose user activity 110 triggered the status indicator 128, and directly to the specific digital context 118 within which the user activity 110 occurs. In these cases, when the first user 112(1) receives the status indicator 128 within the message thread GUI 130, the first user 112(1) can click the status indicator to display a menu of available actions, including sending a message directly from the message thread GUI 130 to the third user 112(3) within the word processing application.
[0048] As an extension of the aforementioned scenario, suppose the available action parameter 104C also specifies that the action of messaging a specific user to its activity triggering status indicator 128 depends on the status of that specific user currently matching one or more predefined states. For example, the available action parameter 104C can be defined to provide the receiver of status indicator 128 with the ability to message the specific user's activity triggering status indicator 120 when and only when the specific user's current state is "available". In these cases, when the first user 112(1) receives status indicator 128 within the message thread GUI 130, the system 100 can prevent the first user 112(1) from being provided with the ability to message the third user 112(3) when the third user 112(3)'s current state is "busy" (e.g., because the third user 112(3)'s time is blocked on the calendar, because the third user 112(3) is currently participating in a live video conference, etc.).
[0049] Turn now Figures 2A to 2F An exemplary user interface is provided to illustrate different examples of various state indicators 128 displayed based on the detection of different scenarios. Specifically, Figure 2A The illustration depicts a scenario where a collaboration platform 102 provides a status indicator 128 to a first user 112(1) within a first digital context in response to another user interacting with a data object 116 within a second digital context different from the first digital context. As illustrated, at a first time T1 (e.g., 1:29 PM as indicated in the first message 124(1)), user activity 110 corresponding to this particular scenario includes the first user 112(1) attaching the data object 116 to the first message 124(1) within the message thread GUI 130. Then, at a second time T2 (e.g., 4:37 PM as indicated in the lower right corner of the illustrated screen), user activity 110 corresponding to the particular scenario includes a second user 112(2) currently in a "busy" state and a third user 112(3) currently in a "available" state. Furthermore, at the second time T2, the third user 112(3) is interacting with a data object 116 shared within a first message 124(1) in a second digital context, which is different from the first digital context. Figure 2A The first digit in the graphic representation differs from the context. For example, the third user 112(3) can be represented as in... Figure 4B The word processor application shown interacts with data object 116 within a digital context. Similarly, in this scenario, status indicator standard 104 indicates the strategy used to manage system 100 when to display status indicator 128. As illustrated, in Figure 1 The strategy outlined herein is designed such that when another user opens data object 116 (e.g., a word processing document represented as “JulyPromotion.doc”) to view it within a second digital context, system 100 provides a status indicator 128 to the user currently in the first digital context. Therefore, in response to a third user viewing a document within the second digital context, system 100 automatically presents a status indicator 128 indicating the status of the third user 112 (3) to the first user 112 (1) within the first digital context. In some implementations, status indicator 128 may include an indication of the status of a specific user whose user activity 110 triggered status indicator 128. For example, in the illustrated scenario, status indicator 128 includes the text “CAROL is currently viewing this file” to provide the first user with additional insight into what triggered status indicator 128.
[0050] In some configurations, the status indicator standard 104 can restrict specific forms of user activity 110 to trigger the status indicator 128 based on the current state of the user performing the user activity. Figure 2B Combination Figure 1 An example of such an embodiment is illustrated. Regarding user activity 110, scenario B and Figure 2A The difference between scenario A and scenario B is that the current state of the third user 112(3) at time T2 is "Do Not Disturb"—the opposite of "Available". Regarding the status indicator standard 104, the difference between scenario B and scenario A is that the strategy is designed such that when another user opens data object 116 for viewing in the second digital context and the other user's current state is "Available", the system 100 provides a status indicator 128 to the user currently in the first digital context. Therefore, even if the third user starts viewing a document in the second digital context at time T2, the third user, whose state at time T2 is "Do Not Disturb", prevents the system 100 from presenting any status indicator 128 to the first user 112(1) in the first digital context.
[0051] In some configurations, the status indicator standard 104 can define identifiable characteristics for triggering and / or preventing the display of a specific form of user activity 110 on the status indicator 128. Figure 2C Combination Figure 1 An example of such an embodiment is illustrated. Regarding user activity 110, scenario C and... Figure 2A The difference in scenario A is that at time T2, the third user 112(3) begins to make several edits to the data object 116 within the second digital context, and the various characteristics of these edits cause the system 100 to classify them as non-substantial. For example, the third user 112(3) may have edited the phrase "The kids all loved there" theirThe word "there" in "new kindergarten teacher!" is changed to "their". Regarding the status indicator standard 104, the difference between scenario C and scenario A is that the strategy is designed so that when another user makes substantial edits to data object 116 in the second digital context, the system 100 provides a status indicator 128 to the user currently in the first digital context. Therefore, even if a third user opens a document and even begins to edit the document in the second digital context at time T2, the system 100 analyzes these edits and determines that the edits lack the identifiable characteristics of substantial editing, preventing the system 100 from presenting any status indicator 128 to the first user 112(1) in the first digital context. Conversely, if the third user 112(3) has instead deleted and / or added a large amount of text, the system 100 may have already presented a status indicator 128 to the first user 112(1) in the first digital context.
[0052] In some configurations, the status indicator standard 104 can define one or more threshold activity levels for triggering a specific form of user activity 110 to be displayed on the status indicator 128. Figure 2D Combination Figure 1An example of such an embodiment is illustrated. Regarding user activity 110, in scenario D, time T2 represents the moment when user activity 110, specifically corresponding to a third user 112 (3) and occurring relative to data object 116 within a second digital context, reaches a threshold activity level. For example, the third user 112 (3) may have opened data object 116 using a word processing application some threshold amount of time prior to T2, such that the amount of time data object 116 has been opened at time T2 reaches (e.g., satisfies) the threshold level. As another example, time T2 may correspond to the moment when the amount of editing performed by the third user 112 (3) relative to data object 116 reaches an editing threshold level. Exemplary forms of measuring the editing threshold level include, but are not limited to: the user performing editing for a predetermined amount of time, the user adding a predetermined number of characters, the user deleting a predetermined number of characters, the total number of characters added and deleted reaching a predetermined number, a predetermined percentage of the user editing data object 116 (e.g., if the user adds and / or deletes 100 characters from a 1000-character file, then 10% document editing is satisfied), and any other suitable form of quantifying the measurement of editing. As another example, time T2 may correspond to the moment when a third user 112(3) appends a comment at a threshold level to one or more parts of data object 116. It will be appreciated that many content viewing and / or editing applications allow users to add and / or reply to comments appearing in balloon-type comment fields without altering the main content of the data object. Regarding status indicator standard 104, scenario D differs from scenario A in that the strategy is designed such that when user activity 110 performed by another user reaches a predefined threshold level, system 100 provides status indicator 128 to the user currently in the first digital context. Therefore, since time T2 represents the moment specifically corresponding to the moment when user activity 110 of the third user 112(3) reaches a threshold activity level, system 100 causes status indicator 128 to be presented to the first user 112(1), as in Figure 2D As illustrated in the figure. In some implementations, status indicator 128 may include an indication of the activity level of a specific user whose user activity 110 triggered status indicator 128. For example, in the illustrated scenario, status indicator 128 includes the text “CAROL is active in this file” to provide the first user with additional insight about triggering status indicator 128.
[0053] In some configurations, status indicator standard 104 can define one or more threshold activity levels for specific forms of user activity 110 to prevent the display of status indicator 128. For example, consider a scenario where status indicator 128 is displayed to first user 112(1) in response to a third user 112(3) having opened data object 116. Also consider a scenario where third user 112(3) keeps data object 116 open on a third client device 114(3) but remains inactive with the file for a predetermined amount of time. For example, suppose third user 112(3) returns home in the evening but leaves their computer on and data object 116 open. In such a scenario, status indicator standard 104 can define threshold inactivity levels to prevent the display of the status indicator. For example, if a third user 112 (3) opens a data object 116 in a word processor application, thereby triggering a status indicator to be displayed to the first user 112 (1), but then remains inactive for a predetermined amount of time (even while the data object remains open), the system 100 can recognize the level of inactivity and can automatically cause the first client device 114 (1) to stop displaying the status indicator 128.
[0054] In some configurations, status indicator criterion 104 can define identifiable characteristics of user activity 110 performed to specifically attract the attention of one or more other users. Therefore, in such a configuration, user activity 110 satisfying such status indicator criterion 104 can cause status indicator 128 to be presented to the user within the appropriate digital context. Figure 2E Combination Figure 1An example of such an embodiment is illustrated. Regarding user activity 110 in scenario E, at time T2, user activity 110 includes a third user 112 (3) editing the content of data object 116 in a specific manner so that these edits are visible to other users. For example, the third user 112 (3) may enable a specific feature of the application and edit by said specific feature, such as, for example, the “track changes” feature specifically designed for editing files that are very conspicuous to other users. As another example, the third user 112 (3) may provide an indication to make the edit known to a specific user (e.g., by mentioning the first user via @). In such a case, when the user activity that triggers the status indicator includes the identifier of a specific user, the status indicator may be displayed only to that specific user. For example, the third user 112 (3) who is editing data object 116 may add a comment to the data object that specifically identifies the first user 112 (1) based on a username, email address, or any other suitable identifier. Regarding the status indicator standard 104, the difference between scenario E and scenario A is that the strategy is designed such that when user activity 110 performed by another user includes identifiable features indicating that user activity 110 is being performed to specifically attract the attention of one or more users, the system 100 provides the status indicator 128 to the user currently in the first digital context. Therefore, since time T2 represents the moment when the third user 112 (3) provides an instruction to inform other users of an edit (e.g., by editing with "Tracking Changes" enabled), the system 100 causes the status indicator 128 to be presented to the first user 112 (1), as in Figure 2E As illustrated in the figure. In some implementations, status indicator 128 may include an indication that editing is taking place in a conspicuous manner. For example, in the illustrated scenario, status indicator 128 includes the text "CAROL wants you to see the edits she has made" to provide the first user with additional insight into what triggered status indicator 128.
[0055] In some configurations, the status indicator standard 104 may specify that a status indicator 128 is displayed to a specific user when a particular form of user activity 110 occurs with respect to a portion of the content associated with that specific user. Figure 2F Combination Figure 1An example of such an embodiment is illustrated. Regarding user activity 110 in scenario F, at time T2, user activity 110 includes a third user 112(3) interacting with a portion of a data object 116 associated with the first user 112(1). For example, the third user 112(3) may add a comment to a specific portion of the data object for the first user 112(1) relative to which it has a threshold contribution level (e.g., because the first user added 80% or more of other characters to that portion). Regarding status indicator criterion 104, scenario F differs from scenario A in that the strategy is designed such that system 100 provides status indicator 128 to a specific user when another user interacts with a portion of a data object “owned” by that specific user. Therefore, since time T2 represents the moment when the third user 112(3) adds a comment to the portion primarily created by the first user 112(1), system 100 causes status indicator 128 to be presented to the first user 112(1), as in Figure 2F As illustrated in the figure. In some implementations, status indicator 128 may include an indication that user activity 110 is occurring in a section of the document corresponding to a specific user. For example, in the illustrated scenario, status indicator 128 includes the text “CAROL is commenting on your section” to provide the first user with additional insight into whether status indicator 128 has been triggered.
[0056] Figure 3 Another exemplary scenario involving the transmission of messages 124 between different digital contexts 118 is illustrated to illustrate aspects of this disclosure. In this example, the collaboration platform 102 may analyze user activity 110 to determine when a status indicator 128 is displayed to the first user 112 (1) in response to a specific user activity 110 performed by the second user 112 (2). For example, as in Figure 3 As shown in the diagram, the digital context interface data 108 (as mentioned above) Figure 1 As described, (which may have been updated based on status indicator data 106) status indicator 128 may be displayed in association with icon 122 representing data object 116 within the first digital context 118(1). Then, when status indicator 128 is provided, the first user 112(1) (e.g., “receiver”) is also provided with the ability to perform one or more appropriate actions, such as, for example, transmitting a message to the second user 112(2).
[0057] As illustrated, the collaboration platform 102 is providing digital context interface data 108 to each of the first client device 114(1) and the second client device 114(2). Furthermore, the digital context interface data 108 provided to the first client device 114(1) causes the display of a graphical user interface (GUI) specifically corresponding to the first digital context 118(1), while the digital context interface data 108 provided to the second client device 114(2) causes the display of a different GUI specifically corresponding to the second digital context 118(2). For the purposes of this discussion, the GUI associated with the first digital context 118(1) is a message thread GUI 130, and the GUI associated with the second digital context 118(2) is a word processing GUI 300, which allows the second user 112(2) to edit the content of the data object 116 within the content editing display area 302.
[0058] As further illustrated, the digital context interface data 108 causes the first client device 114(1) to display a cross-context message generation field 304, which enables the first user 112(1) to transmit one or more messages 306 directly from the first digital context 118(1) to the second user 112(2) within the second digital context 118(2). For example, as illustrated, the first user 112(1) has used the cross-context message generation field 304 to generate a first message 306(1) stating, “Carol, if you have any questions about this file, you can come to me.” After the first message 306(1) has been generated, the first user 112(1) can “send” the message so that its content is displayed directly to the second user 112(2) within the GUI associated with the second digital context 118(2). Thus, in the illustrated example, the first message 306(1) stating “Carol, if you have any questions about this file, you can come to me” is displayed within the word processor GUI 300. In this way, the first user 112(1) is provided with the ability to immediately and effectively establish a communication protocol with the second user 112(2) at the appropriate time (e.g., upon receiving a status indicator 128 indicating when the second user 112(2) begins to interact with the data object 116) without having to switch his or her digital context relative to the data object 116.
[0059] In some embodiments, upon receiving a first message 306(1) generated within a first digital context 118(1), the digital context interface data 108 may enable another cross-context message generation field 308 to be displayed within a second digital context 118(2). Similar to the context message generation field 304, this other context message generation field 308 enables a second user 112(2) to transmit one or more messages 306 directly from the second digital context 118(2) to the first user 112(1) within the first digital context 118(1). For example, as illustrated, the second user 112(2) has used the cross-context message generation field 308 to generate a second message 306(2) stating “Thanks, let’s talk in 15 minutes!”. After the second message 306(2) has been generated, the second user 112(2) may “send” the message so that its content is displayed directly to the first user 112(1) within the GUI associated with the first digital context 118(1). Therefore, in the illustrated example, the second message 306(2) stating “Thanks, let’s talk in 15 minutes!” is displayed within the message thread GUI 130. In this way, the second user 112(2) is provided with the ability to effectively reply to the first user 112(1) after having received the first message 306(1) without having to switch his or her digital context relative to the data object 116.
[0060] Figures 4A to 4C The illustrations depict various aspects of an exemplary GUI displayed in association with the techniques described herein. Specifically, Figure 4A An exemplary status indicator 400 is illustrated that can be presented to a user in response to the satisfaction of status indicator criterion 104. As illustrated, status indicator 400 is presented within message thread GUI 130 to indicate that user activity is currently occurring relative to a data object previously shared via message thread GUI 130. As further illustrated, because the data object has previously been shared in message thread GUI 130, multiple messages 124 have been written to message thread GUI 130 by various users—resulting in a particular message that may no longer be visible when the user is viewing a recently added message 124. For example, currently viewing... Figure 4AThe user of the message thread GUI 130 shown can have a slider at the bottom to display only the four most recent messages 124. In the illustrated embodiment, the status indicator 400 is in the form of a graphical element that is temporarily overlaid on the user's current view of the message thread GUI 130 to notify the user of ongoing user activity regarding previously shared data objects, without changing the current position already selected by the user within the message thread GUI 130 (e.g., by positioning slider 402). In some implementations, the status indicator 400 may be temporarily overlaid on the user's current view of the message thread GUI 130 for a predetermined amount of time (e.g., 10 seconds, etc.).
[0061] In some embodiments, the status indicator 400 includes one or more user interface elements 404 serving as embedded controls selectable to perform one or more computational actions that become available to the receiver when the status indicator 400 is received. As described above, the one or more computational actions may be defined by available action parameters 104C indicating various factors, such as, for example, the current state of a particular user 112 whose corresponding user activity 110 causes the status indicator 128 to be provided to the receiver, the receiver's current state of the status indicator 128, the current numeric context of the particular user 112 whose corresponding user activity 110 causes the status indicator 128 to be provided to the receiver, and / or the receiver's current numeric context. In some embodiments, the receiver of the status indicator 400 may be provided with the ability to convert her current numeric context into a preview mode showing the user activity that triggered the status indicator 400. For example, a first user interface element 404(1) states “Click here to see what Carol did.” Alternatively, the recipient of the status indicator 400 may be provided with the ability to send messages beyond the digital context (e.g., the message may be generated within the first digital context 118(1) and may be transmitted to the second digital context 118(2)). For example, the second user interface element 404(2) states "Click here to see what Carol did".
[0062] Figure 4B It demonstrates the ability to respond to user selections in Figure 4A The exemplary preview mode GUI 406 is displayed as shown in the first user interface element 404(1). In the illustrated example, the preview mode GUI 406 is displayed as shown in... Figure 4AThis is within a portion of the display area shown in the previously displayed message thread GUI 130. The exemplary preview mode GUI 406 can be configured to simulate a specific digital context within which a user activity triggering the status indicator 400 occurs. For example, in the case where the status indicator 400 is presented in the first digital context 118(1) in response to user activity occurring in the second digital context 118(2), the preview mode GUI 406 can be configured such that various aspects of the second digital context 118(2) appear within the preview mode GUI 406. Figure 4B In the specific, but non-limiting, example shown in the illustration, the preview mode GUI 406 is configured to display the graphical aspects of a word processing application in which a user named "CarolSmith" is editing a data object in a manner that triggers a status indicator 400.
[0063] Figure 4C It demonstrates the ability to respond to user selections in Figure 4A The exemplary cross-context messaging GUI 408 is shown as the second user interface element 404(2). In the illustrated example, the cross-context messaging GUI 408 includes a message generation field 126 for typing and / or dictating message content associated with the persistent workplace chat represented by the messaging thread GUI 130. Thus, by using the message generation field 126, a user can generate and transmit messages 124 associated with the persistent workplace chat, enabling any other member of the persistent workplace chat to receive and maintain continued access to such messages. Exemplary such persistent workplace chats include, but are not limited to, conversation threads within the MICROSOFTTEAMS collaboration platform, SLACK conversation objects, or any other type of multi-user persistent chat system.
[0064] As further explained, the exemplary cross-context messaging GUI 408 includes a cross-context message generation field 304, which enables the recipient of the status indicator 400 to generate message content 410 within the first digital context 118(1) and also to include that message content as described above. Figure 3The description is displayed to another user within the second digital context 118(2). As illustrated, in some embodiments, the exemplary cross-context messaging GUI 408 includes a messaging thread GUI 130 displaying persistent messages 124 associated with the persistent workplace chat, and a messaging portal GUI 412 displaying one or more cross-context messages 410 that are directly transmitted to any user activity that triggers the status indicator 400 and in any context in which the user activity occurs. In this way, the recipient of the status indicator 400 can seamlessly communicate with both (i) the entire user group associated with the persistent workplace chat shown in the messaging thread GUI 130, and (ii) the specific user(s) who performed the user activity that triggered the status indicator 400.
[0065] Figure 5A An exemplary status indicator 500 is illustrated, capable of being displayed in response to user activity 110 that satisfies one or more status indicator criteria 104. As illustrated, status indicator 500 is displayed in association with an icon 502 representing a data object. Here, icon 502 represents a document-type data object titled "JulyPromotion.doc" and shared within message 504. This example is for illustrative purposes only.
[0066] In some embodiments, the status indicator 500 may include multiple graphical aspects 506 representing multi-layered information. As illustrated, the status indicator 500 includes a first graphical aspect 506(1) representing the identity of a particular user 112 whose user activity 110 satisfies status indicator criterion 104, thereby triggering the presentation of the status indicator 500. For example, the first graphical aspect 506(1) may be an avatar or photograph of the particular user 112. As further illustrated, the status indicator 500 includes a second graphical aspect 506(2) representing the current status of the particular user 112 whose user activity 110 satisfies status indicator criterion 104. For example, the second graphical aspect 506(2) may be an "available" symbol, indicating that the particular user 112 is currently available to receive messages, calls, or other forms of communication. As further illustrated, the status indicator 500 includes a third graphical aspect 506(3) serving as an embedded control, which can be selected (e.g., by clicking the third graphical aspect 506(3)) to initiate any computational action made available to the recipient of the status indicator by the collaboration platform in response to monitored user activity satisfying the status indicator criteria. Here, the presence of the three-dot symbol within the status indicator 500 serves to indicate that one or more computational actions are available to the recipient. As used herein, an aspect of a status indicator including an "embedded control" refers to that aspect of the status indicator that can be selected by the recipient of the status indicator to initiate one or more computational actions or to display one or more graphical elements designed to facilitate one or more computational actions. For example, in some embodiments, the status indicator may include an embedded control selectable to display a cross-context message generation field 304.
[0067] Figure 5B An exemplary menu 508 is shown, which can be displayed to the recipient of the status indicator 500 to enable the recipient to select an individual computational action from the available computational actions. In some embodiments, the menu 508 may be presented to the recipient in response to the pointer element 510 being placed on a third graphical aspect 506 (3). Exemplary computational actions that can be made available to the recipient include: entering a preview mode to view the activity that triggered the status indicator 500, sending a message to the user who triggered the activity of the status indicator, etc. In the specifically illustrated scenario, the recipient is selecting a particular user interface element 512 (1) to generate a cross-context message that will be directly transmitted to the specific user within the specific digital context in which the activity triggered by the status indicator occurred.
[0068] Figure 5CAn exemplary message generation GUI 514 is illustrated, capable of being displayed in response to the selection of a specific user interface element 512(1). In some embodiments, system 100 automatically populates one or more aspects of a message based on various factors associated with the generation of status indicator 500. For example, in the illustrated implementation, system 100 has already automatically populated the message's subject line based on the title of a data object associated with status indicator 500. Then, when the recipient types the message body (e.g., "Hi Carol, let me know if you have any questions while you're looking at this file."), the recipient can then select send button 516 to send the custom-generated message and the automatically populated content to a specific user 112 whose user activity triggers status indicator 500. In some embodiments, selecting send button 516 may cause system 100 to transmit an email message to specific user 112. Alternatively or additionally, selecting send button 516 may cause system 100 to transmit a pop-up message to specific user 112—wherein the pop-up message is automatically displayed overlaid on one or more graphics on the specific user 112's client device.
[0069] Figure 6 This diagram illustrates aspects of a routine 600 for computationally efficiently generating state indicators that indicate when user activities occur across different contexts. Those skilled in the art will understand that the operations of the methods disclosed herein need not be presented in any particular order, and that performing some or all of the operations in one or more alternative orders is possible and contemplated. For ease of description and illustration, the operations have been presented in the order of demonstration. Operations may be added, omitted, performed together, and / or performed simultaneously without departing from the scope of the appended claims.
[0070] It should also be understood that the illustrated methods can end at any time and do not need to be fully executed. Some or all of these methods and / or substantially equivalent operations, as defined herein, can be performed by executing computer-readable instructions included on a computer storage medium. The term "computer-readable instructions" and variations thereof, as used herein, are used broadly to include routines, applications, application modules, program modules, programs, components, data structures, algorithms, etc. Computer-readable instructions can be implemented on a variety of 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.
[0071] Therefore, it should be recognized that the logical operations described herein are (1) implemented as a sequence of actions or program modules implemented by a computer running on computing systems such as those described herein, and / or (2) implemented as interconnected machine logic circuits or circuit modules within the computing system. The implementation method is a matter of choice depending on the performance and other requirements of the computing system. Therefore, logical operations can be implemented using software, firmware, dedicated digital logic units, and any combination thereof.
[0072] In addition, Figure 6 The operations illustrated in the other figures can be implemented in conjunction with the exemplary presentation UI described above. For example, the various devices and / or modules described herein can generate, transmit, receive, and / or display data (e.g., live content, broadcast events, recorded content, etc.) associated with the content of a communication session and / or present a UI, which includes the presentation of one or more participants, avatars, channels, persistent chat sessions, video streams, images, virtual objects, and / or applications associated with the communication session on a remote computing device.
[0073] Routine 600 begins at operation 602, wherein system 100 causes a first client device associated with a first user to present a first GUI arrangement to facilitate a first digital context. For example, the system may provide digital context interface data 108 to the first client device to enable the first user to interact with data objects within the first digital context. For example, as described above, within this first digital context, the first user can attach data objects to a message, and the message can then be transmitted to other users within the first digital context. An exemplary first digital context is a persistent messaging chat interface within which multiple users can transcribe, read, and reply to messages. According to various embodiments, the first GUI arrangement may include a graphical representation of the data object, such as an icon indicating the file type of the data object, and also include the name of the data object. For example, as in... Figure 1-3 As illustrated, icon 122 may include a graphical representation of a “paper” document (e.g., since data object 116 is a word processing document with a “.doc” file extension) and the document’s title. Therefore, at box 602, the first user can be described as actively utilizing the collaboration platform within a first digital context.
[0074] Routine 600 proceeds to operation 604, in which system 100 monitors user activity occurring on a second client device based on a second user interacting with the content of a data object within a second digital context corresponding to a second GUI layout. As a specific example, the second user can select an icon of a data object presented in a first digital context, causing the second client device to open the data object within an application configured to allow editing of its content. Then, once the data object is opened in the second digital context on the second client device, system 100 actively monitors user activity performed by the second user relative to the data object within that second digital context. For example, as described above, the system can monitor editing being performed by the second user on the content of the data object.
[0075] Next, at operation 606, system 100 analyzes user activity to determine whether the monitored user activity meets one or more status indicator criteria. In other words, the system determines whether the status indicator criteria are met by one or more actions performed by the second user relative to the data object in an interaction with the data object within a second digital context. Regarding Figure 1-5C Several different scenarios are described for determining whether user activity meets the status indicator criteria. These scenarios are merely illustrative and provided for purposes of explanation only. Therefore, the status criteria can be defined and / or customized so that any suitable type of user activity causes the system to determine that the status indicator criteria are met.
[0076] Next, at operation 608, system 100 causes a first GUI arrangement for a first digital context to include a status indicator presented in association with an icon for a data object. For example, the system can update digital context interface data for a first client device such that the first client device presents the status indicator above and / or adjacent to (or otherwise associated with) the icon. As described above, the status indicator may be designed to convey to the first user aspects of user activity being performed by a second user and meeting status indicator criteria. For example, the status indicator may be designed to convey the identity of the second user. Alternatively or additionally, the status indicator may be designed to convey the type of activity being performed by the second user and triggering the system to display the status indicator on the first client device.
[0077] As described in more detail above, in various embodiments, system 100 may also enable a first user to generate message content within a first digital context and have that message content displayed to a second user within a second digital context. For example, the system may enable a cross-context message generation field to be displayed to the first user within the first digital context. In this way, when within the first digital context, the first user can type or dictate (or otherwise provide) message content associated with the data object.
[0078] Next, at operation 610, system 100 updates the second GUI layout such that the second digital context at the second client device includes message content received from the first client device via the first digital context. Therefore, when a status indicator is provided notifying the first user of a user activity being performed by the second user within the second digital context, the first user can have messages displayed directly to the second user within that second digital context—without the first user switching out of the first digital context in which the status indicator is provided.
[0079] It should be understood that the subject matter described above can be implemented as a computer-controlled device, a computer process, a computing system, or as an article of writing such as a computer-readable storage medium. The operation of the exemplary method is illustrated in various boxes and summarized with reference to these boxes. The method is illustrated as a logical flow of boxes, each of which can represent one or more operations that can be implemented in hardware, software, or a combination thereof. In the context of software, an operation represents computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, enable the one or more processors to perform the enumerated operations.
[0080] 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 operations are described is not intended to be construed as limiting, and any number of described operations can be executed in any order, combined in any order, subdivided into multiple sub-operations, and / or executed in parallel to implement the described process. The described process can be executed 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 logics, such as field-programmable gate arrays (“FPGAs”), digital signal processors (“DSPs”), or other types of accelerators.
[0081] All the methods and processes described above can be embodied in software code modules that run on one or more general-purpose computers or processors and are fully automated. These code modules can be stored on any type of computer-readable storage medium or other computer storage device, such as those described below. Some or all of the methods described can alternatively be embodied in dedicated computer hardware, such as those described below.
[0082] Any routine description, element, or block described herein and / or depicted in the accompanying drawings should be understood to potentially represent a module, segment, or code portion comprising one or more executable instructions for implementing a particular logical function or element in a routine. Alternative implementations are included within the scope of the examples described herein, wherein elements or functions may be omitted or operated out of order with respect to the order shown or discussed, including substantially synchronous or reverse order, depending on the functionality involved, as will be understood by those skilled in the art.
[0083] Figure 7 This is a diagram illustrating an exemplary environment 700 in which system 702 can implement the techniques disclosed herein. In some implementations, system 702 can be used to collect, analyze, and share data defining one or more objects displayed to a user of communication session 1004.
[0084] As illustrated, a communication session 703 can be implemented among multiple client computing devices 706(1) to 706(N) (where N is a number of two or greater) associated with or part of system 702. The client computing devices 706(1) to 706(N) enable users (also referred to as individuals) to participate in the communication session 703.
[0085] In this example, communication session 703 is hosted by system 702 on one or more networks 708. That is, system 702 is able to provide services that enable users of client computing devices 706(1) to 706(N) to participate in communication session 703 (e.g., via live viewing and / or recorded viewing). Therefore, the “participants” of communication session 703 can include users and / or client computing devices (e.g., multiple users can participate in a communication session in a room using a single client computing device), each of which can communicate with other participants. Alternatively, communication session 703 can be hosted by one of the client computing devices 706(1) to 706(N) utilizing peer-to-peer technology. System 702 is also able to host chat conversations and other team collaboration features (e.g., as part of an application suite).
[0086] In some implementations, such chat conversations and other team collaboration features are considered external communication sessions distinct from communication session 703. The computing system 702, which collects participant data in communication session 703, can link to such external communication sessions. Therefore, the system can receive information enabling connection to such external communication sessions, such as date, time, and session details. In one example, chat conversations can be conducted based on communication session 703. Additionally, system 702 can host communication session 703, which includes at least multiple participants co-located in a meeting place such as a conference room or auditorium, or located in different locations.
[0087] In the example described herein, client computing devices 706(1) to 706(N) participating in communication session 703 are configured to receive and present communication data for display on a user interface of a display screen. The communication data can include a collection of various instances or streams of live content and / or recorded content. This collection of various instances or streams of live content and / or recorded content can be provided by one or more cameras, such as a video camera. For example, an individual stream of live or recorded content can include media data associated with a video feed provided by a video camera (e.g., audio and visual data capturing the appearance and voice of a user participating in the communication session). In some implementations, the video feed can include such audio and visual data, one or more still images, and / or one or more avatars. The one or more still images can also include one or more avatars.
[0088] Another example of an individual stream of live or recorded content can include media data, which includes avatars of users participating in the communication session and audio data capturing the users' voices. Yet another example of an individual stream of live or recorded content can include media data, which includes files displayed on a screen and audio data capturing the users' voices. Therefore, various live or recorded content streams within communication data enable remote conferencing between a group of people and content sharing within that group. In some implementations, the various live or recorded content streams within the communication data can originate from multiple co-located video cameras in a space such as a room, to live record or stream presentations including one or more individuals presenting the presented content and one or more individuals consuming the presented content.
[0089] Participants or attendees can view the content of communication session 703 in real time as the event occurs, or alternatively, view the content of communication session 703 via recording at a later time after the event. In the example described herein, client computing devices 706(1) to 706(N) participating in communication session 703 are configured to receive and present communication data for display on a user interface of a display screen. The communication data can include a collection of various instances or streams of live and / or recorded content. For example, individual streams of content can include media data associated with video feeds (e.g., audio and visual data capturing the appearance and voice of users participating in the communication session). Another example of individual streams of content can include media data including avatars of users participating in the conference session and audio data capturing the user's voice. Yet another example of individual streams of content can include media data including content items displayed on a display screen and / or audio data capturing the user's voice. Thus, the various content streams within the communication data enable the facilitation of conferences or broadcast presentations among a group of people dispersed in remote locations.
[0090] Participants or attendees in a communication session are people within range of a camera or other image and / or audio capture device, such that their movements and / or sounds as they view and / or listen to content shared via the communication session can be captured (e.g., recorded). For example, a participant might be sitting in a crowd, watching shared content from a broadcast location where a stage presentation is taking place. Or, a participant might be sitting in an office conference room, viewing shared content from a communication session with other colleagues via a display screen. Furthermore, a participant might be sitting or standing in front of a personal device (e.g., a tablet, smartphone, computer, etc.) to view shared content from a communication session individually in their office or home.
[0091] Figure 7 System 702 includes one or more devices 710. The one or more devices 710 and / or other components of system 702 can include distributed computing resources that communicate with each other and / or with client computing devices 706(1) to 706(N) via one or more network interfaces 708. In some examples, system 702 may be a standalone system whose task is to manage various aspects of one or more communication sessions, such as communication session 703. For example, system 702 may be managed by entities such as SLACK, WEBEX, GOTOMEETING, GOOGLE HANGOUTS, etc.
[0092] One or more networks 708 may include public networks such as the Internet, private networks such as institutional and / or personal intranets, or some combination of private and public networks. One or more networks 708 may also include any type of wired and / or wireless network, including but not limited to: local area networks (“LANs”), wide area networks (“WANs”), satellite networks, wired networks, Wi-Fi networks, WiMax networks, mobile communication networks (e.g., 3G, 4G, etc.), or any combination thereof. Network 708 may utilize communication protocols, including packet-based and / or datagram-based protocols, such as Internet Protocol (“IP”), Transmission Control Protocol (“TCP”), User Datagram Protocol (“UDP”), or other types of protocols. Furthermore, one or more networks 708 may also include multiple devices that facilitate network communication and / or form the network hardware infrastructure, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, backbone equipment, etc.
[0093] In some examples, network(s) 708 may also include devices that enable connection to a wireless network, such as a wireless access point (“WAP”). Examples support connection via WAPs that transmit and receive data over various electromagnetic frequencies (e.g., radio frequency), including support for the Institute of Electrical and Electronics Engineers (“IEEE”) 802.7 standards (e.g., 802.7g, 802.7n, 802.7ac, etc.) and other standards.
[0094] In various examples, device 710 may include one or more computing devices that operate in a cluster or other grouped configuration to share resources, balance loads, improve performance, provide failover support or redundancy, or for other purposes. For example, device 710 may belong to various device categories, such as conventional server-type devices, desktop computer-type devices, and / or mobile devices. Therefore, although illustrated as a single type of device or server-type device, device 710 may include multiple device types and is not limited to a particular type of device. Device 710 may represent, but is not limited to, a server computer, desktop computer, web server computer, personal computer, mobile computer, laptop computer, tablet computer, or any other type of computing device.
[0095] Client computing devices (e.g., one of client computing devices 706(1) to 706(N)) (each of which is also referred to herein as a “data processing system”) may belong to a variety of categories of devices that are the same as or different from devices (one or more) 710, such as conventional client-type devices, desktop computer-type devices, mobile devices, dedicated devices, embedded devices, and / or wearable devices. Therefore, client computing devices can include, but are not limited to: desktop computers, game consoles and / or gaming devices, tablet computers, personal data assistants (“PDAs”), mobile phone / tablet hybrids, laptop computers, telecommunications equipment, computer navigation client computing devices such as satellite-based navigation systems including Global Positioning System (“GPS”) devices, wearable devices, virtual reality (“VR”) devices, augmented reality (“AR”) devices, implantable computing devices, automotive computers, network-enabled televisions, thin clients, terminals, Internet of Things (“IoT”) devices, workstations, media players, personal video recorders (“PVR”), set-top boxes, cameras, integrated components (e.g., peripherals) included in the computing device, home appliances, or any other type of computing device. In addition, client computing devices may include combinations of the client computing device examples listed above, such as, for example, desktop computer devices or mobile devices combined with wearable devices.
[0096] Client computing devices 706(1) to 706(N) of various categories and device types can represent any type of computing device having one or more data processing units 792 operably connected to a computer-readable medium 794, for example via a bus 716, in some cases including a system bus, a data bus, an address bus, a PCI bus, a Mini-PCI bus, and one or more of any kind of local, peripheral, and / or stand-alone bus.
[0097] The executable instructions stored on the computer-readable medium 794 may include, for example, an operating system 719, a client module 720, a profile module 722, and other modules, programs, or applications that can be loaded and run by the data processing unit 792.
[0098] Client computing devices 706(1) to 706(N) may also include one or more interfaces 724 to enable communication between client computing devices 706(1) to 706(N) and other networked devices (such as devices 710, etc.) via network 708. Such network interfaces 724 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, client computing devices 706(1) to 706(N) may include input / output (“I / O”) interfaces (devices) 726 that allow communication with input / output devices, such as user input devices, including peripheral input devices (e.g., game controllers, keyboards, mice, pens, voice input devices such as microphones, video cameras for acquiring and providing video feeds and / or still images, touch input devices, gesture input devices, etc.), and / or external devices, including peripheral output devices (e.g., displays, printers, audio speakers, haptic output devices, etc.). Figure 7 The illustration shows a client computing device 706(1) connected in some way to a display device (e.g., display screen 729(N)) that can display a UI according to the techniques described herein.
[0099] exist Figure 7 In the exemplary environment 700, client computing devices 706(1) to 706(N) can connect to each other and / or to other external devices using their respective client modules 720 to participate in a communication session 703 or to contribute activities to a collaborative environment. For example, a first user can use client computing device 706(1) to communicate with a second user on another client computing device 706(2). When client module 720 is executed, the user can share data, which allows client computing device 706(1) to connect to system 702 and / or other client computing devices 706(2) to 706(N) via network 708.
[0100] Client computing devices 706(1) to 706(N) can use their respective profile modules 722 to generate participant profiles. Figure 7 (Not shown in the diagram), and provides participant profiles to other client computing devices and / or systems 702 via device 710. The participant profile may include one or more of the identities of a user or user group (e.g., name, unique identifier (“ID”), user data such as personal data, machine data such as location (e.g., IP address, room in a building, etc.), and technical capabilities. The participant profile can be used to register participants for communication sessions.
[0101] As in Figure 7As shown, device 710 of system 702 includes server module 730 and output module 732. In this example, server module 730 is configured to receive media streams 734(1) to 734(N) from individual client computing devices such as client computing devices 706(1) to 706(N). As described above, media streams may include video feeds (e.g., audio and video data associated with a user), audio data to be output along with a presentation of the user's avatar (e.g., a purely audio experience where no video data is transmitted), text data (e.g., text messages), file data and / or screen-sharing data (e.g., documents, slides, images, videos, etc. displayed on a display screen), and so on. Therefore, server module 730 is configured to receive a set of various media streams 734(1) to 734(N) (this set is referred to herein as "media data 734") during live viewing of communication session 703. In some scenarios, not all client computing devices participating in communication session 703 provide media streams. For example, the client computing device may simply consume or "listen" to the device, thus receiving only content associated with communication session 703, but not providing any content to communication session 703.
[0102] In various examples, server module 730 is able to select aspects of media stream 734 to be shared with individual client computing devices among the participating client computing devices 706(1) to 706(N). Therefore, server module 730 can be configured to generate session data 736 based on stream 734 and / or pass session data 736 to output module 732. Output module 732 can then transmit communication data 739 to client computing devices (e.g., live viewing of a communication session by client computing devices 706(1) to 706(3)). Communication data 739 may include video, audio, and / or other content data provided by output module 732 based on content 750 associated with output module 732 and based on the received session data 736.
[0103] As shown, output module 732 transmits communication data 739(1) to client computing device 706(1), and transmits communication data 739(2) to client computing device 706(2), and transmits communication data 739(3) to client computing device 706(3), and so on. The communication data 739 transmitted to the client computing device may be the same or different (for example, the location of the content stream within the user interface may differ from one device to the next).
[0104] In various implementations, device(s) 710 and / or client module 720 may include a GUI rendering module 740. The GUI rendering module 740 may be configured to analyze communication data 739 delivered to one or more communication computing devices 706. Specifically, the UI rendering module 740 at device(s) 710 and / or client computing device 706 may analyze the communication data 739 to determine an appropriate manner for displaying video, images, and / or content on the display screen 729 of the associated client computing device 706. In some implementations, the GUI rendering module 740 may provide video, images, and / or content to a rendering GUI 746 presented on the display screen 729 of the associated client computing device 706. The GUI rendering module 740 may cause the rendering GUI 746 to be presented on the display screen 729. The rendering GUI 746 may include video, images, and / or content analyzed by the GUI rendering module 740.
[0105] In some implementations, the presentation GUI 746 may include multiple sections or grids that may present or include video, images, and / or content for display on the display screen 729. For example, a first section 746 of the presentation GUI may include a video feed from a presenter or individual, and a second section of the presentation GUI 746 may include a video feed from an individual consuming meeting information provided by the presenter or individual. The GUI presentation module 740 may populate the first and second sections of the presentation GUI 746 in a manner that appropriately mimics the environmental experience that the presenter and individual may be sharing.
[0106] In some implementations, the GUI presentation module 740 can zoom in or provide a scaled view of the individuals represented by the video feed to highlight their responses to the presenter, such as facial features. In some implementations, the presentation GUI 746 can include video feeds from multiple participants associated with a meeting, such as a general communication session. In other implementations, the presentation GUI 746 can be associated with channels such as chat channels, enterprise team channels, etc. Therefore, the presentation GUI 746 can be associated with external communication sessions that differ from general communication sessions.
[0107] Figure 8The diagram illustrates exemplary components of an exemplary device 800 (also referred to herein as a "computing device") configured to generate data for some user interfaces disclosed herein. Device 800 may generate data that may include one or more portions, which may present or include video, images, virtual objects, and / or content for display on display screen 189. Device 800 may represent one or more of the devices described herein. Alternatively or additionally, device 800 may represent one of client computing devices 1106.
[0108] As illustrated, device 800 includes one or more data processing units 802, computer-readable medium 804, and one or more communication interfaces 806. Components of device 800 are operatively connected, for example, via bus 809, which may include one or more of a system bus, data bus, address bus, PCI bus, Mini-PCI bus, and any type of local, peripheral, and / or independent bus.
[0109] As used herein, one or more data processing units (such as one or more data processing units 802 and / or one or more data processing units 1192) 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, which in some cases may be driven by a CPU. For example, but not limited to, illustrative types of hardware logic components that may be used include application-specific integrated circuits (“ASICs”), application-specific standard products (“ASSPs”), systems-on-a-chip (“SOCs”), complex programmable logic devices (“CPLDs”), etc.
[0110] As used herein, computer-readable media (such as computer-readable media 804 and computer-readable media 1194) may store instructions executable by a data processing unit. The computer-readable media may also store instructions executable by an external data processing unit (such as an external CPU, external GPU) and / or 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 are external to the computing device.
[0111] 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 auxiliary computer storage media, removable and non-removable computer storage media, implemented by any method or technique for storing information (e.g., computer-readable media, data structures, program modules or other data). Therefore, computer storage media includes media in tangible and / or physical form, hardware components contained in and / or as 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, optical disc read-only memory (“CD-ROM”), digital versatile disk (“DVD”), optical cards or other optical storage media, cassette tape, magnetic tape, disk storage, magnetic cards or other magnetic storage devices or media, solid-state storage devices, storage arrays, network-attached storage, storage area networks, hosted computer storage or any other storage storage, storage devices and / or storage media that can be used to store and maintain information for access by computing devices.
[0112] Compared to computer storage media, communication media can embody computer-readable instructions, data structures, program modules, or other data in modulated data signals such as carrier waves or other transmission mechanisms. As defined herein, computer storage media does not include communication media. That is, computer storage media does not include communication media itself, which consists solely of modulated data signals, carrier waves, or propagation signals.
[0113] One or more communication interfaces 806 may represent, for example, a network interface controller (“NIC”) or other type of transceiver device for sending and receiving communications over a network. Furthermore, one or more communication interfaces 806 may include one or more video cameras and / or audio devices 822 to enable video feeds and / or the generation of still images, etc.
[0114] In the illustrated example, computer-readable medium 804 includes data storage 808. In some examples, data storage 808 includes data storage such as a database, data warehouse, or other type of structured or unstructured data storage device. In some examples, data storage 808 includes a corpus and / or relational database having one or more tables, indexes, stored procedures, etc., to enable data access, such as including one or more Hypertext Markup Language (“HTML”) tables, Resource Description Framework (“RDF”) tables, Web Ontology Language (“OWL”) tables, and / or Extensible Markup Language (“XML”) tables.
[0115] Data storage 808 can store data for operations of processes, applications, components, and / or modules stored in computer-readable medium 804 and / or executed by data processing unit 802 and / or accelerator. For example, in some examples, data storage 808 can store session data 810 (e.g., as in...). Figure 7 The data storage 808 may include session data 736, profile data 88 (e.g., associated with participant profiles), and / or other data. Session data 810 may include the total number of participants in the communication session (e.g., users and / or client computing devices), activities occurring in the communication session, a list of invitees to the communication session, and / or other data relating to when and how the communication session is conducted or hosted. Data storage 808 may also include content data 814, such as video, audio, or other content for presentation and display on one or more displays 189.
[0116] Alternatively, some or all of the aforementioned data may be stored on a separate memory 816 on one or more data processing units 802, such as memory on a CPU-type processor, a GPU-type processor, an FPGA-type accelerator, a DSP-type accelerator, and / or other accelerators. In this example, the computer-readable medium 804 also includes an operating system 818 and an application programming interface (API) 810 configured to expose the functionality and data of device 800 to other devices. Furthermore, the computer-readable medium 804 includes one or more modules, such as a server module 830, an output module 832, and a GUI rendering module 840; however, the number of modules illustrated is merely an example, and the number may be higher or lower. That is, the functionality described herein in conjunction with the illustrated modules may be performed by a fewer or more modules on a single device or distributed across multiple devices.
[0117] The currently disclosed technology is considered applicable to various systems and methods for presenting status indicators in a first digital context in response to user interaction with data objects in a second digital context. Furthermore, the currently disclosed technology is considered applicable to various systems and methods that enable the recipient of the status indicator to initiate communication directly from the first digital context with a user interacting with data objects within the second digital context. Aspects of the disclosed technology are described within the context of a unified communications platform. While the currently disclosed technology is not necessarily limited to this context, it is preferable to gain an understanding of the various aspects of the currently disclosed technology by discussing examples within that particular context. However, the currently disclosed technology can also be deployed in scenarios that do not include a unified communications platform, such as file synchronization platforms (e.g., OneDrive, Dropbox, etc.), file directory platforms (e.g., Windows, MacOS, etc.), photo preview, SharePoint, etc. It should also be understood that many variations and modifications can be made to the above examples, and elements therein should be understood as existing in other acceptable examples. All such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims.
[0118] Exemplary terms
[0119] Example Item A: A computer-implemented method for providing status indicators across different digital contexts, the method comprising: causing a display device to present a first graphical user interface (GUI) corresponding to a first digital context in association with a first user, wherein the first GUI includes a graphical representation of a data object already shared within the first digital context; monitoring user activity associated with a second user interacting with content of the data object within a second digital context; determining whether the user activity associated with the second user interacting with the content satisfies one or more status indicator criteria; and in response to determining that the user activity satisfies the one or more status indicator criteria, causing the display device to present a status indicator associated with the graphical representation of the data object, wherein the status indicator includes an embedded control selectable to enable the first user to initiate communication from within the first digital context with the second user interacting with the content within the second digital context.
[0120] Exemplary Clause B, a computer-implemented method according to Exemplary Clause A, wherein initiating the communication includes at least: generating at least one message in the first digital context, and causing the at least one message to be displayed to the second user in the second digital context.
[0121] Exemplary Clause C, a computer-implemented method according to any one of Exemplary Clauses A to B, wherein determining that the user activity satisfies the one or more status indicator criteria comprises: determining that the user activity associated with the second user indicates that the second user is interacting with the specific portion of the content based on a level of contribution that the first user has made with respect to the specific portion of the content corresponding to the first user.
[0122] Exemplary Clause D, a computer-implemented method according to any one of Exemplary Clauses A to C, further includes: analyzing the user activity associated with the second user to determine whether one or more edits made by the second user to the content of the data object are classified as substantive edits or non-substantive edits, and wherein determining that the user activity satisfies the one or more status indicator criteria includes determining that the edit is classified as a substantive edit.
[0123] Exemplary Clause E, a computer-implemented method according to any one of Exemplary Clauses A to D, further includes: analyzing the user activity associated with the second user to determine whether the user activity reaches a threshold activity level for triggering the display of the status indicator, and wherein determining that the user activity meets the one or more status indicator criteria includes determining that the user activity reaches the threshold activity level.
[0124] Exemplary Clause F, a computer-implemented method according to any one of Exemplary Clauses A through E, wherein determining that the user activity satisfies the one or more status indicator criteria includes determining that the user activity associated with the second user includes the identifier of the first user.
[0125] The computer-implemented method according to any one of the exemplary clauses A to F, as described in Exemplary Clause G, further includes: determining a current state associated with the second user; receiving, based on the current state associated with the second user, available action parameters specifying at least one computational action that can be used by the first user; and determining, based on the current state associated with the second user, the at least one action that is available to the first user within the first digital context.
[0126] The computer-implemented method according to any one of the exemplary clauses A to G, further comprising: receiving, based on one or more factors, available action parameters specifying at least one computational action that can be used by the first user; and determining, based on the available action parameters, the at least one action that can be used by the first user within the first digital context.
[0127] Exemplary Clause I: A system comprising: at least one processor; and at least one memory in communication with said at least one processor, said at least one memory having computer-readable instructions stored thereon, said computer-readable instructions, when executed by said at least one processor, causing said at least one processor to: generate digital context interface data to cause a first client device to present a first graphical user interface (GUI) corresponding to a first digital context, wherein the first GUI includes a graphical representation of a data object already shared within the first digital context; monitor user activity associated with a second client device to determine when a status indicator criterion has been met relative to the data object within a second digital context; update the digital context interface data to cause the first client device to present a status indicator in the first GUI corresponding to the first digital context in association with the data object, wherein the status indicator includes an embedded control selectable to display a cross-context message generation field; receive message content via the first client device in association with the cross-context message generation field presented within the first GUI; and cause the second client device to present the message content in a second GUI corresponding to the second digital context.
[0128] Exemplary Clause J, the system according to Exemplary Clause I, wherein the first digital context corresponds to a message thread GUI associated with multiple persistent messages of the collaboration platform, and wherein the second digital context corresponds to a content editing GUI that can be used to edit the content of the data object.
[0129] Exemplary Clause K, the system according to any one of Exemplary Clauses I to J, wherein the computer-readable instructions further cause the at least one processor to: analyze the user activity associated with the second client device to determine whether the user activity has reached a threshold activity level for triggering the display of the status indicator, and wherein the context data is updated in response to the user activity reaching the threshold activity level.
[0130] Exemplary Clause L, the system according to any one of Exemplary Clauses I to K, wherein the computer-readable instructions further cause the at least one processor to: analyze the user activity associated with the second client device to determine whether the user activity includes editing the content of the data object in a predefined manner, and wherein updating the context data is in response to editing the content in the predefined manner.
[0131] Exemplary Clause M, the system according to any one of Exemplary Clauses I to L, wherein the computer-readable instructions further cause the at least one processor to: determine the current state of a particular user associated with the user activity, wherein the first client device presents the cross-context message generation field based on the current state of the particular user.
[0132] Exemplary Clause N, the system according to any one of Exemplary Clauses I to M, wherein determining that the status indicator criterion has been met includes: determining that the user activity has reached a threshold activity level for triggering the display of the status indicator.
[0133] Exemplary Clause O, the system according to any one of Exemplary Clauses I to N, wherein determining that the status indicator criterion has been met includes: determining that the user activity includes one or more substantial edits to the content of the data object.
[0134] Exemplary Clause P: A system comprising: units for causing a first client device to present a first graphical user interface (GUI) arrangement in association with a first user, wherein the first GUI arrangement includes icons graphically representing data objects already shared within a first digital context corresponding to the first GUI; units for monitoring user activities occurring at a second client device in association with a second user interacting with the content of the data objects within a second digital context corresponding to a second GUI arrangement; units for analyzing the user activities to determine whether the user activities satisfy one or more status indicator criteria; units for updating the first GUI arrangement for the first digital context to include: status indicators presented in association with icons graphically representing the data objects, and a cross-context message generation field for transmitting messages between the first digital context and the second digital context; and units for updating the second GUI arrangement such that the second digital context at the second client device includes message content received from the first client device via the cross-context message generation field presented within the first digital context.
[0135] Exemplary Clause Q, the system according to Exemplary Clause P, wherein the first GUI of the first digital context is a message thread GUI associated with multiple persistent messages of the collaboration platform, and wherein the second GUI of the second digital context is a content editing GUI that can be used to edit the content of the data object.
[0136] Exemplary Clause R, the system according to any one of Exemplary Clauses P to Q, wherein determining that the user activity satisfies the one or more status indicator criteria includes determining that the user activity includes one or more substantial edits to the content of the data object.
[0137] Exemplary Clause S, a system according to any one of Exemplary Clauses P to R, wherein determining that the user activity meets the one or more status indicator criteria includes determining that the user activity has reached a threshold activity level, the threshold activity level including at least one of the following: the second user interacts with the content of the data object for at least a threshold amount of time, or the second user edits the content of the data object for at least a threshold number of characters.
[0138] The system described in any one of the exemplary clauses T, P to S, wherein determining that the user activity meets the one or more state indicator criteria includes determining that the current state of the second user matches a predetermined state.
[0139] in conclusion
[0140] Finally, although various configurations have been described in a language specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the appended representations is not necessarily limited to the specific features or actions described. Rather, specific features and actions are disclosed as exemplary forms for implementing the claimed subject matter.
Claims
1. A computer-implemented method for providing status indicators across different applications, the method comprising: This causes the display of the first client device to display a first graphical user interface (GUI) associated with a first user and corresponding to a first application, the first application being configured to provide multiple users with access to a first message thread and multiple files, wherein: The first GUI includes a graphical representation of a specific file that has already been shared within the first application; The plurality of users includes the first user, the second user, and at least one other user; While the display of the first client device presents the graphical representation of the specific file within the first GUI, user activities associated with the second user who is monitoring and editing the content of the specific file are monitored at the second client device via a second GUI corresponding to the second application, the second application being configured to facilitate user editing of the content of the specific file; Determine that the user activity associated with the second user editing the content via the second GUI corresponding to the second application satisfies one or more status indicator criteria; and In response to determining that the user activity meets one or more status indicator criteria, the display of the first client device updates the first GUI to include status indicators, the status indicators including: (a) An indication reflecting the state of the second user based on the determined user activity, and (b) An embedded control that is presented in association with the graphical representation of the specific document and can be selected to display actions available to the first user, wherein: The first action in the action menu enables the first user to initiate a second message thread with the second user without leaving the first application, while the second user is editing the content of the specific file via the second GUI corresponding to the second application. This second message thread is separate from the first message thread and does not include the at least one other user. The second action in the menu of the actions enables the first user to preview the user activity without leaving the first application while the second user is editing the content of the specific file via the second GUI corresponding to the second application; In response to determining that the embedded control has been selected via the first GUI, a menu of the actions available to the first user is displayed; and In response to receiving a selection of the first action from the menu of the action: Without leaving the first application, initiate a second message thread with the second user, not the at least one other user; and This causes the second message thread to be displayed within the second application, which is configured to facilitate user editing of the content of the specific file; or In response to receiving a selection of the second action from the menu of the action, while the second user is editing the content of the specific file via the second GUI corresponding to the second application, the user activity is previewed for the first user without leaving the first application.
2. The computer-implemented method according to claim 1, wherein, Determining that the user activity satisfies one or more status indicator criteria includes: determining that the user activity associated with the second user indicates that the second user is interacting with the specific part of the content based on the level of contribution that the first user has made with respect to the specific part of the content corresponding to the first user.
3. The computer-implemented method according to claim 1 further includes: Analyzing the user activity associated with the second user to determine whether one or more edits made by the second user to the content of the specific file are classified as substantive or non-substantive edits, and wherein determining that the user activity meets the one or more status indicator criteria includes determining that the edit is classified as a substantive edit.
4. The computer-implemented method according to claim 1 further includes: Analyzing the user activity associated with the second user to determine whether the user activity reaches a threshold activity level for triggering the display of the status indicator, wherein determining that the user activity meets the one or more status indicator criteria includes determining that the user activity reaches the threshold activity level.
5. The computer-implemented method according to claim 1, wherein, Determining that the user activity meets one or more status indicator criteria includes determining that the user activity associated with the second user includes the identifier of the first user.
6. The computer-implemented method according to claim 1, further comprising: Determine that the current state associated with the second user corresponds to an available state; Based on the availability status, receive available action parameters that specify at least one computational action that is available to the first user; as well as Based on the availability status, determine the at least one computational action within the first application that should be available to the first user.
7. The computer-implemented method according to claim 1, further comprising: The available action parameters are received based on one or more factors, which specify at least one computational action that is available to the first user. as well as The at least one computed action available to the first user within the first application is determined based on the available action parameters.
8. A system for providing status indicators across different applications, comprising: At least one processor; as well as At least one memory communicating with the at least one processor, the at least one memory having computer-readable instructions stored thereon, the computer-readable instructions, when executed by the at least one processor, causing the at least one processor to perform operations including: This causes the display of the first client device to display a first graphical user interface (GUI) associated with a first user and corresponding to a first application, the first application being configured to provide multiple users with access to a first message thread and multiple files, wherein: The first GUI includes a graphical representation of a specific file that has already been shared within the first application; and The plurality of users includes the first user, the second user, and at least one other user; While the display of the first client device presents the graphical representation of the specific file within the first GUI, user activities associated with the second user who is monitoring and editing the content of the specific file are monitored at the second client device via a second GUI corresponding to the second application, the second application being configured to facilitate user editing of the content of the specific file; Determine that the user activity associated with the second user who edits the content via the second GUI corresponding to the second application meets one or more status indicator criteria; In response to determining that the user activity meets one or more status indicator criteria, the display of the first client device updates the first GUI to include status indicators, the status indicators including: (a) An indication reflecting the state of the second user based on the determined user activity, and (b) An embedded control that is presented in association with the graphical representation of the specific document and can be selected to display actions available to the first user, wherein: The first action in the action menu enables the first user to initiate a second message thread with the second user without leaving the first application, while the second user is editing the content of the specific file via the second GUI corresponding to the second application. This second message thread is separate from the first message thread and does not include the at least one other user. The second action in the menu of the actions enables the first user to preview the user activity without leaving the first application while the second user is editing the content of the specific file via the second GUI corresponding to the second application; In response to determining that the embedded control has been selected via the first GUI, a menu of the actions available to the first user is displayed; and In response to receiving a selection of the first action from the menu of the action: Without leaving the first application, initiate a second message thread with the second user, not the at least one other user; and This causes the second message thread to be displayed within the second application, which is configured to facilitate user editing of the content of the specific file; or In response to receiving a selection of the second action from the menu of the action, while the second user is editing the content of the specific file via the second GUI corresponding to the second application, the user activity is previewed for the first user without leaving the first application.
9. The system according to claim 8, wherein, Determining that the user activity satisfies one or more status indicator criteria includes: determining that the user activity associated with the second user indicates that the second user is interacting with the specific part of the content based on the level of contribution that the first user has made with respect to the specific part of the content corresponding to the first user.
10. The system according to claim 8, wherein, The operation also includes: Analyzing the user activity associated with the second user to determine whether one or more edits made by the second user to the content of the specific file are classified as substantive or non-substantive edits, and wherein determining that the user activity meets the one or more status indicator criteria includes determining that the edit is classified as a substantive edit.
11. The system according to claim 8, wherein, The operation also includes: Analyzing the user activity associated with the second user to determine whether the user activity reaches a threshold activity level for triggering the display of the status indicator, wherein determining that the user activity meets the one or more status indicator criteria includes determining that the user activity reaches the threshold activity level.
12. The system according to claim 8, wherein, The operation also includes: Determine that the current state associated with the second user corresponds to an available state; Based on the availability state, receive available action parameters specifying at least one computed action that is available to the first user; and Based on the availability status, determine the at least one computational action within the first application that should be available to the first user.
13. The system according to claim 8, wherein, Determining that the user activity meets one or more status indicator criteria includes determining that the user activity associated with the second user includes the identifier of the first user.
14. At least one computer storage medium in communication with at least one processor, the at least one computer storage medium storing computer-readable instructions thereon, the computer-readable instructions, when executed by the at least one processor, causing the at least one processor to perform operations including: This causes the display of the first client device to display a first graphical user interface (GUI) associated with a first user and corresponding to a first application, the first application being configured to provide multiple users with access to a first message thread and multiple files, wherein: The first GUI includes a graphical representation of a specific file that has already been shared within the first application; The plurality of users includes the first user, the second user, and at least one other user; While the display of the first client device presents the graphical representation of the specific file within the first GUI, user activities associated with the second user who is monitoring and editing the content of the specific file are monitored at the second client device via a second GUI corresponding to the second application, the second application being configured to facilitate user editing of the content of the specific file; Determine that the user activity associated with the second user who edits the content via the second GUI corresponding to the second application meets one or more status indicator criteria; In response to determining that the user activity meets one or more status indicator criteria, the display of the first client device updates the first GUI to include status indicators, the status indicators including: (a) An indication reflecting the state of the second user based on the determined user activity, and (b) An embedded control that is presented in association with the graphical representation of the specific document and can be selected to display actions available to the first user, wherein: The first action in the action menu enables the first user to initiate a second message thread with the second user without leaving the first application, while the second user is editing the content of the specific file via the second GUI corresponding to the second application. This second message thread is separate from the first message thread and does not include the at least one other user. The second action in the menu of the actions enables the first user to preview the user activity without leaving the first application while the second user is editing the content of the specific file via the second GUI corresponding to the second application; In response to determining that the embedded control has been selected via the first GUI, a menu of the actions available to the first user is displayed; and In response to receiving a selection of the first action from the menu of the action: Without leaving the first application, initiate a second message thread with the second user, not the at least one other user; and This causes the second message thread to be displayed within the second application, which is configured to facilitate user editing of the content of the specific file; or In response to receiving a selection of the second action from the menu of the action, while the second user is editing the content of the specific file via the second GUI corresponding to the second application, the user activity is previewed for the first user without leaving the first application.
Citation Information
Patent Citations
Systems and methods for notifying users of changes to files in cloud-based file-storage systems
CN107430622A
Systems and methods for collaboration
US20060053380A1
Systems and methods for supporting social productivity using a dashboard
US20140372539A1
Displaying Presence In An Application Accessing Shared And Synchronized Content
US20150288774A1