Channel recommendation using machine learning

Automatically determine and update users' frequent channels, related users and frequent topics through machine learning models, solve the problem of inaccurate user network capture in the prior art, improve the timeliness and accuracy of information, and reduce the hassle of manual maintenance.

CN120283235APending Publication Date: 2025-07-08SALESFORCE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380082127.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-11-30
Filing Date
2023-11-16
Publication Date
2025-07-08

AI Technical Summary

Technical Problem

The prior art is difficult to effectively capture and update user networks, especially in large organizations, where users have difficulty understanding who to collaborate with or conduct related projects, and existing systems lead to inaccurate information and inefficient information.

Method used

The machine learning model is used to train user interaction data, automatically determine and update the user's frequent channels, related users and frequent topics, display them on the user profile page, and automatically recommend relevant information using the communication platform.

Benefits of technology

Improve the accuracy and efficiency of user information, automatically update user profile pages, and reduce the hassle of manual maintenance, especially in large organizations, ensuring the timeliness and accuracy of information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120283235A_ABST
    Figure CN120283235A_ABST
Patent Text Reader

Abstract

Techniques are discussed herein for generating user profile data, including one or more frequent channels, related users, and / or related topics within a communication platform. In some examples, a machine learning model may receive user interaction data (sent messages, read messages, channel publication, shared documents, frequent keywords used, etc.) associated with a communication platform, and output one or more frequent channels, related users, and / or related topics. The communication platform may then associate the one or more frequent channels, related users, and / or related topics with profile data for the users. In some examples, a communication platform may present different frequent channels, related users, and / or related topics associated with a profile page based on interaction actions associated with a user account viewing the profile page.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - Reference to Related Applications

[0002] This application claims priority to U.S. Patent Application No. 18 / 072,195, filed on November 30, 2022, entitled "CHANNEL RECOMMENDATIONS USING MACHINE LEARNING", the entire content of which is incorporated herein by reference. Technical Field

[0003] Communication platforms are popular for facilitating work - related communication, such as for transparent project collaboration among users. When working on projects, sharing information, participating in virtual meetings, or engaging in synchronous or asynchronous discussions, users can typically interact with a large number of other users on the communication platform. However, especially in the presence of a large number of users and / or projects, users may not know the related projects that other users are working on, or with whom other relevant users may be collaborating. Existing systems make it difficult to capture an accurate user network for individual users over time. Brief Description of the Drawings

[0004] The detailed description is described with reference to the drawings. In the drawings, the left - most digit of the reference numeral identifies the drawing in which the reference numeral first appears. The same reference numerals are used in different drawings to indicate similar or identical components or features. The drawings are not drawn to scale.

[0005] Figure 1 An exemplary system for performing the techniques described herein is shown.

[0006] Figure 2A A user interface of a group - based communication system for a specific example is shown.

[0007] Figure 2B A user interface of a multimedia collaboration session within a group - based communication system for a specific example is shown.

[0008] Figure 2C A user interface of an inter - organizational collaboration within a group - based communication system for a specific example is shown.

[0009] Figure 2D A user interface of a collaborative document within a group - based communication system for a specific example is shown.

[0010] Figure 3A A user interface depicting a workflow within a group - based communication system is shown.

[0011] Figure 3B A block diagram depicting a specific example for implementation as discussed herein is shown.

[0012] Figure 4 An exemplary user interface associated with a communication platform as described herein is shown for displaying a user profile including frequently used channels, associated people, and frequently discussed topics.

[0013] Figure 5 An exemplary first user interface and second user interface associated with a communication platform as described herein are shown for displaying a user profile including frequently used channels, associated people, and frequently discussed topics.

[0014] Figure 6 A flowchart showing an exemplary process for using a machine learning model to generate data associated with representative channels and representative users as described herein.

[0015] Figure 7 A flowchart showing an exemplary process for training a machine learning model as described herein. DETAILED DESCRIPTION

[0016] The disclosure describes techniques for generating or otherwise determining frequently used channels, associated users, and / or frequently discussed topics to be displayed in association with a user's profile page. As described herein, a machine learning model can 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 that the user frequently discusses or has knowledge of. A communication platform can input a user's previous interactions associated with using the communication platform into the machine learning model and receive as output from the machine learning model frequently used channels, associated users, and / or frequently discussed topics with which the user interacts. In some examples, a user's previous interactions (described as interaction data) can include interactions of the user with the user's own profile page, other users, channels, posts, documents, etc. In some examples, a user's previous interactions can 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 within a channel, etc. A user's interactions with the communication platform can also include the number of shared channels between the user and individual users, the activity level associated with individual users within a shared channel, user reply data associated with individual users, or the number of keywords or key phrases used by individual users.

[0017] In some examples, a machine learning model can be trained to output one or more frequent channels associated with a user account. For example, a communication platform can input user interaction data into the machine learning model and receive as output one or more frequent channels with which the user account frequently interacts or manages the user account. In some examples, the communication platform can associate one or more frequent channels with the user's profile data. In some examples, the communication platform can present one or more recommended channels to the user for acceptance before associating the one or more channels with the user's profile data. In some examples, the machine learning model can assign confidence scores to individual channels represented on the user profile. Then, the communication platform can determine the order in which to present the channels based on the confidence scores.

[0018] In some examples, a machine learning model can be trained to output one or more related users associated with a user account. For example, a communication platform can 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 can associate one or more related users with the user's profile data. In some examples, the communication platform can present one or more recommended user accounts to the user for acceptance before associating the one or more channels with the user's profile data. In some examples, the machine learning model can assign confidence scores to individual users represented on the user profile. Then, the communication platform can determine the order in which to present the users based on the confidence scores.

[0019] In some examples, a machine learning model can be trained to output one or more frequently discussed topics associated with a user account. For example, a communication platform can input keywords or key phrases into the machine learning model and receive as output one or more frequently discussed topics associated with the user account. In some examples, the communication platform can associate one or more frequently discussed topics with the user's profile data. In some examples, the communication platform can present one or more frequently discussed topics to the user for acceptance before associating the one or more frequently discussed topics with the user's profile data. In some examples, the machine learning model can assign confidence scores to topics represented on the user profile. Then, the communication platform can determine the order in which to present the topics based on the confidence scores.

[0020] In some examples, a machine learning model can generate data representing one or more frequent channels and / or associated users based at least in part on the frequent channels and / or number of associated users that have been associated with a user's profile data. For example, a user's profile can be associated with the largest number of frequent channels and / or associated users. The largest number of frequent channels and / or associated users that can be presented on a user's profile page can be set by the communication platform, an organization, an administrator, or the user. The profile page associated with the largest number of frequent channels and / or associated users can be updated over time to include new frequent channels and / or new associated users while replacing previous frequent channels and / or associated users. For example, a machine learning model can recommend new frequent channels and / or new associated users to a user based on new interaction data input into the machine learning model over time. In some examples, a machine learning model can update the frequent channels and / or associated users associated with a profile page based on a request by the user to modify profile data, detecting a threshold number of keywords or key phrases associated with the user or user account, or after a threshold period of time.

[0021] In some examples, a communication platform can present different profile data to a user based at least in part on interaction data between different users. For example, a machine learning model can be trained to output different profile data based at least in part on interaction data associated with a viewing user and user accounts, viewing user preferences or interests, or permissions or privacy settings associated with the profile data. In some examples, the communication platform can rearrange one or more frequent channels, users, and / or topics associated with the profile data based at least in part on the output received from the machine learning model, depending on the interaction data associated with the user account of the user viewing the profile data of the user account.

[0022] As described above, in the prior art, a user may be required to review large amounts of data (e.g., messages, channels, etc.) to understand with whom people are interacting or with which users to collaborate on a project. Over time, a user can interact with a large number of users. Regularly updating the profile page can be cumbersome, and requiring the user to manually update profile information can result in unreliable information, especially in an organization with thousands of employees. To address the technical problems and inefficiencies of searching for helpful user information or discovering users to collaborate on a project, the techniques described herein can include using one or more machine learning models to determine frequent channels, associated users, and / or frequent topics associated with an individual user, and in some examples, automatically associating the frequent channels, associated users, and / or frequent topics with the user's profile data. The technical solutions discussed herein address the technical problems associated with the presence of large amounts of user interaction information stored in the history of a communication platform and dealing with information that changes frequently.

[0023] The following detailed description of the examples refers to the accompanying drawings that show specific examples in which the techniques may be practiced. These examples are intended to describe aspects of the systems and methods in sufficient detail so that those skilled in the art can practice the techniques discussed herein. Other examples may be utilized and changes may be made without departing from the scope of the disclosure. Accordingly, the following detailed description should not be construed as limiting. The scope of the disclosure is defined only by the appended claims and the full scope of equivalents to such claims.

[0024] Group-based communication system

[0025] Figure 1 An exemplary environment 100 for performing the techniques described herein is shown. In at least one example, the exemplary environment 100 may be associated with a communication platform that may utilize a network-based computing system to enable users of the communication platform to exchange data. In at least one example, the communication 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 group identifiers, which, as described above, may be associated with common access credentials, domains, etc. In some examples, the communication platform may be a hub that provides a secure and private virtual space for users to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate with each other or among themselves. As described above, each group may be associated with a workspace such that users associated with the group can chat, meet, call, collaborate, transfer files or other data, or otherwise communicate with each other or among themselves in a secure and private virtual space. In some examples, the members of the group and thus the workspace may be associated with the same organization. In some examples, the members of the group and thus the workspace may be associated with different organizations (e.g., entities with different organizational identifiers).

[0026] In at least one example, the exemplary environment 100 may include one or more server computing devices (or “servers”) 102. In at least one example, the server 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 case of servers, the functional components and data may be implemented on a single server, server cluster, server farm or data center, cloud-hosted computing services, cloud-hosted storage services, etc., but other computer architectures may be additionally or alternatively used.

[0027] In at least one example, server 102 may communicate with user computing device 104 via one or more networks 106. That is, server 102 and user computing device 104 may use network 106 to transmit, receive, and / or store data (e.g., content, information, etc.), as described herein. User computing device 104 may be any suitable type of computing device, e.g., portable, semi-portable, semi-fixed, or fixed. Some examples of user computing device 104 may include tablet computing devices, smart phones, mobile communication devices, laptop computers, 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 sending communications and performing functions in accordance with the techniques described herein. Although a single user computing device 104 is shown, in practice, exemplary environment 100 may include multiple (e.g., dozens, hundreds, thousands, millions) user computing devices. In at least one example, among other things, a user computing device (such as user computing device 104) may be operated by a user to access a communication service via a communication platform. The user may be an individual, a group of individuals, an employer, a business, an organization, etc.

[0028] Network 106 may include, but is not limited to, any type of network known in the art, such as a local area network or wide area network, the Internet, a wireless network, a cellular network, a local wireless network, Wi-Fi, and / or near field communication, Bluetooth Low Energy (BLE), Near Field Communication (NFC), a wired network, or any such network or any combination thereof. The components for such communication may depend at least in part on the type of network, the environment selected, or both. The protocols for communicating over such network 106 are well known and will not be discussed in detail herein.

[0029] In at least one example, server 102 may include one or more processors 132, a computer-readable medium 110, one or more communication interfaces 112, and / or input / output devices 114.

[0030] In at least one example, each processor in processor 132 can be a single processing unit or multiple processing units, and can include a single or multiple computing units or multiple processing cores. Processor 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 132 can be one or more hardware processors and / or any suitable type of logic circuit that is specifically programmed or configured to execute the algorithms and processes described herein. Processor 132 can be configured to fetch and execute computer-readable instructions stored in a computer-readable medium, which can program the processor to perform the functions described herein.

[0031] Computer-readable medium 110 can include volatile and non-volatile 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 technologies, 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 that can be used to store the desired data and can be accessed by a computing device. Depending on the configuration of server 102, computer-readable medium 110 can be a type of computer-readable storage medium and / or can be a tangible non-transitory medium, to the extent that when mentioned, non-transitory computer-readable medium excludes media such as energy, carrier signals, electromagnetic waves, and signals themselves.

[0032] Computer-readable medium 110 can be used to store any number of functional components that can be executed by processor 132. In many implementations, these functional components include instructions or programs that can be executed by processor 132 and that, when executed, specifically configure processor 132 to perform the actions attributed to server 102 above. The functional components stored in the computer-readable medium can optionally include messaging component 116, audio / video component 118, representation component 120 including machine learning model 130, operating system 122, and data repository 124.

[0033] 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 can send the message as an incoming message to a second user computing device 104. Messages can include direct messages sent from an originating user to one or more designated users and / or communication channel messages sent from an originating user to one or more users associated with the communication channel via the communication channel. Additionally, messages can be transmitted in association with a collaborative document, canvas, or other collaborative space. In at least one example, a canvas can include a flexible canvas for curating, organizing, and sharing a collection of information among users. In at least one example, a collaborative document can be associated with a document identifier (e.g., a virtual space identifier, a communication channel identifier, etc.), and the document identifier is configured to enable messaging functionality attributable to a virtual space (e.g., a communication channel) within the collaborative document. That is, a collaborative document can be regarded as a virtual space (such as a communication channel) and includes functionality associated with the virtual space (such as a communication channel). A virtual space or a communication channel can be a data route for exchanging data between and among systems and devices associated with a communication platform.

[0034] In at least one example, the messaging component 116 can establish communication routes between and among various user computing devices, thereby allowing the user computing devices to communicate and share data with each other. In at least one example, the messaging component 116 can manage such communication and / or data sharing. In some examples, data associated with a virtual space (such as a collaborative document) can be presented via a user interface. Additionally, metadata associated with each message transmitted via the virtual space can be stored in association with the virtual space, such as a timestamp associated with the message, a sender user identifier, a recipient user identifier, a conversation identifier, and / or a root object identifier (e.g., a conversation associated with a thread and / or a root object), etc.

[0035] In various examples, the messaging component 116 can receive messages transmitted in association with a virtual space (e.g., a direct message instance, a communication channel, a canvas, a collaborative document, etc.). In various examples, the messaging component 116 can identify one or more users associated with the virtual space and can cause the message to be presented on the corresponding user computing device 104 in association with an instance of the virtual space. In various examples, the messaging component 116 can identify the message as an update to the virtual space and, based on the identified update, can cause a notification associated with the update to be presented in association with a sidebar of the user interface, the user interface being associated with one or more of the users associated with the virtual space. For example, the messaging component 116 can receive a message transmitted in association with a virtual space from a first user account. In response to receiving the message (e.g., interaction data associated with a 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 the user interface associated with the second user's second user account. In some examples, the messaging component 116 can cause the notification to be presented in response to determining that the sidebar of the user interface associated with the second user account includes an affordance representation associated with the virtual space. In such examples, the notification can be presented in association with the affordance representation associated with the virtual space.

[0036] In various examples, the messaging component 116 can be configured to identify mentions or tags associated with messages transmitted in association with a virtual space. In at least one example, a mention or tag can include an @ mention (or other special character) of a user identifier associated with a communication platform. The user identifier can include a username, a 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 the user interface associated with the user identifier, such as in a sidebar of the user interface associated with a particular user and / or in the virtual space associated with mentions and reactions in association with an affordance representation 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 the virtual space.

[0037] In at least one example, the audio / video component 118 may be configured to manage audio and / or video communications among and between users. In some examples, the audio and / or video communications may be associated with an audio and / or video conversation. In at least one example, the audio and / or video conversation may include a discrete identifier configured to uniquely identify the audio and / or video conversation. In some examples, the audio / video component 118 may store user identifiers associated with user accounts of members of a particular audio and / or video conversation, such as to identify users having appropriate permission to access the particular audio and / or video conversation.

[0038] In some examples, communications associated with an audio and / or video conversation (“conversation”) may be synchronous and / or asynchronous. That is, the conversation may include a real-time audio and / or video conversation between a first user and a second user over a period of time, and after a first period of time, a third user associated with the conversation (e.g., as a member of the conversation) may contribute to the conversation. The audio / video component 118 may be configured to store audio and / or video data associated with the conversation, such as to enable users having appropriate permission to listen to and / or view the audio and / or video data.

[0039] In some examples, the audio / video component 118 may be configured to generate a transcription of the conversation and may store the transcription in association with the audio and / or video data. The transcription may include a text representation of the audio and / or video data. In at least one example, the audio / video component 118 may use known speech recognition techniques to generate the transcription. In some examples, the audio / video component 118 may generate the transcription 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 as the conversation occurs. In some examples, the audio / video component 118 may generate the transcription after receiving an indication that the conversation has been completed. The indication that the conversation has been completed may include an indication that the moderator or administrator associated therewith has stopped the conversation, an indication that a threshold number of meeting attendees have closed the associated interface, etc. That is, the audio / video component 118 may identify the completion of the conversation and may generate a transcription associated therewith based on the completion.

[0040] In at least one example, the audio / video component 118 may be configured to present a transcription in association with a virtual space associated with an audio and / or video conversation. For example, a first user may initiate an audio and / or video conversation associated with a communication channel. The audio / video component 118 may process the audio and / or video data between the participants of the audio and / or video conversation and may generate a transcription of the audio and / or video data. In response to generating the transcription, the audio / video component 118 may cause the transcription to be published or otherwise presented via the communication channel. In at least one example, the audio / video component 118 may render one or more segments of the transcription as selectable for commentary, such as to enable members of the communication channel to comment on or further contribute to the conversation. In some examples, the audio / video component 118 may update the transcription based on the commentary.

[0041] In at least one example, the audio / video component 118 may manage one or more audio and / or video conversations in association with a virtual space associated with a group (e.g., an organization, a team, etc.) administrator or a command center. The group administrator or the command center may be referred to herein as the virtual (and / or digital) headquarters associated with the group. In at least one example, the audio / video component 118 may be configured to coordinate with the messaging component 116 and / or other components of the server 102 to transmit communications in association with other virtual spaces associated with the virtual headquarters. That is, the messaging component 116 may transmit data (e.g., messages, images, drawings, files, etc.) associated with one or more communication channels, direct messaging instances, collaborative documents, canvases, etc. associated with the virtual headquarters. In some examples, the communication channels, direct messaging instances, collaborative documents, canvases, etc. may have one or more audio and / or video conversations associated therewith that are managed by the audio / video component 118. That is, the audio and / or video conversations associated with the virtual headquarters may be further associated with or independent of one or more other virtual spaces of the virtual headquarters.

[0042] In at least one example, the presentation component 120 may be configured to use a machine learning model 130 to determine one or more frequent channels and / or one or more associated users. That is, in at least one example, the machine learning model 130 associated with the presentation component 120 may be configured to receive user interaction data (e.g., channels, posts, relationships, documents, and / or other interaction data, including how many messages a user sends to another user, the most recent time a user sends a message to a user, how often a user reads messages in a channel, how often a user responds to a post in a channel, how often a user replies to a post in a channel, etc.) and output one or more frequent channels in which the user is active and / or one or more associated users with whom the user communicates actively. The presentation component 120 may then associate the one or more frequent channels and / or the one or more associated users with the profile data of the user account. In some examples, the presentation component 120 may receive from the user via the user computing device 104 a request 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, rearrange, highlight, etc.) one or more of the representative channels / or users associated with the user account (e.g., on a profile page associated with the user).

[0043] The presentation component 120 may utilize a machine learning model 130 that accepts inputs and uses those inputs to output first data representing one or more channels associated with a group-based communication platform and second data representing one or more users. The first data and the second data may be stored in the data repository 124. In some examples, the input data may be data related to the following: the user's interaction with the user's own profile (e.g., information the user adds to the user profile, including work information, affiliations, interests, favorite channels, etc.), the user's interaction with other channels of the group-based communication platform (e.g., the user's responses, messages, emojis, etc.), and / or the user's interaction 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, videos, transcripts of audio / video, or other forms of interaction data related to the user's interaction with the group-based communication platform.

[0044] In some examples, the machine learning model 130 can be configured to receive third-party data (e.g., interaction data between the user and third-party providers). For example, the machine learning model 130 can receive third-party data as input, such as an external contact list maintained by a third-party service provider, a calendar, documents, files, photos, messages, emails, etc. maintained by a third-party application.

[0045] The machine learning model 130 can be trained to generate one or more representative channels in which the user account is most active. For example, the machine learning model 130 can detect the communication frequency of the user in the channel, past feedback, communication in the channel exceeding a threshold level (or other interactions of the user in the channel), documents posted in the channel, the user's communications marked as favorites in the channel, task assignments to the user in the channel, ratings of one or more channels, the user's area of expertise, user preferences, user-specified information on the user profile (e.g., interests, background information, relevant people, etc.), user-specified permissions, insights from user activities, and / or other interactions of the user with the channel. The machine learning model 130 can also be trained to identify corresponding messages, contributions, posts, etc. for the user within a group-based communication platform.

[0046] The machine learning model 130 can be trained to generate data representing one or more users with whom the user account regularly interacts. For example, the machine learning model 130 can detect the frequency of communication (private and / or public communication) between users, communication in the channel between users exceeding a threshold level (or other interactions of the users in the channel), the number of documents shared between users, task assignments between users, the user's area of expertise, user preferences, user-specified information on the user profile (e.g., interests, background information, relevant people, etc.), user-specified permissions, common working hours (e.g., users working on similar dates, hours, shifts, etc.), insights from user activities, and / or other interactions between users.

[0047] In some examples, supervised and / or unsupervised methods can be used to train the machine learning model 130 from training data representing previous representative channels and / or users. In some examples, the machine learning model 130 can include a Generative Pretrained Transformer 3 (GPT-3) model, a neural model for summarization (such as an abstractive or generative summarization model), natural language processing, machine learning, and / or other techniques for identifying meaning and / or sentiment in messages within a group-based communication platform. In some examples, these techniques are configured to receive various forms of input for generating representative channels and / or users.

[0048] In some examples, the representation component 120 can manage the frequent channels and / or associated user segments of a user profile. That is, the representation component 120 can select channels and / or users based on the output of the machine learning model 130 and display them on the profile page. For example, the representation component 120 can receive one or more channels and corresponding confidence levels as the output from the machine learning model 130. In some examples, the representation component 120 can select a single channel from one or more representative channels. For example, the representation component 120 can compare the confidence levels of the corresponding channels and select the channel with the highest confidence level (i.e., the channel most likely to be associated with the user account). Based on selecting the channel with the highest confidence level, the representation component 120 can determine whether the confidence level of the selected channel meets or exceeds a threshold confidence level. In some examples, the user can increase or decrease the confidence level based on any number of factors considered more or less important to the user (e.g., how often the user reads messages in a channel, how often the user responds to posts in a channel, how often the user replies to posts in a channel, user profile data, etc.). Based on determining that the confidence level associated with the channel meets or exceeds the threshold confidence level, the representation component 120 can associate the channel with the user profile.

[0049] The representation component 120 can receive one or more users (or user accounts) and corresponding confidence levels as the output from the machine learning model 130. In some examples, the representation component 120 can select a single user from one or more representative users to associate with the user profile. For example, the representation component 120 can compare the confidence levels of the corresponding users and select the user with the highest confidence level (i.e., the second user account most likely to interact with the first user account). Based on selecting the user with the highest confidence level, the representation component 120 can determine whether the confidence level of the selected user meets or exceeds a threshold confidence level. In some examples, the user can increase or decrease the confidence level based on any number of factors considered more or less important to the user (e.g., how often the user sends messages to another user, the length of the messages sent to another user, how often the user responds to posts from another user, how often the user replies to posts from another user, how many channels the user shares, etc.). Based on determining that the confidence level associated with the representative user meets or exceeds the threshold confidence level, the representation component 120 can associate the user with the user profile. For example, the representation component 120 can add the second user to the "frequent users" list associated with the profile page of the first user.

[0050] In some examples, the representation component 120 can update (i.e., add, remove, or rearrange) representative channels and / or representative users associated with a user account and can integrate such updated data into a user interface presented via a user's user computing device associated with a group-based communication platform. In some examples, the representation component 120 can update one or more representative channels and / or one or more representative user segments of a user's profile at least in part based on the passage of time (e.g., days, weeks, months, etc.), receipt of a threshold amount of interaction data (i.e., detecting that the user has interacted with a threshold number of new users), or based on a request by the user to update the user's profile information.

[0051] In some examples, the representation component 120 can present different representative channels and / or representative users associated with a user account based on who is viewing the user's profile. In some examples, the communication platform can analyze messaging and other interaction data between users to determine relationships between users and infer an organizational network among the users. Additional details of operations that can be performed by the representation component 120 are described below and throughout the disclosure.

[0052] In some examples, the communication platform can manage communication channels. In some examples, the communication platform can be a channel-based messaging platform, and in some examples, the platform can be usable by a group of users. Users of the communication platform can communicate with other users via the communication channels. A communication channel or virtual space can be a data route for exchanging data between and among systems and devices associated with the communication platform. In some examples, a channel can be a virtual space in which people can post messages, documents, and / or files. In some examples, access to a channel can be controlled by permission. In some examples, a channel can be restricted to a single organization, shared between different organizations, can be public, private, or a special channel (e.g., a hosted channel with a guest account where the guest can post but is blocked from performing certain actions such as inviting other users to the channel). In some examples, some users can be invited to a channel via email, channel invitation, direct message, text message, etc. Examples of channels and associated functionality are discussed throughout the disclosure.

[0053] In at least one example, the operating system 122 can manage the processor 132, computer-readable medium 110, hardware, software, etc. of the server 102.

[0054] In at least one example, the data repository 124 can be configured to store data that can be accessed, managed, and updated. In some examples, the data repository 124 can be integrated with the server 102, as Figure 1As shown. In other examples, the data repository 124 can be located away from the server 102 and can be accessible by the server 102 and / or a user device (such as the user device 104). The data repository 124 can include multiple databases, and the multiple databases can include user / organization data 126 and / or virtual space data 128. Additional or alternative data can be stored in the data repository and / or one or more other data repositories.

[0055] In at least one example, the user / organization data 126 can include data associated with users of the communication platform. In at least one example, the user / organization data 126 can store data in a user profile (which can also be referred to as a "user account"), and the user profile can store data associated with the user, including but not limited to: one or more user identifiers associated with multiple different organizations or entities to which the user is associated, one or more communication channel identifiers associated with communication channels that the user has been authorized to access, one or more group identifiers of groups (or organizations, teams, entities, etc.) to which the user is associated, an indication of whether the user is an owner or manager of any communication channel, an indication of whether the user has any communication channel constraints, multiple messages, multiple emojis, multiple conversations, multiple 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.

[0056] In at least one example, the user / organization data 126 can include permission data associated with the permissions of individual users of the communication platform. In some examples, the permissions can be set automatically or by an administrator of the communication platform, an employer, an enterprise, an organization, or other entity that uses the communication platform, a team leader, a group leader, or other entity that uses the communication platform to communicate with team members, group members, etc., an individual user, etc. The permissions associated with an individual user can be mapped to an account or profile within the user / organization data 126 or otherwise associated with the account or profile. In some examples, the permissions can indicate which users can communicate directly with other users, which channels a user is permitted to access, constraints on individual channels, which workspaces a user is permitted to access, constraints on individual workspaces, etc. In at least one example, the permissions can support the communication platform by maintaining security to limit access to a defined group of users. In some examples, such users can be defined by common access credentials, group identifiers, etc., as described above.

[0057] In at least one example, user / organization data 126 may include data associated with one or more organizations of the communication platform. In at least one example, user / organization data 126 may store data in an organization profile, which may 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.), an organization identifier associated with the organization, one or more organization identifiers associated with other organizations authorized to communicate with the organization, and the like.

[0058] 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 the 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 separate virtual spaces, such as based on discrete identifiers 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 a first virtual space may be stored in association with a 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. As another example, data associated with an audio and / or video conversation conducted in association with a communication channel may be stored in association with the communication channel.

[0059] As described above, a discrete identifier that uniquely identifies a virtual space can be assigned to each virtual space of a communication platform. In some examples, the virtual space identifier associated with a virtual space can include the physical address where data related to the virtual space is stored in the virtual space data 128. The virtual space can be "public", which can allow any user within an organization (e.g., associated with an organization identifier) to join and participate in data sharing through the virtual space, or the virtual space can be "private", which can restrict data communication in the virtual space to specific users or users with appropriate viewing permissions. In some examples, the virtual space can be "shared", which can allow users associated with different organizations (e.g., entities associated with different organization identifiers) to join and participate in data sharing through the virtual space. A shared virtual space (e.g., a shared channel) can be public, such that it can be accessed by any user of any organization, or a shared virtual space (e.g., a shared channel) can be private, such that it is restricted to be accessed by specific users (e.g., users with appropriate permissions) of two organizations.

[0060] In some examples, the data repository 124 can be partitioned into discrete data items (e.g., data shards) that can be accessed and managed separately. Data sharding can simplify many technical tasks, such as data retention, expansion (e.g., detecting that a message content includes a link, crawling metadata of the link, and determining a unified overview of the metadata), and integration settings. In some examples, data shards can be associated with an organization, a group (e.g., a workspace), a communication channel, a user, etc.

[0061] In some examples, an individual organization can be associated with a database shard that stores data related to a specific organization identifier within the data repository 124. For example, the database shard can store electronic communication data associated with members of a specific organization, which enables members of the specific organization to communicate and exchange data with other members of the same organization in real time or near real time. In an example, the organization itself can be the owner of the database shard and have control over where and how the related data is stored. In some examples, the database shard can store data related to two or more organizations (e.g., as in a shared virtual space).

[0062] In some examples, an individual group can be associated with a database shard that stores data related to a specific group identifier (e.g., a workspace) within the data repository 124. For example, the database shard can store electronic communication data associated with members of a specific group, which enables members of the specific group to communicate and exchange data with other members of the same group in real time or near real time. In an example, the group itself can be the owner of the database shard and have control over where and how the related data is stored.

[0063] In some examples, a virtual space can be associated with a database shard within the data repository 124 that stores data related to a particular virtual space identifier. For example, the database shard can store electronic communication data associated with the virtual space, which enables members of a 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 via the virtual space can be synchronous and / or asynchronous. In at least one example, a group or organization can be the owner of the database shard and can control where and how the related data is stored.

[0064] In some examples, an individual user can be associated with a database shard within the data repository 124 that stores data related to a particular user account. For example, the database shard can store electronic communication data associated with the individual user, which enables the user to communicate and exchange data with other users of the communication platform in real time or near real time. In some examples, the user itself can be the owner of the database shard and have control over where and how the related data is stored.

[0065] In some examples, such as when a channel is shared between two organizations, each organization can be associated with its own encryption key. When a user associated with an organization posts a message or file to the shared channel, the message or file can be encrypted in the data repository 124 with the organization-specific encryption key, and the other organization can decrypt the message or file before accessing it. Additionally, in examples where the organizations are located in different geographical regions, data associated with a particular organization can be stored in a location corresponding to the organization and temporarily cached closer to the client (e.g., associated with another organization) when such messages or files are to be accessed. Data can be maintained, stored, and / or deleted in the data repository 124 according to data management policies associated with each particular organization.

[0066] The communication interface 112 can include one or more interfaces and hardware components for facilitating communication with various other devices (e.g., the user computing device 104), such as via the network 106 or directly. In some examples, the communication interface 112 can facilitate communication via WebSocket, an application programming interface (API) (e.g., using API calls), the Hypertext Transfer Protocol (HTTP), etc.

[0067] The server 102 can also be equipped with various input / output devices 114 (e.g., I / O devices). Such I / O devices 114 can include a display, various user interface controls (e.g., buttons, joysticks, keyboards, mice, touchscreens, etc.), audio speakers, connection ports, etc.

[0068] In at least one example, the user computing device 104 may include one or more processors 132, a computer-readable medium 134, one or more communication interfaces 136, and input / output devices 138.

[0069] In at least one example, each of the processors 132 may be a single processing unit or multiple processing units and may include a single or multiple computing units or multiple processing cores. The processor 132 may include any type of processor described above with reference to the processor 132 and may be the same as or different from the processor 132.

[0070] The computer-readable medium 134 may include any type of computer-readable medium 134 described above with reference to the computer-readable medium 110 and may be the same as or different from the computer-readable medium 110. The functional components stored in the computer-readable medium may optionally include at least one application 138 and an operating system 140.

[0071] In at least one example, the application 140 may be a mobile application, a web application, or a desktop application, which may be provided by a communication platform or which may be an additional dedicated application. In some examples, separate user computing devices associated with the environment 100 may have instances or versioned instances of the application 140 that may be downloaded from an app store, accessible via the Internet, or otherwise executable by the processor 132 to perform the operations described herein. That is, the application 140 may be an access point that enables the user computing device 104 to interact with the server 102 to access and / or use communication services available via the communication platform. In at least one example, the application 138 may facilitate data exchange between and among various other user computing devices, e.g., via the server 102. In at least one example, the application 140 may present a user interface as described herein. In at least one example, a user may interact with the user interface via touch input, keyboard input, mouse input, voice input, or any other type of input.

[0072] Figure 1 A non-limiting example of the user interface 144 is shown. As Figure 1As shown, 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, such that a user (e.g., of the user computing device 104) can access data associated with multiple workspaces to which the user is associated and / or interact with 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 indicators (e.g., user interface elements or objects) associated with workspaces associated with the user (e.g., the user's account). In some examples, the user interface 144 can include a second region 148 or pane that includes indicators (e.g., user interface elements, affordances, objects, etc.) representing data associated with workspaces associated with the user (e.g., the user's account). In at least one example, the second region 148 can represent a sidebar of the user interface 144.

[0073] In at least one example, the user interface 144 can include a third region 150 or pane that can be associated with a data feed (or “feed”) indicating messages posted to one or more communication channels and / or other virtual spaces for facilitating communication (e.g., a virtual space associated with direct message communication, a virtual space associated with an event and / or action, etc.) and / or actions taken with respect to one or more communication channels and / or other virtual spaces, as described herein. In at least one example, the data associated with the third region 150 can be associated with the same or different workspaces. That is, in some examples, the third region 150 can present data associated with the same or different workspaces via an integrated feed. In some examples, the data can be organized and / or sorted by workspace, time (e.g., the time the associated data was posted or otherwise the associated operation was performed), type of action, communication channel, user, etc. In some examples, such data can be associated with an indication of which user (e.g., a member of the communication channel) posted the message and / or performed the action. In examples where the third region 150 presents data associated with multiple workspaces, at least some of the data can be associated with an indication of which workspace the data is associated with. In some examples, the third region 150 can be resized or popped up as a separate window.

[0074] In at least one example, the operating system 142 can manage the processor 132, computer-readable medium 134, hardware, software, etc. of the server 102.

[0075] The communication interface 136 may include one or more interfaces and hardware components for enabling communication with various other devices (e.g., the user computing device 104), such as via the network 106 or directly. In some examples, the communication interface 136 may facilitate communication via WebSocket, API (e.g., using API calls), HTTP, and the like.

[0076] The user computing device 104 may also be equipped with 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, joysticks, keyboards, mice, touchscreens, etc.), audio speakers, connection ports, and the like.

[0077] 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 102, the user computing device 104, or a combination thereof.

[0078] User interface for a group-based communication system

[0079] Figure 2A A user interface 200 of a group-based communication system is shown, which will be used to illustrate 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 cases, the communication data may include data associated with a user, such as a user identifier, the channels the user has been authorized to access, the groups the user is associated with, permissions, and other user-specific information.

[0080] The user interface 200 includes a plurality of objects, such as panes, text input fields, buttons, messages, or other user interface components viewable by a user of the group-based communication system. As shown, the 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 synchronous multimedia collaboration session pane 216, and a channel pane 218.

[0081] By way of example and not limitation, when users open the user interface 200, they can select a workspace via the workspace pane 204. A particular workspace can be associated with workspace-specific data and can be accessible via a permission associated with the workspace. Different sections of the navigation pane 206 can present different data and / or options to the user. Different graphical indicators can be associated with virtual spaces (e.g., channels) to outline the properties of the channels (e.g., the channel is public, private, shared between organizations, locked, etc.). When the user selects a channel, the channel pane 218 can be presented. In some examples, the channel pane 218 can 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, members of the channel can search within the channel, access content associated with the channel, add other members, post content, etc. In some examples, users who are not members of the channel can have limited ability to interact with (or even view or otherwise access) the channel, depending on the permissions associated with the channel. When users navigate within the channel, they can view messages 222 and can react to the messages (e.g., reaction 224), reply in a thread, start a thread, etc. Additionally, the channel pane 218 can include a compose pane 228 to compose messages and / or other data that will be associated with the channel. In some examples, the user interface 200 can include a thread pane 230 that provides additional levels of detail for the messages 222. In some examples, the sizes of the different panes can be adjusted, the panes can be popped out into separate windows, and / or the separate windows can be merged into multiple panes of the user interface 200. In some examples, users can communicate with other users via the collaboration pane 216, which can provide synchronous or asynchronous voice and / or video capabilities for communication. Of course, these are illustrative examples, and additional examples of the foregoing features are provided throughout the disclosure.

[0082] In some examples, the title bar 202 includes a search bar 220. The search bar 220 can allow users to search for content located in the current workspace of the group-based communication system, such as files, messages, channels, members, commands, functions, etc. Users can refine their searches by attributes such as content type, content author, and by users associated with the content. Users can optionally search within a particular workspace, channel, direct message conversation, or document. In some examples, the title bar 202 includes navigation commands that allow users to move forward and backward between different panes and view the history of the accessed content. In some examples, the title bar 202 can include additional resources, such as links to help documents and user configuration settings.

[0083] In some examples, a group-based communication system can include multiple different workspaces, where each workspace is associated with a different user group and channel group. 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. Users corresponding to such user identifiers can be referred to as members of the group. In some examples, the user interface 200 includes a workspace pane 204 for navigating between, adding, or deleting various workspaces in the group-based communication system. For example, a user can be part of a workspace for Acme, where the user is an employee of Acme or otherwise affiliated with Acme. The user can also be a member of a local volunteer organization that also uses the group-based communication system for collaboration. To navigate between these 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 the workspace and / or one or more channels shared between one or more workspaces. For example, Acme Corporation can have a workspace for Acme projects (such as Project Zen), a workspace for social discussions, and additional workspaces for general corporate matters. In some examples, an organization (such as a particular company) can have multiple workspaces, and a user can be associated with one or more workspaces belonging to the organization. In other examples, a particular workspace can be associated with one or more organizations or other entities associated with the group-based communication system.

[0084] In some examples, the navigation pane 206 allows a user to navigate within virtual spaces such as pages, channels 208, collaborative documents 210 (such as in Figure 2DNavigate between the applications 214 and direct messages 212 (as discussed elsewhere). For example, the navigation pane 206 can include indicators of virtual spaces that can aggregate data associated with multiple virtual spaces of which the user is a member. In at least one example, each virtual space can be associated with an indicator in the navigation pane 206. In some examples, the indicator can be associated with an actuation mechanism (e.g., an affordance, also known as a graphical element) such that when actuated, it can cause the user interface 200 to present data associated with the corresponding virtual space. In at least one example, the virtual space can be associated with all unread data associated with each of the workspaces associated with the user. That is, in some examples, if the user requests access to the virtual space associated with "unread", all data that the user has not yet read (e.g., viewed), such as presented in a feed, can be presented. In such examples, different types of events and / or actions that can be associated with different virtual spaces can be presented via the same feed. In some examples, such data can be organized and / or sorted by associated virtual space (e.g., the virtual space through which the communication was transmitted), time, type of action, user, etc. In some examples, such data can 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.

[0085] In some examples, the virtual space can be associated with the same type of events and / or actions. For example, "threads" can be associated with messages, files, etc. posted in a thread to messages posted in a virtual space, and "mentions and reactions" can be associated with messages or threads in which the user has been mentioned (e.g., via tagging) or another user has reacted to a message or thread posted by the user (e.g., via an emoji, reaction, etc.). That is, in some examples, the same type of events and / or actions that can be associated with different virtual spaces can be presented via the same feed. Similar to the "unread" virtual space, the data associated with such virtual spaces can be organized and / or sorted by virtual space, time, type of action, user, etc.

[0086] In some examples, the virtual space can be associated with facilitating communication between the user and other users of the communication platform. For example, "contacts" can be associated with enabling the user to generate an invitation to communicate with one or more other users. In at least one example, in response to receiving an indication of a selection of the "contacts" indicator, the communication platform can cause a connection interface to be presented.

[0087] In some examples, a virtual space can be associated with one or more boards or collaborative documents associated with a user. In at least one example, a document can include a collaborative document configured to be accessed and / or edited by two or more users with appropriate permissions (e.g., view permission, edit permission, etc.). In at least one example, if a user requests access to a virtual space associated with one or more documents associated with the user, one or more documents can be presented via user interface 200. In at least one example, as described herein, a document can be associated with an individual (e.g., a user's private document), with a group of users (e.g., a collaborative document), and / or with one or more communication channels (e.g., members of the communication channel are given access permissions to the document), such that users of the communication platform can create data associated with such a document, interact with such a document, and / or view data associated with such a document. In some examples, a collaborative document can be a virtual space, board, canvas, page, etc. for collaborative communication and / or data organization within a communication platform. In at least one example, a collaborative document can support editable text and / or objects that can be sorted, added, deleted, modified, etc. In some examples, a collaborative document can be associated with permissions that define which users of the communication platform can view and / or edit the document. In some examples, a collaborative document can be associated with a communication channel, and members of the communication channel can view and / or edit the document. In some examples, a collaborative document can be shareable such that data associated with the document is accessible and / or interactive for members of multiple communication channels, workspaces, organizations, etc.

[0088] In some examples, a virtual space can be associated with a group (e.g., an organization, a team, etc.) headquarters (e.g., an administrator or a command center). In at least one example, the group headquarters can include a virtual or digital headquarters for an administrator or command function associated with a group of users. For example, "HQ" can be associated with an interface that includes a list of indicators associated with a virtual space configured such that associated members can communicate. In at least one example, a user can associate one or more virtual spaces with the "HQ" virtual space, such as via a drag-and-drop operation. That is, a user can determine relevant virtual spaces to be associated with the virtual or digital headquarters, such as to associate virtual spaces important to the user with it.

[0089] In some examples, the virtual space can be associated with one or more boards or collaborative documents associated with a user. In at least one example, the document can include a collaborative document configured to be accessed and / or edited by two or more users with appropriate permissions (e.g., view permission, edit permission, etc.). In at least one example, if a user requests access to a virtual space associated with one or more documents associated with the user, one or more documents can be presented via the user interface 200. In at least one example, as described herein, a document can be associated with an individual (e.g., a user's private document), with a group of users (e.g., a collaborative document), and / or with one or more communication channels (e.g., members of the communication channel are granted access permissions to the document), such that users of the communication platform can create data associated with such a document, interact with such a document, and / or view data associated with such a document. In some examples, a collaborative document can be a virtual space, board, canvas, page, etc. for collaborative communication and / or data organization within a communication platform. In at least one example, a collaborative document can support editable text and / or objects that can be sorted, added, deleted, modified, etc. In some examples, a collaborative document can be associated with permissions that define which users of the communication platform can view and / or edit the document. In some examples, a collaborative document can be associated with a communication channel, and members of the communication channel can view and / or edit the document. In some examples, a collaborative document can be shareable such that data associated with the document is accessible and / or interactive for members of multiple communication channels, workspaces, organizations, etc.

[0090] Additionally or alternatively, in some examples, the virtual space can be associated with one or more canvases associated with a user. In at least one example, the canvas can include a flexible canvas for curating, organizing, and sharing collections of information among users. That is, the canvas can be configured to be accessed and / or modified by two or more users with appropriate permissions. In at least one example, the canvas can be configured to enable sharing of text, images, videos, GIFs, drawings (e.g., user-generated drawings via the canvas interface), game content (e.g., users manipulating game controls synchronously or asynchronously), etc. In at least one example, modifications to the canvas can include adding, deleting, and / or modifying previously shared (e.g., transmitted, presented) data. In some examples, content associated with the canvas can be shareable via another virtual space such that data associated with the canvas can be accessed by members of the virtual space and / or rendered to be interactive by members of the virtual space.

[0091] The navigation pane 206 can also include an indicator representing a communication channel (e.g., channel 208). In some examples, the communication channel can include a public channel, a private channel, a shared channel (e.g., between groups or organizations), a single workspace channel, a cross-workspace channel, a combination of the foregoing channels, etc. In some examples, the represented communication channel can be associated with a single workspace. In some examples, the represented communication channel can be associated with different workspaces (e.g., cross-workspaces). In at least one example, if the communication channel is a cross-workspace (e.g., associated with different workspaces), the user can be associated with both workspaces, or can be associated with only one of these workspaces. In some examples, the represented communication channel can be associated with a combination of the communication channels associated with a single workspace and the communication channels associated with different workspaces.

[0092] In some examples, the navigation pane 206 can depict some or all of the communication channels to which the user has access permissions (e.g., as determined by permission data). In such examples, the communication channels can be arranged alphabetically, based on the most recent interaction, based on the frequency of interaction, based on the communication channel type (e.g., public, private, shared, cross-workspace, etc.), based on the workspace, in a user-specified section, etc. In some examples, the navigation pane 206 can depict some or all of the communication channels of which the user is a member, and the user can interact with the user interface 200 to browse or view other communication channels of which the user is not a member but are not currently displayed in the navigation pane 206. In some examples, different types of communication channels (e.g., public, private, shared, cross-workspace, etc.) can be in different sections of the navigation pane 206, or can have their own sub-regions or sub-panes in the user interface 200. In some examples, the communication channels associated with different workspaces can be in different sections of the navigation pane 206, or can have their own regions or panes in the user interface 200.

[0093] In some examples, the indicator can be associated with a graphical element that visually differentiates the type of the communication channel. For example, item_zen is associated with a lock graphical element. As a non-limiting example and for the purposes of this discussion, the lock graphical element can indicate that the associated communication channel (item_zen) is private and access to it is restricted, while another communication channel (general) is public and access to it is available to any member of the organization with which the user is associated. In some examples, additional or alternative graphical elements can be used to differentiate between shared communication channels, communication channels associated with different workspaces, communication channels of which the user is or is not a current member, etc.

[0094] In at least one example, the navigation pane 206 can include indicators representing communications with individual users or multiple designated users (e.g., rather than all members of an organization or a subset thereof). Such communications can be referred to as "direct messages". The navigation pane 206 can include indicators representing virtual spaces associated with private messages between one or more users.

[0095] A direct message 212 can be a communication between a first user and a second user, or they can be a group direct message between a first user and two or more second users. The navigation pane 206 can be sorted and organized into a hierarchy or segments according to user preferences. In some examples, all channels that a user has been authorized to access can appear in the navigation pane 206. In other examples, the user can choose to hide specific channels or collapse segments containing specific channels. Items in the navigation pane 206 indicate when a new message or update has been received or is currently unread, such as by bolding text associated with the channel in which the unread message is located or adding an icon or badge to the channel name (e.g., having a count of unread messages). In some examples, a group-based communication system can additionally or alternatively store permission data associated with the permissions of individual users of the group-based communication system, indicating which channels a user can view or join. Permissions can, for example, indicate which users can communicate directly with other users, which channels a user is granted access to, constraints on individual channels, which workspaces a user is granted access to, and constraints on individual workspaces.

[0096] Additionally or alternatively, the navigation pane 206 can include sub-segments that are personalized sub-segments associated with teams of which the user is a member. That is, the "team" sub-segment can include affordance representations 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 meetings, etc.). In at least one example, the user can associate a selected virtual space with the team sub-segment, such as by dragging and dropping, setting a pin, or otherwise associating the selected virtual space with the team sub-segment.

[0097] Channels within a group-based communication system

[0098] In some examples, the group-based communication system is a channel-based messaging platform, as Figure 2A shown. Within the group-based communication system, communications can be organized into channels, each dedicated to a specific topic and set of users. A channel is generally a virtual space related to a specific topic, including messages and files posted by the members of the channel.

[0099] For the purposes of this discussion, a "message" can refer to any electronically generated digital object provided by a user using a user computing device 104 and configured to be displayed within a communication channel as described herein and / or within other virtual spaces for facilitating communication (e.g., a virtual space associated with direct messaging, etc.). A message can include any text, image, video, audio, or combination thereof provided by a user (using the user computing device). For example, a user can provide a message that includes text within the message as well as images and videos as message content. In such examples, the text, images, and videos will comprise the message. Each message sent or posted to a communication channel of a communication platform can include metadata, which includes 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 foregoing identifiers can include American Standard Code for Information Interchange (ASCII) text, a pointer, a memory address, etc.

[0100] Channel discussions can be persisted for days, months, or years and provide a historical log of user activity. Members of a particular channel can post messages within the channel that are visible to other members of the channel along with the other messages in the channel. A user can select channels to view to only see those messages relevant to the topic of the channel and not see messages posted in other channels about different topics. For example, a software development company can have different channels for each software product being developed, where developers working on each particular project can have a conversation about a generally single topic (e.g., the project) without the noise from unrelated topics. Because channels are typically persistent and relate to a particular topic or group, a user can quickly and easily refer back to previous communications for reference. In some examples, the channel pane 218 can display information related to the channel that the user has selected in the navigation pane 206. For example, a user can select the project_zen channel to discuss the software development work being done on Project Zen. In some examples, the channel pane 218 can include a header that includes information about the channel, such as the channel name, a list of users in the channel, and other channel controls. A user can be able to pin items to the header for later access and be able to add bookmarks to the header. In some examples, a link to a collaborative document can be included in the header. In other examples, each channel can have a corresponding virtual space that includes channel-related information, such as a channel overview, tasks, bookmarks, pinned documents, and other channel-related links that can be editable by members of the channel.

[0101] A communication channel or other virtual space can be associated with data and / or content different from the message and / or data and / or content associated with the message. Non-limiting examples of additional data that can be presented via the channel pane 218 of the user interface 200 include collaborative documents (e.g., documents that can be collaboratively edited in real time or near real time, etc.), audio and / or video data associated with a conversation, members added to and / or removed from the communication channel, files (e.g., file attachments uploaded and / or removed from the communication channel), applications added to and / or removed from the communication channel, posts added to and / or removed from the communication channel (data that can be collaboratively edited by one or more members of the communication channel near real time), descriptions added to, modified and / or removed from the communication channel, modifications to the nature of the communication channel, etc.

[0102] The channel pane 218 can include messages such as message 222, which is the content posted by a user to the channel. The user can post text, images, videos, audio, or any other file as message 222. In some examples, a specific identifier (in a message or elsewhere) can be represented by prefixing it with a predetermined character. For example, a channel can be prefixed with the "#" character (such as in #project_zen), and a username can be prefixed with the "@" character (such as in @J_Smith or @user_A). A message (such as message 222) can include an indication of which user posted the message and the time the message was posted. In some examples, a user can react to a message by selecting a reaction button 224. The reaction button 224 allows the user to select an icon (sometimes called a reaction emoji in context) to associate with the message, such as a like. A user can respond to another user's message (such as message 222) with a new message. In some examples, such conversations in the channel can be further broken down into threads. Threads can be used to aggregate messages related to a specific conversation to make it easier to follow and reply to the conversation without cluttering the main channel with the discussion. Under the message where the thread starts, a thread reply preview 226 appears. The thread reply preview 226 can show information related to the thread, such as the number of replies and the members who have replied. Thread replies can appear in a thread pane 230 that can be separate from the channel pane 218 and can be viewed by other members of the channel by selecting the thread reply preview 226 in the channel pane 218.

[0103] In some examples, one or both of the channel pane 218 and the thread pane 230 may include a compose pane 228. In some examples, the compose pane 228 allows a user to compose a message 222 and transmit it to members of the channel or those members of the channel following the thread (when sending a message in a thread). The compose pane 228 may have text editing features such as bold, strikethrough, and italic, and / or may allow the user to format their message or attach files, such as a collaborative document, image, video, or any other file to be shared with other members of the channel. In some examples, the compose pane 228 may implement additional formatting options, such as numbered or bulleted lists, via a user interface or API. The compose pane 228 may also be used as a workflow trigger to initiate a workflow related to the channel or message. In other examples, links or documents sent via the compose pane 228 may include expansion instructions related to how the content should be displayed.

[0104] Synchronized multimedia collaboration session

[0105] Figure 2B A multimedia collaboration session (e.g., a synchronous multimedia collaboration session) that has been triggered from a channel is shown, as 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 and leave these synchronous multimedia collaboration sessions at any time without causing other users to interrupt the synchronous multimedia collaboration session. In some examples, the synchronous multimedia collaboration session may be based on a specific topic, a specific channel, a specific direct message or a multi-person direct message, or a set of users, while in other examples, the synchronous multimedia collaboration session may exist without being tied to any channel, topic, or set of users.

[0106] The Synchronous Multimedia Collaboration Session Pane 216 can be associated with sessions for multiple users in a channel, users in a group direct message conversation, or users in a direct message conversation. Thus, a synchronous multimedia collaboration session for a particular channel or conversation can be initiated by one or more members of a particular channel, group direct message conversation, or direct message conversation. A user can initiate a synchronous multimedia collaboration session in a channel as a means of communicating with other currently online members of the channel. For example, a user may have an urgent decision and wish to obtain immediate verbal feedback from other members of the channel. As another example, a synchronous multimedia collaboration session with one or more other users of a group-based communication system can be initiated via direct messaging. In some examples, the audience for a synchronous multimedia collaboration session can be determined based on the context in which the synchronous multimedia collaboration session is initiated. For example, initiating a synchronous multimedia collaboration session in a channel can automatically invite the entire channel to attend. As another example, initiating a synchronous multimedia collaboration session allows a user to start 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 can be directly invited to attend a synchronous multimedia collaboration session via a message or notification.

[0107] A synchronous multimedia collaboration session can be a short-lived session and does not persist any data therein. Alternatively, in some examples, a synchronous multimedia collaboration session can be recorded, transcribed, and / or summarized for later review. In other examples, the content of a synchronous multimedia collaboration session can be automatically persisted in the channel associated with the synchronous multimedia collaboration session. Members of a particular synchronous multimedia collaboration session can post messages within the messaging thread associated with the synchronous multimedia collaboration session, and these messages are visible to other members of the synchronous multimedia collaboration session along with other messages in the thread.

[0108] The multimedia in a synchronous multimedia collaboration session can include collaboration tools such as any or all of audio, video, screen sharing, collaborative document editing, whiteboarding, pair programming, or any other form of media. A synchronous multimedia collaboration session can also allow a user to share the user's screen with other members of the synchronous multimedia collaboration session. In some examples, members of a synchronous multimedia collaboration session can mark, comment on, draw on, or otherwise annotate the shared screen. In other examples, such annotations can be saved and persisted after the synchronous multimedia collaboration session has ended. A canvas can be created directly from the synchronous multimedia collaboration session to further enhance collaboration among users.

[0109] In some examples, a user can via Figure 2BUse the back-and-forth switching key in the synchronized multimedia collaboration session pane 216 shown to start a synchronized multimedia collaboration session. Once the synchronized multimedia collaboration session has started, the synchronized multimedia collaboration session pane 216 can be expanded to provide information about the synchronized multimedia collaboration session (such as how many members there are, which user is currently speaking, which user is sharing the user's screen) and / or a screen sharing preview 232. In some examples, icons indicating that a user is participating in a synchronized multimedia collaboration session can be used to display the users in the synchronized multimedia collaboration session. In other examples, an expanded view of the participants can show which users are active and which users are not active in the synchronized multimedia collaboration session. The screen sharing preview 232 can depict the desktop view of the user sharing the user's screen, or a specific application or presentation. Changes to the user's screen, such as the user advancing to the next slide in a presentation, will be automatically depicted in the screen sharing preview 232. In some examples, the screen sharing preview 232 can be actuated such that the screen sharing preview 232 is enlarged and displayed as its own pane within the group-based communication system. In some examples, the screen sharing preview 232 can be actuated such that the screen sharing preview 232 pops up into a new window or application 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 the 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 sharing button 234 that can allow the user to share the user's screen with other members of the synchronized multimedia collaboration session pane 216. In some examples, the screen sharing button 234 can provide additional controls to the user during screen sharing. For example, additional screen sharing controls can be provided to the user sharing the user's screen to specify which screen to share, annotate the shared screen, or save the shared screen.

[0110] In some cases, the synchronized multimedia collaboration session pane 216 persists in the navigation pane 206 regardless of the state of the group-based communication system. In some examples, the synchronized multimedia collaboration session pane 216 can be hidden or removed from the presentation via the user interface 200 when there is no active synchronized multimedia collaboration session and / or depending on which item is selected from the navigation pane 206. In some cases, when the pane 216 is active, the pane 216 can be associated with the currently selected channel, direct message, or group direct message such that a synchronized multimedia collaboration session can be initiated and associated with the currently selected channel, direct message, or group direct message.

[0111] The list of synchronous multimedia collaboration sessions may include one or more active synchronous multimedia collaboration sessions selected for recommendation. For example, synchronous multimedia collaboration sessions may be selected from a plurality of currently active synchronous multimedia collaboration sessions. Additionally, synchronous multimedia collaboration sessions may be selected based in part on user interactions with the sessions or some association of the instant user with the sessions or the users involved in the sessions. For example, recommended synchronous multimedia collaboration sessions may be presented based in part on the instant user having been invited to the corresponding synchronous multimedia collaboration session or having previously collaborated with users in the recommended synchronous multimedia collaboration session. In some examples, the list of synchronous multimedia collaboration sessions also includes additional information for each respective synchronous multimedia collaboration session, such as an indication of the participating users or the number of participating users, the subject of the synchronous multimedia collaboration session, and / or an indication of an associated group-based communication channel, a multi-person direct message conversation, or a direct message conversation.

[0112] In some examples, the list of recommended active users may include a plurality of group-based communication system users 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 active status of users within the group-based communication system; historical, recent, or frequent user interactions with the instant user (such as communicating within a group-based communication channel); or similarity between the recommended users and the instant user (such as determining a shared membership in channels among the recommended users and the instant user). In some examples, machine learning techniques (such as clustering analysis) may be used to identify 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 also includes a plurality of actuatable buttons corresponding to some or all of the recommended users (e.g., those recommended users having a status indicating availability), the plurality of actuatable buttons being configurable to initiate at least one of a text-based communication session (such as a direct message conversation) or a synchronous multimedia collaboration session when selected.

[0113] In some examples, one or more recommended asynchronous multimedia collaboration sessions or meetings can be displayed in an asynchronous meeting segment. Compared to synchronous multimedia collaboration sessions (as described above), asynchronous multimedia collaboration sessions allow each participant to collaborate at their convenience. The collaboration participation is then recorded for other participants to consume later, and these participants can generate additional multimedia responses. In some examples, the responses are aggregated in a multimedia thread (e.g., a video thread) corresponding to the asynchronous multimedia collaboration session. For example, an asynchronous multimedia collaboration session can be used for an asynchronous meeting where a topic is posted in a message at the start of the meeting thread, and participants in the meeting can respond by posting messages or video responses. The resulting thread then includes any documents, videos, or other files related to the asynchronous meeting. In some examples, a preview of a subset of video responses can be shown in the asynchronous collaboration session or thread. This can allow, for example, a user to jump to a relevant segment of the asynchronous multimedia collaboration session or resume from where they previously left off.

[0114] Contact within a group-based communication system

[0115] Figure 2C A user interface 200 is shown that displays a contact pane 252. The contact pane 252 can provide tools and resources for a user to make contacts across different organizations, where each organization can have its own (usually private) instance of a group-based communication system or may not yet belong to a group-based communication system. For example, a first software company may form a joint venture with a second software company and they wish to collaborate with the latter in jointly developing a new software application. The contact pane 252 can enable the user to determine which other users and organizations are already within the group-based communication system and invite those users and organizations currently outside the group-based communication system to join.

[0116] The contact pane 252 can include a contact 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 contact search bar 254 can allow a user to search for users within the group-based communication system. In some examples, only users from organizations that have contacts with the user's organization will be shown in the search results. In other examples, users from any organization that uses the group-based communication system can be shown. In other examples, users from organizations that do not yet use group-based communication can also be shown, thus allowing the search for users to invite them to join the group-based communication system. In some examples, users can be searched for via their group-based communication system username or their email address. In some examples, email addresses can be suggested or auto-completed based on external data sources such as an email directory or the user's contact list for searching.

[0117] In some examples, external organizations as well as individual users can be shown in response to a user search. External organizations can be matched based on an organization name or Internet domain, as search results can include organizations that have not joined the group-based communication system (similar to the search and matching for specific users discussed above). External organizations can be ranked, at least in part, based on how many users from the user's organization have contact with users of the external organization. In response to selecting an external organization in the search results, the searching user can be enabled to invite the external organization to communicate via the group-based communication system.

[0118] In some examples, the recent contacts 256 can show users that the instant user has most recently interacted with. The recent contacts 256 can show the names, companies, and / or status indicators of the users. The recent contacts 256 can be sorted based on which contacts the instant user interacts with most frequently or based on which contacts the instant user has most recently interacted with. In some examples, each recent contact in the recent contacts 256 can be an actuatable control that enables the instant user to quickly initiate a direct message conversation with the recent contact, invite them to a channel, or take any other appropriate user action with respect to the recent contact.

[0119] In some examples, the connections 258 can show a list of companies (e.g., organizations) that the user has interacted with. For each company, the name of the company can be shown along with an identifier for the company and an indication of how many times the user has interacted with the company (e.g., the number of conversations). In some examples, each connection in the connections 258 can be an actuatable control that enables the instant user to quickly invite an external organization to a shared channel, show the most recent connection with the external organization, or take any other appropriate organizational action with respect to the connection.

[0120] In some examples, the create channel button 260 allows a user to create a new shared channel between two different organizations. Selecting the create channel button 260 can also allow the user to name the new communication channel and enter a description for the communication channel. In some examples, the user can select one or more external organizations or one or more external users to add to the shared channel. In other examples, the user can add an external organization or external user to the shared channel after creating the shared channel. In some examples, the user can select whether to make the communication channel private (i.e., accessible only via an invitation from the current members of the private channel).

[0121] In some examples, the start direct message button 262 allows a user to quickly start a direct message (or group direct message) with an external user at an external organization. In some examples, the external user identifier at the external organization can be provided by the instant user as the group-based communication system username of the external user or as the email address of the external user. In some examples, analysis of the email domain of the email address of the external user can affect the message between the user and the external user. For example, the identifier of the external user can indicate (e.g., based on the email address domain) that the user's organization and the external user's organization have contacted. In some such examples, the email address can be converted to a group-based communication system username. Alternatively, the identifier of the external user can indicate that the external user's organization belongs to the group-based communication system but has not contacted the instant user's organization. In some such examples, an invitation to contact the instant user's organization can be generated as a response. As another alternative, the external user can not be a member of the group-based communication system, and an invitation to join the group-based communication system as a guest or member can be generated as a response.

[0122] Collaborative document

[0123] Figure 2D A user interface 200 is shown that displays a collaborative document pane 264. The collaborative document can be of any file type, such as a PDF, video, audio, word processing document, etc., and is not limited to word processing documents or spreadsheets. The collaborative document can be modified and edited by two or more users. The collaborative document can also be associated with different user permissions, such that based on the user's permission for the document (or a section of the document, as described below), the user can be selectively allowed to view, edit, or comment on the collaborative document (or a section of the collaborative document). Thus, users within the set of users who can access the document can have permission to view, edit, comment on, or otherwise hand off changes to the collaborative document. In some examples, the permissions can be automatically determined and / or assigned based on the way the document is created and / or shared. In some examples, the permissions can be determined manually. The collaborative document can allow users to create and modify the document simultaneously or asynchronously. The collaborative document can be integrated with a group-based communication system and can both initiate a workflow and be used to store the results of the workflow, which will be discussed further below with respect to Figure 3A and Figure 3B be discussed further.

[0124] 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 referred to as a document or a canvas) may include a flexible workspace for planning, 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-person direct message conversation, and / or a direct message conversation. The 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.

[0125] In addition, such a document may be @-mentioned so that a specific document can be referenced within a channel (or other virtual space or document) and / or other users can be mentioned within such a document. For example, @-mentioning a user within a document may provide an indication to the user and / or may provide access to the document to the user. In some examples, a task may be assigned to a user via @-mention, and such a task may be populated in a pane or sidebar associated with the user.

[0126] In some examples, a channel and a collaborative document 268 may be associated such that when a comment is posted in the channel, the comment can be populated into the document 268 and vice versa.

[0127] 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) indicating the interaction in a sidebar (e.g., the navigation pane 206). In addition, the second user may select the affordance or notification associated with or representing the interaction of accessing the collaborative document to efficiently access the document and view updates to it.

[0128] In some examples, when one or more users interact with a collaborative document, an indication (e.g., an icon or other user interface element) may be presented via the user interface having the collaborative document to represent such interaction. For example, if a first instance of a document is currently open on a first user's first user computing device and a second instance of the document is currently open on a second user's second user computing device, one or more presence indicators may be presented on the respective user interfaces to show various interactions with the document and the users performing the interactions. In some examples, a presence indicator may have an attribute (e.g., an appearance attribute) indicating information about the respective user, such as but not limited to a permission level (e.g., an edit permission, read-only access, etc.), virtual space membership (e.g., whether the member belongs to the virtual space associated with the document), and the way the user interacts with the document (e.g., currently editing, viewing, open but inactive, etc.).

[0129] In some examples, a preview of a collaborative document can be provided. In some examples, the preview can include an overview of the collaborative document and / or a dynamic preview that displays various content (e.g., as changing text, images, etc.) to allow 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 the user has viewed, edited, created, etc.).

[0130] In some examples, a collaborative document can be created independent of and / or in combination with a virtual space and / or a channel. The collaborative document can be published in a channel and edited or interacted with as described herein, with various affordances or notifications indicating the presence of users and / or various interactions associated with the document.

[0131] In some examples, a machine learning model can be used to determine an overview of the content of a channel, and a collaborative document including the overview can be created for publication in the channel. In some examples, a communication platform can identify users within a virtual space, actions associated with the users, and other contributions to a conversation to generate an overview document. Thus, the communication platform can enable users to create a document (e.g., a collaborative document) for summarizing content and events occurring within the virtual space.

[0132] In some examples, a document can be configured to enable 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 a canvas can add new content or delete (or modify) previously added content. In some examples, a user may need appropriate permissions to add content or to delete or modify content added by a different user. Thus, for example, some users may only be able to access some or all of the document in a read-only mode, while other users may be able to access some or all of the document in an edit mode that allows those users to add or modify its content. In some examples, the document can be shared via a message in a channel, a group direct message, or a direct message, such that data associated with the document can be accessed by members of the channel or recipients of the group direct message or direct message and / or rendered for interaction by members of the channel or recipients of the group direct message or direct message.

[0133] In some examples, the collaborative document pane 264 can include a collaborative document toolbar 266 and a collaborative document 268. In some examples, the collaborative document toolbar 266 can provide the ability to edit or format the publication, as discussed herein.

[0134] In some examples, a collaborative document can include free-form unstructured segments and workflow-related structured segments. In some examples, unstructured segments can include areas of the document where users can freely modify the collaborative document without any constraints. For example, a user may be able to freely type text to explain the purpose of the document. In some examples, a user can add a workflow or structured workflow segment by typing the name of the workflow (or otherwise referring to the workflow). In other examples, typing an "at" sign (@) or a previously selected symbol or a predetermined special character or symbol can provide the user with a list of workflows that the user can select to add to the document. For example, a user can indicate that a marketing team member needs to sign a proposal to initiate a workflow that ends when the members of the marketing team approve the proposal by typing "!Marketing Approval". Placing an exclamation point before the group name of "Marketing Approval" initiates a request for a normative action, in this case routing the proposal for approval. In some examples, structured segments can include text inputs, selection menus, tables, checkboxes, tasks, calendar events, or any other document segment. In other examples, structured segments can include text input spaces as part of a workflow. For example, a user can input text detailing the reason for seeking approval into a text input space and then select a submit button that will advance the workflow to the next step of the workflow. In some examples, a user may be able to add, edit, or remove structured segments of the document that constitute workflow components.

[0135] In an example, segments of a collaborative document can have separate permissions associated with them. For example, a collaborative document with segments having separate permissions can provide a first user with permission to view, edit, or comment on a first segment, while a second user does not have permission to view, edit, or comment on the first segment. Alternatively, the first user can have permission to view the first segment of the collaborative document, while the second user has permission to view and edit the first segment of the collaborative document. Permissions associated with a specific segment of a document can be assigned by the first user via various methods, including manually selecting a specific segment of the document by the first user or another user having the permission to assign permissions, typing or selecting an "assign" indicator (such as the "@" symbol), or selecting a segment by its name. In other examples, permissions can be assigned to multiple collaborative documents at a single instance via these methods. For example, multiple collaborative documents each have a segment titled "Group Information", where a first user having the permission to assign permissions desires that the entire user group can access the information in the "Group Information" segments of the multiple collaborative documents. In an example, the first user can select multiple collaborative documents and the "Group Information" segment to effect permission for the entire user group to access (or view, edit, etc.) the "Group Information" segments of each of the multiple collaborative documents.

[0136] Automation in a group-based communication system

[0137] Figure 3A Shown is a user interface 300 for automation in a group-based communication system. Automation, also known as workflow, allows a user to automate functionality within the group-based communication system. A workflow builder 302 is depicted, which allows a user to create new workflows, modify existing workflows, and review workflow activities. The workflow builder 302 may include a workflow tab 304, an activities tab 306, and / or a settings tab 308. In some examples, the workflow builder may include a publish button 314 that allows a user to publish a new or modified workflow.

[0138] The workflow tab 304 can be selected to enable a user to create a new workflow or modify an existing workflow. For example, a user may wish to create a workflow to automatically welcome new users joining a channel. The workflow may include workflow steps 310. The workflow steps 310 may include at least one trigger that initiates the workflow and at least one function that takes an action once the workflow is triggered. For example, when a user joins a channel, the workflow can be triggered, and the function of the workflow can be to post a welcome message for the new user in the channel. In some examples, a workflow can be triggered from a user action (such as a user reacting to a message, joining a channel, or collaborating in a co-authored document), from a scheduled date and time, or from a web request from a third-party application or service. In other examples, workflow functionality can include sending a message or form to a user, channel, or any other virtual space, modifying a co-authored document, or interfacing with an application. Workflow functionality can include workflow variables 312. For example, a welcome message can include the name of the user via a variable to enable a customized message. A user can edit existing workflow steps or add new workflow steps according to the desired workflow functionality. Once the workflow is complete, the user can use the publish button 314 to publish the workflow. The published workflow will wait until it is triggered, at which point the function will be executed.

[0139] The activities tab 306 can display information related to the activities of a workflow. In some examples, the activities tab 306 can show how many times a workflow has been executed. In other examples, the activities tab 306 can include information related to each workflow execution, including status, most recent activity date, execution time, the user who initiated the workflow, and other relevant information. The activities tab 306 can allow a user to sort and filter workflow activities to find useful information.

[0140] The Settings tab 308 can allow a user to modify the settings of a workflow. In some examples, the user can change the title or icon associated with the workflow. The user can also manage the collaborators associated with the workflow. For example, the user can add additional users as collaborators to the workflow such that the additional users can modify the workflow. In some examples, the Settings tab 308 can also allow the user to delete the workflow.

[0141] Figure 3B Depicts elements related to a workflow in a group-based communication system and is generally referred to by reference numeral 316. In various examples, the trigger 318 can be configured to invoke the execution of a function 336 in response to a user instruction. The trigger initiates the function execution and can take the form of one or more schedules 320, webhooks 322, shortcuts 324, and / or slash commands 326. In some examples, the schedule 320 operates like a timer such that the trigger can be scheduled to fire periodically or once at a predetermined time in the future. In some examples, an end user of an event-based application sets any schedule for the trigger to fire, such as once per hour or at 9:15 am daily.

[0142] Additionally, the trigger 318 can take the form of a webhook 322. The webhook 322 can be a software component that listens at a webhook URL and port. In some examples, the trigger fires when an appropriate HTTP request is received at the webhook URL and port. In some examples, the webhook 322 requires appropriate authentication, such as via a bearer token. In other examples, the trigger will depend on the payload content.

[0143] Another source of one of the triggers 318 is the shortcut in the shortcuts 324. In some examples, the shortcuts 324 can be global to the group-based communication system rather than specific to a group-based communication system channel or workspace. Global shortcuts can trigger functions that can be executed without the context of a specific group-based communication system message or group-based communication channel. In contrast, message- or channel-based shortcuts are specific to a group-based communication system message or channel and operate in the context of a group-based communication system message or group-based communication channel.

[0144] Another source for one of the triggers in trigger 318 can be provided by slash command 326. In some examples, slash command 326 can be used as an entry point for group-based communication system functionality, integration with external services, or group-based communication system message responses. In some examples, the slash command 326 can be input by a user of the group-based communication system to trigger the execution of application functionality. After the slash command can be slash command line arguments that can be passed to any group-based communication system functionality called in conjunction with the triggering of a group-based communication system function such as one of functions 336.

[0145] An additional way to invoke functionality 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, and each subscription can specify different conditions and trigger different functions. In some examples, the event is implemented as a group-based communication system message received in one or more group-based communication system channels. For example, all events can be published as non-user visible messages in the associated channels monitored by subscription 334. Application event 330 can be a group-based communication system message with associated metadata, which are created by the application in the group-based communication system channels. 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. A bot is a technical user of the group-based communication system for automating tasks. The bot can be programmatically controlled to perform various functions. The bot can monitor and assist in processing group-based communication system channel activities, as well as post messages in the group-based communication system channels and react to in-channel activities of members. The bot can be able to post messages and upload files, and be invited to or removed from public and private channels in the group-based communication system.

[0146] Event 328 can also be any event associated with the group-based communication system. Such group-based communication system (GBCS) events 332 include events related to the creation, modification, or deletion of user accounts in the group-based communication system, or events related to messages in the group-based communication system channels, such as creating a message, editing or deleting a message, or reacting to a message. Event 328 can also involve the creation, modification, or deletion of a group-based communication system channel or the channel membership. Event 328 can also involve user profile modification or group creation, member maintenance, or group deletion.

[0147] As described above, subscription 334 indicates one or more conditions that trigger a function when an event matches. In some examples, a set of event subscriptions is maintained in conjunction with a group-based communication system such that when an event occurs, information about the event is matched against the set of subscriptions to determine which, if any, of the functions 336 should be invoked. In some examples, an authorization framework manages the events that a particular application can subscribe to. In some cases, OAuth permission scopes manage the types of events that are matched against subscriptions, and the OAuth permission scopes can be maintained by an administrator of a particular group-based communication system.

[0148] In some examples, function 336 can be triggered by triggers 318 and events 328 to which the function 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 various forms. First, there is a group-based communication system built-in 338, which is associated with the core functionality of a particular group-based communication system. Some examples include creating group-based communication system users or channels. Second, there is a no-code builder function 340, which can be developed by a user of a group-based communication system in conjunction with an automated user interface (such as a workflow builder user interface). Third, there is a managed code function 342, which is implemented by developing a group-based communication system application as software code in conjunction with a software development environment.

[0149] These various types of functions 336 can then be integrated with API 344. In some examples, API 344 is associated with third-party services, and function 336 employs these third-party services to provide a custom integration between a particular third-party service and the group-based communication system. Examples of third-party service integrations include video conferencing, sales, marketing, customer service, project management, and engineering application integrations. In such examples, one of the triggers 318 will be a slash command 326, which is used to trigger the managed code function 342, and the managed code function makes an API call to a third-party video conferencing provider via one of the APIs in API 344. As Figure 3B shown, API 344 itself can also be the source of any number of triggers 318 or events 328. Continuing with the above example, the successful completion of a video conference will trigger one of the functions 336, which sends a message to the third-party video conferencing provider to initiate a further API call to download and archive the recording of the video conference and store it in a group-based communication system channel.

[0150] In addition to integrating with the API 344, the function 336 can persistently store and access data in the table 346. In some examples, the table 346 is implemented in conjunction with a database environment associated with a serverless execution environment in which a particular event-based application is executing. In some cases, the table 346 can be provided in conjunction with a relational database environment. In other examples, the table 346 is provided in conjunction with a database mechanism that does not employ relational database technology. As Figure 3B shown, in some examples, reading from or writing to one or more tables 346 with specific data or data in the table matching a predefined condition is itself a source of a number of triggers 318 or events 328. For example, if the table 346 is used to maintain billing data in an incident management system, a count of open work orders exceeding a predetermined threshold can trigger the posting of a message in an incident management channel in a group-based communication system.

[0151] Figure 4 An exemplary user interface 400 associated with a communication platform as described herein for displaying a user profile including a frequent channel segment, a related person segment, and / or a frequent topic segment is shown.

[0152] The exemplary user interface 400 can present information associated with a user account (e.g., "Jordan Becker" as indicated in the user profile 402). As Figure 4 shown, the user interface 400 can present data associated with one or more channels, people, documents, and / or, in some examples, can present data associated with one or more workspaces. The exemplary user interface 400 can include a segment (e.g., which can be a part, pane, or other partitioning unit of the user interface 400) presenting contact information 404 associated with the user account. The contact information 404 can include, for example, one or more email addresses, phone numbers, preferred contact methods, social network handles, addresses, occupations, organizations, enterprises, etc. In some examples, the user profile 402 (which can also be referred to as the "user account") can include additional information or content, such as a photo of the user, working hours, etc.

[0153] In some examples, a user account may store data associated with a user, including but not limited to: one or more user identifiers associated with different organizations, groups, or entities associated with the user, one or more group identifiers of groups (or organizations, teams, entities, etc.) associated with the user, one or more channel identifiers associated with channels the user has been authorized for, an indication of whether the user is an owner or manager of any channels, an indication of whether the user has any channel constraints, one or more direct message identifiers associated with direct messages associated with the user, one or more document identifiers associated with collaborative and / or personal documents associated with the user, multiple message objects, multiple emojis, multiple conversations, multiple conversation topics, time zone, working hours, status, etc.

[0154] In some examples, the exemplary user interface 400 may include segments that include the user 406 or user accounts that the user works with or reports to. For example, the user 406 (or person) may include one or more managers, supervisors, team leads, group leads, direct report users, mentors, colleagues, HR members, etc. In some examples, the user 406 is associated with a role, title, or position within an organization or communication platform. For example, as Figure 4 shown, the user G. Presley is associated with the manager title, while K Garcia, T. Johnson, and M. Miller are associated with the "direct report" role.

[0155] In some examples, the exemplary user interface 400 may include a segment for viewing mentions and messages 408 associated with the user account. As Figure 4 shown, the mentions and messages 408 segment may include one or more of the following: the most recent messages sent to the user account, the most recent messages sent by the user account to another user, the most recent responses to a post, the most recent mentions of the user or user account in a channel, favorited or highlighted messages, etc. The type of information included in the mentions and messages 408 segment may depend on privacy settings associated with the user account, preferences of the user account, privacy settings associated with the message (e.g., whether the message was sent privately), keywords or phrases associated with the message, etc. When the user selects a message in the mentions and messages 408 segment, a message pane may be presented. In some examples, the message pane may include access to content associated with the message, including the ability to respond to the message, react to the message, set a reminder associated with the message, send the message to another user, etc.

[0156] In some examples, the exemplary user interface 400 may include any number of channels 410 that can be used to organize conversations among and between users according to a theme. In some examples, the exemplary user interface 400 may include channels 410 such as general channels, social channels, random channels, technical support channels, onboarding support channels, design team idea channels, creative arts project channels, and / or any other channels associated with a user account. When a user selects a channel 410, a channel pane or window may be presented. In some examples, in addition to enabling a user to add other members, post content, etc., the channel pane may include access to content associated with the channel.

[0157] In some examples, the exemplary user interface 400 may include any number of frequently used channels 412 associated with a user account. Frequently used channels 412 may include channels in which the user account is active (e.g., channels with which the user frequently interacts) or channels managed by the user. In some examples, frequently used channels 412 may include channels most relevant to the areas of expertise associated with the user. In some examples, frequently used channels 412 may include channels not included in the channels 410 section of the user profile. In some examples, the frequently used channels 412 section may be generated (i.e., output) by a machine learning model 430 configured to receive user interaction data associated with channels 420, posts 422, relationships 424, documents 426, and / or interactions 428 associated with a communication platform.

[0158] For example, the machine learning model 430 may be configured to receive interaction data associated with a channel 420. Channel interaction data may include interactions that a user has taken with respect to a channel or virtual space associated with a communication platform. For example, channel interaction data may include user activities such as creating a channel (e.g., creating a channel indicates a higher level of interest in the channel), adding one or more users to a channel, posting content to a channel (messages, reactions, documents, images, videos, links to other documents, etc.), responding to content in a channel over a period of time (e.g., responding to content posted in a channel within a shorter period of time indicates a higher level of interest in the channel), interacting with a channel a threshold number of times over a period of time (e.g., viewing a channel 3 times a day compared to viewing a channel once a week), the duration 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 within a channel, etc.

[0159] In some examples, the machine learning model 430 can be configured to receive interaction data associated with the post 422. The post 422 data can be associated with a data feed (or "feed") that includes messages published to one or more communication channels and / or other virtual spaces for facilitating communication and / or actions taken with respect to one or more communication channels and / or other virtual spaces. In some examples, the post data can include the creation of the post (e.g., which member of the channel created the post), editing the post, reacting to the post, the length of the post, the type of the post (e.g., image, video, document link, etc.), and so on. Messages sent via the communication channel can also include metadata that includes the sending user identifier, message identifier, message content, group identifier, communication channel identifier, etc., and the metadata can be input into the machine learning model 430.

[0160] In some examples, the machine learning model 430 can be configured to receive interaction data associated with the relationship 424 data. The relationship 424 data broadly includes the set of direct and indirect interactions of a user with another user and interactions with the channel. For example, the relationship 424 data can include interactions between users or user accounts, including, for example, how many messages a user has read from another user, how quickly the message is read after it is sent (e.g., when the message is opened after it is received) and / or responded to, how many messages a user has reacted to from another user (e.g., using emojis or @-mentioning the user or message), how many direct messages a user has sent to another user, how many common channels a user and another user have, the size of the channels shared by the user and another user (e.g., active communication in a smaller channel signals a closer working relationship), and so on, which can be input into the machine learning model 430. In some examples, the relationship 424 data can include communications between users who have specific roles, titles, positions, subordination relationships (e.g., CEO, CTO, supervisor, researcher, research assistant, etc.) within the communication platform.

[0161] The relationship 424 interaction data may also include the relationship between the user and one or more channels. For example, the relationship data may include whether the user has joined the channel (i.e., after receiving an invitation), how many messages the user has sent in the channel, the time when the user was last active in the channel, how many messages or posts the user has read in the channel, how often the user checks for updates in the channel, whether the user has starred or favorited the channel, how similar the channel is to other channels the user participates in, etc. In some examples, the relationship 424 data may include the relationship between the user and a topic, keyword, or key phrase (e.g., the number of keywords or phrases used by an individual user). For example, how many messages the user has sent about a topic, how many messages about the topic the user has read, how many responses have been received to the user's messages about the topic, how many times a file or document about the topic has been attached to the user's messages and has been downloaded by other users, how many questions the user has asked about the topic, how many answers to questions about the topic the user has provided, etc.

[0162] In some examples, the machine learning model 430 may be configured to receive interaction data associated with the document 426. For example, data associated with the document 426 may include the title of the document, the author of the document, the users with whom the document has been shared, the channel in which the document was published, the user responses to the document published in the channel, the edits made to the document (e.g., the type of edit, the frequency of the edit, etc.), the content of the document (e.g., text, symbols, emojis, drawings, images, videos, charts, lists, calendar ideas, spreadsheets, etc.), the topic of the document (including the keywords or phrases found within the document), the summary of the document, etc. The machine learning model 430 may be configured to apply specific weights to the interaction data associated with a particular document or file. For example, interaction data associated with a document related to a particular topic (e.g., a research project, a published article, 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, documents between a group of channels, documents between a group of users, documents within an organization and / or communication platform, etc. In some examples, the weights applied to the interaction data associated with the document 426 may vary according to an individual user, a specific 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.

[0163] In some examples, the machine learning model 430 can be configured to receive other interaction 428 data associated with a communication platform. In some examples, the machine learning model 430 can be configured to receive interaction data based on permission settings associated with user accounts, channels, messages, documents, etc. For example, the machine learning model 430 can receive data associated with public interactions (e.g., data shared with more than one user 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 can be considered "public" when users within an organization or channel can see the sharing of the interaction data through a virtual space or channel, respond to, react to, or otherwise participate in the sharing of the interaction data. Interaction data can be "private" when the interaction data is associated with constraints or restricts communication in a virtual space or channel to specific users or users with appropriate permissions to "view only". In some examples, the machine learning model 430 can be at least partially trained to identify and extract keywords or key phrases from private messages to help generate one or more representative channels, users, and / or topics to be associated with a user account.

[0164] In some examples, the machine learning model 430 can be configured to receive interaction data associated with a third-party application or provider. Third-party interaction data can include a user's interaction with an external contact list, calendar, messaging application, email, or other information stored in association with a third-party service provider. In some examples, access to the stored interaction data associated with a third-party application or provider can include sending a request to access specific interaction data.

[0165] In some examples, the machine learning model 430 can generate data representing one or more representative channels based at least in part on user interaction data. Representative channels can include frequently used channels with which the user interacts or manages. In some examples, the machine learning model 430 can be configured to output confidence scores associated with individual channels in the representative channels. The confidence scores can indicate the degree to which an individual channel may be associated with the user account. In some examples, the communication platform can determine the order for presenting the representative channels based at least in part on the confidence scores. In some examples, the confidence scores can be compared with a threshold score (e.g., higher than 50%, 60%, 90%, etc.) such that only channels with confidence scores higher than the threshold are associated with the user's profile data. In some examples, the communication platform can segment the representative channels into two or more segments based at least in part on the confidence scores associated with the individual channels. For example, the communication platform can have a first segment of the representative channels associated with confidence scores between 25% and 50%, a second segment of the representative channels associated with confidence scores between 51% and 80%, and a third segment of the representative channels associated with confidence scores between 81% and 100%. These confidence scores are merely examples and any values can be used.

[0166] In some examples, the communication platform can enable the user to edit (e.g., using the graphical identifier 418) or rearrange the order of the representative channels. Then, the communication platform can present the representative channels via a user interface associated with the group-based communication platform based on the selected order. In some examples, the communication platform can enable the user to highlight (e.g., increase its size, change its 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, channels created by the user can be associated with an indicator.

[0167] In some examples, a machine learning model can generate data representing one or more frequent channels based at least in part on the number of frequent channels that have been associated with a user's profile data. For example, a user's profile can be associated with a maximum number of frequent channels (e.g., 3 channels, 5 channels, 20 channels, etc.). The maximum number of frequent channels that can be presented on a user's profile page can be set by the communication platform, an organization, an administrator, or the user. In some examples, a user's profile can be associated with a minimum number of frequent channels. For example, a user can have no fewer than 3 frequent channels at any given time. The profile page associated with the maximum number of frequent channels can still be updated over time (e.g., automatically or by the user) to include new frequent channels. For example, a machine learning model can recommend new frequent channels to a user based on new interaction data input into the machine learning model over time. In some examples, a machine learning model can update the frequent channels associated with a profile page based on a request by the user to modify profile data, detection of a threshold number of keywords or key phrases associated with the user or user account, detection of the creation of a threshold number of channels, detection of the addition of a threshold number of new user accounts to the communication platform, detection of the addition of a threshold number of new employees to the user's organization, or the passage of a threshold period of time.

[0168] In some examples, an exemplary user interface 400 can include any number of associated persons 414 (or associated users) associated with a user account. The associated persons 414 can include other users or user accounts with which the user account actively interacts or engages. In some examples, the associated persons 414 can include users who are working on similar projects, share a common area of expertise, share a threshold number of channels, and / or may be interested in collaborating on a project. In some examples, the section of associated persons 414 associated with a user account can be generated (i.e., output) by a machine learning model 430 configured to receive user interaction data associated with channels 420, posts 422, relationships 424, documents 426, and / or interactions 428 associated with a communication platform. In some examples, the machine learning model that outputs one or more associated persons 414 (or representative users) is the same or a different machine learning model than the one that outputs one or more representative channels.

[0169] In some examples, the machine learning model 430 can be configured to output confidence scores associated with individual users among the representative users. The confidence scores can indicate the degree to which an individual user is likely to be associated with a user account. In some examples, the communication platform can determine an order for presenting the representative users at least in part based on the confidence scores. In some examples, the confidence scores can be compared with a threshold score (e.g., above 50%, 60%, 90%, etc.) such that only users with confidence scores above the threshold are associated with the user's profile data. In some examples, the communication platform can segment the representative users into two or more segments at least in part based on the confidence scores associated with individual users. For example, the communication platform can have a first segment that includes representative users associated with confidence scores between 25% and 50%, a second segment that includes representative users associated with confidence scores between 51% and 80%, and a third segment that includes representative users associated with confidence scores between 81% and 100%. These confidence scores are merely examples, and any values can be used.

[0170] In some examples, the communication platform can enable a user to edit (e.g., using the graphical identifier 418) or rearrange the order of the representative users (e.g., relevant persons or users). The communication platform can then present the representative users via a user interface associated with the group-based communication platform based on the selected order. In some examples, the communication platform can enable a user to highlight (e.g., increase its size, change its 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.

[0171] In some examples, a machine learning model can generate data representing one or more relevant persons (or users) at least in part based on the number of relevant persons that have been associated with a user's profile data. For example, a user's profile can be associated with a maximum number of relevant persons (e.g., 3 relevant persons, 5 relevant persons, 20 relevant persons, etc.). The maximum number of relevant persons that can be presented on a user's profile page can be set by a communication platform, an organization, an administrator, or the user. In some examples, a user's profile can be associated with a minimum number of relevant persons. For example, a user may not have fewer than 3 relevant persons at any given time. A profile page associated with the maximum number of relevant persons can still be updated over time (e.g., automatically or by the user) to include new relevant persons (e.g., due to a user leaving or joining a communication platform or organization, a work relationship changing over time, or a general change in a work project, etc.). For example, a machine learning model can recommend new relevant persons to a user based on new or changing interaction data that is input into the machine learning model over time. In some examples, a machine learning model can update the relevant persons associated with a profile page based on a user's request to modify profile data, detection of a threshold number of keywords or key phrases associated with the user or user account, detection of a threshold number of new user accounts, detection of a threshold number of users leaving an organization or communication platform, detection of a threshold number of new user accounts added to a communication platform, or the passage of a threshold time period.

[0172] In some examples, the exemplary user interface 400 may include any number of frequently discussed topics 416 associated with a user account. The frequently discussed topics 416 may include topics that are frequently discussed in messages, channels, and / or documents of the user account. In some examples, the frequently discussed topics 416 may include topics that the user account is considered an “expert” in or interested in discussing with other users. For example, a machine learning model may analyze specific topics (e.g., machine learning, artificial intelligence, graphic design, etc.) discussed among all users or a group of users associated with a group-based communication platform and determine (at least in part based on comparing data between user accounts) which users discuss the topics most frequently (e.g., respond to questions related to 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 versus a machine learning model specifically associated with a user account). In some examples, the machine learning model may associate a topic with only a specific number of users or user groups. For example, the machine learning model may associate a topic with only the top 1%, 5%, 10% of user accounts. Alternatively or additionally, 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 user accounts out of all user accounts on a group-based communication platform, or among specific user groups (e.g., among groups of inventors or researchers, organizations, organizational groups, etc.). In some examples, the machine learning model may automatically update the topics associated with an individual user account at least in part based on receiving additional interaction data, the passage of time, determining that a specific number of new users have joined the communication platform, detecting a number of keywords or key phrases, receiving a request to update a topic segment associated with an individual user account, etc.

[0173] In some examples, the exemplary user interface 400 can enable a user associated with a user account to edit information presented on the user account. For example, the exemplary user interface 400 can include a graphical identifier 418 associated with a separate section of the user account. For example, the graphical identifier 418 can 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, selecting the graphical identifier 418 associated with a separate section enables the user to edit (i.e., add, remove, rearrange, highlight, etc.) the information associated with the separate section. In some examples, in response to receiving an indication that the user has edited information presented on the user account, a machine learning model can automatically update other information associated with the user account. For example, the machine learning model can detect that the user has edited (e.g., added, removed, rearranged, etc.) information related to 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 want to associate with the user account. In some examples, edits made by the user to the user's profile (e.g., adding, removing, rearranging users, channels, and / or topics associated with the profile page) can be input as training data into the machine learning model.

[0174] Figure 5 Illustrated are an exemplary first user interface and a second user interface associated with a communication profile for displaying profile data associated with a user account as described herein. In some examples, the communication platform can present specific profile data associated with a first user account to a viewing user (e.g., a second user) based in part on an indication of user preferences (which can be explicitly indicated or learned using a machine learning model 502). In some examples, the profile data presented to the second user can 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 can be determined at least in part based on an organizational chart and / or learned based on user interactions over time. For example, the communication platform can analyze messaging and / or other interaction data to determine relationships and / or relative rankings, roles, or positions among users. This allows the presentation of information (e.g., channels, users, etc.) most relevant to the viewing user to a user viewing the profile of another user.

[0175] In some examples, the machine learning model 502 can generate different overview data to be displayed in association with the first user account based on which user is viewing the overview data. For example, the machine learning model can generate different overview data based at least in part on interaction data associated with the user account viewing the overview data, interaction data associated with the viewing user and the user account associated with the overview data, one or more permissions or privacy settings, etc. For example, a second user account associated with the computing device 504(1) can request 506(1) to view the overview data (e.g., overview page) associated with the first user account (e.g., Jordan Becker, as Figure 5 shown). The machine learning model 502 can generate first overview data to be displayed on the first user interface 508(1) associated with the computing device 504(1) based at least in part on the request. The first overview data can include: a first section 510(1) including one or more frequent channels, a second section 512(1) including one or more related persons (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 account associated with the computing device 504(2) can also request 506(2) to view the overview data (e.g., overview page) associated with the first user account (e.g., Jordan Becker, as Figure 5 shown). The machine learning model 502 can generate second overview data to be displayed on the second user interface 508(2) associated with the computing device 504(2) based at least in part on the request. The second overview data can include: a first section 510(2) including one or more frequent channels, a second section 512(2) including one or more related persons (or related users), and / or a third section 514(2) including one or more frequent topics associated with the user account.

[0176] In some examples, one or more of these sections can be associated with one or more indicators indicating additional information. For example, as Figure 5 shown, the second section 512(2) can include an indicator 518 associated with a separate user. The indicator 518 can indicate whether the separate user is currently active, whether the user is part of the same organization as the viewing user (e.g., the second user associated with the computing device 504(1)), whether the user is part of the same department as the viewing user, whether the user has worked with the viewing user in the past, whether the user is associated with the viewing user's contact list, etc.

[0177] In some examples, the machine learning model 502 can present additional, fewer, or different profile data at least in part based on the user account that is 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 can be input into the machine learning model 502. The machine learning model 502 can then analyze the first interaction data and the second interaction data and generate (as output) first data representing one or more representative channels and second data representing one or more representative users to be associated with the profile data of the first user account. A group-based communication platform can receive a request to view the profile data associated with the first user account from the second user account. The presentation component associated with the machine learning model 502 can then present, via a user interface, one or more representative channels and / or one or more representative users associated with the first user account based at least in part on the interaction data representing the interaction between the first user account and the second user account. For example, one or more representative channels and / or one or more representative users can 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 might be interested in collaborating, channels and / or users engaged in projects similar to those of the second user account or having backgrounds similar to those of the second user account, etc.

[0178] In some examples, the machine learning model 502 can rearrange the information presented in one or more segments according to the interaction data associated with the user account that is viewing the profile data of another user account. For example, as Figure 5 shown, the machine learning model 502 can present the "#FORCE-ARTWORK" channel as the third channel in the first segment 510(1) to a second user associated with the computing device 504(1), while presenting the "#FORCE-ARTWORK" channel as the seventh channel in the first segment 510(2) to a third user associated with the computing device 504(2). Similarly, as Figure 5 shown, the machine learning model 502 can present "C.Simon" as the first user in the first segment 510(1) to a second user associated with the computing device 504(1), while presenting "C.Simon" as the second user in the first segment 510(2) to a third user associated with the computing device 504(2).

[0179] In some examples, the machine learning model 502 can generate additional or different profile data at least in part based on the user account that is viewing the profile data. For example, as Figure 5As shown, the machine learning model 502 can generate relevant document data and present a fourth section 516 including one or more relevant documents to a user associated with the computing device 504(2). The machine learning model can generate relevant documents at least in part based on interaction data (e.g., actions taken within channels, messages, documents) between a third user account and a first user account associated with profile data (e.g., Jordan Becker, as Figure 5 shown). For example, the machine learning model 502 can determine that the third user account and the first user account share one or more channels, have worked on one or more projects together, or are currently working on one or more documents together, are working on similar projects, are working with one or more of the same users, share similar roles or areas of expertise, etc., at least in part based on the input data. The machine learning model can then generate and present additional profile data, such as the relevant document data included in the fourth section 516. One or more documents included in the fourth section 516 can be documents that the first user account and / or the second user account are working on, documents that have been shared between the first user account and the second user account, documents related to topics of interest to both user accounts, documents that the second user account may be interested in viewing, etc.

[0180] In some examples, the communication platform can present specific 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, profile data associated with a first profile page can be presented to a user with a first permission (e.g., full access), while different second profile data (e.g., a user may not be able to view one or more of the specific contact information 404, mentions and messages 408, channels in the frequent channels 412 section, one or more relevant people 414 or one or more frequent topics 416, and / or other information) associated with a second profile page can be presented to another user with a second permission (e.g., partial access). In some examples, permissions can be set automatically by an administrator, manager, employer, enterprise, organization, team leader, group leader, individual user, or other entity that uses the communication platform to communicate with users on the communication platform. In some examples, permissions can indicate which users can be associated with the profile data of a user account, which channels can be associated with the profile data of a user account, any restrictions on individual channels, and restrictions on documents that can be shared, edited, or associated with the profile data of a user account. For example, the communication platform can restrict or prevent user accounts associated with the human resources department or the information technology department from being associated with the profile data of a user account.

[0181] Figure 6FIG. 0 is a flowchart showing an exemplary process of using a machine learning model to generate data associated with a representative channel and a representative user as described herein. Process 600 is shown as a collection of blocks in a logical flowchart that represents a series of operations, some or all of which can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, encryption, decryption, compression, recording, data structures, etc. that perform specific functions or implement specific abstract data types. The order in which the operations are described should not be construed as limiting. Any number of blocks can be combined in any order and / or in parallel to implement these processes or alternative processes, and not all blocks need to be executed in all examples. For discussion purposes, the processes herein are described with reference to the frameworks, architectures, and environments described in the examples herein, but these processes can be implemented in a wide variety of other frameworks, architectures, and environments.

[0182] At operation 602, process 600 can include receiving interaction data from a first user account associated with a group-based communication platform, the interaction data representing an interaction between the first user account and at least one other user account or channel associated with the group-based communication platform. In some examples, the interaction data can include an interaction of the first user with the first user's own user account, interactions with one or more users (e.g., sending messages between users, responding to messages, sending and / or editing documents), 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 discussed above with respect to Figure 4 what has been discussed, the interaction data can include interactions of the user with one or more channels, posts, relationship data, documents, and / or other interactions associated with the group-based communication platform.

[0183] At operation 604, process 600 can include inputting the interaction data into a machine learning model that is trained to determine one or more channels with which a user account is actively interacting via the group-based communication platform and / or one or more user accounts with which a user account is actively interacting via the group-based communication platform. In some examples, the machine learning model can evaluate and analyze the interaction data associated with the group-based communication platform. In some examples, the machine learning model can determine one or more topics that a user account is actively discussing or interested in discussing with other users.

[0184] At operation 606, process 600 can include generating, by a machine learning model and at least in part based on an input, first data representing one or more representative channels associated with a group-based communication platform and second data representing one or more representative users. Representative channels can include channels with which a user most frequently interacts or is most interested. Representative users can include users who most frequently interact with a user account. Alternatively or additionally, the machine learning model can generate one or more topics that a user frequently discusses or is interested in and that are discussed by other users associated with the group-based communication platform.

[0185] At operation 608, process 600 can include associating the first data representing one or more representative channels and the second data representing one or more representative users with profile data associated with a first user account. In some examples, the first data and the second data can be stored in a data repository. In some examples, the first data and the second data can first be presented to a user associated with the first user account before being associated with the profile data. For example, a presentation component associated with the machine learning model can request that the user accept, confirm, or reject the association of 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 can request that the user set permission or privacy settings for individual representative channels or representative users such that only specific users or groups of users can view one or more representative channels and / or representative users on the user's profile page.

[0186] At operation 610, process 600 can include presenting the first data and the second data to a second user account via a user interface associated with the group-based communication platform. For example, the first data and the second data can 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 at least in part based 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 at least in part based on interaction data between the first user account and the second user account.

[0187] Figure 7 is a flowchart showing an exemplary process for training a machine learning model. For convenience and ease of understanding, components described with reference to the environment 100 shown above are described Figure 1 to describe the process shown Figure 7 therein. However, Figure 7 the process shown therein is not limited to being performed using the components described with reference to environment 100 above. Additionally, the components described with reference to environment 100 above are not limited to performing the process shown Figure 7 therein.

[0188] Process 700 is shown as a collection of blocks in a logic flow diagram that represents a series of operations, some or all of which may be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, encryption, decryption, compression, recording, data structures, etc. that perform specific functions or implement specific abstract data types. The order in which the operations are described should not be construed as limiting. Any number of the blocks may be combined in any order and / or in parallel to implement these processes or alternative processes, and not all of the blocks need to be executed in all examples. For purposes of discussion, the processes herein are described with reference to the frameworks, architectures, and environments described in the examples herein, but these processes may be implemented in a wide variety of other frameworks, architectures, and environments.

[0189] At operation 702, process 700 may include generating one or more machine learning models. 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, while also utilizing statistical techniques, may also provide the ability to improve the performance of outcome prediction without explicitly programming to do so. A variety of 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 and / or accessible data may be extracted from one or more databases, such as data repository 124, and may be used to predict trends and behavioral patterns.

[0190] At operation 704, process 700 may include training a machine learning model by at least partially inputting prior interaction data and prior representative data into the machine learning model. For example, profile content including a frequent channel list, a related user list, and / or frequent topic data associated with one or more user accounts 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 the interaction data. For example, the machine learning model may assign greater weights to: more recent interaction data, a specific type of communication between users (e.g., applying a greater weight to sent messages rather than received messages), or a channel type (e.g., applying a greater weight to channels created by the user rather than joining channels that have already been created). The machine learning model may learn the relationship between prior user interaction data and prior representative data (e.g., prior representative channels, representative users, and / or representative topics) such that the machine learning model can generate more accurate representative data over time.

[0191] At operation 706, process 700 may include using the machine learning model to generate representative data. For example, a 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 individual representative channels, users, and / or topics. In some examples, the representation component may present the representative channels, representative users, and / or representative topics in a certain order based on the confidence scores associated with the individual representative data.

[0192] 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.

[0193] At operation 710, process 700 may include determining whether the user has selected one or more representative data from the representative data. In response to the user selection of one or more representative data, process 700 may follow the "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 follow the "no" route and proceed to 704, whereby the user's response may be input as previous representative data and used as training data to train the machine learning model. In some examples, the communication platform may receive a request from the user account to modify the 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 at least in part based on the request and previous interaction data. The representative channels and users may be those recommended by the machine learning model to the user account for channels and users associated with the profile data. The communication platform may receive a selection of one or more representative channels and / or one or more representative users from the user account, where the selection represents a subset of representative channels from the first list and a subset of representative users from the second list. In some examples, the communication platform may provide the selection of the subset of representative channels and the subset of representative users as an input to the machine learning model in order 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 at least in part based on the input and previous interaction data. The communication platform may associate the subset of representative channels and the subset of representative users with the profile data of the user account.

[0194] At operation 712, process 700 may include displaying the selected representative data (or subset of representative data) on a profile page associated with the user account. In some examples, when new representative data has been associated with the user's profile page, the communication profile may send a notification to the user.

[0195] Exemplary clause

[0196] A: A method at least partially implemented by one or more computing devices of a group-based communication platform, the method comprising: receiving interaction data from a first user account associated with the group-based communication platform, the interaction data representing an interaction 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, at least partially based on the input, first data including one or more representative channels associated with the group-based communication platform and second data including one or more representative users; associating the first data including one or more representative channels and the second data including one or more representative users with profile data associated with the first user account; and presenting the first data and the second data to a second user account via a user interface associated with the group-based communication platform.

[0197] B: The method according to paragraph A, wherein the machine learning model is trained based on: (i) third data, which includes previous interaction data, the previous interaction data including data representing an interaction between a previous channel and a previous user account; and (ii) fourth data, which includes previous representative channels and representative users associated with the previous interaction data, to learn the relationship between the third data and the fourth data, such that the machine learning model is configured to use the learned relationship to generate the first data and the second data when inputting the interaction data.

[0198] C: The method according to paragraph A or B, wherein the interaction data includes at least one of the following: a reaction to a message; a link associated with the message; the number of replies associated with the channel; the number of views associated with the channel; or an attachment within the channel.

[0199] D: The method according to paragraphs A to C, further comprising: receiving, from the machine learning model, a confidence score associated with an individual channel among the representative channels; determining an order for presenting the representative channels based on the confidence score; and presenting the representative channels based on the order via a user interface associated with the group-based communication platform.

[0200] E: The method according to any one of paragraphs A to D, further comprising: providing a keyword or a key phrase as input to the machine learning model; generating, by the machine learning model, at least partially based on the input, third data representing frequently discussed topics; and associating the third data with profile data associated with the first user account.

[0201] F: The method according to any one of paragraphs A to E, wherein generating the first data and the second data to be associated with the first user account is at least partially based on the largest number of representative channels and the largest number of representative users associated with the first user account.

[0202] G: The method according to any one of paragraphs A to F further comprises: receiving, from a first user account, a request to modify profile data associated with the first user account; generating, at least in part based on the request and interaction data, a representative channel of a first list that is not presented in the profile data associated with the first user account; receiving, from the first user account, a selection of one or more representative channels, selecting a subset of representative channels that represent the representative channels from the first list; providing the selection of the subset of representative channels from the first list and the interaction data as an input to a machine learning model; generating, by the machine learning model, at least in part based on the input and the interaction data, a second list of representative channels; and causing the subset of representative channels to be displayed on the profile data associated with the first user account.

[0203] H: The method according to any one of paragraphs A to G further comprises: receiving, from a first user account, a request to modify profile data associated with the first user account; generating, at least in part based on the request and interaction data, representative users of a first list that are not presented in the profile data associated with the first user account, where the representative users represent users with whom the first user account is most likely to interact; receiving, from the first user account, a selection of one or more representative users, selecting a subset of representative users that represent the representative users from the first list; providing the selection of the subset of representative users from the first list and the interaction data as an input to a machine learning model; generating, by the machine learning model, at least in part based on the input and the interaction data, a second list of representative users; and causing the subset of representative users to be displayed on the profile data associated with the first user account.

[0204] I: The method according to paragraph H, wherein the representative users of the first list include users based at least in part on one of the following: the number of shared channels between a user and a separate user; activity level data associated with the separate user associated with the shared channel; user response data associated with the separate user; or the number of keywords or key phrases used by the separate user.

[0205] J: The method according to paragraph A, wherein presenting the first data and the second data to a second user account is at least in part based on the permission levels associated with the first user account and the second user account.

[0206] K: The method according to paragraph A further includes: determining the occurrence of an event associated with a group-based communication platform, where the event includes at least one of the following: receiving a request to modify profile data associated with a first user account from the first user account; detecting a threshold number of keywords or key phrases associated with the first user account; or elapsing a threshold time period; and generating, by a machine learning model, at least partially based on the occurrence of the event, third data representing one or more additional representative channels associated with the group-based communication platform and fourth data representing one or more additional representative users; and associating the third data and the fourth data with the profile data of the first user account.

[0207] L: A system includes: one or more processors; and one or more non-transitory computer-readable media that store instructions which, when executed, cause the system to perform operations including: receiving interaction data from a first user account associated with a group-based communication platform, the interaction data representing an interaction 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 an input to a machine learning model; generating, by the machine learning model, at least partially based on the input, first data including one or more representative channels associated with the group-based communication platform and second data including one or more representative users; associating the first data including one or more representative channels and the second data including one or more representative users with profile data associated with the first user account; and presenting the first data and the second data to a second user account via a user interface associated with the communication platform.

[0208] M: The system according to paragraph L, the operations further include: receiving a request to view profile data associated with the first user account from a third 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 at least partially based on the interaction data representing an interaction between the first user account and the third user account.

[0209] N: The system according to paragraph L, where the interaction data includes at least one of the following: a reaction to a message; a link associated with the message; the number of replies associated with a channel; the number of views associated with a channel; or an attachment within a channel.

[0210] O: The system according to paragraph L, the operations further include: providing keywords or key phrases as an input to the machine learning model; generating, by the machine learning model, at least partially based on the input, third data representing frequently discussed topics; and associating the third data with profile data associated with the first user account.

[0211] P: A system according to paragraph L, wherein generating first data and second data to be associated with a first user account is at least partially based on a maximum number of representative channels and a maximum number of representative users associated with the first user account.

[0212] 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 interaction data from a first user account associated with a communication platform, the interaction data representing an interaction between the first user account and at least one of other user accounts or channels associated with a group-based communication platform; providing the interaction data as an input to a machine learning model; generating, by the machine learning model, at least partially based on the input, first data associated with the group-based communication platform including one or more representative channels and second data including one or more representative users; associating the first data including one or more representative channels and the second data including one or more representative users with profile data associated with the first user account; and presenting the first data and the second data to a second user account via a user interface associated with the communication platform.

[0213] R: One or more non-transitory computer-readable media according to paragraph Q, wherein the one or more representative users include users at least partially based on one of: the number of shared channels between a user and individual users; activity level data associated with individual users associated with a shared channel; user response data associated with individual users; or the number of keywords or key phrases used by individual users.

[0214] S: One or more non-transitory computer-readable media according to paragraph Q, wherein the interaction data includes at least one of: a reaction to a message; a link associated with a message; the number of replies associated with a channel; the number of views associated with a channel; or an attachment within a channel.

[0215] T: One or more non-transitory computer-readable media according to paragraph Q, wherein presenting the first data and the second data to a second user account is at least partially based on permission levels associated with the first user account and the second user account.

[0216] While the above-described exemplary clauses are described with respect to a particular implementation, it should be understood that, in the context of this document, the content of the exemplary clauses can also be implemented via a method, device, system, computer-readable medium, and / or another implementation. Additionally, any one of Examples A through T can be implemented alone or in combination with any other one or more of Examples A through T.

[0217] Conclusion

[0218] Although one or more examples of the techniques described herein have been described, various changes, additions, permutations, and equivalents are included within the scope of the techniques described herein.

[0219] In the description of the examples, reference is made to the accompanying drawings that form a part of the present invention, and the drawings illustrate, by way of example, specific examples of the claimed subject matter. It should be understood that other examples may be used and changes or alterations may be made, such as structural changes. Such examples, changes, or alterations do not necessarily depart from the scope of the claimed subject matter relative to the intended one. Although the steps herein may be presented in a particular order, in some cases the ordering may be changed so that specific inputs are provided at different times or in a different order without changing the functionality of the described systems and methods. The disclosed programs may also be executed in a different order. Additionally, the various computations herein need not be performed in the order disclosed, and other examples using alternative computational orderings can be readily implemented. In addition to being reordered, computations may also be broken into sub-computations that achieve the same result.

Claims

1. A method implemented at least in part by one or more computing devices of a group-based communication platform, the method comprising: Receiving interaction data from a first user account associated with the group-based communication platform, the interaction data representing an interaction 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 at least in part based on the input, first data associated with the group-based communication platform that includes one or more representative channels and second data that includes one or more representative users; Associating the first data that includes the one or more representative channels and the second data that includes 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 a second user account via a user interface associated with the group-based communication platform.

2. The method according to claim 1, wherein the machine learning model is trained based on: (i) third data that includes previous interaction data that includes data representing interactions between previous channels and previous user accounts; and (ii) fourth data that includes previous representative channels and representative users associated with the previous interaction data, to learn a relationship between the third data and the fourth data such that the machine learning model is configured to use the learned relationship to generate the first data and the second data when the interaction data is input.

3. The method according to claim 1, wherein the interaction data includes at least one of the following: A reaction to a message; A link associated with a message; The number of replies associated with a channel; The number of views associated with a channel; or An attachment within a channel.

4. The method according to claim 1, further comprising: Receiving from the machine learning model a confidence score associated with an individual channel among the representative channels; Determining, based on the confidence score, an order for presenting the representative channels; And Presenting the representative channels via the user interface associated with the group-based communication platform based on the order.

5. The method according to claim 1, further comprising: Providing a keyword or key phrase as the input to the machine learning model; Generating, by the machine learning model at least in part based on the input, third data representing frequently discussed topics; and Associating the third data with profile data associated with the first user account.

6. The method according to claim 1, wherein generating the first data and the second data to be associated with the first user account is at least in part based on a maximum number of representative channels and a maximum number of representative users associated with the first user account.

7. The method according to claim 1, further comprising: Receiving from the first user account a request to modify the profile data associated with the first user account; Generate a representative channel of a first list that is not presented in the profile data associated with the first user account, at least in part based on the request and the interaction data; Receive a selection of one or more representative channels from the first user account, the selection representing a subset of representative channels of the representative channels from the first list; Provide 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; Generate, by the machine learning model, a representative channel of a second list, at least in part based on the input and the interaction data; And Cause the subset of representative channels to be displayed on the profile data associated with the first user account.

8. The method according to claim 1, further comprising: Receive a request from the first user account to modify the profile data associated with the first user account; Generate, at least in part based on the request and the interaction data, a representative user of a first list that is not presented in the profile data associated with the first user account, the representative user representing a user with whom the first user account is most likely to interact; Receive a selection of one or more representative users from the first user account, the selection representing a subset of representative users of the representative users from the first list; Provide 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; Generate, by the machine learning model, a representative user of a second list, at least in part based on the input and the interaction data; And Cause the subset of representative users to be displayed on the profile data associated with the first user account.

9. The method according to claim 8, wherein the representative users of the first list include users at least in part based on one of the following: The number of shared channels between the user and individual users; Activity level data associated with individual users associated with the shared channels; User response data associated with individual users; or The number of keywords or key phrases used by individual users.

10. The method according to claim 1, wherein presenting the first data and the second data to the second user account is at least in part based on permission levels associated with the first user account and the second user account.

11. The method according to claim 1, further comprising: Determine the occurrence of an event associated with the group-based communication platform, wherein the event includes at least one of the following: Receive a request from the first user account to modify the profile data associated with the first user account; Detect a threshold number of keywords or key phrases associated with the first user account; Or Elapse a threshold time period; And Generate, by the machine learning model, at least in part based on the occurrence of the event, third data representing additional one or more representative channels and fourth data representing additional one or more representative users associated with the group-based communication platform; and Associating the third data and the fourth data with the profile data of the first user account.

12. 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, the operations including: Receiving interaction data from a first user account associated with a group-based communication platform, the interaction data representing an interaction 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 at least in part based on the input, first data associated with the group-based communication platform including one or more representative channels and second data including one or more representative users; 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 a second user account via a user interface associated with the communication platform.

13. The system of claim 12, wherein the operations further include: Receiving a request from a third user account to view the profile data associated with the first user account; and Presenting the first data and the second data to the third user account via the user interface associated with the communication platform at least in part based on the interaction data representing an interaction between the first user account and the third user account.

14. The system of claim 12, wherein the interaction data includes at least one of the following: A reaction to a message; A link associated with a message; The number of replies associated with a channel; The number of views associated with a channel; or An attachment within a channel.

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.