Generating structured data containers for communication platforms
The group-based communication platform addresses data organization challenges by generating structured data containers with messaging threads, improving collaboration and reducing resource needs through centralized data management.
Patent Information
- Application Number
- JP2025539936
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-01-06
- Filing Date
- 2023-12-15
- Publication Date
- 2026-02-03
AI Technical Summary
Existing communication platforms face challenges in efficiently organizing and tracking large volumes of data across synchronous and asynchronous communications, leading to lost messages and hindered collaboration, especially in large-scale projects and workflows.
A group-based communication platform generates structured data containers with associated messaging threads, providing a centralized system of record that tracks and updates data across platforms, ensuring information accuracy and accessibility.
This solution enhances collaboration by offering a centralized view of project details, reduces hardware and software requirements, and improves user experience by systematically organizing and managing data, thereby reducing lost time and revenue.
Smart Images

Figure 2026504017000001_ABST
Abstract
Description
[Technical Field]
[0001] This patent application claims priority to U.S. Utility Patent Application No. 18 / 151,023, U.S. Utility Patent Application No. 18 / 151,057, and U.S. Utility Patent Application No. 18 / 151,131, all filed on January 6, 2023. U.S. Utility Patent Application Nos. 18 / 151,023, 18 / 151,057, and 18 / 151,131 are incorporated by reference herein in their entireties.
[0002] [Technical field] Communication platforms are becoming increasingly prevalent in organizations to facilitate communication and collaboration among users. Users of such communication platforms can communicate with each other through channels, direct messages, and / or other virtual spaces by transmitting data. Due to the vast nature of data stored and stored on communication platforms, it is often difficult to easily find and track such data, even using existing search functions. As a result, data can be forgotten or lost, especially in communication platforms that involve asynchronous conversations. Furthermore, existing methods for tracking and recording data, such as electronic spreadsheets, are difficult to use and not designed for collaborative use. [Brief explanation of the drawings]
[0003] The detailed description will be set forth with reference to the accompanying drawings. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. When the same reference number is used in different figures, it indicates a similar or identical component or feature. The drawings are not drawn to scale. [Figure 1] 1 illustrates an exemplary system for performing the techniques described herein. [Figure 2A] For a specific example, a user interface for a group-based communication system is shown. [Figure 2B] For a particular example, a user interface for a multimedia collaboration session within a group-based communication system is shown. [Figure 2C] For a specific example, a user interface for inter-organizational collaboration within a group-based communication system is shown. [Figure 2D] For a specific example, a user interface for a collaborative document within a group-based communication system is shown. [Figure 3A] 1 illustrates a user interface for a workflow within a group-based communication system. [Figure 3B] 1 illustrates a block diagram for implementing certain examples as discussed herein. [Figure 4A] 1 illustrates an example interface for generating a structured data container via a list generation interface. [Figure 4B] 1 illustrates an exemplary interface that can be used to create an empty structured data container. [Figure 5A] 1 illustrates an exemplary interface that can be used to generate a structured data container via a template in a channel. [Figure 5B] 1 illustrates an exemplary interface that can be used to generate a structured data container via a template. [Figure 6] 1 illustrates an example interface including an example list that includes multiple structured data containers. [Figure 7A] 1 illustrates an example interface including a messaging thread associated with a structured data container. [Figure 7B] 1 illustrates an exemplary interface that can be used to update fields associated with a structured data container through a virtual space. [Figure 7C]1 illustrates an example interface that can be used to update a structured data container based on data received from a virtual space associated with the structured data container. [Figure 7D] 10 illustrates an example interface for modifying fields of a structured data container via a messaging thread. [Figure 7E] 10 illustrates an example interface that includes an instance of a structured data container that includes modifications to fields of the structured data container. [Figure 8] 1 illustrates a flow diagram of an exemplary process for creating a messaging thread associated with a structured data container and sharing the structured data container to a virtual space. [Figure 9] 1 illustrates a flow diagram of an exemplary process for generating a structured data container via a virtual space of a group-based communication platform. DETAILED DESCRIPTION OF THE INVENTION
[0004] The ability to collaborate effectively and efficiently through systems of record on communication platforms poses many challenges. For example, many users communicate through communication platforms by sending data such as messages, documents, and other media files. These communications are particularly useful for groups of individuals collaborating on projects, such as organizations and businesses with numerous workflows. Large-scale projects and workflows often result in large amounts of data being exchanged between many individuals in various positions and departments. To track such projects and workflows, organizations rely on electronic applications or software, such as electronic spreadsheets, to manage and store data and information. However, such techniques are limited in quantity and scope.
[0005] The large-scale nature of many projects often requires managing large volumes of data and tracking many moving parts. However, the collaborative nature of such projects means people often rely on others, such as teammates and colleagues, to complete tasks such as reviewing data and generating content. Often, such tasks become buried in the vast amount of data transmitted within an organization, especially across communication platforms that involve numerous synchronous and asynchronous communications. For example, messages can be scattered across multiple platforms and teams, making it difficult to track current status and tasks. This often results in individuals missing messages or not noticing notifications. This often hinders collaboration and leads to lost time and revenue.
[0006] Accordingly, this disclosure describes techniques for generating a system of record that incorporates data across communication platforms to provide a "back office" for organizational tasks and projects. For example, as described herein, a group-based communication platform may generate a "list" that includes one or more structured data containers that represent the system of record. The one or more structured data containers may include one or more fields that may be associated with data related to the group-based communication platform. In other words, the group-based communication platform may allow a user to generate a list that includes one or more "tasks," and each task or structured data container may be associated with aspects of the communication platform, such as, for example, launch date, files and documents, and contributors to the task.
[0007] In some examples, the group-based communication platform may generate messaging threads associated with one or more of the structured data containers, which not only serve as a single designated space for users to communicate and share data associated with the structured data containers but also keep a record of modifications made to the structured data containers. Thus, users are provided with an easily accessible, centralized view of all relevant details about, for example, a task or project. Additionally, structured data containers may be shared to other virtual spaces of the communication platform, such as direct messages or channels, allowing users to seamlessly integrate other users into the structured data container. Furthermore, any changes made to any instance of a structured data container may be automatically updated to other instances of the structured data container across the communication platform, ensuring that information is always accurate and up-to-date.
[0008] As illustrated by these examples, the techniques described herein can improve the functionality, efficiency, and overall user experience of a communication platform by generating structured data containers and corresponding messaging threads to organize and manage data. The techniques described herein may enhance the user experience through an improved graphical user interface (GUI) for a communication platform by empowering users to effectively customize and curate lists of tasks and projects by allowing them to generate lists that include one or more structured data containers that include fields associated with interactions via the group-based communication platform. These techniques not only allow users to systematically track information but also keep users informed of modifications made to such information. Furthermore, the techniques described herein may solve technical problems associated with the existence of large amounts of data associated with maintaining communication data across a communication platform. Thus, the techniques may reduce the amount of hardware and / or software required to accomplish data transmission, thereby increasing available memory and / or available computing cycles and reducing power consumption. As such, systems configured according to various examples of the present disclosure provide specific technical solutions to technical problems, the details of which are described herein.
[0009] The following detailed description of examples refers to the accompanying drawings, which show specific examples in which the present techniques may be practiced. These examples are intended to describe aspects of the systems and methods in sufficient detail to enable those skilled in the art to practice the techniques discussed herein. Other examples may be utilized and modifications may be made without departing from the scope of the present disclosure. Therefore, the following detailed description should not be construed in a limiting sense. The scope of the present disclosure is defined only by the appended claims, along with the full scope of equivalents to which such claims are entitled. Group-based communication system
[0010] FIG. 1 illustrates an exemplary environment 100 for performing the techniques described herein. In at least one example, the exemplary environment 100 may be associated with a communications platform that can leverage a network-based computing system to enable users of the communications platform to exchange data. In at least one example, the communications platform may be “group-based” such that the platform and associated systems, communication channels, messages, collaborative documents, canvases, audio / video conversations, and / or other virtual spaces have security (which may be defined by permissions) to limit access to a defined group of users. In some examples, such groups of users may be defined by a group identifier that may be associated with common access credentials, domains, etc., as described above. In some examples, the communications platform may be a hub that provides a secure, private virtual space for users to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate among one another. As described above, each group may be associated with a workspace, enabling users associated with the group to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate among one another within the secure, private virtual space. In some examples, members of a group, and thus a workspace, may be associated with the same organization. In some examples, members of a group, and thus a workspace, may be associated with different organizations (e.g., entities with different organization identifiers).
[0011] In at least one example, the exemplary environment 100 may include one or more server computing devices (or “server(s)”) 102. In at least one example, the server(s) 102 may include one or more servers or other types of computing devices that may be embodied in any number of ways. For example, in the server example, the functional components and data may be implemented on a single server, a cluster of servers, a server farm or data center, a cloud-hosted computing service, a cloud-hosted storage service, etc., although other computer architectures may additionally or alternatively be used.
[0012] In at least one example, the server(s) 102 can communicate with the user computing devices 104 via one or more network(s) 106. That is, the server(s) 102 and the user computing devices 104 can send, receive, and / or store data (e.g., content, information, etc.) using the network(s) 106 as described herein. The user computing devices 104 can be any suitable type of computing device, e.g., portable, semi-portable, semi-stationary, or stationary. Some examples of the user computing devices 104 can include tablet computing devices, smartphones, mobile communication devices, laptops, netbooks, desktop computing devices, terminal computing devices, wearable computing devices, augmented reality devices, Internet of Things (IoT) devices, or any other computing device capable of transmitting communications and performing functions in accordance with the techniques described herein. While a single user computing device 104 is shown, in practice, the exemplary environment 100 can include multiple (e.g., tens, hundreds, thousands, or millions) user computing devices. In at least one example, a user computing device, such as user computing device 104, may be operable by a user to, among other things, access communication services via a communications platform. A user may be an individual, a group of individuals, an employer, a business, an organization, and / or the like.
[0013] The network(s) 106 may include any type of network known in the art, such as, but not limited to, a local or wide area network, the Internet, a wireless network, a cellular network, a local wireless network, Wi-Fi and / or short-range wireless communication, Bluetooth®, Bluetooth Low Energy (BLE), Near Field Communication (NFC), a wired network, or any other such network, or any combination thereof. The components used for such communication may depend at least in part on the type of network, the selected environment, or both. Protocols for communicating over such network(s) 106 are well known and will not be described in detail herein.
[0014] In at least one example, server(s) 102 may include one or more processors 108 , computer-readable media 110 , one or more communication interfaces 112 , and / or input / output devices 114 .
[0015] In at least one example, each processor of processor(s) 108 can be a single processing unit or multiple processing units and can include single or multiple computing units or multiple processing cores. Processor(s) 108 can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units (CPUs), graphics processing units (GPUs), state machines, logic circuits, and / or any device that manipulates signals based on operational instructions. For example, processor(s) 108 can be one or more hardware processors and / or logic circuits of any suitable type specifically programmed or configured to execute the algorithms and processes described herein. Processor(s) 108 can be configured to fetch and execute computer-readable instructions stored on a computer-readable medium, which can program the processor(s) to perform the functions described herein.
[0016] The computer-readable medium 110 can include volatile and nonvolatile memory and / or removable and non-removable media implemented in any type of technology for storing data, such as computer-readable instructions, data structures, program modules, or other data. Such computer-readable medium 110 can include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, optical storage, solid-state storage, magnetic tape, magnetic disk storage, RAID storage systems, storage arrays, network-attached storage, storage area networks, cloud storage, or any other medium usable to store desired data and accessible by a computing device. Depending on the configuration of the server(s) 102, the computer-readable medium 110 can be some type of computer-readable storage medium and / or can be tangible, non-transitory medium, insofar as, when referred to, non-transitory computer-readable medium excludes media such as energy, carrier signals, electromagnetic waves, and signals themselves.
[0017] The computer-readable medium 110 may be used to store any number of functional components executable by the processor(s) 108. In many implementations, these functional components include instructions or programs executable by the processor(s) 108 that, when executed, specifically configure the processor(s) 108 to perform the actions attributed above to the server(s) 102. The functional components stored on the computer-readable medium may optionally include a messaging component 116, an audio / video component 118, a list generation component 120, an operating system 122, and a data store 124.
[0018] In at least one example, the messaging component 116 can process messages between users. That is, in at least one example, the messaging component 116 can receive an outgoing message from a user computing device 104 and transmit the message as an incoming message to a second user computing device 104. The message can include a direct message sent from the originating user to one or more designated users and / or a communication channel message sent from the originating user via the communication channel to one or more users associated with the communication channel. Additionally, the message can be transmitted in association with a collaborative document, canvas, or other collaborative space. In at least one example, the canvas can include a flexible canvas for curating, organizing, and sharing a collection of information between users. In at least one example, the collaborative document can be associated with a document identifier (e.g., a virtual space identifier, a communication channel identifier, etc.) configured to enable messaging functionality attributable to the virtual space (e.g., the communication channel) of the collaborative document. That is, the collaborative document can be treated as a virtual space, such as a communication channel, and can include functionality associated therewith. The virtual space or communication channel can be a data pathway used to exchange data between systems and devices associated with the communication platform.
[0019] In at least one example, the messaging component 116 can establish communication paths between various user computing devices, enabling the user computing devices to communicate and share data among one another. In at least one example, the messaging component 116 can manage such communication and / or data sharing. In some examples, data associated with the virtual space, such as collaborative documents, can be presented via a user interface. Additionally, metadata associated with each message sent through the virtual space can be stored in association with the virtual space, such as a timestamp associated with the message, a sending user identifier, a receiving user identifier, a conversation identifier and / or a root object identifier (e.g., a conversation associated with a thread and / or root object), and / or the like.
[0020] In various examples, the messaging component 116 can receive a message (e.g., a direct message instance, a communication channel, a canvas, a collaborative document, etc.) sent in association with the virtual space. In various examples, the messaging component 116 can identify one or more users associated with the virtual space and cause the rendering of a message in association with the instance of the virtual space on each user computing device 104. In various examples, the messaging component 116 can identify the message as an update to the virtual space and, based on the identified update, cause a notification associated with the update to be presented in association with a sidebar of a user interface associated with one or more of the user(s) associated with the virtual space. For example, the messaging component 116 can receive a message sent in association with the virtual space from a first user account. In response to receiving the message (e.g., interaction data associated with the first user's interaction with the virtual space), the messaging component 116 can identify a second user associated with the virtual space (e.g., another user who is a member of the virtual space). In some examples, the messaging component 116 can cause a notification of an update to the virtual space to be presented via a sidebar of a user interface associated with a second user account of the second user. In some examples, the messaging component 116 can cause the notification to be presented in response to determining that the sidebar of the user interface associated with the second user account includes an affordance associated with the virtual space. In such examples, the notification can be presented in association with the affordance associated with the virtual space.
[0021] In various examples, the messaging component 116 can be configured to identify a mention or tag associated with a message sent in association with a virtual space. In at least one example, the mention or tag can include an @mention (or other special character) of a user identifier associated with the communication platform. The user identifier can include a username, real name, or other unique identifier associated with a particular user. In response to identifying a mention or tag of a user identifier, the messaging component 116 can cause a notification to be presented on a user interface associated with the user identifier, e.g., in a sidebar of a user interface associated with the particular user and / or in a virtual space associated with mentions and reactions, associated with affordances associated with the virtual space. That is, the messaging component 116 can be configured to alert a particular user that they have been mentioned in a virtual space.
[0022] In at least one example, the audio / video component 118 may be configured to manage audio and / or video communications between users. In some examples, the audio and / or video communications may be associated with audio and / or video conversations. In at least one example, the audio and / or video conversations may include individual identifiers configured to uniquely identify the audio and / or video conversations. In some examples, the audio and / or video component 118 may store user identifiers associated with user accounts of members of particular audio and / or video conversations, for example, to identify user(s) who have appropriate permissions to access the particular audio and / or video conversations.
[0023] In some examples, communications associated with an audio and / or video conversation (“conversation”) may be synchronous and / or asynchronous. That is, a conversation may include a real-time audio and / or video conversation between a first user and a second user for a period of time, and after the first period, a third user associated with (e.g., a member of) the conversation may contribute to the conversation. Audio / video component 118 may be configured to store audio and / or video data associated with a conversation, such as to allow users with appropriate permissions to listen to and / or view the audio and / or video data.
[0024] In some examples, the audio / video component 118 may be configured to generate a transcript of the conversation and store the transcript in association with the audio and / or video data. The transcript may include a text representation of the audio and / or video data. In at least one example, the audio / video component 118 may generate the transcript using known speech recognition technology. In some examples, the audio / video component 118 may generate the transcript simultaneously or substantially simultaneously with the conversation. That is, in some examples, the audio / video component 118 may be configured to generate a text representation of the conversation while the conversation is taking place. In some examples, the audio / video component 118 may generate the transcript after receiving an indication that the conversation is complete. The indication that the conversation is complete may include an indication that an associated host or administrator has stopped the conversation, a threshold number of conference attendees have closed an associated interface, and / or the like. That is, the audio / video component 118 may identify the completion of a conversation and, based on that completion, generate a transcript associated therewith.
[0025] In at least one example, the audio / video component 118 can be configured to cause presentation of a transcript in association with a virtual space with which the audio and / or video conversation is associated. For example, a first user can initiate an audio and / or video conversation in association with a communication channel. The audio / video component 118 can process audio and / or video data between participants in the audio and / or video conversation and generate a transcript of the audio and / or video data. In response to generating the transcript, the audio / video component 118 can cause the transcript to be published or otherwise presented via the communication channel. In at least one example, the audio / video component 118 can render one or more sections of the transcript selectable for commenting, such as to allow members of the communication channel to comment on or further contribute to the conversation. In some examples, the audio / video component 118 can update the transcript based on the comments.
[0026] In at least one example, the audio / video component 118 can manage one or more audio and / or video conversations associated with a virtual space associated with a group (e.g., organization, team, etc.) management or command center. The group management or command center can be referred to herein as a virtual (and / or digital) headquarters associated with the group. In at least one example, the audio / video component 118 can be configured to coordinate with the messaging component 116 and / or other components of the server(s) 102 to send communications associated with other virtual spaces associated with the virtual headquarters. That is, the messaging component 116 can send data (e.g., messages, images, drawings, files, etc.) associated with one or more communication channels, direct messaging instances, collaborative documents, canvases, and / or the like associated with the virtual headquarters. In some examples, the communication channel(s), direct messaging instance(s), collaborative document(s), canvas(s), and / or the like can be associated with one or more audio and / or video conversations managed by the audio / video component 118. That is, audio and / or video conversations associated with a virtual headquarters may be further associated with or unrelated to one or more other virtual spaces of the virtual headquarters.
[0027] In at least one example, the list generation component 120 can manage the creation, modification, updating, and / or sharing of structured data containers. As described above, the term “list” broadly encompasses one or more structured data containers created via the group-based communication platform. A structured data container may represent a system of record with the group-based communication platform. In other words, a list may include one or more structured data containers and provide a way to store, categorize, manage, and modify associated data within the group-based communication platform. In some examples, a structured data container may include one or more fields. A field may be, for example, an element of a structured data container that can be configured to receive data. The data may correspond to a data category associated with the group-based communication platform, such as a task title, description, status, assignment type, submission date, due date, release date, launch date, owner, creator, thread, audience, content item, or rating, to name a few non-limiting examples. Additionally or alternatively, a structured data container may include information associated with an interaction associated with the group-based communication platform. In other words, one or more fields may contain data associated with interactions via the group-based communication platform.
[0028] In some examples, list generation component 120 may facilitate the generation of one or more structured data containers. For example, the group-based communication platform may receive a request to create a structured data container from a user associated with the communication platform. The request may be received via any area of the group-based communication network, for example, via a channel, a multimedia collaboration session such as a huddle, a canvas, a template, a direct message, a list generation interface, a workflow, or a thread, to name a few non-limiting examples. Based at least in part on receiving the request to generate the structured data container, list generation component 120 may prompt the user to select one or more fields associated with the structured data container, so that the user can determine the data to associate with the structured data container.
[0029] In some examples, the structured data container may be generated via a template and / or a workflow. For example, based at least in part on receiving a request to create a structured data container, the list generation component 120 may present a user with one or more templates from which the user can select as the structured data container. In some examples, the one or more templates may correspond to a common workspace process. For example, a template may be associated with submitting a request for assistance to an information technology (IT) department. The template may include fields associated with at least one of the issue, the technical field, a screenshot of the issue, and / or the date of the issue. Thus, a user of the group-based communication platform needing IT assistance may include in the respective fields information associated with one or more interactions via the group-based communication platform, so that, upon submission, the IT department can receive the information necessary to diagnose and remediate any issue.
[0030] In some examples, the list generation component 120 may generate a messaging thread associated with at least one field of the plurality of fields of the structured data container. The messaging thread may include different spaces of the group-based communication platform that are presented in different spaces of the group-based communication platform via the same feed. Messaging threads are described in more detail below in FIG. 2A and FIG. 2B. In some examples, the messaging thread associated with at least one field of the plurality of fields may include information associated with at least one field of the plurality of fields and / or information associated with an interaction associated with the group-based communication platform. The messaging thread associated with the list, in some examples, may update data associated with the messaging thread so that changes made to the structured data container are reflected in the messaging thread. Continuing with the above example, assume that a user of the group-based communication platform enters a date of January 31, 2023 via a request for an IT-assisted workflow. List generation component 120 may update the “date” field of the corresponding structured data container to reflect the date January 31, 2023, which includes first information associated with a first interaction associated with the group-based communication platform. The user may then decide to update the date from January 31, 2023 to January 24, 2023, which includes second information associated with a second interaction associated with the group-based communication platform. Based at least in part on receiving the updated information, list generation component 120 may cause presentation, via the messaging thread, of first metadata associated with the first information and second metadata associated with the second information, such that the second metadata includes an indication of the change to the first information.In other words, the list generation component 120 can trigger a presentation of the date change via the messaging thread. In this way, users of the structured data container can easily become aware of any changes made to the structured data container.
[0031] While the current example describes updating a messaging thread associated with a structured data container based on changes to the structured data container, the list generation component 120 may modify the structured data container based at least in part on changes made to data associated with multiple fields associated with the structured data container via other instances of the structured data container. In addition to or instead of messaging threads, instances of the structured data container may be accessible via and / or shared to other virtual spaces of the group-based communication platform, such as channels, canvases, direct messages, or huddles, to name a few non-limiting examples. Similar to what is described above with respect to messaging threads, changes to one or more of the multiple fields may be reflected in other instances of the structured data container. Creating, modifying, updating, and sharing structured data containers is described in further detail below in FIGS. 4A-9. Additional details of operations performable by the list generation component, such as creating, modifying, updating, and / or sharing structured data containers, are described below.
[0032] In some examples, the communication platform can manage communication channels. In some examples, the communication platform can be a channel-based messaging platform that, in some examples, can be usable by a group(s) of users. Users of the communication platform can communicate with other users through communication channels. A communication channel or virtual space can be a data pathway used to exchange data between systems and devices associated with the communication platform. In some examples, a channel can be a virtual space where people can post messages, documents, and / or files. In some examples, access to a channel can be controlled by permissions. In some examples, a channel can be limited to a single organization, shared between different organizations, or a public, private, or specialized channel (e.g., a hosted channel with a guest account where guests can make posts but cannot perform certain actions such as inviting other users to the channel). In some examples, some users can be invited to a channel via email, channel invite, direct message, text message, etc. Examples of channels and related functionality are described throughout this disclosure.
[0033] In at least one example, the operating system 122 may manage the processor(s) 108, computer-readable medium 110, hardware, software, etc. of the server(s) 102.
[0034] In at least one example, data store 124 may be configured to store accessible, manageable, and updatable data. In some examples, data store 124 may be integrated with server(s) 102, as shown in FIG. 1 . In other examples, data store 124 may be located remotely from server(s) 102 and accessible to server(s) 102 and / or user device(s), such as user device 104. Data store 124 may comprise multiple databases that may include user / organization data 126 and / or virtual space data 128. Additional or alternative data may be stored in the data store and / or one or more other data stores.
[0035] In at least one example, the user / organization data 126 can include data associated with a user of the communication platform. In at least one example, the user / organization data 126 can store data in a user profile (which may also be referred to as a “user account”), which can store data associated with a user, including, but not limited to, one or more user identifiers associated with multiple different organizations or entities with which the user is associated, one or more communication channel identifiers associated with communication channels to which the user is authorized to access, one or more group identifiers for groups (or organizations, teams, entities, etc.) with which the user is associated, an indication of whether the user is the owner or manager of any communication channels, an indication of whether the user has any communication channel restrictions, a plurality of messages, a plurality of emojis, a plurality of conversations, a plurality of conversation topics, an avatar, an email address, a real name (e.g., John Doe), a username (e.g., j doe), a password, a time zone, a status, a token, etc.
[0036] In at least one example, user / organization data 126 can include permission data associated with permissions of individual users of the communications platform. In some examples, permissions can be set automatically or by an administrator of the communications platform, an employer, company, organization, or other entity using the communications platform, a team leader, group leader, or other entity using the communications platform to communicate with team members, group members, etc., an individual user, etc. Permissions associated with individual users can be mapped to or otherwise associated with an account or profile within user / organization data 126. In some examples, permissions can indicate which users can communicate directly with other users, which channels a user is authorized to access, restrictions on individual channels, which workspaces a user is authorized to access, restrictions on individual workspaces, etc. In at least one example, permissions can support the communications platform by maintaining security for limiting access to defined groups of users. In some examples, such users can be defined by common access credentials, group identifiers, etc., as described above.
[0037] In at least one example, the user / organization data 126 can include data associated with one or more organizations of the communication platform. In at least one example, the user / organization data 126 can store data in an organization profile, which can store data associated with the organization, including, but not limited to, one or more user identifiers associated with the organization, one or more virtual space identifiers associated with the organization (e.g., workspace identifiers, communication channel identifiers, direct message instance identifiers, collaborative document identifiers, canvas identifiers, audio / video conversation identifiers, etc.), organization identifiers associated with the organization, one or more organization identifiers associated with other organizations authorized to communicate with the organization, etc.
[0038] In at least one example, the virtual space data 128 may include data associated with one or more virtual spaces associated with the communication platform. The virtual space data 128 may include text data, audio data, video data, images, files, and / or any other type of data configured to be transmitted in association with a virtual space. Non-limiting examples of virtual spaces include workspaces, communication channels, direct messaging instances, collaborative documents, canvases, and audio and / or video conversations. In at least one example, the virtual space data may store data associated with individual virtual spaces separately, for example, based on a distinct identifier associated with each virtual space. In some examples, a first virtual space may be associated with a second virtual space. In such examples, first virtual space data associated with the first virtual space may be stored in association with the second virtual space. For example, data associated with a collaborative document generated in association with a communication channel may be stored in association with the communication channel. In another example, data associated with an audio and / or video conversation occurring in association with a communication channel may be stored in association with the communication channel.
[0039] As described above, each virtual space in the communication platform may be assigned an individual identifier that uniquely identifies the virtual space. In some examples, the virtual space identifier associated with a virtual space may include a physical address within the virtual space data 128 where data related to the virtual space is stored. A virtual space may be “public,” which may allow any user within an organization (e.g., associated with an organization identifier) to participate in data sharing via the virtual space, or it may be “private,” which may restrict data communication within the virtual space to specific users or users with appropriate viewing permissions. In some examples, a virtual space may be “shared,” which may allow users associated with different organizations (e.g., entities associated with different organization identifiers) to participate in data sharing via the virtual space. A shared virtual space (e.g., a shared channel) may be public, accessible to any user from either organization, or private, restricted to access by specific users from both organizations (e.g., users with appropriate permissions).
[0040] In some examples, the data store 124 may be divided into separate items of data (e.g., data shards) that can be accessed and managed individually. Data shards can simplify many technical tasks, such as data retention, deployment (e.g., detecting that message content contains links, crawling metadata for links, and determining a uniform summary of the metadata), and integration configuration. In some examples, data shards may be associated with organizations, groups (e.g., workspaces), communication channels, users, etc.
[0041] In some examples, individual organizations may be associated with database shards within the data store 124 that store data related to a particular organization identification. For example, a database shard may store electronic communication data associated with members of a particular organization, allowing members of that particular organization to communicate and exchange data with other members of the same organization in real time or near real time. In this example, the organization itself may be the owner of the database shard and control where and how the associated data is stored. In some examples, a database shard may store data related to two or more organizations (e.g., as in a shared virtual space).
[0042] In some examples, individual groups may be associated with database shards in data store 124 that store data related to a particular group identity (e.g., a workspace). For example, a database shard may store electronic communication data associated with members of a particular group, allowing members of that particular group to communicate and exchange data with other members of the same group in real time or near real time. In this example, the group itself may be the owner of the database shard and control where and how the associated data is stored.
[0043] In some examples, a virtual space may be associated with a database shard in data store 124 that stores data related to a particular virtual space identification. For example, the database shard may store electronic communication data associated with the virtual space, allowing members of that particular virtual space to communicate and exchange data with other members of the same virtual space in real time or near real time. As described above, communication through a virtual space can be synchronous and / or asynchronous. In at least one example, a group or organization may be the owner of a database shard and may control where and how associated data is stored.
[0044] In some examples, individual users may be associated with database shards within data store 124 that store data related to a particular user account. For example, a database shard may store electronic communication data associated with an individual user, allowing the user to communicate and exchange data with other users of the communications platform in real time or near real time. In some examples, the users themselves may be owners of database shards, controlling where and how their associated data is stored.
[0045] In some examples, for example, when a channel is shared between two organizations, each organization may be associated with its own encryption key. When a user associated with one organization posts a message or file to a shared channel, the message or file is encrypted in data store 124 with an encryption key specific to that organization, and the other organization can decrypt the message or file before accessing it. Furthermore, in examples where the organizations are in different geographic areas, data associated with a particular organization may be stored in a location corresponding to the organization and temporarily cached in a location closer to a client (e.g., associated with the other organization) when such a message or file is accessed. Data may be maintained, stored, and / or deleted in data store 124 according to data management policies associated with each particular organization.
[0046] The communication interface(s) 112 may include one or more interfaces and hardware components to enable communication with various other devices (e.g., user computing device 104), for example, over the network(s) 106 or directly. In some examples, the communication interface(s) 112 may facilitate communication via WebSockets, an application programming interface (API) (e.g., using API calls), Hypertext Transfer Protocol (HTTPs), etc.
[0047] The server(s) 102 may further comprise various input / output devices 114 (e.g., I / O devices). Such I / O devices 114 may include a display, various user interface controls (e.g., buttons, joysticks, keyboards, mice, touchscreens, etc.), audio speakers, connection ports, etc.
[0048] In at least one example, user computing device 104 may include one or more processors 130 , computer-readable media 132 , one or more communication interfaces 134 , and input / output devices 136 .
[0049] In at least one example, each processor of processor(s) 130 may be a single processing unit or multiple processing units and may include single or multiple computing units or multiple processing cores. Processor(s) 130 may include any of the types of processors described above with reference to processor(s) 108, and may be the same as or different from processor(s) 108.
[0050] Computer-readable medium 132 may include any of the types of computer-readable medium 132 described above with reference to computer-readable medium 110, and may be the same as or different from computer-readable medium 110. Functional components stored on the computer-readable medium may optionally include at least one application 138 and an operating system 140.
[0051] In at least one example, the application 138 can be a mobile application, a web application, or a desktop application, which may be provided by the communications platform or may be another dedicated application. In some examples, individual user computing devices associated with the environment 100 may have an instance or versioned instance of the application 138 that may be downloaded from an application store, accessible via the internet, or otherwise executable by the processor(s) 130 to perform operations as described herein. That is, the application 138 may be an access point that allows the user computing device 104 to interact with the server(s) 102 to access and / or use communication services available through the communications platform. In at least one example, the application 138 may facilitate the exchange of data between various other user computing devices, e.g., via the server(s) 102. In at least one example, the application 138 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, verbal input, or any other type of input.
[0052] A non-limiting example of user interface 142 is shown in FIG. 1. As shown in FIG. 1, user interface 142 can present data associated with one or more virtual spaces, which may include one or more workspaces. That is, in some examples, user interface 142 can integrate data from multiple workspaces into a single user interface, thereby enabling a user (e.g., of user computing device 104) to access and / or interact with data associated with multiple workspaces with which the user is associated and / or otherwise communicate with other users associated with the multiple workspaces. In some examples, user interface 142 can include a first region 144 or pane that includes indicator(s) (e.g., user interface element(s) or object(s)) associated with workspace(s) with which the user (e.g., the user's account) is associated. In some examples, user interface 142 can include a second region 146 or pane that includes indicator(s) (e.g., user interface element(s), affordance(s), object(s), etc.) representing data associated with workspace(s) with which the user (e.g., the user's account) is associated. In at least one example, the second region 146 may represent a sidebar of the user interface 142 .
[0053] In at least one example, user interface 142 may include a third region 148 or pane that may be associated with a data feed (or “feed”) indicating messages posted and / or actions taken for one or more communication channels and / or other virtual spaces for facilitating communication as described herein (e.g., virtual spaces associated with direct message communication(s), virtual spaces associated with event(s) and / or action(s), etc.). In at least one example, data associated with third region 148 may be associated with the same or different workspaces. That is, in some examples, third region 148 may present data associated with the same or different workspaces via a unified feed. In some examples, data may be organized and / or sortable by workspace, time (e.g., when the associated data was posted or when the associated action was otherwise performed), type of action, communication channel, user, etc. In some examples, such data may be associated with an indication of which users (e.g., members of a communication channel) posted the message and / or performed the action. In examples where third region 148 presents data associated with multiple workspaces, at least some of the data may be associated with an indication of which workspace the data is associated with. In some examples, third region 148 may be resized or popped out as a standalone window.
[0054] In at least one example, operating system 140 may manage processor(s) 130, computer-readable media 132, hardware, software, etc. of server(s) 102.
[0055] The communication interface(s) 134 may include one or more interfaces and hardware components to enable communication with various other devices (e.g., user computing device 104), for example, over the network(s) 106 or directly. In some examples, the communication interface(s) 134 may facilitate communication via WebSockets, an API (e.g., using API calls), HTTPs, etc.
[0056] The user computing device 104 may further include various input / output devices 136 (e.g., I / O devices). Such I / O devices 136 may include a display, various user interface controls (e.g., buttons, joystick, keyboard, mouse, touch screen, etc.), audio speakers, connection ports, etc.
[0057] Although the techniques described herein are described as being performed by the messaging component 116, the audio / video component 118, the workspace management component 120, and the application 138, the techniques described herein may be performed by any other component or combination of components that may be associated with the server(s) 102, the user computing device 104, or a combination thereof. A user interface for a group-based communication system
[0058] 2A illustrates a user interface 200 of a group-based communication system, which is useful for illustrating the operation of various examples discussed herein. The group-based communication system may include communication data such as messages, queries, files, mentions, users or user profiles, interactions, tickets, channels, applications integrated into one or more channels, conversations, workspaces, or other data generated by or shared among users of the group-based communication system. In some instances, the communication data may include data associated with a user, such as a user identifier, channels the user is authorized to access, groups the user is associated with, permissions, and other user-specific information.
[0059] User interface 200 includes multiple objects such as panes, text entry fields, buttons, messages, or other user interface components viewable by a user of the group-based communication system. As shown, user interface 200 includes a title bar 202, a workspace pane 204, a navigation pane 206, a channel 208, a document 210 (e.g., a collaborative document), a direct message 212, an application 214, a synchronized multimedia collaboration session pane 216, and a channel pane 218.
[0060] By way of example and not limitation, when a user opens the user interface 200, the user can select a workspace via the workspace pane 204. A particular workspace may be associated with data that is unique to the workspace and accessible via permissions associated with the workspace. Different sections of the navigation pane 206 may present different data and / or options to the user. Different graphical indicators may be associated with virtual spaces (e.g., channels) to summarize attributes of the channel (e.g., whether the channel is public, private, shared across organizations, locked, etc.). When a user selects a channel, the channel pane 218 may be presented. In some examples, the channel pane 218 may include a header, pinned items (e.g., documents or other virtual spaces), an “about” document providing an overview of the channel, etc. In some cases, channel members can search within the channel, access content associated with the channel, add other members, post content, etc. In some examples, depending on the permissions associated with the channel, users who are not members of the channel may be limited in their ability to interact with (or even view or otherwise access) the channel. When navigating within a channel, a user can view messages 222, react to messages (e.g., reactions 224), reply to threads, start threads, etc. Additionally, the channel pane 218 can include a composition pane 228 for composing message(s) and / or other data to associate with the channel. In some examples, the user interface 200 can include a thread pane 230 that provides an additional level of detail for the messages 222. In some examples, different panes can be resized, panes can pop out into separate windows, and / or separate windows can be merged into multiple panes of the user interface 200.In some examples, users may communicate with other users via collaboration pane 216, which may provide synchronous or asynchronous audio and / or video capabilities for communication. Of course, these are illustrative examples, and additional examples of the aforementioned features are provided throughout this disclosure.
[0061] In some examples, title bar 202 includes a search bar 220. Search bar 220 may allow a user to search for content located in the current workspace of the group-based communication system, such as files, messages, channels, members, commands, and functions. A user may narrow a search by attributes such as content type, content creator, and by the user associated with the content. A user may optionally search within a specific workspace, channel, direct message conversation, or document. In some examples, title bar 202 includes navigation commands that allow a user to move back and forth between different panes and view a history of accessed content. In some examples, title bar 202 may include additional resources, such as links to help documentation and user configuration settings.
[0062] In some examples, the group-based communication system can include multiple separate workspaces, each associated with a different group of users and channels. Each workspace can be associated with a group identifier, and one or more user identifiers can be mapped to or otherwise associated with the group identifier. A user corresponding to such a user identifier can be referred to as a member of the group. In some examples, the user interface 200 includes a workspace pane 204 for navigating between, adding to, or removing from various workspaces 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 or otherwise affiliated with Acme. The user can also be a member of a local volunteer organization that collaborates using the group-based communication system. To navigate between the two groups, the user can use the workspace pane 204 to change from an Acme workspace to a volunteer organization workspace. A workspace can include one or more channels specific to that workspace and / or one or more channels shared between one or more workspaces. For example, Acme Corporation can have a workspace for an Acme project, such as Project Zen, a workspace for social discussions, and an additional workspace for general company operations. In some examples, an organization such as a particular company may have multiple workspaces, and a user may be associated with one or more workspaces belonging to that organization. In yet other examples, a particular workspace may be associated with one or more organizations or other entities associated with the group-based communication system.
[0063] In some examples, the navigation pane 206 allows a user to navigate between virtual spaces, such as pages, channels 208, collaborative documents 210 (such as those illustrated in FIG. 2D ), applications 214, and direct messages 212, within a group-based communication system. For example, the navigation pane 206 may include an indicator representing a virtual space that can aggregate data associated with multiple virtual spaces of which the user is a member. In at least one example, each virtual space may be associated with an indicator in the navigation pane 206. In some examples, the indicator may be associated with an actuation mechanism (e.g., an affordance, also referred to as a graphical element) that, when actuated, causes the user interface 200 to present data associated with the corresponding virtual space. In at least one example, a virtual space may be associated with all unread data associated with each of the workspaces with which the user is associated. That is, in some examples, when a user requests access to a virtual space associated with “unreads,” all data that has not been read (e.g., not viewed) by the user may be presented, for example, in a feed. In such examples, different types of events and / or actions that may be associated with different virtual spaces may be presented via the same feed. In some examples, such data may be organized and / or sortable by associated virtual space (e.g., the virtual space through which the communication was transmitted), time, type of action, user, and / or the like. In some examples, such data may be associated with an indication of which user (e.g., a member of the associated virtual space) posted the message and / or performed the action.
[0064] In some examples, virtual spaces may be associated with the same type of events and / or actions. For example, "threads" may be associated with messages, files, etc. posted to a thread in response to a message posted to the virtual space, and "mentions and reactions" may be associated with messages or threads in which the user mentions (e.g., via tags) or another user reacts (e.g., via emojis, reactions, etc.) to a message or thread posted by the user. That is, in some examples, the same type of events and / or actions that may be associated with different virtual spaces may be presented via the same feed. Similar to the "unreads" virtual space, data associated with such virtual spaces may be organized and / or sortable by virtual space, time, type of action, user, and / or the like.
[0065] In some examples, the virtual space may be associated with facilitating communication between the user and other users of the communication platform. For example, "connect" may be associated with enabling the user to generate invitations to communicate with one or more other users. In at least one example, in response to receiving an indication of selection of the "connect" indicator, the communication platform may cause a connection interface to be presented.
[0066] In some examples, the virtual space may be associated with one or more boards or collaborative documents with which the user is associated. In at least one example, the document may include a collaborative document configured to be accessed and / or edited by two or more users with appropriate permissions (e.g., view permissions, edit permissions, etc.). In at least one example, when a user requests access to a virtual space associated with one or more documents with which the user is associated, the one or more documents may be presented via user interface 200. In at least one example, the document may be associated with an individual (e.g., a user's private document), a group of users (e.g., a collaborative document), and / or one or more communication channels (e.g., members of a communication channel granted access permissions to the document), as described herein, thereby enabling, for example, users of the communication platform to create, interact with, and / or view data associated with such documents. In some examples, the collaborative document may be a virtual space, board, canvas, page, etc. for collaborative communication and / or data organization within the communication platform. In at least one example, a collaborative document may support editable text and / or objects that can be ordered, added, deleted, modified, and / or the like. In some examples, a collaborative document may be associated with permissions that define which users of a communication platform can view and / or edit the document. In some examples, a collaborative document may be associated with a communication channel, where members of the communication channel can view and / or edit the document. In some examples, a collaborative document may be shareable such that data associated with the document is accessible and / or interactive to members of multiple communication channels, workspaces, organizations, and / or the like.
[0067] In some examples, a virtual space may be associated with a group (e.g., organization, team, etc.) headquarters (e.g., management or command center). In at least one example, a group headquarters may include a virtual or digital headquarters for management or command functions associated with a group of users. For example, an "HQ" may be associated with an interface including a list of indicators associated with virtual spaces configured to allow associated members to communicate. In at least one example, a user may associate one or more virtual spaces with an "HQ" virtual space, such as via a drag-and-drop operation. That is, a user may determine relevant virtual space(s) to associate with the virtual or digital headquarters, such as associating virtual space(s) important to the user.
[0068] In some examples, the virtual space may be associated with one or more boards or collaborative documents with which the user is associated. In at least one example, the document may include a collaborative document configured to be accessed and / or edited by two or more users with appropriate permissions (e.g., view permissions, edit permissions, etc.). In at least one example, when a user requests access to a virtual space associated with one or more documents with which the user is associated, the one or more documents may be presented via user interface 200. In at least one example, the document may be associated with an individual (e.g., a user's private document), a group of users (e.g., a collaborative document), and / or one or more communication channels (e.g., members of a communication channel granted access permissions to the document), as described herein, thereby enabling, for example, users of the communication platform to create, interact with, and / or view data associated with such documents. In some examples, the collaborative document may be a virtual space, board, canvas, page, etc. for collaborative communication and / or data organization within the communication platform. In at least one example, a collaborative document may support editable text and / or objects that can be ordered, added, deleted, modified, and / or the like. In some examples, a collaborative document may be associated with permissions that define which users of a communication platform can view and / or edit the document. In some examples, a collaborative document may be associated with a communication channel, where members of the communication channel can view and / or edit the document. In some examples, a collaborative document may be shareable such that data associated with the document is accessible and / or interactive to members of multiple communication channels, workspaces, organizations, and / or the like.
[0069] Additionally or alternatively, in some examples, a virtual space may be associated with one or more canvases with which users are associated. In at least one example, a canvas may include a flexible canvas for curating, organizing, and sharing collections of information among users. That is, a canvas may be configured to be accessed and / or modified by two or more users with appropriate permissions. In at least one example, a canvas may be configured to enable the sharing of text, images, videos, GIFs, drawings (e.g., user-generated drawings via a canvas interface), game content (e.g., users manipulating game controls synchronously or asynchronously), and / or the like. In at least one example, modifications to a canvas may include adding, deleting, and / or modifying previously shared (e.g., transmitted, presented) data. In some examples, content associated with a canvas may be shareable via another virtual space, whereby data associated with the canvas is rendered accessible and / or interactable to members of the virtual space.
[0070] The navigation pane 206 may further include indicators representing communication channels (e.g., channels 208). In some examples, the communication channels may include public channels, private channels, shared channels (e.g., between groups or organizations), single-workspace channels, cross-workspace channels, combinations of the above, etc. In some examples, the represented communication channels may be associated with a single workspace. In some examples, the represented communication channels may be associated with different workspaces (e.g., cross-workspace). In at least one example, when a communication channel is cross-workspace (e.g., associated with different workspaces), a user may be associated with both workspaces or only one of the workspaces. In some examples, the represented communication channels may be associated with a combination of communication channels associated with a single workspace and communication channels associated with different workspaces.
[0071] In some examples, the navigation pane 206 may show some or all of the communication channels that the user has permission to access (e.g., as determined by permission data). In such examples, the communication channels are arranged alphabetically, based on most recent interaction, based on frequency of interaction, based on communication channel type (e.g., public, private, shared, cross-workspace, etc.), based on workspace, in a user-specified section, etc. In some examples, the navigation pane 206 may show 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 which 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.) may be in different sections of the navigation pane 206 or may have their own sub-areas or sub-panes within the user interface 200. In some examples, communication channels associated with different workspaces may be in different sections of the navigation pane 206 or may have their own areas or panes within the user interface 200.
[0072] In some examples, the indicator may be associated with a graphical element that visually distinguishes the type of communication channel. For example, project_zen is associated with a lock graphical element. As a non-limiting example, for purposes of this discussion, the lock graphical element may indicate that the associated communication channel, project_zen, is private, with restricted access, while another communication channel, general, is public, with access available to any member of the organization with which the user is associated. In some examples, additional or alternative graphical elements may be used to distinguish between shared communication channels, communication channels associated with different workspaces, communication channels in which the user is currently a member or not, and / or the like.
[0073] In at least one example, the navigation pane 206 may include indicators representing communications with an individual user or multiple designated users (e.g., on behalf of all or a subset of the members of an organization). Such communications may be referred to as “direct messages.” The navigation pane 206 may include indicators representing virtual spaces associated with private messages between one or more users.
[0074] Direct messages 212 may be communications between a first user and a second user, or may be multi-party direct messages between a first user and two or more second users. Navigation pane 206 can be sorted and organized into hierarchies or sections according to user preferences. In some examples, all of the channels a user is authorized to access may be displayed in navigation pane 206. In other examples, a user may choose to hide specific channels or collapse sections containing specific channels. Items in navigation pane 206 may indicate when new messages or updates have been received or are currently unread, for example, by bolding text associated with channels in which unread messages are located or by adding an icon or badge (e.g., with a count of unread messages) to the channel name. In some examples, the group-based communication system may additionally or alternatively store permission data associated with the permissions of individual users of the group-based communication system, indicating which channels the user may view or participate in. Permissions may indicate, for example, which users can communicate directly with other users, which channels the user is permitted to access, restrictions on individual channels, which workspaces the user is permitted to access, and restrictions on individual workspaces.
[0075] Additionally or alternatively, the navigation pane 206 may include subsections that are personalized subsections associated with teams of which the user is a member. That is, the "team" subsection may include affordance(s) of one or more virtual spaces associated with the team, such as communication channels, collaborative documents, direct messaging instances, audio or video synchronous or asynchronous conferences, and / or the like. In at least one example, a user may associate a selected virtual space with the team subsection by, for example, dragging and dropping, pinning, or otherwise associating the selected virtual space with the team subsection. Channels in a Group-Based Communication System
[0076] In some examples, the group-based communication system is a channel-based messaging platform, as shown in Figure 2A. Within a group-based communication system, communications can be organized into channels, each dedicated to a particular topic and set of users. A channel is generally a virtual space related to a particular topic that contains messages and files posted by members of the channel.
[0077] For purposes of this description, a “message,” as described herein, may refer to any electronically generated digital object provided by a user using a user computing device 104 and configured for display within a communication channel and / or other virtual space to facilitate communication (e.g., a virtual space associated with direct message communication(s)), such as a virtual space associated with direct message communication(s). A message may include any text, image, video, audio, or combination thereof provided by a user (using a user computing device). For example, a user may provide a message that includes not only text but also images and video within the message as message content. In such an example, the text, image, and video constitute the message. Each message sent or posted to a communication channel of a communication platform may include metadata including a sending user identifier, a message identifier, message content, a group identifier, a communication channel identifier, etc. In at least one example, each of the aforementioned identifiers may include American Standard Code for Information Interchange (ASCII) text, a pointer, a memory address, etc.
[0078] Channel discussions can persist for days, months, or years, providing a historical log of user activity. Members of a particular channel can post messages within that channel that are visible to other members of that channel, along with other messages in that channel. Users may select a channel to browse to see only messages related to that channel's topic, without seeing messages posted in other channels on different topics. For example, a software development company may have a different channel for each software product being developed, allowing developers working on each specific project to generally talk about a single topic (e.g., the project) without the noise of unrelated topics. Because channels are generally persistent and targeted to a specific topic or group, users can quickly and easily refer to previous interactions for reference. In some examples, the channel pane 218 may display information related to a channel a user selects in the navigation pane 206. For example, a user may select the project_zen channel to discuss ongoing software development efforts for Project Zen. In some examples, the channel pane 218 may include a header containing information about the channel, such as the channel name, a list of users in the channel, and other channel controls. Users may pin items to the header for later access and add bookmarks to the header. In some examples, links to collaborative documents may be included in the header. In a further example, each channel may have a corresponding virtual space that includes channel-related information such as a channel summary, tasks, bookmarks, pinned documents, and other channel-related links that may be editable by members of the channel.
[0079] A communication channel or other virtual space may be associated with data and / or content other than messages or data and / or content associated with messages. For example, non-limiting examples of additional data presentable via the channel pane 218 of the user interface 200 may include collaborative documents (e.g., documents that are collaboratively editable in real time or near real time), audio and / or video data associated with a conversation, members added to and / or removed from a communication channel, file(s) uploaded to and / or removed from a communication channel (e.g., attachment(s)), application(s) added to and / or removed from a communication channel, post(s) added to and / or removed from a communication channel (data that are collaboratively editable in near real time by one or more members of a communication channel), descriptions added to, modified from, and / or removed from a communication channel, modifications to properties of a communication channel, etc.
[0080] The channel pane 218 may include messages, such as message 222, which are content posted to a channel by a user. A user may post text, images, video, audio, or any other file as message 222. In some examples, specific identifiers (among messages or otherwise) may be indicated by preceding them with a predetermined character. For example, a channel may be preceded by a "#" character (as in #project_zen), and a username may be preceded by an "@" character (as in @@J_Smith or @User_A). A message, such as message 222, may include an indication of which user posted the message and when the message was posted. In some examples, a user may react to a message by selecting a reaction button 224. The reaction button 224 allows a user to select an icon, such as a thumbs-up (sometimes referred to in this context as a "reacji"), associated with the message. A user may reply to another user's message, such as message 222, with a new message. In some examples, such conversations within a channel may be further divided into threads. Threads may be used to aggregate messages related to a particular conversation together, making it easier to follow and reply to the conversation without cluttering the main channel with discussion. A thread reply preview 226 is displayed below the message that starts the thread. The thread reply preview 226 may show information related to the thread, such as the number of replies and the members who replied. The thread replies may be displayed in a thread pane 230, which may be separate from the channel pane 218, and may be viewed by other members of the channel by selecting the thread reply preview 226 in the channel pane 218.
[0081] In some examples, one or both of the channel pane 218 and the thread pane 230 may include a composition pane 228. In some examples, the composition pane 228 allows users to compose and send messages 222 to members of the channel or (if the message is sent in a thread) to members of the channel who are following the thread. The composition pane 228 may have text editing features such as bold, strikethrough, and italics, and / or may allow users to format their messages or attach files such as collaborative documents, images, videos, or any other files for sharing with other members of the channel. In some examples, the composition pane 228 may enable additional formatting options, such as numbered or bulleted lists, either through the user interface or an API. The composition pane 228 may act as a workflow trigger to initiate a workflow associated with the channel or message. In further examples, links or documents sent via the composition pane 228 may include unfill instructions regarding how the content should be displayed. Synchronous Multimedia Collaboration Sessions
[0082] 2B illustrates a multimedia collaboration session (e.g., a synchronous multimedia collaboration session) triggered from a channel, as shown in pane 216. The synchronous multimedia collaboration session may provide ambient, ad-hoc multimedia collaboration in a group-based communication system. Users of the group-based communication system can quickly and easily join and leave these synchronous multimedia collaboration sessions at any time without interrupting the synchronous multimedia collaboration session for other users. In some examples, the synchronous multimedia collaboration session may be based on a particular topic, a particular channel, a particular direct message or multiparty direct message, or a set of users, while in other examples, the synchronous multimedia collaboration session may exist without being tied to any channel, topic, or set of users.
[0083] The synchronized multimedia collaboration session pane 216 may be associated with multiple users in a channel, users in a multi-party direct message conversation, or a session conducted for users in a direct message conversation. Thus, a synchronized multimedia collaboration session may be initiated for a particular channel, a multi-party direct message conversation, or a direct message conversation by one or more members of that channel or conversation. A user may initiate a synchronized multimedia collaboration session in a channel as a means of communicating with other members of that channel who are currently online. For example, a user may need to make an urgent decision and desire immediate verbal feedback from other members of the channel. As another example, a synchronized multimedia collaboration session may be initiated with one or more other users of a group-based communication system through direct messaging. In some examples, the audience for a synchronized multimedia collaboration session may be determined based on the context in which the synchronized multimedia collaboration session is initiated. For example, initiating a synchronized multimedia collaboration session in a channel may automatically invite the entire channel to participate. As another example, initiating a synchronized multimedia collaboration session allows a user to initiate an instant audio and / or video conversation with other members of the channel without having to schedule or initiate a communication session through a third-party interface. In some examples, users may be directly invited to participate in a synchronous multimedia collaboration session via a message or notification.
[0084] A synchronous multimedia collaboration session may be a short, transient session in which data is not persisted. Alternatively, in some examples, a synchronous multimedia collaboration session may be recorded, transcribed, and / or summarized for later review. In other examples, the content of a synchronous multimedia collaboration session may be automatically persisted within a channel associated with the synchronous multimedia collaboration session. Members of a particular synchronous multimedia collaboration session may post messages within a messaging thread associated with the synchronous multimedia collaboration session that are visible to other members of the synchronous multimedia collaboration session, along with other messages within the thread.
[0085] The multimedia in a synchronous multimedia collaboration session may include collaboration tools such as any or all of audio, video, screen sharing, collaborative document editing, whiteboarding, co-programming, or any other form of media. The synchronous multimedia collaboration session may also allow users to share their screens with other members of the synchronous multimedia collaboration session. In some examples, members of the synchronous multimedia collaboration session may mark up, comment, draw, or otherwise annotate the shared screen. In further examples, such annotations may be saved and persist even after the synchronous multimedia collaboration session has ended. Canvases may be created directly from the synchronous multimedia collaboration session to further enhance collaboration between users.
[0086] In some examples, a user may start a synchronized multimedia collaboration session via a toggle in the synchronized multimedia collaboration session pane 216 shown in FIG. 2B . When a synchronized multimedia collaboration session is started, the synchronized multimedia collaboration session pane 216 may expand to provide information about the synchronized multimedia collaboration session, such as how many members are present, which user is currently speaking, which user is sharing their screen, and / or a screen share preview 232. In some examples, users in the synchronized multimedia collaboration session may be displayed with an icon indicating they are participating in the synchronized multimedia collaboration session. In further examples, the expanded view of the participants may indicate which users are active and which users are not active in the synchronized multimedia collaboration session. The screen share preview 232 may show a user's screen or a desktop view of a user sharing a particular application or presentation. Changes to a user's screen, such as a user advancing to the next slide in a presentation, are automatically shown in the screen share preview 232. In some examples, the screen share preview 232 may be activated to expand the screen share preview 232 so that it appears as its own pane within the group-based communication system. In some examples, the screen share preview 232 can be activated to pop out into a new window or application that is separate and distinct from the group-based communication system. In some examples, the synchronized multimedia collaboration session pane 216 can include tools for the synchronized multimedia collaboration session that allow a user to mute the user's microphone or invite other users. In some examples, the synchronized multimedia collaboration session pane 216 can include a screen share button 234 that can allow a user to share the user's screen with other members of the synchronized multimedia collaboration session pane 216.In some examples, the screen share button 234 may provide a user with additional controls during a screen share. For example, a user sharing their screen may be provided with additional screen share controls to specify which screen to share, to annotate the shared screen, or to save the shared screen.
[0087] In some cases, synchronized multimedia collaboration session pane 216 may persist within navigation pane 206 regardless of the state of the group-based communication system. In some examples, when no synchronized multimedia collaboration session is active and / or depending on which item is selected from navigation pane 206, synchronized multimedia collaboration session pane 216 may be hidden or removed from presentation via user interface 200. In some instances, when pane 216 is active, pane 216 may be associated with a currently selected channel, direct message, or multi-party direct message, thereby initiating a synchronized multimedia collaboration session associated with the currently selected channel, direct message, or multi-party direct message.
[0088] The list of synchronized multimedia collaboration sessions may include one or more active synchronized multimedia collaboration sessions selected for recommendation. For example, the synchronized multimedia collaboration session may be selected from multiple currently active synchronized multimedia collaboration sessions. Furthermore, the synchronized multimedia collaboration sessions may be selected in part based on user interaction with the session or some association of the instant user with the session or users involved in the session. For example, recommended synchronized multimedia collaboration sessions may be displayed in part based on the instant user being invited to the respective synchronized multimedia collaboration session or having previously collaborated with the user in the recommended synchronized multimedia collaboration session. In some examples, the list of synchronized multimedia collaboration sessions further includes additional information for each synchronized multimedia collaboration session, such as an indication of the participating users or number of participating users, the topic of the synchronized multimedia collaboration session, and / or an indication of associated group-based communication channels, multi-party direct message conversations, or direct message conversations.
[0089] In some examples, the list of recommended active users may include multiple group-based communication system users that are recommended based on at least one of user activity, user interactions, or other user information. For example, the list of recommended active users may be selected based on the user's active status within the group-based communication system, past, recent, or frequent user interactions with the instant user (e.g., communications within a group-based communication channel), or similarity between the recommended user and the instant user (e.g., determining that the recommended user shares a shared channel membership with the instant user). In some examples, machine learning techniques such as cluster analysis may be used to determine the recommended users. The list of recommended active users may include status user information for each recommended user, such as whether the recommended user is active, in a meeting, idle, in a synchronous multimedia collaboration session, or offline. In some examples, the list of recommended active users further includes multiple actuatable buttons corresponding to some or all of the recommended users (e.g., recommended users having a status indicating availability), which, when selected, may be configured to initiate at least one of a text-based communication session (e.g., a direct message conversation) or a synchronous multimedia collaboration session.
[0090] In some examples, one or more recommended asynchronous multimedia collaboration sessions or conferences may be displayed in the asynchronous conference section. In contrast to synchronous multimedia collaboration sessions (described above), asynchronous multimedia collaboration sessions allow each participant to collaborate at their convenience. This collaboration participation is then recorded for later consumption by other participants, which may generate additional multimedia replies. In some examples, replies are aggregated into a multimedia thread (e.g., a video thread) corresponding to the asynchronous multimedia collaboration session. For example, an asynchronous multimedia collaboration session may be used for an asynchronous conference where a topic is posted with a message at the start of the conference thread and conference participants can reply by posting messages or video replies. The resulting thread includes any documents, videos, or other files related to the asynchronous conference. In some examples, a preview of a subset of the video replies may be shown in the asynchronous collaboration session or thread. This may allow, for example, a user to jump to a relevant segment of the asynchronous multimedia collaboration session or pick up where the user previously left off. Connections within a group-based communication system
[0091] 2C shows user interface 200 displaying connect pane 252. Connect pane 252 may provide tools and resources for users to connect across different organizations, each of which may have its own (usually private) instance of the group-based communication system or may not already belong to the group-based communication system. For example, a first software company may want to collaborate to jointly develop a new software application and establish a joint venture with a second software company. Connect pane 252 allows users to determine which other users and organizations are already in the group-based communication system and invite those users and organizations currently outside the group-based communication system to join.
[0092] The connect pane 252 may include a connect search bar 254, recent contacts 256, connections 258, a create channel button 260, and / or a start direct message button 262. In some examples, the connect search bar 254 may allow a user to search for users within the group-based communication system. In some examples, only users from organizations connected to the user's organization are shown in the search results. In other examples, users from any organization that uses the group-based communication system may be displayed. In still other examples, users from organizations that are not yet using group-based communication may also be displayed, allowing the searching user to invite them to join the group-based communication system. In some examples, users may be searched for via the user's group-based communication system username or the user's email address. In some examples, email addresses may be suggested or auto-completed based on external data sources, such as email directories or the searching user's contact list.
[0093] In some examples, external organizations and individual users may be shown in response to a user search. External organizations may be matched based on organization name or Internet domain (similar to the search and matching of specific users described above), as the search results may include organizations that have not yet joined the group-based communication system. External organizations may be ranked in part based on how many users from the user's organization are connected to users of the external organization. In response to selecting an external organization in the search results, the searching user may invite the external organization to connect via the group-based communication system.
[0094] In some examples, recent contacts 256 may display users with whom the instant user has recently interacted. Recent contacts 256 may display the user's name, company, and / or status indication. Recent contacts 256 may be ordered based on which contacts the instant user interacts with most frequently or based on which contacts the instant user most recently interacted with. In some examples, each recent contact in recent contacts 256 may be an actuatable control that allows the instant user to quickly start a direct message conversation with the recent contact, invite them to a channel, or take any other appropriate user action with that recent contact.
[0095] In some examples, connections 258 may display a list of companies (e.g., organizations) with which the user has interacted. For each company, the company's name may be displayed along with the company's logo and an indication of how many times the user has interacted with that company, e.g., the number of conversations. In some examples, each connection in connections 258 may be an actuatable control that allows the instant user to quickly invite the external organization to a shared channel, view recent connections with that external organization, or take any other appropriate organizational action with that connection.
[0096] In some examples, the create channel button 260 allows a user to create a new shared channel between two different organizations. By selecting the create channel button 260, the user can further name the new connection channel and enter a description of the connection channel. In some examples, the user may select one or more external organizations or one or more external users to add to the shared channel. In other examples, the user may add external organizations or external users to the shared channel after the shared channel is created. In some examples, the user may select whether to make the connection channel private (e.g., accessible only by invitation from current members of the private channel).
[0097] In some examples, the direct message initiation button 262 allows a user to quickly initiate a direct message (or a multi-party direct message) with an external user of an external organization. In some examples, an external user identifier at the external organization may be supplied by the instant user as the external user's group-based communication system username or as the external user's email address. In some examples, analysis of the email domain of the external user's email address may influence messages between the user and the external user. For example, the external user's identifier may indicate that the user's organization and the external user's organization are already connected (e.g., based on the email address domain). In some such examples, the email address may be converted to a group-based communication system username. Alternatively, the external user's identifier may indicate that the external user's organization belongs to the group-based communication system but is not connected to the instant user's organization. In some such examples, an invitation to connect to the instant user's organization may be generated in response. As another alternative, the external user may not be a member of the group-based communication system, and in response, an invitation to join the group-based communication system as a guest or a member may be generated. joint document
[0098] FIG. 2D shows the user interface 200 displaying a collaboration document pane 264. A collaborative document may be any file type, such as a PDF, video, audio, or word processing document, but is not limited to a word processing document or spreadsheet. A collaborative document may be modified and edited by two or more users. A collaborative document may also be associated with different user permissions, such that a user may be selectively authorized to view, edit, or comment on a collaborative document (or a section of a collaborative document) based on the user's permissions for the document (or a section of the document, as described below). Thus, users within a set of users with access to a document may have different permissions to view, edit, comment, or otherwise interface with the collaborative document. In some examples, permissions may be automatically determined and / or assigned based on how the document(s) are created and / or shared. In some examples, permissions may be determined manually. A collaborative document may allow users to create and modify documents simultaneously or asynchronously. Collaborative documents may be integrated with group-based communication systems and may be used to initiate workflows and store workflow results, as discussed further below with respect to Figures 3A and 3B.
[0099] In some examples, the user interface 200 may include one or more collaborative documents (or one or more links to such collaborative documents). A collaborative document (also called a document or canvas) may include a flexible workspace for curating, organizing, and sharing a collection of information among users. Such a document may be associated with a synchronous multimedia collaboration session, an asynchronous multimedia collaboration session, a channel, a multi-party direct message conversation, and / or a direct message conversation. A shared canvas may be configured to be accessed and / or modified by two or more users with appropriate permissions. Alternatively or additionally, a user may have one or more private documents that are not associated with any other user.
[0100] Additionally, such documents can be @mentioned so that a particular document can be referenced within a channel (or other virtual space or document) and / or other users can be @mentioned within such documents. For example, @mentioning a user in a document can provide instructions to the user and / or provide the user with access to the document. In some examples, tasks can be assigned to a user via @mention, and such task(s) can be populated into a pane or sidebar associated with the user.
[0101] In some examples, a channel and a collaborative document 268 may be associated so that when a comment is posted to the channel, the comment is populated into the document 268, and vice versa.
[0102] In some examples, when a first user interacts with a collaborative document, the communication platform may identify a second user account associated with the collaborative document and present an affordance (e.g., a graphical element) in a sidebar (e.g., navigation pane 206) indicating the interaction. Further, the second user may select an affordance and / or notification associated with or representative of the interaction to access the collaborative document to efficiently access the document and view updates thereto.
[0103] In some examples, when one or more users interact with a collaborative document, indications (e.g., icons or other user interface elements) may be presented via a user interface with the collaborative document to represent such interactions. For example, if a first instance of the document is currently open on a first user computing device of a first user and a second instance of the document is currently open on a second user computing device of a second user, one or more presence indicators may be presented on the respective user interfaces to indicate various interactions with the document and by which users. In some examples, the presence indicators may have attributes (e.g., appearance attributes) that indicate information about each user, such as, but not limited to, permission level (e.g., edit permission, read-only access, etc.), virtual space membership (e.g., whether a member belongs to a virtual space associated with the document), and how the user is interacting with the document (e.g., currently editing, viewing, open but not active, etc.).
[0104] In some examples, a preview of the collaborative document can be provided. In some examples, the preview can include a summary of the collaborative document and / or a dynamic preview that displays various content (e.g., changing text, images, etc.) to enable a user to quickly understand the context of the document. In some examples, the preview can be based on user profile data associated with the user viewing the preview (e.g., permissions associated with the user, content viewed, edited, created, etc. by the user), etc.
[0105] In some examples, collaborative documents may be created independently of or in association with virtual spaces and / or channels, and may be posted within channels and edited or interacted with as discussed herein, with various affordances or notifications indicating the presence of users associated with the document and / or various interactions.
[0106] In some examples, a machine learning model can be used to determine a summary of the channel's content and create a collaborative document that includes the summary for posting to the channel. In some examples, the communication platform can identify users in the virtual space, actions associated with the users, and other contributions to the conversation to generate the summary document. As such, the communication platform can enable users to create documents (e.g., collaborative documents) to summarize content and events that occurred in the virtual space.
[0107] In some examples, a document may be configured to allow sharing of content, including (but not limited to) text, images, videos, GIFs, drawings (e.g., user-generated drawings via a drawing interface), or game content. In some examples, a user accessing the canvas may add new content or delete (or modify) previously added content. In some examples, appropriate permission may be required for a user to add content or delete or modify content added by a different user. Thus, for example, some users may be able to access part or all of a document only in a view-only mode, while other users may be able to access part or all of the document in an edit mode that allows those users to add or modify its content. In some examples, a document may be shared via a message in a channel, a multi-party direct message, or a direct message, such that data associated with the document is accessible and / or interactable to members of the channel or recipients of the multi-party direct message or direct message.
[0108] In some examples, collaboration document pane 264 may include a collaborative document toolbar 266 and a collaborative document 268. In some examples, collaborative document toolbar 266 may provide the ability to edit or format a post, as discussed herein.
[0109] In some examples, a collaborative document may include free-form unstructured sections and workflow-related structured sections. In some examples, unstructured sections may include areas of a document where users can freely modify the collaborative document without constraints. For example, a user may freely type text to describe the document's purpose. In some examples, a user may add a workflow or structured workflow section by typing (or otherwise mentioning) the name of a workflow. In a further example, typing an "at" sign (@), a previously selected symbol, or a predetermined special character or symbol may provide the user with a list of workflows from which the user can select to add to the document. For example, a user may type "!Marketing Approval" to indicate that a marketing team member needs to sign off on the proposal and initiate a workflow that results in the marketing team member approving the proposal. Placing an exclamation point in front of the "Marketing Approval" group name initiates a request for a specific action, in this case, routing the proposal for approval. In some examples, structured sections may include text entries, selection menus, tables, check boxes, tasks, calendar events, or any other document section. In a further example, a structured section may include a text entry space that is part of a workflow. For example, a user may enter text into a text entry field detailing the reason for approval and then select a submit button that advances the workflow to the next step in the workflow. In some examples, a user may be able to add, edit, or remove structured sections of the document that make up the workflow components.
[0110] In an example, sections of a collaborative document may have individual permissions associated with them. For example, a collaborative document having sections with individual permissions may provide a first user with permission to view, edit, or comment on the first section, but a second user does not have permission to view, edit, or comment on the first section. Alternatively, a first user may have permission to view the first section of the collaborative document, and a second user may have permission to view and edit the first section of the collaborative document. Permissions associated with a particular section of a document may be assigned by the first user through various methods, including manual selection of the particular section of the document by the first user or another user with permission to assign permissions, typing or selecting an “assign” indicator such as an “@” symbol, or selecting the section by its name. In a further example, permissions may be assigned to multiple collaborative documents in a single instance through these methods. For example, multiple collaborative documents each have a section titled “Group Information,” and a first user with permission to assign permissions desires that an entire group of users access the information in the “Group Information” section of the multiple collaborative documents. In an example, a first user can select multiple collaborative documents and a “Group Information” section to effectuate permission for the entire user group to access (or view, edit, etc.) the “Group Information” section of each collaborative document of the multiple collaborative documents. Automation in group-based communication systems
[0111] FIG. 3A illustrates a user interface 300 for automation in a group-based communication system. Automation, also referred to as workflow, allows users to automate functions within the group-based communication system. A workflow builder 302 is shown that allows users to create new workflows, modify existing workflows, and review workflow activities. The workflow builder 302 may include a workflow tab 304, an activity tab 306, and / or a settings tab 308. In some examples, the workflow builder may include a publish button 314 that allows users to publish new or modified workflows.
[0112] By selecting the Workflows tab 304, a user can create a new workflow or modify an existing workflow. For example, a user may want to create a workflow to automatically welcome new users who join a channel. A workflow may include workflow steps 310. Workflow steps 310 may include at least one trigger that starts the workflow and at least one function that takes an action when the workflow is triggered. For example, a workflow may be triggered when a user joins a channel, and the workflow's function may be to post in the channel welcoming the new user. In some examples, a workflow may be triggered from a user action, such as a user reacting to a message, joining a channel, or collaborating on a collaborative document, from a scheduled date and time, or from a web request from a third-party application or service. In further examples, a workflow function may include sending a message or form to a user, a channel, or any other virtual space, modifying a collaborative document, or interfacing with an application. Workflow functions may include workflow variables 312. For example, a welcome message may include the user's name via a variable to allow for a customized message. A user may edit existing workflow steps or add new workflow steps depending on the desired workflow function. Once a workflow is complete, the user may publish it using the publish button 314. A published workflow waits until it is triggered, at which point it performs its function.
[0113] The activity tab 306 may display information related to the activities of the workflow. In some examples, the activity tab 306 may indicate how many times the workflow has run. In further examples, the activity tab 306 may include information related to each workflow run, including the status, the date of the last activity, the run time, the user who started the workflow, and other relevant information. The activity tab 306 may allow a user to sort and filter the workflow activities to find useful information.
[0114] The settings tab 308 may allow a user to modify the settings of a workflow. In some examples, a user may change the title or icon associated with a workflow. A user may also manage collaborators associated with a workflow. For example, a user may add additional users to a workflow as collaborators so that the additional users can modify the workflow. In some examples, the settings tab 308 may also allow a user to delete a workflow.
[0115] 3B illustrates workflow-related elements within a group-based communication system, generally referred to as reference numeral 316. In various examples, trigger(s) 318 may be configured to invoke the execution of function(s) 336 in response to user commands. The trigger initiates function execution and may take the form of one or more schedule(s) 320, webhook(s) 322, shortcut(s) 324, and / or slash command(s) 326. In some examples, schedule 320 acts like a timer, scheduling the trigger to fire periodically or once at a predetermined time in the future. In some examples, an end user of an event-based application sets an arbitrary schedule for the firing of the trigger, such as once an hour or at 9:15 a.m. daily.
[0116] Additionally, the trigger 318 may take the form of a webhook 322. The webhook 322 may be a software component that listens on a webhook URL and port. In some examples, the trigger fires when a suitable HTTP request is received on the webhook URL and port. In some examples, the webhook 322 requires proper authentication, such as with a bearer token. In other examples, the trigger depends on the payload content.
[0117] Another source of a trigger for one of trigger(s) 318 is a shortcut within shortcut(s) 324. In some examples, shortcut(s) 324 may be global to the group-based communication system and not specific to a group-based communication system channel or workspace. A global shortcut may trigger a function that can be performed without the context of a particular group-based communication system message or group-based communication channel. In contrast, a message-based or channel-based shortcut is specific to a group-based communication system message or channel and operates in the context of the group-based communication system message or group-based communication channel.
[0118] A further source of trigger for one of triggers 318 may be provided by slash command 326. In some examples, slash command(s) 326 may serve as an entry point for group-based communication system functionality, integration with external services, or group-based communication system message responses. In some examples, slash command 326 may be entered by a user of the group-based communication system to trigger the execution of an application function. The slash command may be followed by slash command line parameters, which may be passed to any group-based communication system function invoked in connection with the trigger of the group-based communication system function, such as one of functions 336.
[0119] An additional way a function is invoked is when an event (such as one of events 328) matches one or more conditions predetermined in a subscription (such as subscription 334). Event 328 can be subscribed to by any number of subscriptions 334, with each subscription specifying different conditions and triggering different functions. In some examples, events are implemented as group-based communication system messages received in one or more group-based communication system channels. For example, all events may be posted as non-user-visible messages in the associated channel, which are monitored by subscription 334. App event 330 can be a group-based communication system message with associated metadata created by an application in a group-based communication system channel. Event 328 can also be a direct message received by one or more group-based communication system users, who can be actual users or technical users such as bots. Bots are technical users of the group-based communication system used to automate tasks. Bots can be programmatically controlled to perform various functions. Bots can monitor and help process group-based communication system channel activity as well as post messages in group-based communication system channels and react to members' in-channel activity. Bots can post messages and upload files as well as be invited or removed from both public and private channels in the group-based communication system.
[0120] Events 328 can be any events associated with the group-based communication system. Such group-based communication system events 332 include events related to the creation, modification, or deletion of a user account in the group-based communication system, or events related to messages in a group-based communication system channel, such as creating a message, editing or deleting a message, or reacting to a message. Events 328 can also be related to the creation, modification, or deletion of a group-based communication system channel or channel membership. Events 328 can also be related to changing a user profile or creating a group, managing members, or deleting a group.
[0121] As described above, subscriptions 334 indicate one or more conditions that, when matched with an event, trigger a function. In some examples, a set of event subscriptions is maintained in association with the group-based communication system, and when an event occurs, information about the event is matched against the set of subscriptions to determine which function 336 (if any) should be invoked. In some examples, the events to which a particular application may subscribe are managed by an authorization framework. In some cases, the event types matched against subscriptions are managed by OAuth permission scopes, which may be maintained by an administrator of a particular group-based communication system.
[0122] In some examples, functions 336 may be triggered by triggers 318 and events 328 to which they subscribe. Functions 336 take zero or more inputs, perform processing (potentially including accessing external resources), and return zero or more results. Functions 336 may be implemented in a variety of forms. First, there are group-based communication system built-ins 338 associated with core functionality of a particular group-based communication system. Some examples include creating a group-based communication system user or channel. Second, there are no-code builder functions 340 that may be developed by a user of a group-based communication system user in association with an automation user interface, such as a workflow builder user interface. Third, there are hosted code functions 342 implemented by a group-based communication system application developed as software code in association with a software development environment.
[0123] These various types of functions 336 may then be integrated with APIs 344. In some examples, the APIs 344 are associated with third-party services that the functions 336 employ to provide custom integration between the particular third-party service and the group-based communications system. Examples of third-party service integrations include video conferencing, sales, marketing, customer service, project management, and engineering application integration. In such an example, one of the triggers 318 may be a slash command 326 used to trigger a hosted code function 342 that makes an API call to a third-party video conferencing provider via one of the APIs 344. As shown in FIG. 3B , the APIs 344 may themselves also be the source or event 328 of any number of triggers 318. Continuing with the example above, successful completion of a video conference triggers one of the functions 336 to send a message that initiates a further API call to the third-party video conferencing provider to download and archive the video conference recording and save it to a group-based communications system channel.
[0124] In addition to integrating with API 344, function 336 may persist and access data in tables 346. In some examples, tables 346 are implemented in association with a database environment associated with a serverless execution environment in which a particular event-based application is running. In some instances, tables 346 may be provided in association with a relational database environment. In other examples, tables 346 are provided in association with a database mechanism that does not employ relational database techniques. As shown in FIG. 3B , in some examples, the reading or writing of specific data to one or more of tables 346, or data in a table that matches a predetermined condition, is itself the source of a number of triggers 318 or events 328. For example, if table 346 is used to maintain ticket data in an incident management system, the number of open tickets may exceed a predetermined threshold, triggering a message to be posted to an incident management channel in a group-based communication system.
[0125] 4A and 4B illustrate example interfaces 400a and 400b, respectively, that can be used to generate one or more structured data containers via a list generation interface. FIG. 4A illustrates an example interface 400a for generating a structured data container via a list generation interface. For example, based at least in part on receiving a selection of a “Lists” indicator 402, the group-based communication platform may cause the presentation of a list interface 404. In some examples, the list interface 404 may include one or more options associated with generating a list, referred to herein as a “structured data container.” For example, a user of the group-based communication platform may request to create a structured data container via the group-based communication platform. In some examples, the user may generate an empty list, such as by selecting a control 406. The generation of an empty list is described in further detail below in FIG. 4B below.
[0126] In other examples, a user may access one or more existing lists via list creation interface 404. For example, list creation interface 404 may include a search mechanism 408 that may be configured to receive input from a user corresponding to an existing structured data container. In some examples, list creation interface 404 may include one or more selectable controls associated with existing lists, such as the lists "J. Smith's List" and "Acme's Projects H2."
[0127] FIG. 4B shows an example interface 400b that can be used to generate an empty structured data container. For example, the group-based communication platform may present user interface 400b to a user based at least in part on receiving an instruction from the user to generate an empty structured data container, such as by selecting control 406 in FIG. 4A. In some examples, interface 400b may include one or more options associated with generating a structured data container. For example, interface 400b may include one or more options associated with adding one or more fields, such as by selecting control 410. A field may be, for example, an element of a structured data container that can be configured to receive data. For example, a field may be similar to a field of a column in a table, with each field representing an interaction with the group-based communication platform. For example, a user may determine the field type to be a checkbox, file, media, number, person, point of contact (POC), status, or text, to name a few non-limiting examples.
[0128] In some examples, interface 400b may additionally or alternatively include one or more options associated with viewing structured data containers, such as by selection of control 412. The options associated with viewing structured data containers may include filtering one or more fields associated with one or more structured data containers. For example, the structured data container(s) may be filtered such that fields associated with a particular user of the group-based communication platform are presented, and may be presented above fields and / or structured data containers assigned to other users and / or unassigned fields and / or structured data containers.
[0129] Additionally or alternatively, options associated with viewing a structured data container may include a visual presentation of one or more fields associated with the structured data container. While not shown in FIG. 4B , this may include, for example, viewing the structured data container in a tile view (in which one or more structured data containers are shown as individual “tiles”), a gallery view (in which one or more fields of one or more structured data containers are shown as individual “cards”), and / or a calendar view (in which one or more fields and / or one or more structured data containers are presented via a calendar corresponding to the data associated with the one or more fields and / or one or more structured data containers), to name a few non-limiting examples.
[0130] 5A and 5B illustrate example interfaces 500a and 500b, respectively, that can be used to generate structured data containers through virtual spaces. While the virtual spaces illustrated in FIGS. 5A and 5B are channels, structured data containers may be generated through any virtual space, including, but not limited to, direct messages, threads, huddles, and / or canvases. FIG. 5A illustrates an example interface 500a that can be used to generate structured data containers through templates within a channel. For example, a user may generate one or more structured data containers through templates by entering data into the template. As an illustrative example, assume that a user is a project lead for a marketing project and is ready to submit the project for approval from the legal department associated with the user's company. As shown in FIG. 5A, the user is accessing a channel titled "Marketing: Legal Guidelines." Based at least in part on accessing the "Marketing: Legal Guidelines" channel, the group-based communication platform may cause the user to be presented with one or more options for submitting content for review, e.g., via selection of control 502.
[0131] FIG. 5B shows an example interface 500b that can be used to generate a structured data container via a template. For example, based at least in part on receiving a user's selection of control 502, the group-based communication platform may cause presentation of template 504 to the user. Template 504 may be generated by the group-based communication platform and / or by a user of the group-based communication platform, such as a member of the legal department. In some examples, template 504 may include one or more fields, such as field 506. Input, in some examples, may correspond to one or more fields of a structured data container. In some examples, a structured data container corresponding to template 504 may be an existing structured data container, such that, based at least in part on receiving input for the template, such as in field 506, the group-based communication platform may update information for one or more corresponding existing fields. Additionally or alternatively, a structured data container corresponding to template 504 may be generated based at least in part on receiving input for one or more fields associated with template 504. For example, based at least in part on receiving input into one or more fields 506 of template 504 (e.g., by receiving an indication from the group-based communication platform of a user's selection of a "Submit" control 508), the group-based communication platform may generate a structured data container including one or more fields, wherein the one or more fields of the structured data container correspond to the fields of template 504, and wherein data associated with the one or more structured data containers is associated with the user input into the one or more fields of template 504.
[0132] In other examples, the structured data container may be generated based at least in part on the generation of the template, but before receiving input to the template. Generating a structured data container via a virtual space is described in more detail below in FIG. 9.
[0133] FIG. 6 illustrates an interface 600 including an exemplary list 602 containing multiple structured data containers. For example, the exemplary list shown in interface 600 may correspond to the template shown in FIGS. 5A and 5B associated with “Marketing: Legal Guidelines.” As shown in interface 600, a list titled “Content Legal Review” includes three structured data containers, each containing an issue to be reviewed. Continuing with the illustrative example above, the project lead discussed in FIGS. 5A and 5B may submit a New Hire Welcome Video (Issue 2) via template 504 to be reviewed by the legal department associated with the project lead's company. Based at least in part on receiving inputs into the template and corresponding template fields, the group-based communication platform may generate a structured data container. In some examples, inputs into the template may be populated such that inputs into the template's fields correspond to inputs on the structured data container's fields. In this illustration, project lead J. Smith has entered into template 504 an issue called "New Hire Welcome Video," a due date of January 31, 2023, an audience of "Press, External," and a video content item titled "New Hire."
[0134] In some examples, one or more fields of a structured data container may be editable, such that edits made to a field in one instance of the structured data container may automatically update a corresponding field in another instance of the structured data container. Further, in some examples, selection of a structured data container may cause presentation of an expanded view of the structured data container, as shown and described below with respect to FIG.
[0135] 7A-7E illustrate example interfaces for modifying structured data containers in various virtual spaces. FIG. 7A illustrates an example interface 700a including a messaging thread associated with a structured data container, such as messaging thread 702. The messaging thread may include spaces of the group-based communication platform that are presented via the same feed of different spaces of the group-based communication platform. In some examples, a messaging thread, such as messaging thread 702, may include data associated with one or more fields of the structured data container. For example, messaging thread 702 shown in interface 700a corresponds to the structured data container associated with the "New Hire Welcome Video" described in FIG. 6. For example, the messaging thread may include information such as the owner, status, due date, link to content, and audience of the structured data container.
[0136] In some examples, a messaging thread may be associated with a structured data container such that modifications to the structured data container, such as modifications to fields associated with the structured data container, may be reflected in the messaging thread. Additionally or alternatively, the messaging thread may be configured to receive messages associated with the structured data container, such as via a virtual space in which the structured data container is shared (e.g., a canvas, a huddle, a channel, a direct message, etc.). Modifications to structured data containers via messaging threads and / or virtual spaces are described with reference to Figures 7B-7E below.
[0137] Additionally or alternatively, messaging threads may be configured to receive messages shared by individuals, where the messages are shared directly in the messaging thread. For example, a messaging thread such as messaging thread 702 may include one or more specific messaging boxes, such as message box 704, to allow users to post messages to the messaging thread. Continuing with the illustrative example of "Marketing: Legal Guideline" above, a user associated with the legal team may have a question regarding one or more fields of a structured data container associated with "New Hire Welcome Video." Thus, the user (denoted as "A. User" in the current embodiment) may post a message to the message thread associated with "New Hire Welcome Video." As indicated by the message by A. User, the user may associate other users with the structured data container, such as by tagging them in messages in the messaging thread. In this manner, messaging threads provide users of the group-based communication platform with the ability to easily and conveniently track updates and notes associated with the structured data container(s).
[0138] FIG. 7B illustrates an exemplary interface 700b that can be used to update fields associated with a structured data container via a virtual space. For example, interface 700b illustrates a messaging thread 702 associated with a “New Hire Welcome Video” structured data container in association with a channel 706 titled “New Hire Committee.” In some examples, as described above, data associated with a structured data container can be updated via any of the group-based communication platforms. Continuing with the illustrative example above, as shown in FIG. 7B , a user associated with the legal team requested information associated with fields in the structured data container. The owner of the structured data container then sent a message to the team working on the structured data container in the channel “New Hire Committee.” Additionally, a team member (B. Goodman) initiated a multimedia collaboration session (hereinafter also referred to as a “huddle”), as illustrated by interface 708. In some examples, data associated with a virtual space, such as channel 706 and / or huddle interface 708, can be associated with the structured data container. For example, as shown in huddle interface 708, members of channel 706 shared document 710 in the virtual space during the huddle.
[0139] FIG. 7C shows an example interface 700c that can be used to update a structured data container based on data received from a virtual space associated with the structured data container. In some examples, as shown in FIG. 7B, data associated with a structured data container may be updated via any of the group-based communication platforms. Based at least in part on receiving the data associated with the virtual space, the group-based communication platform may send one or more updates associated with the data to a messaging thread associated with the structured data container. For example, as shown in FIG. 7B, document 710 was shared in the virtual space. Based at least in part on receiving the data, the group-based communication platform may determine that the data is associated with one or more fields of the structured data container. The group-based communication platform may then modify the structured data container to include the data based at least in part on determining that the data is associated with one or more fields of the structured data container. In some examples, based at least in part on modifying the structured data container, the group-based communication platform may update a messaging thread associated with the structured data container, such as messaging thread 702. For example, the group-based platform may update data associated with the structured data container, such as one or more fields of the structured data container, via the messaging thread. For example, based at least in part on receiving document 710, the group-based communication platform updated messaging thread 702 to indicate the addition of document 710, as indicated by an updated link to content 712.
[0140] Additionally or alternatively, the group-based communication platform may send a message associated with the received data via the messaging thread. For example, based at least in part on receiving document 710, the group-based communication platform sends message 714 to the messaging thread indicating that document 710 has been sent to the structured data container and attaching an instance of document 710 to the messaging thread. By automatically associating data with a messaging thread associated with the structured data container, information and data are kept updated and are updated in real time.
[0141] In some examples, an instance of a structured data container may be shared across a virtual space. For example, FIG. 7C shows an instance 716 of a New Hire Welcome Video structured data container shared to the New Hire Committee channel. Similar to what was described above, the data associated with the instance 716 of the structured data container may be updated to accurately reflect the structured data container. In this embodiment, the instance 716 of the structured data container is shown in a collapsed version, such that the instance 716 of the structured data container displays a partial amount of data corresponding to the multiple fields. Alternatively, an expanded version of the instance 716 of the structured data container displays the entirety of the data corresponding to the multiple fields.
[0142] FIG. 7D shows an example interface 700d for modifying fields of a structured data container via a messaging thread. In some examples, one or more fields of a structured data container may be modified via a messaging thread associated with the structured data container. For example, as shown in interface 700d, one or more fields of a structured data container may be included in a messaging thread associated with the structured data container, such as a due date 718 associated with the messaging thread. In some examples, the due date 718 may be selectable, such that, based at least in part on receiving a user's selection of the due date 718, the group-based communications platform may cause a calendar to be presented to the user. As shown in FIG. 7D, the user has selected January 24, 2023 as the modified date. It should be noted that while FIG. 7D illustrates modifying a date, any data associated with any field may be modified via a messaging thread.
[0143] 7E shows an example interface 700e including an instance of a structured data container including modifications to fields of the structured data container. For example, interface 700e may include interface 720 that may include data associated with one or more fields of a plurality of fields associated with the structured data container. In some examples, the data included in interface 720 may reflect one or more modifications to data associated with one or more fields of the plurality of fields. For example, messaging thread 702 associated with the structured data container includes modification 722 indicating a change in due date.
[0144] FIG. 8 illustrates a flow diagram of an example process 800 for creating a messaging thread associated with a structured data container and sharing the structured data container in a virtual space.
[0145] For example, at operation 802, process 800 may include receiving a request to create a structured data container from a user associated with the group-based communication platform. The request may be received via any area of the group-based communication platform, such as via a channel, a huddle, a canvas, a template, a direct message, a list creation interface, a workflow, or a thread, to name a few non-limiting examples. In some examples, the structured data container may represent a system of record associated with the group-based communication platform.
[0146] At operation 804, process 800 may include, for example, creating a structured data container in response to the request. In some examples, the structured data container may include at least one field of a plurality of fields. A field may be, for example, an element of the structured data container that may be configured to receive data. For example, the fields may be similar to the fields of a column in a table, with each field representing an interaction with the group-based communication platform. Additionally or alternatively, the structured data container may include information associated with an interaction associated with the group-based communication platform.
[0147] At operation 806, process 800 may include determining that a messaging thread has been generated, the messaging thread corresponding to the structured data container. The messaging thread may include different spaces of the group-based communication platform that are presented in different spaces of the group-based communication platform via the same feed. For example, the messaging thread may be associated with the structured data container such that modifications to the structured data container, such as modifications to fields associated with the structured data container, may be reflected in the messaging thread. Additionally or alternatively, the messaging thread may be configured to receive messages associated with the structured data container, such as through a virtual space in which the structured data container is shared (e.g., a canvas, a huddle, a channel, a direct message, etc.). In other examples, the messaging thread may be configured to receive messages shared by individuals, where the messages are shared directly in the messaging thread. In this manner, users of the group-based communication platform can easily and conveniently track updates and notes associated with the structured data container.
[0148] Based at least in part on determining to refrain from creating a messaging thread (e.g., “No” at operation 806), process 800 may include presenting a structured data container to the user via a first graphical user interface of the group-based communication platform at operation 808. In some examples, the structured data container may include multiple fields and information associated with interactions via the group-based communication platform, similar to user interface 600 shown in FIG.
[0149] Alternatively, based at least in part on determining that a messaging thread has been created (e.g., “Yes” at operation 806), process 800 may include, at operation 810, presenting the structured data container and the messaging thread via a second graphical user interface. In some examples, the structured data container may include multiple fields and information associated with interactions via the group-based communication platform. The graphical user interface may be similar to that shown in FIGS. 7A-7D.
[0150] At operation 812, process 800 may include determining that the group-based communication platform has received a request to share the structured data container to a virtual space. The request to share the structured data container may be received from a user. Alternatively, the request to share the structured data container may be received from any user of the group-based platform who has the ability to share the structured data container based on a privacy setting associated with the structured data container. In some examples, the virtual space may include any space of the group-based communication platform, such as a channel, a canvas, a huddle, another list, or a structured data container, or a direct message, to name a few non-limiting examples.
[0151] Based at least in part on the group-based communication platform determining that it did not receive a request to share the structured data container to the virtual space, process 800 may return to operation 808, which includes presenting the structured data container via the first graphical user interface.
[0152] Alternatively, based at least in part on determining that the group-based communication platform has received a request to share the structured data container in the virtual space, process 800 may include presenting the structured data container in the virtual space at operation 814. According to aspects of the present disclosure, the structured data container may include multiple fields and information associated with interactions via the group-based communication platform. Additionally or alternatively, the group-based communication platform may cause the presentation of a messaging thread in the virtual space.
[0153] At operation 816, process 800 may include receiving input into fields from a user via the virtual space. For example, a structured data container presented via the virtual space may include one or more fields of a plurality of fields, and the fields may be modified by a user.
[0154] At operation 818, based at least in part on receiving input into a field of the plurality of fields, via the virtual space, process 800 may include modifying a field of the structured data container. For example, modifying a field of the structured data container may include modifying a field of the structured data container associated with a field of the virtual space. In this manner, multiple instances of the structured data container may be updated in real time, ensuring all instances of the virtual space are accurate and up-to-date.
[0155] FIG. 9 illustrates a flow diagram of an example process 900 for generating a structured data container via a virtual space of a group-based communication platform.
[0156] For example, at operation 902, process 900 may include receiving a request from a first user associated with the group-based communications platform via a graphical user interface to create an object in a virtual space of the communications platform. In some examples, the object includes at least one field of a plurality of fields. The request to create the object may, in some examples, be received from at least one of a template and / or a workflow. A template may include a pre-generated data structure that may include, for example, one or more settings and one or more fields that may be saved for future use. Alternatively, a workflow may include an automated multi-step process that may manage routine and / or repetitive tasks. In some examples, the template and / or workflow may be generated by the communications platform.
[0157] At operation 904, based at least in part on receiving the request, process 900 may include generating an object. At operation 904, process 900 may include, in response to generating the object, generating a structured data container representing a system of record associated with the group-based communication platform. For example, the structured data container may include multiple fields such that data associated with the structured data container corresponds to data associated with the object in the virtual space. In other words, the multiple fields associated with the object in the virtual space may be the same as the multiple fields associated with the structured data container.
[0158] At operation 906, process 900 may include receiving input into at least one field of the plurality of fields from a second user associated with the group-based communication platform. In other words, the first user may generate an object via a workflow and / or template, where the object includes one or more fields into which the second user can enter data.
[0159] At operation 908, process 900 may include associating the input in at least one of the plurality of fields with at least one of the plurality of fields of the structured data container. In other words, the data received from the second user may be associated with a corresponding data field in the structured data container generated by the first account.
[0160] At operation 910, the process 900 may include presenting, via a graphical interface, to the first user an input into at least one field of the plurality of fields, thus associating the object with a corresponding workflow. Example clauses
[0161] A: A method implemented at least in part by one or more computing devices of a group-based communication platform, the method including: receiving a request from a user associated with the group-based communication platform to create a structured data container representing a system of record associated with the group-based communication platform; generating, in response to the request, the structured data container including a plurality of fields and information associated with an interaction associated with the group-based communication platform; generating a messaging thread associated with at least one field of the plurality of fields of the structured data container; and presenting, via a graphical user interface, the structured data container representing the system of record including the plurality of fields and the messaging thread associated with the at least one field of the plurality of fields of the structured data container.
[0162] B: The method of paragraph A, further including: receiving, in one field of the plurality of fields, first information associated with a first interaction associated with the group-based communication platform; receiving, in a field of the plurality of fields, second information associated with a second interaction associated with the group-based communication platform, the second interaction representing one or more changes to the first interaction; and causing presentation, at least in part, of first metadata associated with the first information and second metadata associated with the second information via a messaging thread associated with at least one field of the plurality of fields, the second metadata including an indication of the one or more changes to the first information.
[0163] C: The method of paragraph B, further comprising: receiving, via a messaging thread associated with at least one field of the plurality of fields, a text input associated with at least one of the first metadata or the second metadata, the text input including a user identifier and message data; and presenting, via a messaging thread associated with at least one field of the plurality of fields, the text input including the user identifier and message data.
[0164] D: The method described in paragraph A, wherein the messaging thread associated with at least one field of the plurality of fields is a first messaging thread associated with the first field, and the method further includes receiving, in a second field of the plurality of fields, information associated with the interaction via the group-based communication platform; and causing presentation of the information associated with the interaction associated with the group-based communication platform via a second messaging thread associated with the second field of the plurality of fields.
[0165] E: The method of paragraph A, further comprising: causing presentation of a plurality of structured data templates based at least in part on the request to create a structured data container; receiving a selection of an individual structured data template from the plurality of structured data templates; and generating structured data representing the system of record based at least in part on receiving the selection of the individual structured data template.
[0166] F: The method of paragraph A, wherein the structured data container includes one or more options related to receiving a selection of a data category from a plurality of data categories, the data categories including at least one of a task title, description, status, assignment type, submission date, due date, owner, author, thread, audience, content item, or rating.
[0167] G: The method described in paragraph A, wherein the graphical user interface is a first graphical user interface, and the method further includes receiving a request to share the structured data container to a virtual space of the group-based communication platform, the virtual space being a second graphical user interface, and causing presentation of one or more selectable objects associated with the structured data container in the virtual space.
[0168] H: The method described in paragraph G, further comprising: receiving an indication of a selection of one or more selectable objects associated with the structured data container; and causing presentation of an expanded view of the structured data container via a second graphical user interface based at least in part on the selection of the one or more selectable objects.
[0169] I: The method described in paragraph A, wherein the structured data container is associated with a set of permissions configured to restrict visibility of at least one field among a plurality of fields associated with the group-based communication platform.
[0170] J: The method of paragraph A, further comprising: receiving, via a graphical user interface, a selection of one or more options associated with filtering a plurality of fields, the one or more options including at least one of a date, a status, a user response, a user account, or a content type; and presenting a filtered view of the plurality of fields based at least in part on receiving the selection.
[0171] K: A system, comprising: one or more processors; and one or more non-transitory computer-readable media containing instructions that, when executed by the one or more processors, cause the system to perform operations including: receiving a request from a user associated with a group-based communication platform to create a structured data container representing a system of record associated with the group-based communication platform; generating, in response to the request, the structured data container including a plurality of fields and information associated with interactions associated with the group-based communication platform; generating a messaging thread associated with at least one field of the plurality of fields of the structured data container; and presenting, via a graphical user interface, the structured data container representing the system of record including the plurality of fields and the messaging thread associated with the at least one field of the plurality of fields of the structured data container.
[0172] L: The system of paragraph K, wherein the operations further include receiving, in one field of the plurality of fields, first information associated with a first interaction associated with the group-based communication platform; receiving, in a field of the plurality of fields, second information associated with a second interaction associated with the group-based communication platform, the second interaction representing one or more changes to the first interaction; and causing presentation, via a messaging thread associated with at least one field of the plurality of fields, of first metadata associated with the first information and second metadata associated with the second information based at least in part on receiving the second information, the second metadata including an indication of the one or more changes to the first information.
[0173] M: The system described in paragraph L, wherein the operation further includes receiving, via a messaging thread associated with at least one field of the plurality of fields, a text input associated with at least one of the first metadata or the second metadata, the text input including a user identifier and message data, and presenting, via the messaging thread associated with the at least one field of the plurality of fields, the text input including the user identifier and message data.
[0174] N: The system described in paragraph K, wherein the messaging thread associated with at least one field of the plurality of fields is a first messaging thread associated with the first field, and the operations further include receiving, in a second field of the plurality of fields, information associated with the interaction via the group-based communication platform, and causing presentation of the information associated with the interaction associated with the group-based communication platform via the second messaging thread associated with the second field of the plurality of fields.
[0175] O: The system described in paragraph K, wherein the operations further include causing presentation of a plurality of structured data templates based at least in part on the request to create a structured data container; receiving a selection of an individual structured data template from the plurality of structured data templates; and generating structured data representing the system of record based at least in part on receiving the selection of the individual structured data template.
[0176] P: The system of paragraph K, wherein the structured data container includes one or more options related to receiving a selection of a data category from a plurality of data categories, the data category including at least one of a task title, description, status, assignment type, submission date, due date, owner, creator, thread, audience, content item, or rating.
[0177] Q: One or more computer-readable media containing instructions that, when executed by one or more processors, cause the one or more processors to perform operations including receiving a request from a user associated with the group-based communication platform to create a structured data container representing a system of record associated with the group-based communication platform; generating, in response to the request, the structured data container including a plurality of fields and information associated with interactions associated with the group-based communication platform; generating a messaging thread associated with at least one field of the plurality of fields of the structured data container; and presenting, via a graphical user interface, the structured data container representing the system of record including the plurality of fields and the messaging thread associated with the at least one field of the plurality of fields of the structured data container.
[0178] R: The one or more computer-readable media described in paragraph Q, further including receiving a request to share the structured data container to a virtual space of the group-based communication platform, the virtual space being a second graphical user interface, and causing presentation of one or more selectable objects associated with the structured data container in the virtual space.
[0179] S: The one or more computer-readable media described in paragraph R, wherein the operations further include receiving an indication of a selection of one or more selectable objects associated with the structured data container, and causing presentation of an expanded view of the structured data container via the second graphical user interface based at least in part on the selection of the one or more selectable objects.
[0180] T: The one or more computer-readable media of paragraph Q, wherein the structured data container is associated with a set of permissions configured to limit visibility of at least one field of a plurality of fields associated with the group-based communication platform.
[0181] U: A method implemented at least in part by one or more computing devices of a group-based communication platform, the method comprising: receiving, from a user associated with the group-based communication platform, a request to create a structured data container representing a system of record associated with the group-based communication platform; generating, in response to the request, the structured data container, the structured data container including a plurality of fields and information associated with an interaction associated with the group-based communication platform; presenting, via a first graphical user interface, the structured data container representing the system of record including the plurality of fields; and receiving from the user, at least one field of the plurality of fields from the group-based communication platform. receiving a request to share to a virtual space of the group-based communication platform, the virtual space being a second graphical user interface; presenting at least one field of the plurality of fields via the virtual space of the group-based communication platform; receiving input into the at least one field of the plurality of fields from a user via the virtual space of the group-based communication platform, the input including information associated with an interaction associated with the group-based communication platform; and modifying at least one field of the plurality of fields of the structured data container based at least in part on receiving the input into the at least one field of the plurality of fields via the virtual space of the group-based communication platform.
[0182] V: The method described in paragraph U, further comprising the steps of generating a messaging thread associated with at least one field of the plurality of fields of the structured data container, and presenting the messaging thread associated with the at least one field of the plurality of fields of the structured data container via a second graphical user interface.
[0183] W: The method of paragraph U, wherein the virtual space includes at least one of a channel, a canvas, a huddle, or a direct message.
[0184] X: The method of paragraph U, wherein the virtual space includes one or more selectable objects associated with at least one field of the plurality of fields, and the method further includes receiving an indication of a selection of one or more selectable objects associated with the structured data container, and causing presentation of an expanded view of the structured data container via the virtual space based at least in part on the selection of the one or more selectable objects.
[0185] Y: The method of paragraph U, wherein the input into at least one field of the plurality of fields is a first input into a first field of the plurality of fields, and the method further includes receiving, in the field of the plurality of fields, via the virtual space, second information associated with a second interaction associated with the group-based communication platform, the second interaction including one or more changes to the first interaction data; and modifying the field of the plurality of fields via the structured data container based at least in part on receiving the second interaction data.
[0186] Z: The method of paragraph Y, further including presenting, based at least in part on receiving second information via a messaging thread associated with at least one field of the plurality of fields, first metadata associated with the first information and second metadata associated with the second information, wherein the second metadata includes instructions for one or more changes to the first information.
[0187] AA: The method described in paragraph U, wherein the virtual space is a first virtual space, and the method further includes the steps of receiving a request from a user to share at least one field of the plurality of fields to a second virtual space of the group-based communication platform, the second virtual space being a third graphical user interface, and presenting the at least one field of the plurality of fields via the second virtual space of the group-based communication platform.
[0188] AB: The method of paragraph AA, wherein the input is a first input and the interaction is a first interaction, and the method further includes receiving a second input from the user into at least one field of the plurality of fields via a second virtual space of the group-based communication platform, the second input including information associated with a second interaction associated with the group-based communication platform, and modifying at least one field of the plurality of fields of the structured data container based at least in part on receiving the second input into the at least one field of the plurality of fields via the second virtual space of the group-based communication platform.
[0189] AC: A system, comprising: one or more processors; and one or more non-transitory computer-readable media comprising instructions, which when executed by the one or more processors, cause the system to: receive, from a user associated with a group-based communication platform, a request to create a structured data container representing a system of record associated with the group-based communication platform; and, in response to the request, generate the structured data container, the structured data container including a plurality of fields and information associated with an interaction associated with the group-based communication platform; present, via a first graphical user interface, the structured data container representing the system of record including the plurality of fields; and receive from the user, at least one field of the plurality of fields from the system of record associated with the group-based communication platform. and modifying at least one field of the plurality of fields of the structured data container based at least in part on receiving the input into the at least one field of the plurality of fields via the virtual space of the group-based communication platform, the input including information associated with an interaction associated with the group-based communication platform.
[0190] AD: The system described in paragraph AC, wherein the operations further include generating a messaging thread associated with at least one field of the plurality of fields of the structured data container and presenting the messaging thread associated with the at least one field of the plurality of fields of the structured data container via a second graphical user interface.
[0191] AE: The system of paragraph AC, wherein the virtual space includes at least one of a channel, a canvas, a huddle, or a direct message.
[0192] AF: The system of paragraph AC, wherein the virtual space includes one or more selectable objects associated with at least one field of the plurality of fields, and the operations further include receiving an indication of a selection of one or more selectable objects associated with the structured data container, and causing presentation of an expanded view of the structured data container via the virtual space based at least in part on the selection of the one or more selectable objects.
[0193] AG: The system of paragraph AC, wherein the input into at least one field of the plurality of fields is a first input into a first field of the plurality of fields, and the operation further includes receiving, in the field of the plurality of fields, via the virtual space, second information associated with a second interaction associated with the group-based communication platform, the second interaction including one or more changes to the first interaction data; and modifying the field of the plurality of fields via the structured data container based at least in part on receiving the second interaction data.
[0194] AH: The system described in paragraph AG, wherein the operations further include presenting first metadata associated with the first information and second metadata associated with the second information based at least in part on receiving the second information via a messaging thread associated with at least one field of the plurality of fields, the second metadata including instructions for one or more changes to the first information.
[0195] AI: One or more computer-readable media containing instructions, which when executed by one or more processors, cause the one or more processors to: receive a request from a user associated with the group-based communication platform to create a structured data container representing a system of record associated with the group-based communication platform; generate, in response to the request, the structured data container including a plurality of fields and information associated with an interaction associated with the group-based communication platform; present, via a first graphical user interface, the structured data container representing the system of record including the plurality of fields; and receive a request from the user to share at least one field of the plurality of fields in a virtual space of the group-based communication platform. and modifying at least one field of the plurality of fields of the structured data container based at least in part on receiving the input into the at least one field of the plurality of fields via the virtual space of the group-based communication platform from a user, the input including information associated with an interaction associated with the group-based communication platform.
[0196] AJ: The one or more computer-readable media described in paragraph AI, wherein the virtual space is a first virtual space, and the operation further includes receiving a request from a user to share at least one field of the plurality of fields to a second virtual space of the group-based communication platform, the second virtual space being a third graphical user interface; and presenting the at least one field of the plurality of fields via the second virtual space of the group-based communication platform.
[0197] AK: The one or more computer-readable media of paragraph AJ, wherein the input is a first input, the interaction is a first interaction, and the operation further includes receiving, from the user, a second input into at least one field of the plurality of fields via a second virtual space of the group-based communication platform, the second input including information associated with a second interaction associated with the group-based communication platform; and modifying at least one field of the plurality of fields of the structured data container based at least in part on receiving, via the second virtual space of the group-based communication platform, the second input into the at least one field of the plurality of fields.
[0198] AL: The one or more computer-readable media described in paragraph AI, wherein the operations further include generating a messaging thread associated with at least one field of the plurality of fields of the structured data container and presenting the messaging thread associated with the at least one field of the plurality of fields of the structured data container via a second graphical user interface.
[0199] AM: The one or more computer-readable media of paragraph AI, wherein the virtual space includes at least one of a channel, a canvas, a huddle, or a direct message.
[0200] AN: The one or more computer-readable media described in paragraph AI, wherein the virtual space includes one or more selectable objects associated with at least one field of the plurality of fields, and the operations further include receiving an indication of a selection of one or more selectable objects associated with the structured data container, and causing presentation of an expanded view of the structured data container through the virtual space based at least in part on the selection of the one or more selectable objects.
[0201] AO: A method implemented at least in part by one or more computing devices of a group-based communication platform, the method including: receiving a request from a first user associated with the group-based communication platform via a graphical user interface to create an object in a virtual space of the group-based communication platform, the request being received from at least one of a template or a workflow, the object including at least one field of a plurality of fields; generating the object in response to the request; and generating a structured data container representing a system of record associated with the group-based communication platform in response to generating the object, the structured data container including the plurality of fields; receiving input for at least one field of the plurality of fields from a second user associated with the group-based communication platform via the object; associating the input for the at least one field of the plurality of fields with at least one field of the structured data container; and presenting the input for the at least one field of the plurality of fields to the first user via the graphical user interface.
[0202] AP: The method described in paragraph AO, wherein the virtual space is a first virtual space, and the method further includes receiving a request from a first user to share an object to a second virtual space of the group-based communication platform, the second virtual space being different from the first virtual space, and presenting the object via the second virtual space of the group-based communication platform.
[0203] AQ: The method described in paragraph AO, further comprising the steps of: receiving a request from a second user in the virtual space to launch a multimedia collaboration session associated with the object; and launching a multimedia collaboration session associated with the object, wherein the multimedia collaboration session enables two or more users associated with the group-based communication platform to simultaneously access the object.
[0204] AR: The method of paragraph AQ, further comprising the steps of receiving data associated with the object from at least one of two or more users associated with the group-based communication platform, associating the data associated with the object with at least one field of a plurality of fields of a structured data container, and presenting the data associated with the object to the first user via a graphical user interface.
[0205] AS: The method of paragraph AO, wherein the template or workflow is generated by a group-based communication platform.
[0206] AT: The method described in paragraph AO, wherein the input is a first input, and the method further includes receiving a second input into at least one field of the plurality of fields from a second user, associating the second input into at least one field of the plurality of fields with at least one field of the plurality of fields of the structured data container, and presenting the second input into at least one field of the plurality of fields to the first user via a graphical user interface.
[0207] AU: The method of paragraph AO, wherein the graphical interface is a first graphical interface, and the method further includes generating a messaging thread associated with at least one field of the plurality of fields of the structured data container, and presenting the messaging thread associated with the at least one field of the plurality of fields of the structured data container via at least one of the first graphical interface or the second graphical interface.
[0208] AV: The method of paragraph AO, wherein the structured data container is associated with a set of permissions configured to restrict visibility of at least one field of a plurality of fields associated with the group-based communication platform.
[0209] AW: A system comprising: one or more processors; and one or more non-transitory computer-readable media comprising instructions that, when executed by the one or more processors, cause the system to perform operations including: receiving, from a first user associated with the group-based communication platform via a graphical user interface, a request to create an object in a virtual space of the group-based communication platform, the request being received from at least one of a template or a workflow, the object including at least one field of a plurality of fields; generating the object in response to the request; and generating a structured data container representing a system of record associated with the group-based communication platform in response to generating the object, the structured data container including the plurality of fields; receiving, from a second user associated with the group-based communication platform via the object, input for at least one field of the plurality of fields; associating the input for the at least one field of the plurality of fields with at least one field of the structured data container; and presenting the input for the at least one field of the plurality of fields to the first user via the graphical user interface.
[0210] AX: The system of paragraph AW, wherein the virtual space is a first virtual space, and the operation further includes receiving a request from the first user to share the object to a second virtual space of the group-based communication platform, the second virtual space being different from the first virtual space, and presenting the object via the second virtual space of the group-based communication platform.
[0211] AY: The system described in paragraph AW, wherein the operations further include receiving a request from a second user in the virtual space to launch a multimedia collaboration session associated with the object, and launching a multimedia collaboration session associated with the object, the multimedia collaboration session enabling two or more users associated with the group-based communication platform to simultaneously access the object.
[0212] AZ: The system of paragraph AY, wherein the operations further include receiving data associated with the object from at least one of two or more users associated with the group-based communication platform, associating the data associated with the object with at least one field of a plurality of fields of a structured data container, and presenting the data associated with the object to the first user via a graphical user interface.
[0213] BA: The system of paragraph AW, wherein the template or workflow is generated by a group-based communication platform.
[0214] BB: The system described in paragraph AW, wherein the input is a first input, and the method further includes receiving a second input into at least one field of the plurality of fields from a second user, associating the second input into the at least one field of the plurality of fields with at least one field of the plurality of fields of the structured data container, and presenting the second input into the at least one field of the plurality of fields to the first user via a graphical user interface.
[0215] BC: One or more computer-readable media containing instructions that, when executed by one or more processors, cause the one or more processors to perform operations including receiving, from a first user associated with the group-based communication platform via a graphical user interface, a request to create an object in a virtual space of the group-based communication platform, the request being received from at least one of a template or a workflow, the object including at least one field of a plurality of fields; generating the object in response to the request; and generating a structured data container representing a system of record associated with the group-based communication platform in response to generating the object, the structured data container including the plurality of fields; receiving, from a second user associated with the group-based communication platform via the object, input for at least one field of the plurality of fields; associating the input for the at least one field of the plurality of fields with at least one field of the structured data container; and presenting the input for the at least one field of the plurality of fields to the first user via the graphical user interface.
[0216] BD: The one or more computer-readable media of paragraph BC, wherein the graphical interface is a first graphical interface, and the operations further include generating a messaging thread associated with at least one field of the plurality of fields of the structured data container, and presenting the messaging thread associated with the at least one field of the plurality of fields of the structured data container via at least one of the first graphical interface or the second graphical interface.
[0217] BE: The one or more computer-readable media of paragraph BC, wherein the structured data container is associated with a set of permissions configured to limit visibility of at least one field of a plurality of fields associated with the group-based communication platform.
[0218] BF: The one or more computer-readable media of paragraph BC, wherein the virtual space is a first virtual space, and the operation further includes receiving a request from the first user to share an object to a second virtual space of the group-based communication platform, the second virtual space being different from the first virtual space, and presenting the object via the second virtual space of the group-based communication platform.
[0219] BG: The one or more computer-readable media described in paragraph BC, wherein the operations further include receiving a request from a second user in the virtual space to launch a multimedia collaboration session associated with the object, and launching a multimedia collaboration session associated with the object, the multimedia collaboration session enabling two or more users associated with the group-based communication platform to access the object simultaneously.
[0220] BH: The one or more computer-readable media described in paragraph BG, wherein the operations further include receiving data associated with the object from at least one of two or more users associated with the group-based communication platform, associating the data associated with the object with at least one field of a plurality of fields of a structured data container, and presenting the data associated with the object to the first user via a graphical user interface.
[0221] Although the example clauses described above are described with respect to one particular implementation, it should be understood in the context of this document that the content of the example clauses may also be implemented via a method, device, system, computer-readable medium, and / or another implementation. Additionally, any of Examples A-BH may be implemented alone or in combination with any other one or more of Examples A-BH. conclusion
[0222] One or more examples of the techniques described herein have been described, and various modifications, additions, permutations, and equivalents thereof fall within the scope of the techniques described herein.
[0223] In describing the examples, reference is made to the accompanying drawings, which form a part of this specification and which show, by way of illustration, specific examples of the claimed subject matter. It is understood that other examples can be used and changes or modifications, such as structural changes, can be made. Such examples, changes, or modifications do not necessarily depart from the intended scope of the claimed subject matter. While the steps herein may be presented in a particular order, in some cases the order can be changed so that certain inputs are provided at different times or in a different order without changing the functionality of the systems and methods described. The disclosed procedures may also be performed in a different order. Additionally, the various calculations herein need not be performed in the order disclosed, and other examples using alternative orders of calculations can be readily implemented. In addition to being reordered, calculations can also be decomposed into sub-calculations that have the same result.
Claims
1. 1. A method implemented at least in part by one or more computing devices of a group-based communication platform, comprising: receiving a request from a user associated with the group-based communication platform to create a structured data container representing a system of record associated with the group-based communication platform; generating the structured data container in response to the request, the structured data container comprising: Multiple fields, and Information associated with interactions associated with the group-based communications platform and creating a messaging thread associated with at least one field of the plurality of fields of the structured data container; presenting, via a graphical user interface, the structured data container representing the system of record including the plurality of fields and the messaging thread associated with the at least one field of the plurality of fields of the structured data container; A method comprising:
2. receiving, in one field of the plurality of fields, first information associated with a first interaction associated with the group-based communication platform; receiving, in the field of the plurality of fields, second information associated with a second interaction associated with the group-based communication platform, the second interaction representing one or more changes to the first interaction; causing presentation of first metadata associated with the first information and second metadata associated with the second information based at least in part on receiving the second information via the messaging thread associated with the at least one field of the plurality of fields, the second metadata including an indication of the one or more changes to the first information; The method of claim 1 further comprising:
3. receiving text input associated with at least one of the first metadata or the second metadata via the messaging thread associated with the at least one field of the plurality of fields, the text input including a user identifier and message data; submitting the text input, including the user identifier and the message data, via the messaging thread associated with the at least one field of the plurality of fields; The method of claim 2 further comprising:
4. The messaging thread associated with the at least one field of the plurality of fields is a first messaging thread associated with a first field, and the method includes: receiving, in a second field of the plurality of fields, information associated with an interaction via the group-based communication platform; causing presentation of the information associated with the interaction associated with the group-based communication platform via a second messaging thread associated with the second field of the plurality of fields; 4. The method according to any one of claims 1 to 3.
5. causing presentation of a plurality of structured data templates based at least in part on the request to create the structured data container; receiving a selection of an individual structured data template from the plurality of structured data templates; generating the structured data representative of the system of record based at least in part on receiving the selection of the individual structured data template; The method of claim 1 , further comprising:
6. The structured data container includes one or more options associated with receiving a selection of a data category from a plurality of data categories, the data categories comprising: Task title, explanation, status, Issue type, Submission date; due date, owner, Creator, thread, audience, a content item, or Rating The method of claim 1 , further comprising at least one of:
7. The graphical user interface is a first graphical user interface, and the method comprises: receiving a request to share the structured data container with a virtual space of the group-based communication platform, the virtual space being a second graphical user interface; causing presentation in the virtual space of one or more selectable objects associated with the structured data container; 7. The method of claim 1, further comprising:
8. receiving an indication of a selection of the one or more selectable objects associated with the structured data container; causing presentation of an expanded view of the structured data container via the second graphical user interface based at least in part on the selection of the one or more selectable objects; The method of claim 7 further comprising:
9. 9. The method of claim 1, wherein the structured data container is associated with a set of permissions configured to limit visibility of the at least one field of the plurality of fields associated with the group-based communication platform.
10. receiving, via the graphical user interface, a selection of one or more options associated with filtering the plurality of fields, the one or more options comprising: date, status, user response, User account, or Content Type and presenting a filtered view of the plurality of fields based at least in part on receiving the selection; and 10. The method of claim 1, further comprising:
11. A computer program product comprising coded instructions which, when executed on a computer, performs the method of any one of claims 1 to 10.
12. 1. A system comprising: one or more processors; one or more non-transitory computer-readable media containing instructions; the instructions, when executed by the one or more processors, cause the system to: receiving a request from a user associated with a group-based communication platform to create a structured data container representing a system of record associated with the group-based communication platform; generating the structured data container in response to the request, the structured data container comprising: Multiple fields, and Information associated with interactions associated with the group-based communications platform generating a creating a messaging thread associated with at least one field of the plurality of fields of the structured data container; presenting via a graphical user interface the structured data container representing the system of record including the plurality of fields and the messaging thread associated with the at least one field of the plurality of fields of the structured data container; A system that causes an operation including
13. The operation is receiving, in one field of the plurality of fields, first information associated with a first interaction associated with the group-based communication platform; receiving, in the field of the plurality of fields, second information associated with a second interaction associated with the group-based communication platform, the second interaction representing one or more changes to the first interaction; causing presentation of first metadata associated with the first information and second metadata associated with the second information based at least in part on receiving the second information via the messaging thread associated with the at least one field of the plurality of fields, the second metadata including an indication of the one or more changes to the first information; The system of claim 12 further comprising:
14. The operation is receiving, via the messaging thread associated with the at least one field of the plurality of fields, a text input associated with at least one of the first metadata or the second metadata, the text input including a user identifier and message data; submitting the text input, including the user identifier and the message data, via the messaging thread associated with the at least one field of the plurality of fields; The system of claim 13 further comprising:
15. the messaging thread associated with the at least one field of the plurality of fields is a first messaging thread associated with a first field, and the operation comprises: receiving, at a second field of the plurality of fields, information associated with an interaction via the group-based communication platform; causing presentation of the information associated with the interaction associated with the group-based communication platform via a second messaging thread associated with the second field of the plurality of fields; The system of claim 12 further comprising: