Channel recommendations using machine learning
Machine learning models on communication platforms enhance collaboration by dynamically recommending frequent channels, users, and topics based on interaction data, addressing the challenge of capturing user networks in large organizations, thereby improving collaboration efficiency.
Patent Information
- Application Number
- JP2025530273
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-11-30
- Filing Date
- 2023-11-16
- Publication Date
- 2026-01-06
AI Technical Summary
Existing communication platforms struggle to accurately capture an individual user's user network over time, especially in large organizations, leading to inefficiencies in finding related projects and collaborators, as users often interact with numerous users and channels, and existing systems fail to capture the challenges of capturing the challenges of users in the technical field of collaboration and communication platforms.
Utilizing machine learning models to determine and display frequent channels, related users, and frequently discussed topics on a user's profile page, based on interaction data, and updating these dynamically to reflect changing user interactions.
Enhances user collaboration by providing accurate and up-to-date information on channels, users, and topics, reducing the need for manual updates and improving the efficiency of project collaboration by automatically recommending relevant users and channels.
Smart Images

Figure 2026500106000001_ABST
Abstract
Description
[Technical Field]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims priority to U.S. patent application Ser. No. 18 / 072,195, filed Nov. 30, 2022, entitled "CHANNEL RECOMMENDATIONS USING MACHINE LEARNING," the entire contents of which are incorporated herein by reference.
[0002] [Technical field] Communication platforms are popular for facilitating work-related communication, such as for transparent project collaboration between users. Users often interact with numerous other users on communication platforms when working on projects, sharing information, participating in virtual meetings, or engaging in synchronous or asynchronous discussions. However, especially when there are a large number of users and / or projects, users may not be aware of related projects that other users are working on or with whom other related users may be collaborating. Existing systems have difficulty capturing an individual user's accurate user network over time. [Brief explanation of the drawings]
[0003] The detailed description will be set forth with reference to the accompanying drawings. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. When the same reference number is used in different figures, it indicates a similar or identical component or feature. The drawings are not drawn to scale.
[0004] [Figure 1] 1 illustrates an exemplary system for performing the techniques described herein. [Figure 2A] For a specific example, a user interface for a group-based communication system is shown. [Figure 2B]For a particular example, a user interface for a multimedia collaboration session within a group-based communication system is shown. [Figure 2C] For a specific example, a user interface for inter-organizational collaboration within a group-based communication system is shown. [Figure 2D] For a specific example, a user interface for a collaborative document within a group-based communication system is shown. [Figure 3A] 1 illustrates a user interface for a workflow within a group-based communication system. [Figure 3B] 1 illustrates a block diagram for implementing certain examples as discussed herein. [Figure 4] 1 illustrates an exemplary user interface associated with a communications platform, as described herein, for displaying a user profile including frequent channels, associated people, and frequent topics. [Figure 5] 1 illustrates exemplary first and second user interfaces associated with a communication platform as described herein for displaying a user profile including frequent channels, associated people, and frequent topics. [Figure 6] FIG. 1 is a flow diagram illustrating an example process for generating data associated with representative channels and representative users using the machine learning model(s) described herein. [Figure 7] FIG. 1 is a flow diagram illustrating an example process for training the machine learning model(s) described herein. DETAILED DESCRIPTION OF THE INVENTION
[0005] This disclosure describes techniques for generating or otherwise determining frequent channels, related users, and / or frequent topics to be displayed in association with a user's profile page. As described herein, a machine learning model may be trained and used to determine one or more channels in which a user is active or manages, user accounts with which the user frequently interacts or is associated, and / or topics on which the user may frequently discuss or be knowledgeable. The communication platform may input a user's previous interactions associated with use of the communication platform into the machine learning model and receive as output from the machine learning model the frequent channels with which the user interacts, related users, and / or frequent topics the user discusses. In some examples, a user's previous interactions (described as interaction data) may include the user's interactions with the user's own profile page, other users, channels, posts, documents, etc. In some examples, a user's previous interactions may include reactions to messages, links associated with messages, the number of messages sent to the user, the number of replies associated with a channel, documents or attachments in a channel, etc. A user's interactions with the communication platform may also include the number of shared channels between the user and individual users, the activity level associated with individual users within shared channels, user reply data associated with individual users, or the number of keywords or key phrases used by individual users.
[0006] In some examples, the machine learning model may be trained to output one or more frequent channels associated with a user account. For example, the communication platform may input user interaction data into the machine learning model and receive as output one or more frequent channels that the user account frequently interacts with or manages. In some examples, the communication platform may associate the one or more frequent channels with the user's profile data. In some examples, the communication platform may present one or more recommended channels to the user for approval before associating the one or more channels with the user's profile data. In some examples, the machine learning model may assign confidence scores to each channel represented on the user profile. The communication platform may then determine the order in which to present the channels based on the confidence scores.
[0007] In some examples, the machine learning model may be trained to output one or more related users associated with a user account. For example, the communication platform may input user interaction data into the machine learning model and receive as output one or more related users with which the user account is associated or frequently interacts. In some examples, the communication platform may associate one or more related users with the user's profile data. In some examples, the communication platform may present one or more recommended user accounts to the user for approval. One or more channels may also be associated with the user's profile data. In some examples, the machine learning model may assign a confidence score to each user represented on the user profile. The communication platform may then determine the order in which to present the users based on the confidence scores.
[0008] In some examples, the machine learning model may be trained to output one or more frequently discussed topics associated with a user account. For example, the communication platform may input keywords or key phrases into the machine learning model and receive one or more frequently discussed topics associated with the user account as output. In some examples, the communication platform may associate the one or more frequently discussed topics with the user's profile data. In some examples, the communication platform may present the one or more frequently discussed topics to the user for approval before associating the one or more frequently discussed topics with the user's profile data. In some examples, the machine learning model may assign confidence scores to the topics represented on the user profile. The communication platform may then determine the order in which to present the topics based on the confidence scores.
[0009] In some examples, the machine learning model may generate data representing one or more frequent channels and / or related users based at least in part on the number of frequent channels and / or related users already associated with the user's profile data. For example, a user's profile may be associated with a maximum number of frequent channels and / or related users. The maximum number of frequent channels and / or related users that may be presented on the user's profile page may be set by the communications platform, an organization, an administrator, or the user. The profile page associated with the maximum number of frequent channels and / or related users may be updated over time to include new frequent channels and / or new related users, replacing previous frequent channels and / or related users. For example, the machine learning model may recommend new frequent channels and / or new related users to the user based on new interaction data input into the machine learning model over time. In some examples, the machine learning model may update the frequent channels and / or related users associated with the profile page based on a user's request to modify the profile data, the detection of a threshold number of keywords or key phrases associated with the user or user account, or the passage of a threshold period of time.
[0010] In some examples, the communications platform may present different profile data to a user based at least in part on interaction data between different users. For example, a machine learning model may be trained to output different profile data based at least in part on interaction data associated with the viewing user and the user account associated with the profile data, the viewing user's preferences or interests, or permission or privacy settings associated with the profile data. In some examples, the communications platform may sort one or more frequent channels, users, and / or topics associated with the profile data according to interaction data associated with user accounts that are viewing the user account's profile data, based in part on output received from the machine learning model.
[0011] As described above, existing techniques may require users to review large amounts of data (e.g., messages, channels, etc.) to understand who they are working on a project with or which users they will work with on a project. A user may interact with numerous users over time. Periodically updating profile pages is cumbersome, and having users manually update their profile information can lead to unreliable information, especially in organizations with thousands of employees. To address the technical challenges and inefficiencies of searching for useful user information or finding users to collaborate on a project, techniques described herein may include using one or more machine learning models to determine frequent channels, related users, and / or frequent topics associated with individual users, and in some examples, automatically associating the frequent channels, related users, and / or frequent topics with the user's profile data. The technical solutions described herein solve technical problems associated with the existence of vast amounts of user interaction information stored in the history of a communication platform and responding to frequently changing information.
[0012] The following detailed description of examples refers to the accompanying drawings, which show specific examples in which the present techniques may be practiced. These examples are intended to describe aspects of the systems and methods in sufficient detail to enable those skilled in the art to practice the techniques discussed herein. Other examples may be utilized and modifications may be made without departing from the scope of the present disclosure. Therefore, the following detailed description should not be construed in a limiting sense. The scope of the present disclosure is defined only by the appended claims, along with the full scope of equivalents to which such claims are entitled. Group-based communication system
[0013] FIG. 1 illustrates an exemplary environment 100 for performing the techniques described herein. In at least one example, the exemplary environment 100 may be associated with a communications platform that can leverage a network-based computing system to enable users of the communications platform to exchange data. In at least one example, the communications platform may be “group-based” such that the platform and associated systems, communication channels, messages, collaborative documents, canvases, audio / video conversations, and / or other virtual spaces have security (which may be defined by permissions) to limit access to a defined group of users. In some examples, such groups of users may be defined by a group identifier that may be associated with common access credentials, domains, etc., as described above. In some examples, the communications platform may be a hub that provides a secure, private virtual space for users to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate among one another. As described above, each group may be associated with a workspace, enabling users associated with the group to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate among one another within the secure, private virtual space. In some examples, members of a group, and thus a workspace, may be associated with the same organization. In some examples, members of a group, and thus a workspace, may be associated with different organizations (e.g., entities with different organization identifiers).
[0014] In at least one example, the exemplary environment 100 may include one or more server computing devices (or “server(s)”) 102. In at least one example, the server(s) 102 may include one or more servers or other types of computing devices that may be embodied in any number of ways. For example, in the server example, the functional components and data may be implemented on a single server, a cluster of servers, a server farm or data center, a cloud-hosted computing service, a cloud-hosted storage service, etc., although other computer architectures may additionally or alternatively be used.
[0015] In at least one example, the server(s) 102 can communicate with the user computing devices 104 via one or more network(s) 106. That is, the server(s) 102 and the user computing devices 104 can send, receive, and / or store data (e.g., content, information, etc.) using the network(s) 106 as described herein. The user computing devices 104 can be any suitable type of computing device, e.g., portable, semi-portable, semi-stationary, or stationary. Some examples of the user computing devices 104 can include tablet computing devices, smartphones, mobile communication devices, laptops, netbooks, desktop computing devices, terminal computing devices, wearable computing devices, augmented reality devices, Internet of Things (IoT) devices, or any other computing device capable of transmitting communications and performing functions in accordance with the techniques described herein. While a single user computing device 104 is shown, in practice, the exemplary environment 100 can include multiple (e.g., tens, hundreds, thousands, or millions) user computing devices. In at least one example, a user computing device, such as user computing device 104, may be operable by a user to, among other things, access communication services via a communications platform. A user may be an individual, a group of individuals, an employer, a business, an organization, and / or the like.
[0016] The network(s) 106 may include any type of network known in the art, such as, but not limited to, a local or wide area network, the Internet, a wireless network, a cellular network, a local wireless network, Wi-Fi and / or short-range wireless communication, Bluetooth®, Bluetooth Low Energy (BLE), Near Field Communication (NFC), a wired network, or any other such network, or any combination thereof. The components used for such communication may depend at least in part on the type of network, the selected environment, or both. Protocols for communicating over such network(s) 106 are well known and will not be described in detail herein.
[0017] In at least one example, server(s) 102 may include one or more processors 132, computer-readable media 110, one or more communication interfaces 112, and / or input / output devices 114.
[0018] In at least one example, each processor of processor(s) 132 can be a single processing unit or multiple processing units and can include single or multiple computing units or multiple processing cores. Processor(s) 132 can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units (CPUs), graphics processing units (GPUs), state machines, logic circuits, and / or any device that manipulates signals based on operational instructions. For example, processor(s) 132 can be one or more hardware processors and / or logic circuits of any suitable type that are specifically programmed or configured to execute the algorithms and processes described herein. Processor(s) 132 can be configured to fetch and execute computer-readable instructions stored on a computer-readable medium, which can program the processor(s) to perform the functions described herein.
[0019] The computer-readable medium 110 can include volatile and nonvolatile memory and / or removable and non-removable media implemented in any type of technology for storing data, such as computer-readable instructions, data structures, program modules, or other data. Such computer-readable medium 110 can include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, optical storage, solid-state storage, magnetic tape, magnetic disk storage, RAID storage systems, storage arrays, network-attached storage, storage area networks, cloud storage, or any other medium usable to store desired data and accessible by a computing device. Depending on the configuration of the server(s) 102, the computer-readable medium 110 can be a type of computer-readable storage medium and / or can be a tangible, non-transitory medium, insofar as non-transitory computer-readable medium, when referred to, excludes media such as energy, carrier signals, electromagnetic waves, and signals themselves.
[0020] The computer-readable medium 110 may be used to store any number of functional components executable by the processor(s) 132. In many implementations, these functional components include instructions or programs executable by the processor(s) 132 that, when executed, specifically configure the processor(s) 132 to perform the actions attributed above to the server(s) 102. The functional components stored on the computer-readable medium may optionally include a messaging component 116, an audio / video component 118, a representation component 120 including the machine learning model(s) 130, an operating system 122, and a data store 124.
[0021] In at least one example, the messaging component 116 can process messages between users. That is, in at least one example, the messaging component 116 can receive an outgoing message from a user computing device 104 and transmit the message as an incoming message to a second user computing device 104. The message can include a direct message sent from the originating user to one or more designated users and / or a communication channel message sent from the originating user via the communication channel to one or more users associated with the communication channel. Additionally, the message can be transmitted in association with a collaborative document, canvas, or other collaborative space. In at least one example, the canvas can include a flexible canvas for curating, organizing, and sharing a collection of information between users. In at least one example, the collaborative document can be associated with a document identifier (e.g., a virtual space identifier, a communication channel identifier, etc.) configured to enable messaging functionality attributable to the virtual space (e.g., the communication channel) of the collaborative document. That is, the collaborative document can be treated as a virtual space, such as a communication channel, and can include functionality associated therewith. The virtual space or communication channel can be a data pathway used to exchange data between systems and devices associated with the communication platform.
[0022] In at least one example, the messaging component 116 can establish communication paths between various user computing devices, enabling the user computing devices to communicate and share data among one another. In at least one example, the messaging component 116 can manage such communication and / or data sharing. In some examples, data associated with the virtual space, such as collaborative documents, can be presented via a user interface. Additionally, metadata associated with each message sent through the virtual space can be stored in association with the virtual space, such as a timestamp associated with the message, a sending user identifier, a receiving user identifier, a conversation identifier and / or a root object identifier (e.g., a conversation associated with a thread and / or root object), and / or the like.
[0023] In various examples, the messaging component 116 can receive a message (e.g., a direct message instance, a communication channel, a canvas, a collaborative document, etc.) sent in association with the virtual space. In various examples, the messaging component 116 can identify one or more users associated with the virtual space and cause the rendering of a message in association with an instance of the virtual space on each user computing device 104. In various examples, the messaging component 116 can identify the message as an update to the virtual space and, based on the identified update, cause a notification associated with the update to be presented in association with a sidebar of a user interface associated with one or more of the user(s) associated with the virtual space. For example, the messaging component 116 can receive a message sent in association with the virtual space from a first user account. In response to receiving the message (e.g., interaction data associated with the first user's interaction with the virtual space), the messaging component 116 can identify a second user associated with the virtual space (e.g., another user who is a member of the virtual space). In some examples, the messaging component 116 can cause a notification of an update to the virtual space to be presented via a sidebar of a user interface associated with a second user account of the second user. In some examples, the messaging component 116 can cause the notification to be presented in response to determining that a sidebar of a user interface associated with the second user account includes an affordance associated with the virtual space. In such examples, the notification can be presented in association with the affordance associated with the virtual space.
[0024] In various examples, the messaging component 116 can be configured to identify a mention or tag associated with a message sent in association with a virtual space. In at least one example, the mention or tag can include an @mention (or other special character) of a user identifier associated with the communication platform. The user identifier can include a username, real name, or other unique identifier associated with a particular user. In response to identifying a mention or tag of a user identifier, the messaging component 116 can cause a notification to be presented on a user interface associated with the user identifier, e.g., in a sidebar of a user interface associated with the particular user and / or in a virtual space associated with mentions and reactions, associated with affordances associated with the virtual space. That is, the messaging component 116 can be configured to alert a particular user that they have been mentioned in a virtual space.
[0025] In at least one example, the audio / video component 118 may be configured to manage audio and / or video communications between users. In some examples, the audio and / or video communications may be associated with audio and / or video conversations. In at least one example, the audio and / or video conversations may include individual identifiers configured to uniquely identify the audio and / or video conversations. In some examples, the audio and / or video component 118 may store user identifiers associated with user accounts of members of particular audio and / or video conversations, for example, to identify user(s) who have appropriate permissions to access the particular audio and / or video conversations.
[0026] In some examples, communications associated with an audio and / or video conversation (“conversation”) can be synchronous and / or asynchronous. That is, a conversation can include a real-time audio and / or video conversation between a first user and a second user for a period of time, and after the first period, a third user associated with (e.g., a member of) the conversation can contribute to the conversation. Audio / video component 118 can be configured to store audio and / or video data associated with a conversation, for example, to allow users with appropriate permissions to listen to and / or view the audio and / or video data.
[0027] In some examples, the audio / video component 118 may be configured to generate a transcript of the conversation and store the transcript in association with the audio and / or video data. The transcript may include a text representation of the audio and / or video data. In at least one example, the audio / video component 118 may generate the transcript using known speech recognition techniques. In some examples, the audio / video component 118 may generate the transcript simultaneously or substantially simultaneously with the conversation. That is, in some examples, the audio / video component 118 may be configured to generate a text representation of the conversation while the conversation is taking place. In some examples, the audio / video component 118 may generate the transcript after receiving an indication that the conversation is complete. The indication that the conversation is complete may include an indication that an associated host or administrator has stopped the conversation, a threshold number of conference attendees have closed an associated interface, and / or the like. That is, the audio / video component 118 may identify the completion of a conversation and, based on that completion, generate a transcript associated therewith.
[0028] In at least one example, the audio / video component 118 can be configured to cause presentation of a transcript in association with a virtual space with which the audio and / or video conversation is associated. For example, a first user can initiate an audio and / or video conversation in association with a communication channel. The audio / video component 118 can process audio and / or video data between participants in the audio and / or video conversation and generate a transcript of the audio and / or video data. In response to generating the transcript, the audio / video component 118 can cause the transcript to be published or otherwise presented via the communication channel. In at least one example, the audio / video component 118 can render one or more sections of the transcript selectable for commenting, for example, to enable members of the communication channel to comment on or further contribute to the conversation. In some examples, the audio / video component 118 can update the transcript based on the comments.
[0029] In at least one example, the audio / video component 118 can manage one or more audio and / or video conversations associated with a virtual space associated with a group (e.g., organization, team, etc.) management or command center. The group management or command center can be referred to herein as a virtual (and / or digital) headquarters associated with the group. In at least one example, the audio / video component 118 can be configured to coordinate with the messaging component 116 and / or other components of the server(s) 102 to send communications associated with other virtual spaces associated with the virtual headquarters. That is, the messaging component 116 can send data (e.g., messages, images, drawings, files, etc.) associated with one or more communication channels, direct messaging instances, collaborative documents, canvases, and / or the like associated with the virtual headquarters. In some examples, the communication channel(s), direct messaging instance(s), collaborative document(s), canvas(s), and / or the like can be associated with one or more audio and / or video conversations managed by the audio / video component 118. That is, audio and / or video conversations associated with a virtual headquarters may be further associated with or unrelated to one or more other virtual spaces of the virtual headquarters.
[0030] In at least one example, the representation component 120 may be configured to determine one or more frequent channels and / or one or more related users using machine learning model(s) 130. That is, in at least one example, the machine learning model(s) 130 associated with the representation component 120 may be configured to receive user interaction data (e.g., channels, posts, relationships, documents, and / or other interaction data including the number of messages a user has sent to another user, when a user recently sent a message to a user, how often a user reads messages in a channel, how often a user reacts to posts in a channel, how often a user replies to posts in a channel, etc.) and output one or more frequent channels in which the user is active and / or one or more related users with which the user actively communicates. The representation component 120 may then associate the one or more frequent channels and / or one or more related users with the user account profile data. In some examples, the representation component 120 may receive a request from a user, via the user computing device 104, to generate a representative list of channels with which the user may be associated and / or a representative list of users with whom the user frequently interacts. In some examples, the user may manually edit (e.g., add, remove, reorder, highlight, etc.) one or more of the representative channels and / or users associated with the user account (e.g., on a profile page associated with the user).
[0031] The representation component 120 utilizes machine learning model(s) 130 that accept input and may use the input to output first data representing one or more channels and second data representing one or more users associated with the group-based communication platform. The first data and second data may be stored in the data store 124. In some examples, the input data may be data related to a user's interactions with their own profile (e.g., information the user adds to their profile, including business information, affiliations, interests, favorite channels, etc.), a user's interactions with other channels of the group-based communication platform (e.g., user reactions, messages, emojis, etc.), and / or a user's interactions with other users (e.g., conversation data from the group-based communication platform, including messages, emojis, user identifiers, user actions (“like” or “dislike”), charts, videos, and / or other forms of interaction data). The input may also include text data, documents, images, video(s), audio / video transcripts, or other forms of interaction data regarding user interactions with the group-based communication platform.
[0032] In some examples, machine learning model(s) 130 may be configured to receive third-party data (e.g., interaction data between a user and a third-party provider). For example, machine learning model(s) 130 may receive as input third-party data such as an external contact list maintained by a third-party service provider, calendar(s) maintained by a third-party application, documents, files, photos, messages, emails, etc.
[0033] The machine learning model(s) 130 may be trained to generate one or more representative channels in which a user account is most active. For example, the machine learning model(s) 130 may detect the frequency of communication by a user(s) in a channel, past feedback, communication in a channel (or other interactions of a user in a channel) above a threshold level, documents posted in a channel, user communications marked as favorites in a channel, task assignments to a user in a channel, ratings of one or more channels, a user's area of expertise, a user's preferences, user-specified information about the user's profile, user-specified permissions, heuristics from user activity, and / or other interactions of a user with a channel. The machine learning model(s) 130 may also be trained to identify respective messages, contributions, posts, etc. for a user(s) within the group-based communication platform.
[0034] The machine learning model(s) 130 may be trained to generate data representative of one or more users with whom a user account regularly interacts. For example, the machine learning model(s) 130 may detect the frequency of communication (private and / or public communication) between users, communication between users in a channel (or other interactions of users in a channel) above a threshold level, the number of documents shared between users, task assignments between users, user areas of expertise, user preferences, user-specified information about a user's profile (e.g., interests, background information, associated people, etc.), user-specified permissions, typical work hours (e.g., users who work similar days, hours, shifts, etc.), heuristics from user activity, and / or other interactions between users.
[0035] In some examples, the machine learning model(s) 130 may be trained from training data representing previous representative channels and / or users using supervised and / or unsupervised approaches. In some examples, the machine learning model(s) 130 may include neural models for summarization, such as the Generative Pre-trained Transformer 3 (GPT-3) model, abstraction or generative summarization models, natural language processing, machine learning, and / or other techniques for identifying meaning and / or sentiment in messages within the group-based communication platform. In some examples, these techniques are configured to receive various forms of input for generating representative channels and / or users.
[0036] In some examples, the representation component 120 can manage frequent channel and / or related user section(s) of a user profile. That is, the representation component 120 can select channels and / or users to display on the profile page based on the output of the machine learning model(s) 130. For example, the representation component 120 may receive one or more channels and their respective trust levels as output from the machine learning model(s) 130. In some examples, the representation component 120 may select a single channel from one or more representative channels. For example, the representation component 120 may compare the trust levels of each channel and select the channel with the highest trust level (i.e., the channel most likely to be associated with the user account). Based on selecting the channel with the highest trust level, the representation component 120 may determine whether the trust level of the selected channel meets or exceeds a threshold trust level. In some examples, a user may increase or decrease the trust level based on any number of factors deemed more or less important to the user (e.g., how often the user reads messages in the channel, how often the user reacts to posts in the channel, how often the user replies to posts in the channel, user profile data, etc.). Based on determining that the trust level associated with the channel meets or exceeds the threshold trust level, the representation component 120 may associate the channel with a user profile.
[0037] The representation component 120 may receive one or more users (or user accounts) and their respective trust levels as output from the machine learning model(s) 130. In some examples, the representation component 120 may select a single user from one or more representative users to associate with the user profile. For example, the representation component 120 may compare the trust levels of each user and select the user with the highest trust level (i.e., the second user account that is most likely to interact with the first user account). Based on selecting the user with the highest trust level, the representation component 120 may determine whether the selected user's trust level meets or exceeds a threshold trust level. In some examples, a user may increase or decrease their trust level based on any number of factors deemed more or less important to the user (e.g., how often the user sends messages to other users, the length of messages sent to other users, how often the user reacts to another user's posts, how often the user replies to other users' posts, the number of channels the user shares, etc.). Based on determining that the trust level associated with the representative user meets or exceeds the threshold trust level, the representation component 120 may associate the user with a user profile. For example, the representation component 120 may add the second user to a list of “frequent users” associated with the profile page of the first user.
[0038] In some examples, the representation component 120 can update (i.e., add, remove, or reorder) representative channels and / or representative users associated with a user account and integrate such updated data into user interface(s) presented via user computing device(s) of a user associated with the group-based communication platform. In some examples, the representation component 120 can update one or more representative channel and / or one or more representative user section(s) of a user's profile based at least in part on the passage of time (e.g., a day, a week, a month, etc.), receipt of a threshold number of interaction data (i.e., detecting that the user has interacted with a threshold number of new users), or based on a user request to update the user's profile information.
[0039] In some examples, the representation component 120 may present different representative channels and / or representative users associated with a user account depending on who is viewing the user's profile. In some examples, the communication platform may analyze messaging and other interaction data between users to determine relationships between users and infer organizational networks between users. Additional details of operations that may be performed by the representation component 120 are described below and throughout this disclosure.
[0040] In some examples, the communication platform can manage communication channels. In some examples, the communication platform can be a channel-based messaging platform that, in some examples, can be usable by a group(s) of users. Users of the communication platform can communicate with other users through communication channels. A communication channel or virtual space can be a data pathway used to exchange data between systems and devices associated with the communication platform. In some examples, a channel can be a virtual space to which a person can post messages, documents, and / or files. In some examples, access to a channel can be controlled by permissions. In some examples, a channel can be limited to a single organization, shared among different organizations, or public, private, or specialized (e.g., a hosted channel with a guest account where guests can make posts but cannot perform certain actions, such as inviting other users to the channel). In some examples, some users can be invited to a channel via email, channel invite, direct message, text message, etc. Examples of channels and related functionality are described throughout this disclosure.
[0041] In at least one example, the operating system 122 may manage the processor(s) 132, computer-readable medium 110, hardware, software, etc. of the server(s) 102.
[0042] In at least one example, data store 124 may be configured to store accessible, manageable, and updatable data. In some examples, data store 124 may be integrated with server(s) 102, as shown in FIG. 1 . In other examples, data store 124 may be located remotely from server(s) 102 and accessible to server(s) 102 and / or user device(s), such as user device 104. Data store 124 may include multiple databases that may include user / organization data 126 and / or virtual space data 128. Additional or alternative data may be stored in the data store and / or one or more other data stores.
[0043] In at least one example, the user / organization data 126 can include data associated with a user of the communication platform. In at least one example, the user / organization data 126 can store data in a user profile (which may also be referred to as a “user account”), which can store data associated with a user, including, but not limited to, one or more user identifiers associated with multiple different organizations or entities with which the user is associated, one or more communication channel identifiers associated with communication channels to which the user is authorized to access, one or more group identifiers for groups (or organizations, teams, entities, etc.) with which the user is associated, an indication of whether the user is the owner or manager of any communication channels, an indication of whether the user has any communication channel restrictions, a plurality of messages, a plurality of emojis, a plurality of conversations, a plurality of conversation topics, an avatar, an email address, a real name (e.g., John Doe), a username (e.g., j doe), a password, a time zone, a status, a token, etc.
[0044] In at least one example, user / organization data 126 can include permission data associated with permissions of individual users of the communications platform. In some examples, permissions can be set automatically or by an administrator of the communications platform, an employer, company, organization, or other entity using the communications platform, a team leader, group leader, or other entity using the communications platform to communicate with team members, group members, etc., an individual user, etc. Permissions associated with individual users can be mapped to or otherwise associated with an account or profile within user / organization data 126. In some examples, permissions can indicate which users can communicate directly with other users, which channels a user is authorized to access, restrictions on individual channels, which workspaces a user is authorized to access, restrictions on individual workspaces, etc. In at least one example, permissions can support the communications platform by maintaining security for limiting access to defined groups of users. In some examples, such users can be defined by common access credentials, group identifiers, etc., as described above.
[0045] In at least one example, the user / organization data 126 can include data associated with one or more organizations of the communication platform. In at least one example, the user / organization data 126 can store data in an organization profile, which can store data associated with the organization, including, but not limited to, one or more user identifiers associated with the organization, one or more virtual space identifiers associated with the organization (e.g., workspace identifiers, communication channel identifiers, direct message instance identifiers, collaborative document identifiers, canvas identifiers, audio / video conversation identifiers, etc.), organization identifiers associated with the organization, one or more organization identifiers associated with other organizations authorized to communicate with the organization, etc.
[0046] In at least one example, the virtual space data 128 may include data associated with one or more virtual spaces associated with the communication platform. The virtual space data 128 may include text data, audio data, video data, images, files, and / or any other type of data configured to be transmitted in association with a virtual space. Non-limiting examples of virtual spaces include workspaces, communication channels, direct messaging instances, collaborative documents, canvases, and audio and / or video conversations. In at least one example, the virtual space data may store data associated with individual virtual spaces separately, for example, based on a distinct identifier associated with each virtual space. In some examples, a first virtual space may be associated with a second virtual space. In such examples, first virtual space data associated with the first virtual space may be stored in association with the second virtual space. For example, data associated with a collaborative document generated in association with a communication channel may be stored in association with the communication channel. In another example, data associated with an audio and / or video conversation occurring in association with a communication channel may be stored in association with the communication channel.
[0047] As described above, each virtual space in the communication platform may be assigned an individual identifier that uniquely identifies the virtual space. In some examples, the virtual space identifier associated with a virtual space may include a physical address within the virtual space data 128 where data related to the virtual space is stored. A virtual space may be “public,” which may allow any user within an organization (e.g., associated with an organization identifier) to participate in data sharing via the virtual space, or it may be “private,” which may restrict data communication within the virtual space to specific users or users with appropriate viewing permissions. In some examples, a virtual space may be “shared,” which may allow users associated with different organizations (e.g., entities associated with different organization identifiers) to participate in data sharing via the virtual space. A shared virtual space (e.g., a shared channel) may be public, accessible to any user from either organization, or private, restricted to access by specific users from both organizations (e.g., users with appropriate permissions).
[0048] In some examples, the data store 124 may be divided into separate items of data (e.g., data shards) that can be accessed and managed individually. Data shards can simplify many technical tasks, such as data retention, deployment (e.g., detecting that message content contains links, crawling metadata for links, and determining a uniform summary of the metadata), and integration configuration. In some examples, data shards may be associated with organizations, groups (e.g., workspaces), communication channels, users, etc.
[0049] In some examples, individual organizations may be associated with database shards within the data store 124 that store data related to a particular organization identification. For example, a database shard may store electronic communication data associated with members of a particular organization, allowing members of that particular organization to communicate and exchange data with other members of the same organization in real time or near real time. In this example, the organization itself may be the owner of the database shard and control where and how the associated data is stored. In some examples, a database shard may store data related to two or more organizations (e.g., as in a shared virtual space).
[0050] In some examples, individual groups may be associated with database shards in data store 124 that store data related to a particular group identity (e.g., a workspace). For example, a database shard may store electronic communication data associated with members of a particular group, allowing members of that particular group to communicate and exchange data with other members of the same group in real time or near real time. In this example, the group itself may be the owner of the database shard and control where and how the associated data is stored.
[0051] In some examples, a virtual space may be associated with a database shard in data store 124 that stores data related to a particular virtual space identification. For example, the database shard may store electronic communication data associated with the virtual space, allowing members of that particular virtual space to communicate and exchange data with other members of the same virtual space in real time or near real time. As described above, communication through a virtual space can be synchronous and / or asynchronous. In at least one example, a group or organization may be the owner of a database shard and may control where and how associated data is stored.
[0052] In some examples, individual users may be associated with database shards within data store 124 that store data related to a particular user account. For example, a database shard may store electronic communication data associated with an individual user, allowing the user to communicate and exchange data with other users of the communications platform in real time or near real time. In some examples, the users themselves may be owners of database shards, controlling where and how their associated data is stored.
[0053] In some examples, for example, when a channel is shared between two organizations, each organization may be associated with its own encryption key. When a user associated with one organization posts a message or file to a shared channel, the message or file is encrypted in data store 124 with an encryption key specific to that organization, and the other organization can decrypt the message or file before accessing it. Furthermore, in examples where the organizations are in different geographic areas, data associated with a particular organization may be stored in a location corresponding to the organization and temporarily cached in a location closer to a client (e.g., associated with the other organization) when such a message or file is accessed. Data may be maintained, stored, and / or deleted in data store 124 according to data management policies associated with each particular organization.
[0054] The communication interface(s) 112 may include one or more interfaces and hardware components to enable communication with various other devices (e.g., user computing device 104), for example, over the network(s) 106 or directly. In some examples, the communication interface(s) 112 may facilitate communication via WebSockets, an application programming interface (API) (e.g., using API calls), Hypertext Transfer Protocol (HTTPs), etc.
[0055] The server(s) 102 may further comprise various input / output devices 114 (e.g., I / O devices). Such I / O devices 114 may include a display, various user interface controls (e.g., buttons, joysticks, keyboards, mice, touchscreens, etc.), audio speakers, connection ports, etc.
[0056] In at least one example, user computing device 104 may include one or more processors 132 , computer-readable media 134 , one or more communication interfaces 136 , and input / output devices 138 .
[0057] In at least one example, each processor of processor(s) 132 may be a single processing unit or multiple processing units and may include single or multiple computing units or multiple processing cores. Processor(s) 132 may include any of the types of processors described above with reference to processor(s) 132 and may be the same as or different from processor(s) 132.
[0058] Computer-readable medium 134 may include any of the types of computer-readable medium 134 described above with reference to computer-readable medium 110, and may be the same as or different from computer-readable medium 110. Functional components stored on the computer-readable medium may optionally include at least one application 138 and an operating system 140.
[0059] In at least one example, application 140 can be a mobile application, a web application, or a desktop application, which may be provided by the communications platform or may be another dedicated application. In some examples, individual user computing devices associated with environment 100 can have an instance or versioned instance of application 140 that may be downloaded from an application store, accessible via the internet, or otherwise executable by processor(s) 132 to perform operations as described herein. That is, application 140 can be an access point that allows user computing device 104 to interact with server(s) 102 to access and / or use communication services available through the communications platform. In at least one example, application 138 can facilitate the exchange of data between various other user computing devices, e.g., via server(s) 102. In at least one example, application 140 can present a user interface as described herein. In at least one example, a user can interact with the user interface via touch input, keyboard input, mouse input, verbal input, or any other type of input.
[0060] A non-limiting example of a user interface 144 is shown in FIG. 1. As shown in FIG. 1, the user interface 144 can present data associated with one or more virtual spaces, which may include one or more workspaces. That is, in some examples, the user interface 144 can integrate data from multiple workspaces into a single user interface, thereby enabling a user (e.g., of the user computing device 104) to access and / or interact with data associated with the multiple workspaces with which the user is associated and / or otherwise communicate with other users associated with the multiple workspaces. In some examples, the user interface 144 can include a first region 146 or pane that includes indicator(s) (e.g., user interface element(s) or object(s)) associated with the workspace(s) with which the user (e.g., the user's account) is associated. In some examples, the user interface 144 can include a second region 148 or pane that includes indicator(s) (e.g., user interface element(s), affordance(s), object(s), etc.) representing data associated with the workspace(s) with which the user (e.g., the user's account) is associated. In at least one example, the second region 148 may represent a sidebar of the user interface 144 .
[0061] In at least one example, user interface 144 may include a third region 150 or pane that may be associated with a data feed (or “feed”) indicating messages posted and / or actions taken for one or more communication channels and / or other virtual spaces for facilitating communication, as described herein (e.g., virtual spaces associated with direct message communication(s), virtual spaces associated with event(s) and / or action(s), etc.). In at least one example, data associated with third region 150 may be associated with the same or different workspaces. That is, in some examples, third region 150 may present data associated with the same or different workspaces via a unified feed. In some examples, data may be organized and / or sortable by workspace, time (e.g., when the associated data was posted or when the associated action was otherwise performed), type of action, communication channel, user, etc. In some examples, such data may be associated with an indication of which users (e.g., members of a communication channel) posted the message and / or performed the action. In examples where third region 150 presents data associated with multiple workspaces, at least some of the data may be associated with an indication of which workspace the data is associated with. In some examples, third region 150 may be resized or popped out as a separate window.
[0062] In at least one example, the operating system 142 may manage the processor(s) 132, computer-readable media 134, hardware, software, etc. of the server(s) 102.
[0063] The communication interface(s) 136 may include one or more interfaces and hardware components to enable communication with various other devices (e.g., user computing device 104), for example, over the network(s) 106 or directly. In some examples, the communication interface(s) 136 may facilitate communication via WebSockets, an API (e.g., using API calls), HTTPs, etc.
[0064] The user computing device 104 may further include various input / output devices 138 (e.g., I / O devices). Such I / O devices 138 may include a display, various user interface controls (e.g., buttons, joystick, keyboard, mouse, touch screen, etc.), audio speakers, connection ports, etc.
[0065] Although the techniques described herein are described as being performed by the messaging component 116, the audio / video component 118, the presentation component 120, and the application 138, the techniques described herein may be performed by any other component or combination of components that may be associated with the server(s) 102, the user computing device 104, or a combination thereof. A user interface for a group-based communication system
[0066] 2A illustrates a user interface 200 of a group-based communication system, which is useful for illustrating the operation of various examples discussed herein. The group-based communication system may include communication data such as messages, queries, files, mentions, users or user profiles, interactions, tickets, channels, applications integrated into one or more channels, conversations, workspaces, or other data generated by or shared among users of the group-based communication system. In some instances, the communication data may include data associated with a user, such as a user identifier, channels the user is authorized to access, groups the user is associated with, permissions, and other user-specific information.
[0067] User interface 200 includes multiple objects such as panes, text entry fields, buttons, messages, or other user interface components viewable by a user of the group-based communication system. As shown, user interface 200 includes a title bar 202, a workspace pane 204, a navigation pane 206, a channel 208, a document 210 (e.g., a collaborative document), a direct message 212, an application 214, a synchronized multimedia collaboration session pane 216, and a channel pane 218.
[0068] By way of example and not limitation, upon opening the user interface 200, a user may select a workspace via the workspace pane 204. A particular workspace may be associated with data that is unique to the workspace and accessible via permissions associated with the workspace. Different sections of the navigation pane 206 may present different data and / or options to the user. Different graphical indicators may be associated with virtual spaces (e.g., channels) to summarize attributes of the channel (e.g., whether the channel is public, private, shared across organizations, locked, etc.). When a user selects a channel, the channel pane 218 may be presented. In some examples, the channel pane 218 may include a header, pinned items (e.g., documents or other virtual spaces), an “about” document providing an overview of the channel, etc. In some cases, channel members may be able to search within the channel, access content associated with the channel, add other members, post content, etc. In some examples, depending on the permissions associated with the channel, users who are not members of the channel may be limited in their ability to interact with (or even view or otherwise access) the channel. When navigating within a channel, a user can view messages 222, react to messages (e.g., reactions 224), reply to threads, start threads, etc. Additionally, the channel pane 218 can include a composition pane 228 for composing message(s) and / or other data to associate with the channel. In some examples, the user interface 200 can include a thread pane 230 that provides an additional level of detail for the messages 222. In some examples, different panes can be resized, panes can pop out into separate windows, and / or separate windows can be merged into multiple panes of the user interface 200.In some examples, users may communicate with other users via collaboration pane 216, which may provide synchronous or asynchronous audio and / or video capabilities for communication. Of course, these are illustrative examples, and additional examples of the aforementioned features are provided throughout this disclosure.
[0069] In some examples, title bar 202 includes a search bar 220. Search bar 220 may allow a user to search for content located in the current workspace of the group-based communication system, such as files, messages, channels, members, commands, and functions. A user may narrow a search by attributes such as content type, content creator, and by the user associated with the content. A user may optionally search within a specific workspace, channel, direct message conversation, or document. In some examples, title bar 202 includes navigation commands that allow a user to move back and forth between different panes and view a history of accessed content. In some examples, title bar 202 may include additional resources, such as links to help documentation and user configuration settings.
[0070] In some examples, a group-based communication system can include multiple separate workspaces, each associated with a different group of users and channels. Each workspace can be associated with a group identifier, and one or more user identifiers can be mapped to or otherwise associated with the group identifier. A user corresponding to such a user identifier can be referred to as a member of the group. In some examples, the user interface 200 includes a workspace pane 204 for navigating between, adding to, or removing from various workspaces within the group-based communication system. For example, a user can be part of a workspace for Acme, where the user is an employee of or otherwise affiliated with Acme. The user can also be a member of a local volunteer organization that also collaborates using the group-based communication system. To navigate between the two groups, the user can use the workspace pane 204 to change from the Acme workspace to the volunteer organization workspace. A workspace can include one or more channels specific to that workspace and / or one or more channels shared between one or more workspaces. For example, Acme Corporation may have a workspace for Acme projects, such as Project Zen, a workspace for social discussions, and an additional workspace for general company operations. In some examples, an organization, such as a particular company, may have multiple workspaces, and a user may be associated with one or more workspaces that belong to that organization. In still other examples, a particular workspace may be associated with one or more organizations or other entities associated with the group-based communication system.
[0071] In some examples, the navigation pane 206 allows a user to navigate between virtual spaces, such as pages, channels 208, collaborative documents 210 (such as those illustrated in FIG. 2D ), applications 214, and direct messages 212, within a group-based communication system. For example, the navigation pane 206 may include an indicator representing a virtual space that can aggregate data associated with multiple virtual spaces of which the user is a member. In at least one example, each virtual space may be associated with an indicator in the navigation pane 206. In some examples, the indicator may be associated with an actuation mechanism (e.g., an affordance, also referred to as a graphical element) that, when actuated, causes the user interface 200 to present data associated with the corresponding virtual space. In at least one example, a virtual space may be associated with all unread data associated with each of the workspaces with which the user is associated. That is, in some examples, when a user requests access to a virtual space associated with “unreads,” all data that has not been read (e.g., not viewed) by the user may be presented, for example, in a feed. In such examples, different types of events and / or actions that may be associated with different virtual spaces may be presented via the same feed. In some examples, such data may be organized and / or sortable by associated virtual space (e.g., the virtual space through which the communication was transmitted), time, type of action, user, and / or the like. In some examples, such data may be associated with an indication of which user (e.g., a member of the associated virtual space) posted the message and / or performed the action.
[0072] In some examples, virtual spaces may be associated with the same type of events and / or actions. For example, "threads" may be associated with messages, files, etc. posted to a thread in response to a message posted to the virtual space, and "mentions and reactions" may be associated with messages or threads in which the user mentions (e.g., via tags) or another user reacts (e.g., via emojis, reactions, etc.) to a message or thread posted by the user. That is, in some examples, the same type of events and / or actions that may be associated with different virtual spaces may be presented via the same feed. Similar to the "unreads" virtual space, data associated with such virtual spaces may be organized and / or sortable by virtual space, time, type of action, user, and / or the like.
[0073] In some examples, the virtual space may be associated with facilitating communication between the user and other users of the communication platform. For example, "connect" may be associated with enabling the user to generate invitations to communicate with one or more other users. In at least one example, in response to receiving an indication of selection of the "connect" indicator, the communication platform may cause a connection interface to be presented.
[0074] In some examples, the virtual space may be associated with one or more boards or collaborative documents with which the user is associated. In at least one example, the document may include a collaborative document configured to be accessed and / or edited by two or more users with appropriate permissions (e.g., view permissions, edit permissions, etc.). In at least one example, when a user requests access to a virtual space associated with one or more documents with which the user is associated, the one or more documents may be presented via user interface 200. In at least one example, the documents may be associated with an individual (e.g., a user's private document), a group of users (e.g., a collaborative document), and / or one or more communication channels (e.g., members of a communication channel who have been granted access permissions to the document), as described herein, thereby enabling, for example, users of the communication platform to create, interact with, and / or view data associated with such documents. In some examples, the collaborative document may be a virtual space, board, canvas, page, etc. for collaborative communication and / or data organization within the communication platform. In at least one example, a collaborative document may support editable text and / or objects that can be ordered, added, deleted, modified, and / or the like. In some examples, a collaborative document may be associated with permissions that define which users of a communication platform can view and / or edit the document. In some examples, a collaborative document may be associated with a communication channel, where members of the communication channel can view and / or edit the document. In some examples, a collaborative document may be shareable such that data associated with the document is accessible and / or interactable by members of multiple communication channels, workspaces, organizations, and / or the like.
[0075] In some examples, a virtual space may be associated with a group (e.g., organization, team, etc.) headquarters (e.g., management or command center). In at least one example, a group headquarters may include a virtual or digital headquarters for management or command functions associated with a group of users. For example, an "HQ" may be associated with an interface including a list of indicators associated with virtual spaces configured to allow associated members to communicate. In at least one example, a user may associate one or more virtual spaces with an "HQ" virtual space, such as via a drag-and-drop operation. That is, a user may determine relevant virtual space(s) to associate with the virtual or digital headquarters, such as associating virtual space(s) important to the user.
[0076] In some examples, the virtual space may be associated with one or more boards or collaborative documents with which the user is associated. In at least one example, the document may include a collaborative document configured to be accessed and / or edited by two or more users with appropriate permissions (e.g., view permissions, edit permissions, etc.). In at least one example, when a user requests access to a virtual space associated with one or more documents with which the user is associated, the one or more documents may be presented via user interface 200. In at least one example, the documents may be associated with an individual (e.g., a user's private document), a group of users (e.g., a collaborative document), and / or one or more communication channels (e.g., members of a communication channel who have been granted access permissions to the document), as described herein, thereby enabling, for example, users of the communication platform to create, interact with, and / or view data associated with such documents. In some examples, the collaborative document may be a virtual space, board, canvas, page, etc. for collaborative communication and / or data organization within the communication platform. In at least one example, a collaborative document may support editable text and / or objects that can be ordered, added, deleted, modified, and / or the like. In some examples, a collaborative document may be associated with permissions that define which users of a communication platform can view and / or edit the document. In some examples, a collaborative document may be associated with a communication channel, where members of the communication channel can view and / or edit the document. In some examples, a collaborative document may be shareable such that data associated with the document is accessible and / or interactable with by members of multiple communication channels, workspaces, organizations, and / or the like.
[0077] Additionally or alternatively, in some examples, a virtual space may be associated with one or more canvases with which users are associated. In at least one example, a canvas may include a flexible canvas for curating, organizing, and sharing collections of information among users. That is, a canvas may be configured to be accessed and / or modified by two or more users with appropriate permissions. In at least one example, a canvas may be configured to enable the sharing of text, images, videos, GIFs, drawings (e.g., user-generated drawings via a canvas interface), game content (e.g., users manipulating game controls synchronously or asynchronously), and / or the like. In at least one example, modifications to a canvas may include adding, deleting, and / or modifying previously shared (e.g., transmitted, presented) data. In some examples, content associated with a canvas may be shareable via another virtual space, thereby making the data associated with the canvas accessible and / or interactable to members of the virtual space.
[0078] The navigation pane 206 may further include indicators representing communication channels (e.g., channels 208). In some examples, the communication channels may include public channels, private channels, shared channels (e.g., between groups or organizations), single-workspace channels, cross-workspace channels, combinations of the above, etc. In some examples, the represented communication channels may be associated with a single workspace. In some examples, the represented communication channels may be associated with different workspaces (e.g., cross-workspace). In at least one example, when a communication channel is cross-workspace (e.g., associated with different workspaces), a user may be associated with both workspaces or only one of the workspaces. In some examples, the represented communication channels may be associated with a combination of communication channels associated with a single workspace and communication channels associated with different workspaces.
[0079] In some examples, navigation pane 206 may show some or all of the communication channels that the user has permission to access (e.g., as determined by permission data). In such examples, communication channels are arranged alphabetically, based on most recent interaction, based on frequency of interaction, based on communication channel type (e.g., public, private, shared, cross-workspace, etc.), based on workspace, in user-specified sections, or similar. In some examples, navigation pane 206 may show some or all of the communication channels of which the user is a member, and the user may interact with user interface 200 to browse or view other communication channels of which the user is not a member but which are not currently displayed in navigation pane 206. In some examples, different types of communication channels (e.g., public, private, shared, cross-workspace, etc.) may be in different sections of navigation pane 206 or may have their own sub-areas or sub-panes within user interface 200. In some examples, communication channels associated with different workspaces may be in different sections of navigation pane 206 or may have their own areas or panes within user interface 200.
[0080] In some examples, the indicator may be associated with a graphical element that visually distinguishes the type of communication channel. For example, project_zen is associated with a lock graphical element. As a non-limiting example, for purposes of this discussion, the lock graphical element may indicate that the associated communication channel, project_zen, is private, with restricted access, while another communication channel, general, is public, with access available to any member of the organization with which the user is associated. In some examples, additional or alternative graphical elements may be used to distinguish between shared communication channels, communication channels associated with different workspaces, communication channels in which the user is currently a member or not, and / or the like.
[0081] In at least one example, the navigation pane 206 may include indicators representing communications with an individual user or multiple designated users (e.g., on behalf of all or a subset of the members of an organization). Such communications may be referred to as “direct messages.” The navigation pane 206 may include indicators representing virtual spaces associated with private messages between one or more users.
[0082] Direct messages 212 may be communications between a first user and a second user, or may be multi-person direct messages between a first user and two or more second users. Navigation pane 206 may be sorted and organized into hierarchies or sections according to user preferences. In some examples, all of the channels a user is authorized to access may be displayed in navigation pane 206. In other examples, a user may choose to hide certain channels or collapse sections containing certain channels. Items in navigation pane 206 may indicate when new messages or updates have been received or are currently unread, for example, by bolding text associated with channels in which unread messages are located or by adding an icon or badge (e.g., with a count of unread messages) to the channel name. In some examples, the group-based communication system may additionally or alternatively store permission data associated with the permissions of individual users of the group-based communication system, indicating which channels the user may view or participate in. Permissions may indicate, for example, which users can communicate directly with other users, which channels the user is permitted to access, restrictions on individual channels, which workspaces the user is permitted to access, and restrictions on individual workspaces.
[0083] Additionally or alternatively, navigation pane 206 may include subsections that are personalized subsections associated with teams of which the user is a member. That is, the "team" subsection may include affordance(s) of one or more virtual spaces associated with the team, such as communication channels, collaborative documents, direct messaging instances, audio or video synchronous or asynchronous conferences, and / or the like. In at least one example, a user may associate a selected virtual space with the team subsection by, for example, dragging and dropping, pinning, or otherwise associating the selected virtual space with the team subsection. Channels in a Group-Based Communication System
[0084] In some examples, the group-based communication system is a channel-based messaging platform, as shown in Figure 2A. Within a group-based communication system, communications can be organized into channels, each dedicated to a particular topic and set of users. A channel is generally a virtual space related to a particular topic that contains messages and files posted by members of the channel.
[0085] For purposes of this description, a “message,” as described herein, may refer to any electronically generated digital object provided by a user using a user computing device 104 and configured for display within a communication channel and / or other virtual space to facilitate communication (e.g., a virtual space associated with direct message communication(s)), such as a virtual space associated with direct message communication(s). A message may include any text, image, video, audio, or combination thereof provided by a user (using a user computing device). For example, a user may provide a message that includes not only text but also images and video within the message as message content. In such an example, the text, image, and video constitute the message. Each message sent or posted to a communication channel of a communication platform may include metadata including a sending user identifier, a message identifier, message content, a group identifier, a communication channel identifier, etc. In at least one example, each of the aforementioned identifiers may include American Standard Code for Information Interchange (ASCII) text, a pointer, a memory address, etc.
[0086] Channel discussions can persist for days, months, or years, providing a historical log of user activity. Members of a particular channel can post messages within that channel that are visible to other members of that channel, along with other messages in that channel. Users may select a channel to browse to see only messages related to that channel's topic, without seeing messages posted in other channels on different topics. For example, a software development company may have a different channel for each software product under development, allowing developers working on each specific project to generally talk about a single topic (e.g., the project) without the noise of unrelated topics. Because channels are generally persistent and targeted to a specific topic or group, users can quickly and easily refer to previous communications for reference. In some examples, the channel pane 218 may display information related to a channel a user selects in the navigation pane 206. For example, a user may select the project_zen channel to discuss Project Zen's ongoing software development efforts. In some examples, the channel pane 218 may include a header containing information about the channel, such as the channel name, a list of users in the channel, and other channel controls. Users may pin items to the header for later access and add bookmarks to the header. In some examples, links to collaborative documents may be included in the header. In a further example, each channel may have a corresponding virtual space that includes channel-related information such as a channel summary, tasks, bookmarks, pinned documents, and other channel-related links that may be editable by members of the channel.
[0087] A communication channel or other virtual space may be associated with data and / or content other than messages or data and / or content associated with messages. For example, non-limiting examples of additional data presentable via the channel pane 218 of the user interface 200 may include collaborative documents (e.g., documents that are collaboratively editable in real time or near real time), audio and / or video data associated with a conversation, members added to and / or removed from a communication channel, file(s) uploaded to and / or removed from a communication channel (e.g., attachment(s)), application(s) added to and / or removed from a communication channel, post(s) added to and / or removed from a communication channel (data that are collaboratively editable in near real time by one or more members of a communication channel), descriptions added to, modified from, and / or removed from a communication channel, modifications to properties of a communication channel, etc.
[0088] The channel pane 218 may include messages, such as message 222, which are content posted to a channel by a user. A user may post text, images, video, audio, or any other file as message 222. In some examples, specific identifiers (among messages or otherwise) may be indicated by preceding them with a predetermined character. For example, a channel may be preceded by a "#" character (such as #project_zen), and a username may be preceded by an "@" character (such as @@J_Smith or @User_A). A message, such as message 222, may include an indication of which user posted the message and when the message was posted. In some examples, a user may react to a message by selecting a reaction button 224. The reaction button 224 allows a user to select an icon, such as a thumbs-up (sometimes referred to in this context as a reaction), to associate with the message. A user may reply to another user's message, such as message 222, with a new message. In some examples, such conversations within a channel may be further divided into threads. Threads may be used to aggregate messages related to a particular conversation, making it easier to follow and reply to the conversation without cluttering the main channel with discussion. A thread reply preview 226 is displayed below the message that starts the thread. The thread reply preview 226 may show information related to the thread, such as the number of replies and the members who replied. The thread replies may be displayed in a thread pane 230, which may be separate from the channel pane 218, and may be viewed by other members of the channel by selecting the thread reply preview 226 in the channel pane 218.
[0089] In some examples, one or both of the channel pane 218 and the thread pane 230 may include a composition pane 228. In some examples, the composition pane 228 allows users to compose and send messages 222 to members of the channel or to members of the channel who are following the thread (if the message is sent in a thread). The composition pane 228 may have text editing features such as bold, strikethrough, and italics, and / or may allow users to format their messages or attach files such as collaborative documents, images, videos, or any other files for sharing with other members of the channel. In some examples, the composition pane 228 may enable additional formatting options, such as numbered or bulleted lists, either through the user interface or an API. The composition pane 228 may act as a workflow trigger to initiate a workflow associated with the channel or message. In further examples, links or documents sent via the composition pane 228 may include unfill instructions regarding how the content should be displayed. Synchronous Multimedia Collaboration Sessions
[0090] FIG. 2B illustrates a multimedia collaboration session (e.g., a synchronous multimedia collaboration session) triggered from a channel, as shown in pane 216. The synchronous multimedia collaboration session may provide ambient, ad-hoc multimedia collaboration in a group-based communication system. Users of the group-based communication system can quickly and easily join or leave these synchronous multimedia collaboration sessions at any time without interrupting the synchronous multimedia collaboration sessions for other users. In some examples, the synchronous multimedia collaboration session may be based on a particular topic, a particular channel, a particular direct message or multiparty direct message, or a set of users; in other examples, the synchronous multimedia collaboration session may exist without being tied to any channel, topic, or set of users.
[0091] The synchronized multimedia collaboration session pane 216 may be associated with multiple users in a channel, users in a multi-party direct message conversation, or a session conducted for users in a direct message conversation. Thus, a synchronized multimedia collaboration session may be initiated for a particular channel, a multi-party direct message conversation, or a direct message conversation by one or more members of that channel or conversation. A user may initiate a synchronized multimedia collaboration session in a channel as a means of communicating with other members of that channel who are currently online. For example, a user may need to make an urgent decision and desire immediate verbal feedback from other members of the channel. As another example, a synchronized multimedia collaboration session may be initiated with one or more other users of a group-based communication system through direct messaging. In some examples, the audience for a synchronized multimedia collaboration session may be determined based on the context in which the synchronized multimedia collaboration session is initiated. For example, initiating a synchronized multimedia collaboration session in a channel may automatically invite the entire channel to participate. As another example, initiating a synchronized multimedia collaboration session allows a user to initiate an instant audio and / or video conversation with other members of the channel without having to schedule or initiate a communication session through a third-party interface. In some examples, users may be directly invited to participate in a synchronous multimedia collaboration session via a message or notification.
[0092] A synchronized multimedia collaboration session may be a short, temporary session in which data is not persisted. Alternatively, in some examples, a synchronized multimedia collaboration session may be recorded, transcribed, and / or summarized for later review. In other examples, the content of a synchronized multimedia collaboration session may be automatically persisted within a channel associated with the synchronized multimedia collaboration session. Members of a particular synchronized multimedia collaboration session may post messages within a messaging thread associated with the synchronized multimedia collaboration session that are visible to other members of the synchronized multimedia collaboration session, along with other messages within the thread.
[0093] The multimedia in a synchronous multimedia collaboration session may include collaboration tools such as any or all of audio, video, screen sharing, collaborative document editing, whiteboarding, co-programming, or any other form of media. The synchronous multimedia collaboration session may also allow users to share their screens with other members of the synchronous multimedia collaboration session. In some examples, members of the synchronous multimedia collaboration session may mark up, comment, draw, or otherwise annotate the shared screen. In further examples, such annotations may be saved and persist even after the synchronous multimedia collaboration session has ended. Canvases may be created directly from the synchronous multimedia collaboration session to further enhance collaboration between users.
[0094] In some examples, a user may start a synchronized multimedia collaboration session via a toggle in the synchronized multimedia collaboration session pane 216 shown in FIG. 2B . When a synchronized multimedia collaboration session is started, the synchronized multimedia collaboration session pane 216 may expand to provide information about the synchronized multimedia collaboration session, such as how many members are present, which user is currently speaking, which user is sharing their screen, and / or a screen share preview 232. In some examples, users in the synchronized multimedia collaboration session may be displayed with an icon indicating they are participating in the synchronized multimedia collaboration session. In further examples, the expanded view of the participants may indicate which users are active and which users are not active in the synchronized multimedia collaboration session. The screen share preview 232 may show a user's screen or a desktop view of a user sharing a particular application or presentation. Changes to a user's screen, such as a user advancing to the next slide in a presentation, are automatically shown in the screen share preview 232. In some examples, the screen share preview 232 may be activated to expand the screen share preview 232 so that it appears as its own pane within the group-based communication system. In some examples, the screen share preview 232 can be activated to pop out into a new window or application that is separate and distinct from the group-based communication system. In some examples, the synchronized multimedia collaboration session pane 216 can include tools for the synchronized multimedia collaboration session that allow a user to mute the user's microphone or invite other users. In some examples, the synchronized multimedia collaboration session pane 216 can include a screen share button 234 that can allow a user to share the user's screen with other members of the synchronized multimedia collaboration session pane 216.In some examples, the screen share button 234 may provide a user with additional controls during a screen share. For example, a user sharing their screen may be provided with additional screen share controls to specify which screen to share, to annotate the shared screen, or to save the shared screen.
[0095] In some cases, the synchronized multimedia collaboration session pane 216 may persist within the navigation pane 206 regardless of the state of the group-based communication system. In some examples, when no synchronized multimedia collaboration session is active and / or depending on which item is selected from the navigation pane 206, the synchronized multimedia collaboration session pane 216 may be hidden or removed from presentation via the user interface 200. In some instances, when the pane 216 is active, the pane 216 may be associated with the currently selected channel, direct message, or multi-party direct message, thereby initiating a synchronized multimedia collaboration session associated with the currently selected channel, direct message, or multi-party direct message.
[0096] The list of synchronized multimedia collaboration sessions may include one or more active synchronized multimedia collaboration sessions selected for recommendation. For example, the synchronized multimedia collaboration session may be selected from a plurality of currently active synchronized multimedia collaboration sessions. Furthermore, the synchronized multimedia collaboration sessions may be selected based in part on user interaction with the session or some association of the instant user with the session or users involved in the session. For example, recommended synchronized multimedia collaboration sessions may be displayed in part based on the instant user being invited to the respective synchronized multimedia collaboration session or having previously collaborated with the user in the recommended synchronized multimedia collaboration session. In some examples, the list of synchronized multimedia collaboration sessions further includes additional information for each synchronized multimedia collaboration session, such as an indication of the participating users or number of participating users, the topic of the synchronized multimedia collaboration session, and / or an indication of associated group-based communication channels, multi-party direct message conversations, or direct message conversations.
[0097] In some examples, the list of recommended active users may include multiple group-based communication system users that are recommended based on at least one of user activity, user interactions, or other user information. For example, the list of recommended active users may be selected based on the user's active status within the group-based communication system, past, recent, or frequent user interactions with the instant user (e.g., communications within a group-based communication channel), or similarity between the recommended user and the instant user (e.g., determining that the recommended user shares a shared channel membership with the instant user). In some examples, machine learning techniques such as cluster analysis may be used to determine the recommended users. The list of recommended active users may include status user information for each recommended user, such as whether the recommended user is active, in a meeting, idle, in a synchronous multimedia collaboration session, or offline. In some examples, the list of recommended active users further includes multiple actuatable buttons corresponding to some or all of the recommended users (e.g., recommended users having a status indicating availability), which, when selected, may be configured to initiate at least one of a text-based communication session (e.g., a direct message conversation) or a synchronous multimedia collaboration session.
[0098] In some examples, one or more recommended asynchronous multimedia collaboration sessions or conferences may be displayed in the asynchronous conference section. In contrast to synchronous multimedia collaboration sessions (described above), asynchronous multimedia collaboration sessions allow each participant to collaborate at their convenience. This collaboration participation is then recorded for later consumption by other participants, which may generate additional multimedia replies. In some examples, replies are aggregated into a multimedia thread (e.g., a video thread) corresponding to the asynchronous multimedia collaboration session. For example, an asynchronous multimedia collaboration session may be used for an asynchronous conference where a topic is posted with a message at the start of the conference thread and conference participants can reply by posting messages or video replies. The resulting thread includes any documents, videos, or other files related to the asynchronous conference. In some examples, a preview of a subset of the video replies may be shown in the asynchronous collaboration session or thread. This may allow, for example, a user to jump to a relevant segment of the asynchronous multimedia collaboration session or pick up where the user previously left off. Connecting within a group-based communication system
[0099] 2C shows user interface 200 displaying connect pane 252. Connect pane 252 may provide tools and resources for users to connect across different organizations, each of which may have its own (usually private) instance of the group-based communication system or may not already belong to the group-based communication system. For example, a first software company may want to collaborate to jointly develop a new software application and form a joint venture with a second software company. Connect pane 252 allows users to determine which other users and organizations are already in the group-based communication system and invite those users and organizations currently outside the group-based communication system to join.
[0100] The connect pane 252 may include a connect search bar 254, recent contacts 256, connections 258, a create channel button 260, and / or a start direct message button 262. In some examples, the connect search bar 254 may allow a user to search for users within the group-based communication system. In some examples, only users from organizations connected to the user's organization are shown in the search results. In other examples, users from any organization that uses the group-based communication system may be displayed. In still other examples, users from organizations that are not yet using group-based communication may also be displayed, allowing the searching user to invite them to join the group-based communication system. In some examples, users may be searched for via the user's group-based communication system username or the user's email address. In some examples, email addresses may be suggested or auto-completed based on external data sources, such as email directories or the searching user's contact list.
[0101] In some examples, external organizations and individual users may be shown in response to a user search. Because search results may include organizations that have not yet joined the group-based communication system, external organizations may be matched based on organization name or Internet domain (similar to searching and matching specific users described above). External organizations may be ranked in part based on how many users from the user's organization are connected to users of the external organization. In response to selecting an external organization in the search results, the searching user may invite the external organization to connect via the group-based communication system.
[0102] In some examples, recent contacts 256 may display users with whom the instant user has recently interacted. Recent contacts 256 may display the user's name, company, and / or status indication. Recent contacts 256 may be ordered based on which contacts the instant user interacts with most frequently or based on which contacts the instant user most recently interacted with. In some examples, each recent contact in recent contacts 256 may be an actuatable control that allows the instant user to quickly start a direct message conversation with the recent contact, invite them to a channel, or take any other appropriate user action with that recent contact.
[0103] In some examples, connections 258 may display a list of companies (e.g., organizations) with which the user has interacted. For each company, the company's name may be displayed along with the company's logo and an indication of how many times the user has interacted with that company, e.g., the number of conversations. In some examples, each connection in connections 258 may be an actuatable control that enables an instant user to quickly invite an external organization to a shared channel, view recent connections with that external organization, or take any other appropriate organizational action with that connection.
[0104] In some examples, the create channel button 260 allows a user to create a new shared channel between two different organizations. By selecting the create channel button 260, the user can further name the new connect channel and enter a description of the connect channel. In some examples, the user may select one or more external organizations or one or more external users to add to the shared channel. In other examples, the user may add external organizations or external users to the shared channel after the shared channel is created. In some examples, the user may select whether to make the connect channel private (e.g., accessible only by invitation from current members of the private channel).
[0105] In some examples, the direct message initiation button 262 allows a user to quickly initiate a direct message (or a multi-party direct message) with an external user of an external organization. In some examples, an external user identifier at the external organization may be provided by the instant user as the external user's group-based communication system username or as the external user's email address. In some examples, analysis of the email domain of the external user's email address may influence messages between the user and the external user. For example, the external user's identifier may indicate that the user's organization and the external user's organization are already connected (e.g., based on the email address domain). In some such examples, the email address may be converted to a group-based communication system username. Alternatively, the external user's identifier may indicate that the external user's organization belongs to the group-based communication system but is not connected to the instant user's organization. In some such examples, an invitation to connect to the instant user's organization may be generated in response. As another alternative, the external user may not be a member of the group-based communication system, and in response, an invitation to join the group-based communication system as a guest or a member may be generated. joint document
[0106] FIG. 2D shows the user interface 200 displaying a collaboration document pane 264. A collaborative document may be any file type, such as a PDF, video, audio, or word processing document, but is not limited to a word processing document or spreadsheet. A collaborative document may be modified and edited by two or more users. A collaborative document may also be associated with different user permissions, such that a user may be selectively authorized to view, edit, or comment on a collaborative document (or a section of a collaborative document) based on the user's permissions for the document (or a section of a document, as described below). Thus, users within a set of users with access to a document may have different permissions to view, edit, comment, or otherwise interface with the collaborative document. In some examples, permissions may be automatically determined and / or assigned based on how the document(s) are created and / or shared. In some examples, permissions may be determined manually. A collaborative document may allow users to create and modify documents simultaneously or asynchronously. Collaborative documents may be integrated with group-based communication systems and may be used to initiate workflows and store workflow results, as discussed further below with respect to Figures 3A and 3B.
[0107] In some examples, the user interface 200 may include one or more collaborative documents (or one or more links to such collaborative documents). A collaborative document (also called a document or canvas) may include a flexible workspace for curating, organizing, and sharing a collection of information among users. Such a document may be associated with a synchronous multimedia collaboration session, an asynchronous multimedia collaboration session, a channel, a multi-party direct message conversation, and / or a direct message conversation. A shared canvas may be configured to be accessed and / or modified by two or more users with appropriate permissions. Alternatively or additionally, a user may have one or more private documents that are not associated with any other user.
[0108] Additionally, such documents can be @mentioned so that a particular document can be referenced within a channel (or other virtual space or document) and / or other users can be @mentioned within such documents. For example, @mentioning a user within a document can provide instructions to the user and / or provide the user with access to the document. In some examples, tasks can be assigned to a user via @mention, and such task(s) can be populated into a pane or sidebar associated with the user.
[0109] In some examples, a channel and a collaborative document 268 may be associated so that when a comment is posted to the channel, the comment is populated into the document 268, and vice versa.
[0110] In some examples, when a first user interacts with a collaborative document, the communication platform may identify a second user account associated with the collaborative document and present an affordance (e.g., a graphical element) in a sidebar (e.g., navigation pane 206) indicating the interaction. Additionally, the second user may select an affordance and / or notification associated with or representative of the interaction to access the collaborative document to efficiently access the document and view updates thereto.
[0111] In some examples, when one or more users interact with a collaborative document, indications (e.g., icons or other user interface elements) may be presented via a user interface with the collaborative document to represent such interactions. For example, if a first instance of the document is currently open on a first user computing device of a first user and a second instance of the document is currently open on a second user computing device of a second user, one or more presence indicators may be presented on the respective user interfaces to indicate various interactions with the document and by which users. In some examples, the presence indicators may have attributes (e.g., appearance attributes) that indicate information about each user, such as, but not limited to, permission level (e.g., edit permission, read-only access, etc.), virtual space membership (e.g., whether a member belongs to a virtual space associated with the document), and how the user is interacting with the document (e.g., currently editing, viewing, open but not active, etc.).
[0112] In some examples, a preview of the collaborative document can be provided. In some examples, the preview can include a summary of the collaborative document and / or a dynamic preview that displays various content (e.g., changing text, images, etc.) to enable a user to quickly understand the context of the document. In some examples, the preview can be based on user profile data associated with the user viewing the preview (e.g., permissions associated with the user, content viewed, edited, created, etc. by the user), etc.
[0113] In some examples, collaborative documents may be created independently of or in association with virtual spaces and / or channels, and may be posted within channels and edited or interacted with as discussed herein, with various affordances or notifications indicating the presence of users associated with the document and / or various interactions.
[0114] In some examples, a machine learning model can be used to determine a summary of the channel's content and create a collaborative document that includes the summary for posting to the channel. In some examples, the communication platform may identify users in the virtual space, actions associated with the users, and other contributions to the conversation to generate the summary document. As such, the communication platform can enable users to create documents (e.g., collaborative documents) to summarize content and events that occurred in the virtual space.
[0115] In some examples, a document may be configured to allow sharing of content, including (but not limited to) text, images, videos, GIFs, drawings (e.g., user-generated drawings via a drawing interface), or game content. In some examples, a user accessing the canvas may add new content or delete (or modify) previously added content. In some examples, appropriate permission may be required for a user to add content or delete or modify content added by a different user. Thus, for example, some users may be able to access part or all of a document only in a view-only mode, while other users may be able to access part or all of the document in an edit mode that allows those users to add or modify its content. In some examples, a document may be shared via a message in a channel, a multi-party direct message, or a direct message, such that data associated with the document is accessible and / or interactable with by members of the channel or recipients of the multi-party direct message or direct message.
[0116] In some examples, collaboration document pane 264 may include a collaborative document toolbar 266 and a collaborative document 268. In some examples, collaborative document toolbar 266 may provide the ability to edit or format a post, as discussed herein.
[0117] In some examples, a collaborative document may include free-form unstructured sections and workflow-related structured sections. In some examples, an unstructured section may include an area of a document where a user can freely modify the collaborative document without constraints. For example, a user may freely type text to describe the purpose of the document. In some examples, a user may add a workflow or structured workflow section by typing (or otherwise mentioning) the name of a workflow. In a further example, typing an "at" sign (@), a previously selected symbol, or a predetermined special character or symbol may provide the user with a list of workflows from which the user can select to add to the document. For example, a user may type "!Marketing Approval" to indicate that a marketing team member needs to sign off on the proposal and initiate a workflow that results in the marketing team member approving the proposal. Placing an exclamation point in front of the "Marketing Approval" group name initiates a request for a specific action, in this case, routing the proposal for approval. In some examples, a structured section may include a text entry, a selection menu, a table, a checkbox, a task, a calendar event, or any other document section. In a further example, a structured section may include a text entry space that is part of a workflow. For example, a user may enter text into a text entry field detailing the reason for approval and then select a submit button that advances the workflow to the next step in the workflow. In some examples, a user may be able to add, edit, or remove structured sections of the document that make up the workflow components.
[0118] In an example, sections of a collaborative document may have individual permissions associated with them. For example, a collaborative document having sections with individual permissions may provide a first user with permission to view, edit, or comment on the first section, but a second user does not have permission to view, edit, or comment on the first section. Alternatively, a first user may have permission to view the first section of the collaborative document, and a second user may have permission to view and edit the first section of the collaborative document. Permissions associated with a particular section of a document may be assigned by the first user through various methods, including manual selection of the particular section of the document by the first user or another user with permission to assign permissions, typing or selecting an “assign” indicator such as an “@” symbol, or selecting the section by its name. In a further example, permissions may be assigned to multiple collaborative documents in a single instance through these methods. For example, multiple collaborative documents each have a section titled “Group Information,” and a first user with permission to assign permissions desires that an entire group of users access the information in the “Group Information” section of the multiple collaborative documents. In an example, a first user can select multiple collaborative documents and a “Group Information” section to effectuate permission for the entire user group to access (or view, edit, etc.) the “Group Information” section of each collaborative document of the multiple collaborative documents. Automation in group-based communication systems
[0119] FIG. 3A illustrates a user interface 300 for automation in a group-based communication system. Automation, also referred to as workflow, allows users to automate functions within the group-based communication system. A workflow builder 302 is shown that allows users to create new workflows, modify existing workflows, and review workflow activities. The workflow builder 302 may include a workflow tab 304, an activity tab 306, and / or a settings tab 308. In some examples, the workflow builder may include a publish button 314 that allows users to publish new or modified workflows.
[0120] By selecting the Workflows tab 304, a user can create a new workflow or modify an existing workflow. For example, a user may want to create a workflow to automatically welcome new users who join a channel. A workflow may include workflow steps 310. Workflow steps 310 may include at least one trigger that starts the workflow and at least one function that takes an action when the workflow is triggered. For example, a workflow may be triggered when a user joins a channel, and the workflow's function may be to post in the channel welcoming the new user. In some examples, a workflow may be triggered from a user action, such as a user reacting to a message, joining a channel, or collaborating on a collaborative document, from a scheduled date and time, or from a web request from a third-party application or service. In further examples, a workflow function may include sending a message or form to a user, a channel, or any other virtual space, modifying a collaborative document, or interfacing with an application. Workflow functions may include workflow variables 312. For example, a welcome message may include the user's name via a variable to allow for a customized message. A user may edit existing workflow steps or add new workflow steps depending on the desired workflow function. Once a workflow is complete, the user may publish it using the publish button 314. A published workflow waits until it is triggered, at which point it performs its function.
[0121] The activity tab 306 may display information related to the activities of the workflow. In some examples, the activity tab 306 may indicate how many times the workflow has run. In further examples, the activity tab 306 may include information related to each workflow run, including the status, the date of the last activity, the run time, the user who started the workflow, and other relevant information. The activity tab 306 may allow a user to sort and filter the workflow activities to find useful information.
[0122] The settings tab 308 may allow a user to modify the settings of a workflow. In some examples, a user may change the title or icon associated with a workflow. A user may also manage collaborators associated with a workflow. For example, a user may add additional users to a workflow as collaborators so that the additional users can modify the workflow. In some examples, the settings tab 308 may also allow a user to delete a workflow.
[0123] 3B illustrates workflow-related elements within a group-based communication system, generally referred to as reference numeral 316. In various examples, trigger(s) 318 may be configured to invoke the execution of function(s) 336 in response to a user command. The trigger initiates function execution and may take the form of one or more schedule(s) 320, webhook(s) 322, shortcut(s) 324, and / or slash command(s) 326. In some examples, schedule 320 acts like a timer, scheduling the trigger to fire periodically or once at a predetermined time in the future. In some examples, an end user of an event-based application sets an arbitrary schedule for the firing of the trigger, such as once an hour or at 9:15 a.m. daily.
[0124] Additionally, the trigger 318 may take the form of a webhook 322. The webhook 322 may be a software component that listens on a webhook URL and port. In some examples, the trigger fires when a suitable HTTP request is received on the webhook URL and port. In some examples, the webhook 322 requires proper authentication, such as with a bearer token. In other examples, the trigger depends on the payload content.
[0125] Another source of a trigger for one of trigger(s) 318 is a shortcut within shortcut(s) 324. In some examples, shortcut(s) 324 may be global to the group-based communication system and not specific to a group-based communication system channel or workspace. A global shortcut may trigger a function that can be performed without the context of a particular group-based communication system message or group-based communication channel. In contrast, a message-based or channel-based shortcut is specific to a group-based communication system message or channel and operates in the context of the group-based communication system message or group-based communication channel.
[0126] A further source of trigger for one of triggers 318 may be provided by slash command 326. In some examples, slash command(s) 326 may serve as an entry point for group-based communication system functionality, integration with external services, or group-based communication system message responses. In some examples, slash command 326 may be entered by a user of the group-based communication system to trigger the execution of an application function. The slash command may be followed by slash command line parameters, which may be passed to any group-based communication system function invoked in connection with the trigger of the group-based communication system function, such as one of functions 336.
[0127] An additional way a function is invoked is when an event (such as one of events 328) matches one or more conditions predetermined in a subscription (such as subscription 334). Event 328 can be subscribed to by any number of subscriptions 334, with each subscription specifying different conditions and triggering different functions. In some examples, events are implemented as group-based communication system messages received in one or more group-based communication system channels. For example, all events may be posted as non-user-visible messages in the associated channel, which are monitored by subscription 334. App event 330 can be a group-based communication system message with associated metadata created by an application in a group-based communication system channel. Event 328 can also be a direct message received by one or more group-based communication system users, who can be actual users or technical users such as bots. Bots are technical users of the group-based communication system used to automate tasks. Bots can be programmatically controlled to perform various functions. Bots can monitor and help process group-based communication system channel activity as well as post messages in group-based communication system channels and react to members' in-channel activity. Bots can post messages and upload files as well as be invited or removed from both public and private channels in the group-based communication system.
[0128] Events 328 can be any events associated with the group-based communication system. Such group-based communication system events 332 include events related to the creation, modification, or deletion of a user account in the group-based communication system, or events related to messages in a group-based communication system channel, such as creating a message, editing or deleting a message, or reacting to a message. Events 328 can also be related to the creation, modification, or deletion of a group-based communication system channel or channel membership. Events 328 can also be related to changing a user profile or creating a group, managing members, or deleting a group.
[0129] As described above, subscriptions 334 indicate one or more conditions that, when matched with an event, trigger a function. In some examples, a set of event subscriptions is maintained in association with the group-based communication system, and when an event occurs, information about the event is matched against the set of subscriptions to determine which function 336 (if any) should be invoked. In some examples, the events to which a particular application may subscribe are managed by an authorization framework. In some cases, the event types matched against subscriptions are managed by OAuth permission scopes, which may be maintained by an administrator of a particular group-based communication system.
[0130] In some examples, function 336 can be triggered by triggers 318 and events 328 to which it subscribes. Function 336 takes zero or more inputs, performs processing (potentially including accessing external resources), and returns zero or more results. Function 336 can be implemented in a variety of forms. First, there are group-based communication system built-ins 338 associated with core functionality of a particular group-based communication system. Some examples include creating a group-based communication system user or channel. Second, there are no-code builder functions 340 that can be developed by a user of a group-based communication system user in association with an automation user interface, such as a workflow builder user interface. Third, there are hosted code functions 342 implemented by a group-based communication system application developed as software code in association with a software development environment.
[0131] These various types of functions 336 may then be integrated with APIs 344. In some examples, the APIs 344 are associated with third-party services that the functions 336 employ to provide custom integration between the particular third-party service and the group-based communications system. Examples of third-party service integrations include video conferencing, sales, marketing, customer service, project management, and engineering application integration. In such an example, one of the triggers 318 may be a slash command 326 used to trigger a hosted code function 342 that makes an API call to a third-party video conferencing provider via one of the APIs 344. As shown in FIG. 3B , the APIs 344 may themselves also be the source or event 328 of any number of triggers 318. Continuing with the example above, successful completion of a video conference triggers one of the functions 336 to send a message that initiates a further API call to the third-party video conferencing provider to download and archive the video conference recording and save it to a group-based communications system channel.
[0132] In addition to integrating with API 344, function 336 may persist and access data in tables 346. In some examples, tables 346 are implemented in association with a database environment associated with a serverless execution environment in which a particular event-based application is running. In some instances, tables 346 may be provided in association with a relational database environment. In other examples, tables 346 are provided in association with a database mechanism that does not employ relational database techniques. As shown in FIG. 3B , in some examples, the reading or writing of specific data to one or more of tables 346, or data in a table that matches predefined conditions, is itself the source of a number of triggers 318 or events 328. For example, if table 346 is used to maintain discovery data in an incident management system, the number of open tickets may exceed a predetermined threshold, triggering a message to be posted to an incident management channel in a group-based communication system.
[0133] FIG. 4 illustrates an exemplary user interface 400 associated with a communication platform, as described herein, for displaying a user profile including a frequent channels section, a related people section, and / or a frequent topics section.
[0134] The exemplary user interface 400 may present information associated with a user account (e.g., “Jordan Becker” as shown in user profile 402). As shown in FIG. 4 , the user interface 400 may present data associated with one or more channels, people, documents, and / or, in some examples, one or more workspaces. The exemplary user interface 400 may include a section (which may be, for example, a portion, pane, or other divided unit of the user interface 400) that presents contact information 404 associated with the user account. The contact information 404 may include, for example, one or more email addresses, phone numbers, preferred contact methods, social networking handles, addresses, occupations, organizations, companies, etc. In some examples, the user profile 402 (sometimes referred to as a “user account”) may include additional information or content, such as the user's photo, work hours, etc.
[0135] In some examples, a user account may store data associated with a user, including, but not limited to, one or more usage identifiers associated with different organizations, groups, or entities with which the user is associated, one or more group identifiers for groups (or organizations, teams, entities, etc.) with which the user is associated, one or more channel identifiers associated with channels authorized by the user, an indication of whether the user is the owner or administrator of any channels, an indication of whether the user has any channel restrictions, one or more direct message identifiers associated with direct messages with which the user is associated, one or more document identifiers associated with collaborative and / or personal documents with which the user is associated, multiple message objects, multiple emojis, multiple conversations, multiple conversation topics, time zone, work hours, status, etc.
[0136] In some examples, the exemplary user interface 400 may include a section that includes users 406 or user accounts that the user works with or reports to. For example, the users 406 (or people) may include one or more managers, supervisors, team leaders, group leaders, direct reports, mentors, colleagues, HR members, etc. In some examples, the users 406 are associated with a role, title, or position within an organization or communication platform. For example, as shown in FIG. 4, users G. Presley are associated with the title of manager, and K. Garcia, T. Johnson, and M. Miller are associated with the role of “direct reports.”
[0137] In some examples, the exemplary user interface 400 may include a section for viewing mentions and messages 408 associated with the user account. As shown in FIG. 4 , the mentions and messages 408 section may include one or more of recent messages sent to the user account, recent messages sent by the user account to another user, recent replies to a post, recent mentions of the user or user account in a channel, favorite or highlighted messages, etc. The type of information included in the mentions and messages 408 section may depend on privacy settings associated with the user account, user account preferences, privacy settings associated with the message (e.g., whether the message was sent privately), keywords or phrases associated with the message, etc. When a user selects a message in the mentions and messages 408 section, a messages pane may be presented. In some examples, the messages pane may include access to content associated with the message, including the ability to reply to the message, the ability to react to the message, the ability to set a reminder associated with the message, the ability to send the message to another user, etc.
[0138] In some examples, the exemplary user interface 400 may include any number of channels 410 that may be used to organize conversations between users according to topic. In some examples, the exemplary user interface 400 may include channels 410 such as a general channel, a social channel, a random channel, a help-tech channel, a help-onboarding channel, a design team ideas channel, a creative art project channel, and / or any other channel associated with a user account. When a user selects a channel 410, a channel pane or window may be presented. In some examples, the channel pane may include access to content associated with the channel in addition to allowing the user to add other members, post content, etc.
[0139] In some examples, the exemplary user interface 400 may include any number of frequent channels 412 associated with a user account. The frequent channels 412 may include channels on which the user account is active (e.g., channels that the user frequently interacts with) or channels that the user manages. In some examples, the frequent channels 412 may include channels that are most relevant to an area of expertise associated with the user. In some examples, the frequent channels 412 may include channels that are not included in the channels 410 section of the user profile. In some examples, the frequent channels 412 section may be generated (i.e., output) by machine learning model(s) 430 configured to receive user interaction data associated with channel(s) 420, post(s) 422, relationship(s) 424, document(s) 426, and / or interaction(s) 428 associated with a communication platform.
[0140] For example, the machine learning model(s) 430 may be configured to receive interaction data associated with the channel(s) 420. The channel interaction data may include interactions users have with respect to channels or virtual spaces associated with the communication platform. For example, the channel interaction data may include user activities such as creating a channel (e.g., creating a channel indicates a higher degree of interest in the channel), adding one or more users to a channel, posting content to a channel (e.g., messages, reactions, documents, images, videos, links to other documents, etc.), responding to content in a channel within a period of time (e.g., responding to content posted in a channel within a shorter period of time indicates a higher degree of interest in the channel), interacting with a channel a threshold number of times within a period of time (e.g., viewing a channel three times a day versus viewing a channel once a week), the duration of time spent viewing content in a channel (e.g., keeping a channel open on a user computing device for a period of time), accessing and editing documents in a channel, etc.
[0141] In some examples, machine learning model(s) 430 may be configured to receive interaction data associated with post(s) 422. The post(s) 422 data may be associated with a data feed (or “feed”) including messages posted to one or more communication channels and / or other virtual spaces and / or actions taken thereon to facilitate communication. In some examples, the post(s) data may include the creation of the post (e.g., which member of the channel created the post), edits to the post, reactions to the post, the length of the post, the type of post (e.g., image, video, document link, etc.), etc. Messages sent over communication channels may also include metadata including a sending user identifier, a message identifier, message content, a group identifier, a communication channel identifier, etc., which may be input into the machine learning model(s) 430.
[0142] In some examples, the machine learning model(s) 430 can be configured to receive interaction data associated with the relationship(s) 424 data. The relationship(s) 424 data broadly includes not only a user's set of direct and indirect interactions with another user, but also interactions with channels. For example, the relationship(s) 424 data can include interactions between users or user accounts, including, for example, the number of messages a user read from another user, how quickly a message was read (e.g., when it was opened after receiving the message), and / or how quickly a message was responded to after being sent, the number of reactions a user made to another user's messages (e.g., using emojis or by @mentioning the user or message), the number of direct messages a user sent to another user, the number of channels the user and another user share, the size of the channels the user and another user share (e.g., being active in smaller channels indicates a closer business relationship), and the like, which can be input into the machine learning model(s) 430. In some examples, relationship 424 data may include communications between users with particular roles, titles, positions, or affiliations within the communication platform (e.g., CEO, CTO, supervisor, researcher, research assistant, etc.).
[0143] The relationship(s) 424 interaction data may include a user's relationship to one or more channels. For example, the relationship data may include whether the user joined a channel (i.e., after receiving an invitation), the number of messages the user sent in the channel, when the user was recently active in the channel, the number of messages or posts the user read in the channel, how often the user checks for updates in the channel, whether the user starred or favorited the channel, how similar the channel is to other channels the user participates in, and / or the like. In some examples, the relationship(s) 424 data may include a user's relationship to a topic, keyword, or key phrase (e.g., the number of keywords or phrases used by an individual user). For example, the number of messages the user sent about the topic, the number of messages the user read about the topic, the number of reactions received on the user's messages about the topic, the number of times a file or document about the topic was attached to the user's message and downloaded by other users, the number of questions the user asked about the topic, the number of answers the user provided to questions about the topic, etc.
[0144] In some examples, the machine learning model(s) 430 may be configured to receive interaction data associated with the document(s) 426. For example, the data associated with the document(s) 426 may include the document's title, the document's author(s), the user(s) with whom the document is shared, the channel(s) to which the document was posted, user responses to the document posted to the channel, edits made to the document (e.g., type of edits, frequency of edits, etc.), the document's content (e.g., text, symbols, emojis, drawings, images, videos, charts, lists, calendar ideas, spreadsheets, etc.), the document's topic (including keywords or phrases found within the document), the document's summary, and / or the like. The machine learning model(s) 430 may be configured to apply a particular weight to interaction data associated with a particular document or file. For example, interaction data associated with a document related to a particular topic (e.g., research projects, published articles, machine learning, or artificial intelligence) may be given a greater weight compared to other documents. In some examples, the machine learning model may compare documents within a channel, between groups of channels, between groups of users, organizations, and / or communication platforms, etc. In some examples, the weighting applied to interaction data associated with document(s) 426 may vary depending on the individual user, the particular role or title associated with the user (e.g., CEO, CTO, supervisor, researcher, research assistant, etc.), and / or the type of interaction the user has with the document.
[0145] In some examples, the machine learning model(s) 430 may be configured to receive other interaction data 428 associated with the communication platform. In some examples, the machine learning model(s) 430 may be configured to receive interaction data based on permission settings associated with a user account, a channel, a message, a document, etc. For example, the machine learning model(s) 430 may receive data associated with public interactions (e.g., data shared with two or more users, such as in a group channel or group chat), while ignoring private interactions between one or more users, such as private messages sent between users. Interaction data may be considered “public” if users within an organization or channel may view, respond to, react to, or otherwise participate in sharing the interaction data through the virtual space or channel. Interaction data may be “private” if it is associated with restrictions or limits viewing of communications within the virtual space or channel to only specific users or users with appropriate permissions. In some examples, the machine learning model(s) 430 may be at least partially trained to recognize and extract keywords or key phrases from private messages to help generate one or more representative channels, users, and / or topics to associate with a user account.
[0146] In some examples, the machine learning model(s) 430 may be configured to receive interaction data associated with a third-party application or provider. The third-party interaction data may include user interactions with an external contact list, calendar, messaging application, email, or other information stored in association with a third-party service provider. In some examples, accessing the stored interaction data associated with the third-party application or provider may include sending a request to access specific interaction data.
[0147] In some examples, the machine learning model(s) 430 may generate data representing one or more representative channels based at least in part on the user interaction data. The representative channels may include frequently used channels that a user interacts with or manages. In some examples, the machine learning model(s) 430 may be configured to output confidence scores associated with individual channels of the representative channels. The confidence scores may indicate the degree of likelihood that an individual channel will be associated with a user account. In some examples, the communication platform may determine an order in which to present the representative channels based at least in part on the confidence scores. In some examples, the confidence scores may be compared to a threshold score (e.g., greater than 50%, 60%, 90%, etc.) such that only channels with confidence scores above the threshold are associated with the user's profile data. In some examples, the communication platform may divide the representative channels into two or more sections based at least in part on the confidence scores associated with the individual channels. For example, a communications platform may have a first section containing representative channels associated with confidence scores between 25% and 50%, a second section containing representative channels associated with confidence scores between 51% and 80%, and a third section containing representative channels associated with confidence scores between 81% and 100%. These confidence scores are merely examples, and any values may be used.
[0148] In some examples, the communications platform may allow a user to edit (e.g., using graphic identifier 418) or reorder the order of the representative channels. The communications platform may then present the representative channels based on the selected order via a user interface associated with the group-based communications platform. In some examples, the communications platform may allow a user to highlight (e.g., increase size, change color, bold, italicize, etc.), star (e.g., favorite), or otherwise emphasize (e.g., with an indicator) one or more representative channels according to the user's personal preferences. In some examples, user-created channels may be associated with indicators.
[0149] In some examples, the machine learning model may generate data representing one or more frequent channels based at least in part on the number of frequent channels already associated with the user's profile data. For example, the user's profile may be associated with a maximum number of frequent channels (e.g., three channels, five channels, 20 channels, etc.). The maximum number of frequent channels that may be presented on the user's profile page may be set by the communication platform, the organization, an administrator, or the user. In some examples, the user's profile may be associated with a minimum number of frequent channels. For example, the user may have no more than three frequent channels at any one time. The profile page associated with the maximum number of frequent channels may still be updated (e.g., automatically or by the user) over time to include new frequent channels. For example, the machine learning model may recommend new frequent channels to the user based on new interaction data input into the machine learning model over time. In some examples, the machine learning model may update the frequently used channels associated with the profile page based on a user's request to modify profile data, detecting a threshold number of keywords or key phrases associated with the user or user account, detecting the creation of a threshold number of channels, detecting that a threshold number of new user accounts have been added to the communications platform, detecting that a threshold number of new employees have been added to the user's organization, or the passage of a threshold period of time.
[0150] In some examples, the exemplary user interface 400 may include any number of related people 414 (or related users) associated with a user account. The related people 414 may include other users or user accounts with which the user account actively interacts or is involved. In some examples, the related people 414 may include users working on similar projects, users who share a general area of expertise, users who share a threshold number of channels, and / or users who may be interested in collaborating on a project. In some examples, the section of related people 414 associated with a user account may be generated (i.e., output) by machine learning model(s) 430 configured to receive user interaction data associated with channel(s) 420, post(s) 422, relationship(s) 424, document(s) 426, and / or interaction(s) 428 associated with a communication platform. In some examples, the machine learning model that outputs one or more related people 414 (or representative users) is the same or a different machine learning model that outputs one or more representative channels.
[0151] In some examples, the machine learning model(s) 430 may be configured to output confidence scores associated with individual users of the representative user. The confidence scores may indicate the degree of likelihood that the individual users will be associated with the user account. In some examples, the communication platform may determine the order in which to present the representative users based at least in part on the confidence scores. In some examples, the confidence scores may be compared to a threshold score (e.g., above 50%, 60%, 90%, etc.) so that only users whose confidence scores exceed the threshold are associated with the user's profile data. In some examples, the communication platform may divide the representative users into two or more sections based at least in part on the confidence scores associated with the individual users. For example, the communication platform may have a first section including representative users associated with confidence scores between 25% and 50%, a second section including representative users associated with confidence scores between 51% and 80%, and a third section including representative users associated with confidence scores between 81% and 100%. These confidence scores are merely examples, and any values may be used.
[0152] In some examples, the communication platform may allow a user to edit (e.g., using graphic identifiers 418) or reorder the order of representative users (e.g., associated persons or users). The communication platform may then present the representative users based on the selected order via a user interface associated with the group-based communication platform. In some examples, the communication platform may allow a user to highlight (e.g., increase size, change color, bold, italicize, etc.), star (e.g., favorite), or otherwise emphasize (e.g., with an indicator) one or more representative users according to the user's personal preferences.
[0153] In some examples, the machine learning model may generate data representing one or more related persons (or users) based at least in part on the number of related persons already associated with the user's profile data. For example, a user's profile may be associated with a maximum number of related persons (e.g., three related persons, five related persons, twenty related persons, etc.). The maximum number of related persons that may be presented on a user's profile page may be set by the communication platform, the organization, an administrator, or the user. In some examples, a user's profile may be associated with a minimum number of related persons. For example, a user may have no fewer than three related persons at any one time. A profile page associated with the maximum number of related persons may still be updated (e.g., automatically or by the user) over time to include new related persons (e.g., due to the user leaving or joining the communication platform or organization, changes in business relationships over time, changes in general business projects, etc.). For example, the machine learning model may recommend new related persons to a user based on new or changing interaction data input into the machine learning model over time. In some examples, the machine learning model may update related users associated with a profile page based on a user's request to modify profile data, detecting a threshold number of keywords or key phrases associated with a user or user account, detecting a threshold number of new user accounts, detecting a threshold number of users or communications platforms leaving an organization or communications platform, accounts being added to a communications platform, the passage of a threshold period of time, etc.
[0154] In some examples, the exemplary user interface 400 may include any number of frequent topics 416 associated with a user account. The frequent topics 416 may include topics that the user account frequently discusses in messages, channels, and / or documents. In some examples, the frequent topics 416 may include topics on which the user account is considered an “expert” or is interested in discussing with other users. For example, a machine learning model may analyze a particular topic (e.g., machine learning, artificial intelligence, graphic design, etc.) discussed among all users or groups of users associated with the group-based communication platform and determine (based at least in part on a comparison of data between user accounts) which users most frequently discuss the topic (e.g., respond to questions about the topic, use keywords or phrases associated with the topic, generate documents associated with the topic, etc.). The topics may be general or specific (e.g., machine learning vs. a machine learning model specifically related to the user account). In some examples, the machine learning model may associate a topic with only a certain number of users or groups of users. For example, the machine learning model may associate a topic with only the top 1%, 5%, or 10% of user accounts. Alternatively, or in addition, the machine learning model may associate a maximum or minimum number of user accounts with a topic. For example, the machine learning model may associate a topic with only 10, 15, or 20 of all user accounts on the group-based communication platform, or among specific user groups (e.g., among a group of inventors or researchers, an organization, a group of organizations, etc.).In some examples, the machine learning model may automatically update the topics associated with individual user accounts based at least in part on receiving additional interaction data, the passage of time, determining that a certain number of new users have joined the communication platform, detecting some keywords or key phrases, receiving a request to update the topic section associated with the individual user account, etc.
[0155] In some examples, the exemplary user interface 400 may allow a user associated with a user account to edit information presented on the user account. For example, the exemplary user interface 400 may include graphic identifiers 418 associated with individual sections of the user account. For example, the graphical identifiers 418 may be associated with contact information 404, people 406, mentions and messages 408, channels 410, frequent channels 412, related people 414, frequent topics 416, or any other section associated with the user account. For example, by selecting the graphic identifiers 418 associated with an individual section, the user can edit (i.e., add, delete, reorder, highlight, etc.) the information associated with the individual section. In some examples, in response to receiving an indication that a user has edited information presented on the user account, the machine learning model may automatically update other information associated with the user account. For example, the machine learning model may detect that a user has edited (e.g., added, deleted, reordered, etc.) information about one or more users or channels associated with the user account and automatically present to the user one or more representative users or representative channels that the user may wish to associate with the user account. In some examples, edits that a user makes to their profile (e.g., adding, removing, reordering users, channels, and / or topics associated with the profile page) may be input as training data into a machine learning model.
[0156] FIG. 5 illustrates exemplary first and second user interfaces associated with communication profiles, as described herein, for displaying profile data associated with a user account. In some examples, the communications platform may present particular profile data associated with a first user account to a viewing user (e.g., a second user) based in part on the user's preference indications, which may be explicitly indicated or learned using machine learning model(s) 502. In some examples, the profile data presented to the second user may be based on the second user's role, position, type of user account (e.g., whether the user is an administrator, a verified user, etc.), which may be determined at least in part based on an organizational chart and / or learned over time based on user interactions. For example, the communications platform may analyze messaging and / or other interaction data to determine relationships and / or relative ranks, roles, or positions between users. This may allow a user viewing another user's profile to be presented with information (e.g., channels, users, etc.) that is most relevant to the viewing user.
[0157] In some examples, the machine learning model(s) 502 may generate different profile data to be displayed associated with a first user account depending on which user is viewing the profile data. For example, the machine learning model may generate the different profile data based at least in part on interaction data associated with the user account viewing the profile data, interaction data associated with the viewing user and the user account associated with the profile data, one or more permission or privacy settings, etc. For example, a second user account associated with computing device 504(1) may request (506(1)) to view profile data (e.g., a profile page) associated with a first user account (e.g., Jordan Becker, as shown in FIG. 5). The machine learning model(s) 502 may generate first profile data to be displayed on a first user interface 508(1) associated with computing device 504(1) based at least in part on the request. The first profile data may include a first section 510(1) including one or more frequent channels, a second section 512(1) including one or more related people (or related users), and / or a third section 514(1) including one or more frequent topics associated with the first user account. Additionally, a third user associated with computing device 504(2) may also request 506(2) to view profile data (e.g., a profile page) associated with the first user account (e.g., Jordan Becker, as shown in FIG. 5). The machine learning model(s) 502 may generate second profile data, based at least in part on the request, that is displayed on a second user interface 508(2) associated with computing device 504(2).The second profile data may include a first section 510(2) containing one or more frequent channels, a second section 512(2) containing one or more associated people (or associated users), and / or a third section 514(2) containing one or more frequent topics associated with the user account.
[0158] In some examples, one or more of the sections may be associated with one or more indicators that indicate additional information. For example, as shown in FIG. 5, second section 512(2) may include indicators 518 associated with individual users. Indicators 518 may indicate whether the individual users are currently active, whether they belong to the same organization as the viewing user (e.g., a second user associated with computing device 504(1)), whether they belong to the same department as the viewing user, whether they have worked with the user in the past, whether they are associated with the viewing user's contact list, etc.
[0159] In some examples, the machine learning model(s) 502 may present additional, less, or different profile data based at least in part on the user account viewing the profile data. For example, first interaction data associated with a first user account and second interaction data associated with a second user account may be input into the machine learning model(s) 502. The machine learning model(s) 502 may then analyze the first and second interaction data and generate (as output) first data representing one or more representative channels and second data representing one or more representative users associated with the profile data of the first user account. The group-based communications platform may receive a request from a second user account to view the profile data associated with the first user account. The representation component associated with the machine learning model(s) 502 may then present, via a user interface, one or more representative channels and / or one or more representative users associated with the first user account to the second user account based at least in part on the interaction data representing interactions between the first user account and the second user account. For example, the one or more representative channels and / or one or more representative users may be presented based on channels and / or users with which the second user account is not yet associated, channels and / or users with which the second user account may be interested in collaborating, channels and / or users working on similar projects or having a similar background as the second user account, etc.
[0160] In some examples, machine learning model(s) 502 may reorder the information presented in one or more sections depending on interaction data associated with a user account that is viewing profile data of another user account. For example, as shown in Figure 5, machine learning model(s) 502 may present the "#FORCE-ARTWORK" channel to a second user associated with computing device 504(1) as the third channel in first section 510(1) and to a third user associated with computing device 504(2) as the seventh channel in first section 510(2). Similarly, as shown in FIG. 5, machine learning model(s) 502 may present “C. Simon” to a second user associated with computing device 504(1) as being a first user in first section 510(1) and to a third user associated with computing device 504(2) as being a second user in first section 510(2).
[0161] In some examples, the machine learning model(s) 502 may generate additional or different profile data based at least in part on the user account viewing the profile data. For example, as shown in FIG. 5, the machine learning model(s) 502 may generate related document data and present a fourth section 516 including one or more related documents to a user associated with the computing device 504(2). The machine learning model may generate the related documents based at least in part on interaction data (e.g., channels, messages, actions taken within documents) between a third user account and a first user account associated with the profile data (e.g., Jordan Becker, as shown in FIG. 5). For example, the machine learning model(s) 502 may determine, based at least in part on the input data, that the third user account and the first user account share one or more channels, have worked together on one or more projects or are currently working together on one or more documents, are working on similar projects, are working with one or more of the same users, share similar roles or areas of expertise, etc. The machine learning model may then generate and present additional profile data, such as related document data included in fourth section 516. The one or more documents included in fourth section 516 may be documents that the first and / or second user accounts are working on, documents shared between the first and second user accounts, documents related to topics of interest to both user accounts, documents that the second user account may be interested in viewing, etc.
[0162] In some examples, the communication platform may present certain profile data associated with a first user account to a viewing user (e.g., a second user account) based on permission data associated with the second user account and / or the first user account. For example, a user with a first permission (e.g., full access) may be presented with profile data associated with a first profile page, while another user with a second permission (e.g., partial access) may be presented with second profile data associated with a second profile page that differs from the first profile data (e.g., a user may not be able to view certain contact information 404, mentions and messages 408, one or more channels in the frequent channels 412 section, one or more associated people 414, or one or more frequent topics 416, and / or other information). In some examples, permissions may be set automatically by a communication platform administrator, manager, employer, company, organization, team leader, group leader, individual user, or other entity utilizing the communication platform to communicate with users. In some examples, the permissions may indicate which users may be associated with the user account's profile data, which channels may be associated with the user account's profile data, any restrictions on individual channels, restrictions on sharing, editing, or documents that may be associated with the user account's profile data. For example, a communications platform may restrict or prevent user accounts associated with the human resources or information technology departments from being associated with the user account's profile data.
[0163] FIG. 6 is a flow diagram illustrating an example process for generating data associated with representative channels and representative users using machine learning model(s), as described herein. Process 600 is illustrated as a collection of blocks in a logical flow diagram that represent sequences of operations, some or all of which may be implemented in hardware, software, or a combination thereof. In the software context, the blocks represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, perform the described operations. Generally, computer-executable instructions include routines, programs, objects, components, encryption, decryption, compression, recording, data structures, etc. that perform particular functions or implement particular abstract data types. The order in which operations are described should not be construed as limiting. Any number of the described blocks may be combined in any order and / or in parallel to implement a process or alternative processes, and not all of the blocks need be performed in all examples. For illustrative purposes, the processes herein are described with reference to the frameworks, architectures, and environments described in the examples herein, although the processes may be implemented in a wide variety of other frameworks, architectures, and environments.
[0164] At operation 602, process 600 may include receiving, from a first user account associated with the group-based communication platform, interaction data representing interactions between the first user account and at least one of other user accounts or channels associated with the group-based communication platform. In some examples, the interaction data may include the first user's interactions with the first user's own user account, interactions with one or more users (e.g., sending messages, responding to messages, sending and / or editing documents between users), interactions with one or more channels (e.g., creating a channel, sharing a channel with one or more users, posting content to a channel, etc.). As described above in connection with FIG. 4, the interaction data may include the user's interactions with one or more channels, posts, relationship data, documents, and / or other interactions associated with the group-based communication platform.
[0165] At operation 604, process 600 may include inputting the interaction data into a machine learning model trained to determine one or more channels with which the user account actively interacts and / or one or more users with whom the user account actively interacts via the group-based communication platform. In some examples, the machine learning model may evaluate and analyze the interaction data associated with the group-based communication platform. In some examples, the machine learning model may determine one or more topics that the user account actively discusses or is interested in discussing with other users.
[0166] At operation 606, process 600 may include generating, by the machine learning model, first data representing one or more representative channels and second data representing one or more representative users associated with the group-based communication platform based at least in part on the input. The representative channels may include channels with which the user most frequently interacts or is most interested. The representative users may include users who most frequently interact with the user account. Alternatively, or in addition, the machine learning model may generate one or more topics that the user frequently discusses or is interested in discussing with other users associated with the group-based communication platform.
[0167] At operation 608, process 600 may include associating first data representing one or more representative channels and second data representing one or more representative users with profile data associated with the first user account. In some examples, the first data and the second data may be stored in a data store. In some examples, the first data and the second data may be initially presented to a user associated with the first user account before being associated with the profile data. For example, a representation component associated with the machine learning model may request that a user accept, confirm, or decline to associate the first data representing one or more representative channels and / or the second data representing one or more representative users with the profile data. In some examples, the communication platform may require a user to set permissions or privacy settings for individual representative channels or representative users so that only certain users or groups of users can view one or more representative channels and / or representative users on the user's profile page.
[0168] At operation 610, process 600 may include presenting the first data and the second data to the second user account via a user interface associated with the group-based communication platform. For example, the first data and the second data may be presented on a profile page associated with the first user account. In some examples, presenting the first data and the second data to the second user account is based at least in part on privacy settings or permission levels associated with the first user account and the second user account. In some examples, presenting the first data and the second data to the second user account is based at least in part on interaction data between the first user account and the second user account.
[0169] Figure 7 is a flow diagram illustrating an example process for training machine learning model(s) as described herein. For convenience and ease of understanding, the process illustrated in Figure 7 is described with reference to the components described above with reference to environment 100 shown in Figure 1. However, the process illustrated in Figure 7 is not limited to being performed using the components described above with reference to environment 100. Furthermore, the components described above with reference to environment 100 are not limited to performing the process illustrated in Figure 7.
[0170] Process 700 is illustrated as a collection of blocks in a logical flow diagram representing a sequence of operations, some or all of which may be implemented in hardware, software, or a combination thereof. In a software context, the blocks represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, perform the described operations. Generally, computer-executable instructions include routines, programs, objects, components, encryption, decryption, compression, recording, data structures, etc. that perform particular functions or implement particular abstract data types. The order in which operations are described should not be construed as limiting. Any number of the described blocks may be combined in any order and / or in parallel to implement a process or alternative processes, and not all of the blocks need be performed in every example. For illustrative purposes, the processes herein are described with reference to the frameworks, architectures, and environments described in the examples herein, although the processes may be implemented in a wide variety of other frameworks, architectures, and environments.
[0171] At operation 702, process 700 may include generating one or more machine learning models. The machine learning models may utilize predictive analytics techniques, which may include, for example, predictive modeling, machine learning, and / or data mining. Generally, predictive modeling may utilize statistics to predict outcomes. Machine learning may provide the ability to improve outcome prediction performance without being explicitly programmed to do so, while also utilizing statistical techniques. Several machine learning techniques may be employed to generate and / or modify the layers and / or models described herein. These techniques may include, for example, decision tree learning, association rule learning, artificial neural networks, inductive logic programming, support vector machines, clustering, Bayesian networks, reinforcement learning, representation learning, similarity and metric learning, sparse dictionary learning, and / or rule-based machine learning. Information from stored data and / or accessible data may be extracted from one or more databases, such as data store(s) 124, and utilized to predict trends and behavioral patterns.
[0172] At operation 704, process 700 may include training a machine learning model at least in part by inputting previous interaction data and previous representative data into the machine learning model. For example, profile content associated with one or more user accounts, including frequent channel lists, related user lists, and / or frequent topic data, may be input into the machine learning model as training data. The machine learning model may be trained to identify user preferences and / or apply specific weights to interaction data. For example, the machine learning model may apply greater weight to more recent interaction data, specific types of communications between users (e.g., applying greater weight to outgoing messages than to incoming messages), or types of channels (e.g., applying greater weight to channels created by a user than to joining already-created channels). The machine learning model may learn relationships between previous user interaction data and previous representative data (e.g., previous representative channels, representative users, and / or representative topics) so that the machine learning model may generate more accurate representative data over time.
[0173] At operation 706, process 700 may include generating representative data using machine learning model(s). For example, the representation component may utilize the machine learning model to output data representing one or more representative channels, one or more representative users, and / or one or more representative topics. In some examples, the machine learning model may assign confidence scores to each representative channel, user, and / or topic. In some examples, the representation component may present the representative channels, representative users, and / or representative topics in order according to the confidence scores associated with each representative data.
[0174] At operation 708, process 700 may include presenting the representative data to a user via a user interface associated with the communication platform. The representative data may include one or more representative channels, one or more representative users, and / or one or more representative topics that the user may be interested in associating with the user's profile page. The user may select one or more channels, users, and / or topics to associate with the user's profile page.
[0175] At operation 710, process 700 may include determining whether the user selected one or more of the representative data. In response to the user's selection of one or more of the representative data, process 700 may take a "YES" route and proceed to 712. In some examples, the user may provide feedback to the machine learning model regarding the accuracy of the representative data. If the user does not select one or more of the representative channels, users, and / or topics, process 700 may take a "NO" route and proceed to 704, whereby the user's response may be entered as previous representative data and used as training data for training the machine learning model. In some examples, the communication platform may receive a request from a user account to modify profile data associated with the user account. The machine learning model may generate a first list of representative channels and a second list of representative users associated with the user account based at least in part on the request and previous interaction data. The representative channels and users may be channels and users that the machine learning model has recommended for the user account associated with the profile data. The communications platform may receive a selection of one or more representative channels and / or one or more representative users from the user account, the selection representing a subset of the representative channels from the first list and a subset of the representative users from the second list. In some examples, the communications platform may provide the selection of the subset of representative channels and the subset of representative users as input to a machine learning model to train the machine learning model. In some examples, the machine learning model may generate a third list of representative channels and / or a fourth list of representative users based at least in part on the input and previous interaction data. The communications platform may associate the subset of representative channels and the subset of representative users with profile data for the user account.
[0176] At operation 712, process 700 may include displaying the selected representative data (or a subset of the representative data) on a profile page associated with the user account. In some examples, the communication profile may send a notification to the user when new representative data is associated with the user's profile page. Example clauses
[0177] A: A method implemented at least in part by one or more computing devices of a group-based communication platform, the method including: receiving, from a first user account associated with the group-based communication platform, interaction data representing interactions between the first user account and at least one of other user accounts or channels associated with the group-based communication platform; providing the interaction data as input to a machine learning model; generating, by the machine learning model based at least in part on the input, first data including one or more representative channels and second data including one or more representative users associated with the group-based communication platform; associating the first data including the one or more representative channels and the second data including the one or more representative users with profile data associated with the first user account; and presenting the first data and the second data to the second user account via a user interface associated with the group-based communication platform.
[0178] B: The method described in paragraph A, wherein the machine learning model is trained to learn a relationship between the third data and the fourth data based on (i) third data including previous interaction data including data representing interactions between previous channels and previous user accounts, and (ii) fourth data including previous representative channels and representative users associated with the previous interaction data, thereby configuring the machine learning model to generate the first data and the second data using the learned relationship upon input of the interaction data.
[0179] C: The method of either paragraph A or B, wherein the interaction data includes at least one of reactions to the message, links associated with the message, a number of replies associated with the channel, a number of views associated with the channel, or attachments in the channel.
[0180] D: The method described in paragraphs A-C, further comprising receiving, from the machine learning model, confidence scores associated with individual channels of the representative channels, determining an order for presenting the representative channels based on the confidence scores, and presenting the representative channels based on the order via a user interface associated with the group-based communication platform.
[0181] E: The method of any one of paragraphs A-D, further comprising providing keywords or key phrases as input to the machine learning model, generating third data representing frequently discussed topics based at least in part on the input by the machine learning model, and associating the third data with profile data associated with the first user account.
[0182] F: The method described in any one of paragraphs A to E, wherein the step of generating the first data and second data associated with the first user account is based at least in part on a maximum number of representative channels and a maximum number of representative users associated with the first user account.
[0183] G: The method of any one of paragraphs A-F, further comprising: receiving a request from the first user account to modify profile data associated with the first user account; generating a first list of representative channels not represented in the profile data associated with the first user account based at least in part on the request and the interaction data; receiving a selection of one or more representative channels from the first user account, the selection representing a subset of representative channels from the first list of representative channels; providing the selection of the subset of representative channels from the first list of representative channels and the interaction data as input to a machine learning model; generating a second list of representative channels based at least in part on the input and the interaction data by the machine learning model; and causing display of the subset of representative channels on the profile data associated with the first user account.
[0184] H: The method of any one of paragraphs A-G, further comprising: receiving a request from the first user account to modify profile data associated with the first user account; generating a first list of representative users not represented in the profile data associated with the first user account based at least in part on the request and the interaction data, where the representative users represent users with whom the first user account is most likely to interact; receiving a selection of one or more representative users from the first user account, where the selection represents a subset of the representative users from the first list of representative users; providing the selection of the subset of representative users from the first list of representative users and the interaction data as input to a machine learning model; generating a second list of representative users based at least in part on the input and the interaction data by the machine learning model; and causing the display of the subset of representative users on the profile data associated with the first user account.
[0185] I: The method described in paragraph H, wherein the first list of representative users includes users based on at least one of the number of shared channels between the user and individual users, activity level data associated with individual users associated with shared channels, user reply data associated with individual users, or the number of keywords or key phrases used by individual users.
[0186] J: The method of paragraph A, wherein the step of presenting the first data and the second data to the second user account is based at least in part on permission levels associated with the first user account and the second user account.
[0187] K: The method of paragraph A, further comprising: determining the occurrence of an event associated with the group-based communication platform, the event including at least one of receiving a request from a first user account to modify profile data associated with the first user account, detecting a threshold number of keywords or key phrases associated with the first user account, or the passage of a threshold period of time; generating, by a machine learning model, third data representing one or more additional representative channels and fourth data representing one or more additional representative users associated with the group-based communication platform based at least in part on the occurrence of the event; and associating the third data and the fourth data with the profile data of the first user account.
[0188] L: A system comprising: one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed, cause the system to perform operations including: receiving, from a first user account associated with a group-based communication platform, interaction data representing interactions between the first user account and at least one of other user accounts or channels associated with the group-based communication platform; providing the interaction data as input to a machine learning model; generating, by the machine learning model based at least in part on the input, first data including one or more representative channels and second data including one or more representative users associated with the group-based communication platform; associating the first data including the one or more representative channels and the second data including the one or more representative users with profile data associated with the first user account; and presenting the first data and the second data to the second user account via a user interface associated with the communication platform.
[0189] M: The system described in paragraph L, wherein the operations further include receiving a request from a third user account to view profile data associated with the first user account; and presenting the first data and the second data to the third user account via a user interface associated with the communication platform based at least in part on interaction data representing an interaction between the first user account and the third user account.
[0190] N: The system of paragraph L, wherein the interaction data includes at least one of reactions to the message, links associated with the message, a number of replies associated with the channel, a number of views associated with the channel, or attachments in the channel.
[0191] O: The system described in paragraph L, wherein the operations further include providing keywords or key phrases as input to the machine learning model; generating, by the machine learning model, third data representing frequently discussed topics based at least in part on the input; and associating the third data with profile data associated with the first user account.
[0192] P: The system described in paragraph L, wherein generating the first data and second data associated with the first user account is based at least in part on a maximum number of representative channels and a maximum number of representative users associated with the first user account.
[0193] Q: One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations including receiving, from a first user account associated with a communications platform, interaction data representing interactions between the first user account and at least one of other user accounts or channels associated with the group-based communications platform; providing the interaction data as input to a machine learning model; generating, by the machine learning model based at least in part on the input, first data including one or more representative channels and second data including one or more representative users associated with the group-based communications platform; associating the first data including the one or more representative channels and the second data including the one or more representative users with profile data associated with the first user account; and presenting the first data and the second data to the second user account via a user interface associated with the communications platform.
[0194] R: The one or more non-transitory computer-readable media of paragraph Q, wherein the one or more representative users include users based on at least one of the number of shared channels between the user and individual users, activity level data associated with individual users associated with the shared channels, user reply data associated with individual users, or the number of keywords or key phrases used by individual users.
[0195] S: The one or more non-transitory computer-readable media of paragraph Q, wherein the interaction data includes at least one of reactions to the message, links associated with the message, a number of replies associated with the channel, a number of views associated with the channel, or attachments in the channel.
[0196] T: The one or more non-transitory computer-readable media described in paragraph Q, wherein the step of presenting the first data and the second data to the second user account is based at least in part on permission levels associated with the first user account and the second user account.
[0197] Although the example provisions described above are described with respect to one particular implementation, it should be understood that in the context of this document, the content of the example provisions may also be implemented via a method, a device system, a computer-readable medium, and / or another implementation. Additionally, any of Examples A-T may be implemented alone or in combination with any one or more of the others of Examples A-T. conclusion
[0198] One or more examples of the techniques described herein have been described, and various modifications, additions, permutations, and equivalents thereof fall within the scope of the techniques described herein.
[0199] In describing the examples, reference is made to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific examples of the claimed subject matter. It is understood that other examples may be used and that changes or modifications, such as structural changes, may be made. Such examples, changes, or modifications do not necessarily depart from the intended scope of the claimed subject matter. While the steps herein may be presented in a particular order, in some cases the order can be changed so that certain inputs are provided at different times or in a different order without changing the functionality of the systems and methods described. The disclosed procedures may also be performed in a different order. Additionally, the various calculations herein need not be performed in the order disclosed, and other examples using alternative orders of calculations may be readily implemented. In addition to being reordered, calculations may also be decomposed into sub-calculations that have the same result.
Claims
1. 1. A method implemented at least in part by one or more computing devices of a group-based communication platform, comprising: receiving, from a first user account associated with the group-based communication platform, interaction data representing interactions between the first user account and at least one of other user accounts or channels associated with the group-based communication platform; providing the interaction data as input to a machine learning model; generating, by the machine learning model, first data including one or more representative channels and second data including one or more representative users associated with the group-based communication platform based at least in part on the input; associating the first data including the one or more representative channels and the second data including the one or more representative users with profile data associated with the first user account; presenting the first data and the second data to a second user account via a user interface associated with the group-based communications platform; A method comprising:
2. 2. The method of claim 1, wherein the machine learning model is trained to learn a relationship between the third data and the fourth data based on (i) third data including previous interaction data including data representing interactions between previous channels and previous user accounts, and (ii) fourth data including previous representative channels and representative users associated with the previous interaction data, thereby configuring the machine learning model to generate the first data and the second data using the learned relationship upon input of the interaction data.
3. The interaction data includes: Reactions to messages, Links associated with the message, The number of replies associated with the channel, The number of views associated with the channel, or Attachments in a channel The method of claim 1 , comprising at least one of:
4. receiving, from the machine learning model, confidence scores associated with each of the representative channels; determining an order for presenting the representative channels based on the confidence scores; presenting the representative channels based on the order via the user interface associated with the group-based communication platform; The method of claim 1 further comprising:
5. providing keywords or key phrases as the input to the machine learning model; generating, by the machine learning model, third data representing frequently discussed topics based at least in part on the input; associating the third data with profile data associated with the first user account; The method of claim 1 further comprising:
6. 2. The method of claim 1, wherein generating the first data and the second data associated with the first user account is based at least in part on a maximum number of representative channels and a maximum number of representative users associated with the first user account.
7. receiving a request from the first user account to modify the profile data associated with the first user account; generating a first list of representative channels not represented in the profile data associated with the first user account based at least in part on the request and the interaction data; receiving a selection of one or more representative channels from the first user account, the selection representing a subset of representative channels from the first list of representative channels; providing the selection of the subset of representative channels from the first list of representative channels and the interaction data as the input to the machine learning model; generating, by the machine learning model, a second list of representative channels based at least in part on the input and the interaction data; causing a display of the subset of representative channels on the profile data associated with the first user account; The method of claim 1 further comprising:
8. receiving a request from the first user account to modify the profile data associated with the first user account; generating a first list of representative users not represented in the profile data associated with the first user account based at least in part on the request and the interaction data, the representative users representing users with whom the first user account is most likely to interact; receiving a selection of one or more representative users from the first user account, the selection representing a subset of representative users from the first list of representative users; providing the selection of the subset of representative users from the first list of representative users and the interaction data as the input to the machine learning model; generating, by the machine learning model, a second list of representative users based at least in part on the input and the interaction data; causing a display of the representative user subset on the profile data associated with the first user account; The method of claim 1 further comprising:
9. The first list of representative users includes: the number of shared channels between said user and individual users; activity level data associated with individual users associated with the shared channel; User reply data associated with an individual user, or The number of keywords or key phrases used by each individual user The method of claim 8 , further comprising:
10. 2. The method of claim 1, wherein presenting the first data and the second data to the second user account is based at least in part on permission levels associated with the first user account and the second user account.
11. determining an occurrence of an event associated with the group-based communication platform, the event comprising: receiving a request from the first user account to modify the profile data associated with the first user account; detecting a threshold number of keywords or key phrases associated with the first user account; or the passage of a threshold period; and generating, by the machine learning model, third data representing one or more additional representative channels and fourth data representing one or more additional representative users associated with the group-based communications platform based at least in part on the occurrence of the event; associating the third data and the fourth data with the profile data of the first user account; The method of claim 1 further comprising:
12. 1. A system comprising: one or more processors; one or more non-transitory computer-readable media storing instructions; the instructions, when executed, cause the system to: receiving, from a first user account associated with the group-based communication platform, interaction data representing interactions between the first user account and at least one of other user accounts or channels associated with the group-based communication platform; providing the interaction data as input to a machine learning model; generating, by the machine learning model, first data including one or more representative channels and second data including one or more representative users associated with the group-based communication platform based at least in part on the input; Associating the first data including the one or more representative channels and the second data including the one or more representative users with profile data associated with the first user account; presenting the first data and the second data to a second user account via a user interface associated with a communications platform; A system that causes an operation including
13. The operation is receiving a request from a third user account to view the profile data associated with the first user account; presenting the first data and the second data to the third user account via the user interface associated with the communications platform based at least in part on the interaction data representing an interaction between the first user account and the third user account; The system of claim 12 further comprising:
14. The interaction data includes: Reactions to messages, Links associated with the message, The number of replies associated with the channel, The number of views associated with the channel, or Attachments in a channel The system of claim 12 , comprising at least one of:
15. 15. One or more non-transitory computer-readable media storing processor-executable instructions that, when executed by one or more processors, cause the one or more processors to perform the operations of any one of claims 1 to 14.
Citation Information
Patent Citations
User dialogue assisting system, user dialogue assisting method, and program
JP2019008577A
Method, computer system, and program for implementing dynamic and automatic modification of user profiles for improved performance
JP2020536299A
Intelligent Recommendations Implemented by Modelling User Profile Through Deep Learning of Multimodal User Data
US20190147366A1