Communication Platform Documents as Communication Channels
Patent Information
- Application Number
- JP2024539392
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-12-30
- Filing Date
- 2022-12-22
- Publication Date
- 2025-03-11
Smart Images

Figure 2025506328000001_ABST
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This PCT international application claims priority to U.S. patent application Ser. No. 17 / 566,429, entitled “COMMUNICATION PLATFORM DOCUMENT AS A COMMUNICATION CHANNEL,” filed on December 30, 2021, the entire contents of which are incorporated herein by reference.
[0002] Communications platforms have become increasingly popular to facilitate work-related communications, such as project collaboration within a single organization and across two or more organizations. To facilitate project collaboration, users often share information via documents. For example, a first user may solicit feedback on a document by sharing the document via a communications platform. Other users may modify the document and re-share the modified document with the first user. However, receiving modified documents from different users may be cumbersome, cumbersome, and information in one or more modified documents may be lost. In some cases, users may utilize third-party documents to collaborate synchronously or asynchronously on the same document. For example, a first user may share a link to a third-party document managed by a third-party service provider, through which other users may provide input. However, the use of the third-party document may be limited to merely providing input regarding the document itself. That is, the limited functionality of the third-party document may require users to employ different means of chatting, managing tasks, and other collaboration. In some cases, users may need to switch between using the third-party document and another interface to perform other functions associated with the collaboration. Switching between interfaces can be inefficient and cumbersome for users and can require the use of significant computing resources. [Brief description of the drawings]
[0003] The detailed description will be set forth with reference to the accompanying drawings, in which the leftmost digit(s) of a reference number identifies the drawing in which the reference number first appears. Use of the same reference number in different drawings indicates similar or identical components or features. The figures are not drawn to scale.
[0004] [Figure 1] FIG. 1 illustrates an exemplary system for implementing the techniques described herein.
[0005] [Figure 2A] FIG. 2 illustrates an exemplary user interface for enabling access to one or more documents associated with a user account. [Figure 2B] FIG. 2 illustrates an example user interface associated with a collaborative document.
[0006] [Figure 3A] 3A-3C illustrate an exemplary user interface for creating a new document in relation to a virtual space of a communications platform as described herein. [Figure 3B] 3A-3C illustrate an exemplary user interface for creating a new document in relation to a virtual space of a communications platform as described herein. [Figure 3C] FIG. 2 illustrates an exemplary user interface for creating a new document associated with a virtual space of a communications platform as described herein. [Figure 3D] FIG. 2 illustrates an exemplary user interface for creating a new document associated with a virtual space of a communications platform as described herein.
[0007] [Figure 4A] 3A-3C illustrate example user interfaces for viewing objects associated with a collaborative document as described herein. [Figure 4B] 3A-3C illustrate example user interfaces for viewing objects associated with a collaborative document as described herein.
[0008] [Figure 5A] FIG. 2 illustrates an exemplary user interface for sharing a collaborative document with members of a virtual space and presenting objects in association with the document based on data associated with members of the virtual space, as described herein. [Figure 5B] FIG. 2 illustrates an exemplary user interface for sharing a collaborative document with members of a virtual space and presenting objects in association with the document based on data associated with members of the virtual space, as described herein. [Figure 5C] FIG. 2 illustrates an exemplary user interface for sharing a collaborative document with members of a virtual space and presenting objects in association with the document based on data associated with members of the virtual space, as described herein. [Figure 5D] FIG. 2 illustrates an exemplary user interface for sharing a collaborative document with members of a virtual space and presenting objects in association with the document based on data associated with members of the virtual space, as described herein. [Figure 5E] FIG. 2 illustrates an exemplary user interface for sharing a collaborative document with members of a virtual space and presenting objects in association with the document based on data associated with members of the virtual space, as described herein.
[0009] [Figure 6A] 3A-3C illustrate example user interfaces for sharing a document with another user of a communications platform as described herein. [Figure 6B] 3A-3C illustrate example user interfaces for sharing a document with another user of a communications platform as described herein.
[0010] [Figure 7A] FIG. 1 illustrates an exemplary user interface for assigning an object associated with a document to a user account associated with the document and presenting an indication of the object in at least a sidebar of a user interface associated with the user account, as described herein. [Figure 7B] FIG. 1 illustrates an exemplary user interface for assigning an object associated with a document to a user account associated with the document and presenting an indication of the object in at least a sidebar of a user interface associated with the user account, as described herein. [Figure 7C] FIG. 1 illustrates an exemplary user interface for assigning an object associated with a document to a user account associated with the document and presenting an indication of the object in at least a sidebar of a user interface associated with the user account, as described herein.
[0011] [Figure 8] FIG. 1 illustrates an exemplary process for creating a collaborative document in association with a communication platform and presenting an object in association with the collaborative document based on data associated with a user account associated with the collaborative document, as described herein.
[0012] [Figure 9] FIG. 2 illustrates an exemplary process for creating a collaborative document in association with a communication platform and sharing the collaborative document via a virtual space of the communication platform, as described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] Techniques for providing a collaborative document within a communication platform are described herein. The communication platform can be a group-based communication platform, a channel-based messaging platform, and / or any other platform for facilitating communication between users. In one example, a first user can request to create a collaborative document, the request including an indication of a virtual space to associate the collaborative document with. In response to the request, the communication platform can create the collaborative document and cause affordances (e.g., identifiers, indicators, selectable controls, user interface elements, etc.) associated with the collaborative document to be displayed in association with the virtual space, the affordances enabling members (e.g., users) of the virtual space to access, modify, communicate, and / or otherwise collaborate via the collaborative document. In at least one example, the collaborative document can be configured to enable multiple functionalities available via the communication platform, such as to enhance the usability of the collaborative document.
[0014] As discussed above, in existing technology, a first user may share a document with a second user, such as to obtain feedback on the document. The second user may edit or otherwise modify the document and send the modified document back to the first user. However, sharing the modified document between users may be an inefficient means for users to collaborate on the document. In some examples, the first user may alternatively share a link to a third-party document managed by a third-party service provider, such as to solicit feedback from the second user. However, third-party documents that allow for modification, commenting, and the like are limited to the static functionality of collaborative word processing. That is, third-party documents are not configured to provide additional functionality that may be useful for collaboration, such as real-time or near real-time communication, managing tasks, tracking project progress, accessing scheduling information or tasks associated with collaborators. In addition, third-party applications may not be able to write directly to third-party documents. Thus, to collaborate effectively, users may be required to run multiple different programs, each configured to perform different functionality, in order to access the information necessary to collaborate effectively.
[0015] The technology described herein aims to enable an efficient means of collaborating via collaborative documents associated with a communication platform. In some examples, collaborative documents can be created within and managed by a communication platform. In at least one example, collaborative documents can support editable text and / or objects that can be ordered, added, deleted, modified, etc. Objects can include, but are not limited to, text (e.g., which can be editable), files (e.g., text, audio, video, applications, etc.), tasks to be completed, tickets to be resolved, events (e.g., scheduled events, calendar invites, calendar instances, etc.), messages previously sent via the communication platform, images, graphics, links to local objects, links to remote objects (e.g., third party objects), etc. In various examples, each collaborative document can be associated with permissions that define which users of the communication platform can view and / or edit that collaborative document. In various examples, the permissions may be defined based on the means by which the collaborative document was created.
[0016] In at least one example, the communications platform can receive a first request to create a collaborative document from a first user. In some examples, the first request can be received via a virtual space (e.g., a workspace, a communication channel, a direct message instance, a document, a board, an audio or video communication, etc.) associated with the communications platform. In some examples, the communications platform can be associated with a first user account of the first user. For example, the first user can select an affordance or indicator associated with creating a new document that is presented in association with the virtual space. Based on a selection of the affordance or indicator, the communications platform can receive the first request to create the collaborative document. Alternatively, the request can be received independently of the virtual space. That is, the first user can submit a first request to create a collaborative document independently of the virtual space (e.g., in association with the user account of the first user) such that the collaborative document can be available for use by the first user.
[0017] In response to receiving the first request, the communication platform can identify one or more users to be associated with the collaborative document. In examples where the collaborative document is created independent of the virtual space, the communication platform can identify the requesting user (e.g., the first user) as the user to be associated with the collaborative document. In such examples, the communication platform can associate an identifier associated with the requesting user with the collaborative document. The identifier can include a combination of a real name, a username, one or more numbers, letters, symbols, etc. In examples where the first request is submitted via a virtual space, the communication platform can identify one or more members of the virtual space as users to be associated with the collaborative document. That is, a user identifier associated with the virtual space can be additionally associated with the collaborative document such that any of the members of the virtual space can access and / or collaborate via the collaborative document. In some examples, the collaborative document can be implemented as a hidden virtual space or a covert channel.
[0018] In addition, the communication platform can associate a document identifier with the collaborative document. The document identifier can include a unique code (e.g., numbers, letters, symbols, and / or combinations thereof) that can be stored as metadata and used to identify the collaborative document. In various examples, the document identifier can include the same or similar identifiers associated with a type of virtual space of the communication platform. In such examples, the document identifier can enable one or more functionalities with respect to the collaborative document associated with the type of virtual space. Non-limiting examples of functionality can include messaging functionality (e.g., chat channels), message timing documentation (e.g., timestamps), audio and / or video communication, file upload, notifications (e.g., associated with revisions to the collaborative document, new messages posted, mentions or tags, etc.), mention or tagging functionality, event propagation, workflow management and tracking, access permissions, and / or other functionality enabled based on the type of virtual space. For example, the document identifier can include a communication channel identifier that provides the collaborative document with functionality associated with the communication channel. That is, the communication platform can treat the collaborative document as a communication channel such that the functionality of the communication channel can be embedded in the collaborative document. By treating a collaborative document as a type of existing virtual space, the communications platform can reduce overhead associated with the collaborative document, such as by leveraging existing paradigms within the communications platform.
[0019] In various examples, the communications platform can identify one or more objects to be associated with the collaborative document. In some examples, the communications platform can identify the objects based on user input from a creating user (e.g., a first user). In such examples, the first user can input one or more objects to be associated with the collaborative document, such as in association with a first request to create the collaborative document. Based on the user input, the communications platform can cause the objects to be presented in association with the collaborative document. In at least one example, the objects can include a word processing template configured to enable a user to input data into the collaborative document, such as for receiving feedback.
[0020] Additionally or alternatively, the communications platform may identify the object based on membership associated with the collaborative document. That is, the communications platform may identify the object based on users associated as members of the collaborative document. In various examples, the communications platform may display the identified object in association with the collaborative document. For example, the communications platform may determine that the second user is a member of the virtual space (e.g., a channel, a synchronous or asynchronous meeting, etc.) in which the collaborative document was created and is therefore also a member of the collaborative document. The communications platform may identify a task assigned to the second user in association with the virtual space and display the task in association with the collaborative document.
[0021] In various examples, the communications platform can cause an affordance or identifier associated with the collaborative document to be presented via a user interface associated with each member of the collaborative document. That is, the communications platform can modify a user interface corresponding to one or more users associated with the collaborative document to include the affordance. In various examples, the affordance can include a user interface element that, when selected by each user, causes the collaborative document to be presented via a user interface associated with that user.
[0022] In some examples, affordances may be presented in association with a virtual space that corresponds to a collaborative document. For example, one or more affordances corresponding to one or more documents associated with the virtual space may be presented in a header associated with the virtual space. This is merely an illustrative example, and one or more affordances may be presented at other locations within or in association with the virtual space.
[0023] Additionally or alternatively, the affordances or identifiers can be presented in a sidebar of the user interface. In some examples, the sidebar can include a portion of the user interface that includes a list of virtual spaces associated with a particular user account. For example, the sidebar may include a list of documents, workspaces, communication channels, direct message instances, etc. associated with the viewing user's user account. In various examples, an affordance associated with a collaborative document can be presented in association with the virtual space in which the collaborative document was created. In some examples, an affordance associated with a collaborative document can be presented in association with other collaborative documents associated with a particular user account.
[0024] In some examples, the sidebar of the user interface may further include one or more affordances or identifiers associated with one or more objects associated with the collaborative document. In some examples, an affordance or identifier may be presented in the sidebar based on a determination that the object associated therewith is assigned or otherwise associated with a respective user account. For example, a first user interface corresponding to a first user associated with the collaborative document may include a first affordance or identifier of a first object associated with the collaborative document and assigned or otherwise associated with the first user, and a second user interface corresponding to a second user associated with the collaborative document may include a second affordance or identifier of a second object associated with the collaborative document and assigned or otherwise associated with the second user.
[0025] In some examples, in response to receiving an indication of a selection of an affordance or identifier associated with the object, the communications platform may cause the object to be displayed within the respective collaborative document. In some examples, in response to receiving an indication of a selection of an affordance or identifier associated with the object, the communications platform may cause the object to be displayed directly. That is, the communications platform may cause the object to be rendered via the respective user interface independent of the collaborative document associated therewith. For example, the object may include a task associated with the collaborative document and assigned to the user. In response to receiving an indication of a selection of an affordance or identifier associated with the object, the communications platform may render details associated with the task directly (e.g., independent of the collaborative document) via the user interface.
[0026] In some examples, an object associated with a collaborative document may include a third-party object managed by or otherwise stored in association with a third-party service provider. In such examples, a user associated with a third-party user account may provide a credential, token, or other information necessary for the communications platform to access data associated with the object. That is, a user associated with a collaborative document may provide the communications platform information necessary to access a third-party user account associated with an object included in the collaborative document. In response to receiving a request to access an object (e.g., receiving a selection of an affordance associated with the object), the communications platform may send a request to the third-party service provider to receive the requested data associated with the object. For example, the object may include a meeting invitation associated with a third-party scheduling service. In response to receiving a request to view the object, such as a selection of an affordance associated with the object in a sidebar, the communications platform may request the data from the third-party scheduling service. The communications platform may then cause the data associated with the object to be presented to the requesting user via a user interface.
[0027] Additionally or alternatively, the communications platform may be configured to allow a collaborative document and / or one or more objects associated therewith to be shared with one or more additional users after their creation. In some examples, a collaborative document may be shared by an administrator or owner (e.g., a first user) of the collaborative document. That is, a user associated with the creation of the collaborative document may include permissions to share the collaborative document with other users. In some examples, a collaborative document may be configured to be shared by one or more members of the collaborative document based on permission settings associated therewith, or the like. For example, a first user and a second user may be members of the collaborative document. The first user may include sharing permissions, while the second user may not include sharing permissions. As another example, a collaborative document may be configured to allow all members of the collaborative document to share with additional users of the communications platform.
[0028] In various examples, the communications platform can receive a second request to share the collaborative document with one or more additional users of the communications platform. In examples where the collaborative document is generated in association with a virtual space (e.g., a first virtual space), the second request can represent a request to share the collaborative document with an additional user not associated with the virtual space (e.g., a channel, a synchronous meeting, a current document). In examples where the collaborative document is generated independently of a virtual space (e.g., generated in association with a user account of the first user), the second request can represent a preliminary request to share the collaborative document with one or more other users of the communications platform.
[0029] In various examples, the second request can include one or more user identifiers associated with the additional users. In such examples, the collaborative document can be shared directly with the additional users, for example, via a direct message instance or via a mention to a reference to the additional users' accounts. In some examples, the second request can include one or more virtual space identifiers associated with the communications platform. In such examples, the collaborative document can be shared via the identified virtual space. In at least one example, in response to receiving the second request, the communications platform can update the membership of the collaborative document based on the additional users. That is, the communications platform can associate the additional users as members of the collaborative document such that the additional users have access and / or editing permissions associated with the collaborative document.
[0030] In some examples, the second request may include permission settings associated with editing functionality of the collaborative document. That is, a user requesting to share a collaborative document with additional users (e.g., the first user, the second user, etc.) may establish permission settings associated with the additional users. The permission settings may include a read or view only setting, a chat only setting (e.g., allowing messaging but not modifying other text in the document), full editing permission, etc. In various examples, the communications platform may store the permission settings associated with the additional users in association with the collaborative document. The permission settings associated with the additional users may be the same as or different from the permission settings associated with other members of the collaborative document. For example, the first user may create a collaborative document in association with a first virtual space. Members of the first virtual space may be associated with the collaborative document with a first permission setting, including full editing permission, as members of the first virtual space. The first user may then share the collaborative document via a second virtual space and may specify a second permission setting, including read-only permission, with members of the second virtual space. That is, members of the second virtual space are authorized to view the collaborative document while members of the first virtual space edit and contribute to the collaborative document. In some examples, the permission settings may be per section, where the first user may modify a first section of the collaborative document but may not modify a second section of the collaborative document. In some examples, the first user may view the first section of the collaborative document but may not view the second section of the collaborative document.
[0031] From a user experience perspective, the techniques described herein greatly improve the usability and functionality of collaborative documents within a communication platform. As discussed above, conventional techniques include users of third-party documents to enable real-time collaboration on documents. However, these third-party documents are limited in functionality to word processing and related functions. Unlike third-party documents, the collaborative documents described herein enable additional functionality provided by the communication platform. That is, instead of being limited to just word processing and related functions, the techniques described herein enable real-time or near real-time messaging functionality (e.g., text, audio, video, etc.), message tracking functionality (e.g., timestamp, organization, etc.), mention or tagging functionality, notification functionality, sharing functionality (e.g., via virtual space, individually, in groups, etc.), and other functionality powered by the communication platform. In some examples, the collaborative document can share any portion of the document and associated message functionality to the communication platform and vice versa. For example, a user being mentioned may receive a notification of the comment in the communication platform. In some examples, a comment posted to the communication platform regarding a message associated with the collaborative document may be output to the collaborative document. Similarly, messages received from third-party applications or workflows within the communications platform may also be output to the collaborative document, thereby reducing the need for users to cut and paste comments between the communications platform and the collaborative document. Thus, the techniques described herein can significantly improve the usability and user experience associated with collaborating via collaborative documents.
[0032] In addition, as mentioned above, two different methods are often used to collaborate on a document. The first method involves a first user creating a document and sending it to a second user for feedback. The second user may modify the document and send the modified document back to the first user, such as via a communication platform, via email, or by other means. Thus, the first method requires a large amount of computing resources to process and store multiple versions of the document. In addition, the first method may require a large amount of network bandwidth to communicate versions of the document between users. Finally, this first method may lead to confusion about which version of the document is the latest version, resulting in a frustrating user experience.
[0033] Unlike the first method, the technology described herein provides a means by which users can access, edit, modify, comment on, and / or chat about a particular collaborative document in a single location within a communication platform. A particular collaborative document can be updated in real time or near real time so that the information viewed at any given time can include the latest information, thereby negating any potential confusion regarding the document's status and improving the user experience. The technology described herein also provides up-to-date information without the need to transmit different versions of the document between users, thereby reducing computing resources and network bandwidth associated with collaborating on a document (e.g., a collaborative document).
[0034] A second conventional method for collaborating on documents or files includes utilizing document services provided by a third-party service provider. Utilizing such methods, users of a communication platform can access third-party documents independently of or through the communication platform. However, as described above, conventional third-party documents are limited in functionality to word processing and related functions. That is, users can collaboratively edit and comment on a particular document, but cannot perform additional or alternative functions related thereto. As such, users of third-party documents may be required to utilize additional or alternative means by which they may communicate and / or perform other collaboration functions related to a project. For example, a user may generate a third-party document associated with a particular project. The user computing device may run a first application to access the third-party document, a second application to discuss edits to the third-party document in real time or near real time, a third application to view tasks or tickets associated with the project, etc., to maintain a complete picture of the project's status. Unlike the second method, which is limited to word processing functionality, the technology described herein provides collaborative documents with enhanced functionality driven (e.g., enabled by) by a communication platform. For example, these enhanced features include real-time or near real-time messaging within collaborative documents, message tracking functionality (e.g., timestamps, etc.), real-time document editing capabilities, sharing features such as including additional users in a document, etc., object management functionality (e.g., task and / or ticket assignment, monitoring task and / or ticket status, identifying related calendar events, etc.) Due to the enhanced functionality provided by collaborative documents, the techniques described herein can reduce the number of applications running on user computing devices to monitor and / or manage projects.Thus, the techniques described herein may reduce the amount of computing resources utilized in a collaborative effort.
[0035] In addition, the techniques described herein include associating a document identifier (e.g., a virtual space identifier) with the collaborative document. Based in part on the association of the virtual space with the document identifier, which may be a type of virtual space identifier, the communication platform can utilize existing functionality associated with the virtual space to provide the aforementioned functionality of the collaborative document. By enhancing the capabilities associated with the collaborative document using existing functionality, the communication platform can provide enhanced capabilities with reduced overhead. In other words, by utilizing existing functionality, the communication platform can enhance collaboration with limited computing resource costs. Further details and examples are described below with reference to FIGS. 1-9.
[0036] FIG. 1 illustrates an example system 100 for implementing the techniques described herein. In at least one example, the example system 100 can 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 can be “group-based” such that the platform and associated systems, communication channels, messages, and / or virtual spaces have security (which can be defined by permissions) to limit access to a defined group of users. In some examples, such groups of users can be defined by a group identifier, which can be associated with common access credentials, domains, and the like. In some examples, the communications platform can 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 with one another. In various examples, each group can be associated with a workspace, enabling users associated with the group to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate with one another in a secure, private virtual space. In some examples, members of a group, and therefore members of a workspace, may be associated with the same organization. In some examples, members of a group, and therefore members of a workspace, may be associated with different organizations (e.g., entities with different organization identifiers).
[0037] In at least one example, the exemplary system 100 can include one or more server computing devices (or "servers") 102. In at least one example, the server 102 can include one or more servers or other types of computing devices that can be embodied in any number of ways. For example, in a server example, the functional components and data can be implemented in 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 can additionally or alternatively be used.
[0038] In at least one example, the server 102 can communicate with the user computing devices 104 and / or with one or more third party computing devices 106 associated with a third party service provider 108 (e.g., a third party resource) via one or more networks 110. That is, the server 102, the user computing devices 104, and the third party computing devices 106 can transmit, receive, and / or store data (e.g., content, information, etc.) using the network 110 as described herein. The user computing devices 104 and the third party computing devices 106 can be any suitable type of computing device, e.g., portable, semi-portable, semi-stationary, or stationary. Some examples of the third party computing devices 106 can include a server computing device, a desktop computing device, a terminal computing device, etc., as described above with respect to the server 102.
[0039] Some examples of user computing device 104 may 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. Although a single user computing device 104 is shown, in practice, the exemplary system 100 may include a large number (e.g., tens, hundreds, thousands, millions) of 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 communication platform. A user may be an individual, a group of individuals, an employer, a business, an organization, etc.
[0040] Network 110 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 near field 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 networks 110 are well known and will not be described in detail herein.
[0041] In at least one example, server 102 can include one or more processors 112, computer readable media 114, one or more communications interfaces 116, and input / output devices 118. Although not shown in FIG 1, third party computing device 106 can further include one or more processors, such as processor 112, computer readable media, such as computer readable media 114, a communications interface, such as communications interface 116, and input / output devices, such as input / output devices 118.
[0042] In at least one example, each processor of the processors 112 can be a single processing unit or multiple processing units and can include single or multiple computing units or multiple processing cores. The processors 112 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, the processors 112 can be one or more hardware processors and / or logic circuits of any suitable type that are specifically programmed or configured to execute the algorithms and processes described herein. The processors 112 can be configured to fetch and execute computer-readable instructions stored on a computer-readable medium, which can program the processor to perform the functions described herein.
[0043] The computer readable media 114 may include volatile and non-volatile memory and / or removable and non-removable media implemented in any type of technology for storage of data such as computer readable instructions, data structures, program modules, or other data. Such computer readable media 114 may 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 media that can be used to store desired data and that can be accessed by a computing device. Depending on the configuration of the server 102, the computer readable media 114 may be a type of computer readable storage medium and / or may be a tangible non-transitory medium to the extent that, when referred to, non-transitory computer readable media excludes media such as energy, carrier signals, electromagnetic waves, and signals themselves.
[0044] The computer-readable medium 114 can be used to store any number of functional components executable by the processor 112. In many implementations, these functional components include instructions or programs executable by the processor 112 that, when executed, specifically configure the processor 112 to perform the operations described above for the server 102. The functional components stored on the computer-readable medium may optionally include a messaging component 120, a document management component 122, an operating system 124, and a data store 126.
[0045] In at least one example, the messaging component 120 can process messages between users. That is, in at least one example, the messaging component 120 can receive an outgoing message from a user computing device 104 and can send the message as an incoming message to a second user computing device 104. 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 a communication channel to one or more users associated with the communication channel. Additionally, the message can be sent in association with a collaborative document, as described herein. 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 a virtual space (e.g., a communication channel) within the collaborative document. That is, the collaborative document can be treated as a virtual space like a communication channel and can include functionality associated with the virtual space. The virtual space, i.e., the communication channel, can be a data pathway used to exchange data between systems and devices associated with the communication platform. In at least one example, the messaging component 120 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 120 can manage such communication and / or sharing of data. 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, such as a timestamp associated with the message, an identifier of the sending user, an identifier of the receiving user, a conversation identifier and / or a root object identifier (e.g., a conversation associated with a thread and / or a root object), etc., can be stored in association with the virtual space.
[0046] In various examples, the messaging component 120 can receive messages sent in association with the collaborative document. In various examples, the messaging component can identify one or more users associated with the collaborative document and cause messages to be rendered in association with an instance of the collaborative document on the respective user computing devices 104. In various examples, the messaging component 120 can be configured to identify a mention or tag to be associated with a message sent in association with the collaborative document. In at least one example, the mention or tag can include an @mention 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 120 can cause a notification to be presented on a user interface associated with the user identifier, such as in a virtual space associated with the mention and reaction. That is, the messaging component 120 can be configured to alert a particular user that they have been mentioned in the collaborative document. In at least one example, mention or tagging functionality and notification functionality associated with a collaborative document can be attributed to a document identifier associated therewith.
[0047] In at least one example, the document management component 122 may receive a first request to create a collaborative document. In response to receiving the request, the document management component 122 may create a collaborative document and a first virtual space identifier, and may associate the document identifier as metadata associated with the collaborative document. That is, the document identifier may include a portion of the metadata that is not readily available or visible to users (e.g., members) of the collaborative document, but that may enable functionality associated therewith. Non-limiting examples of functionality enabled by the document identifier may include messaging functionality performed at least in part by the messaging component 120 (e.g., message timing documentation (e.g., timestamps), audio and / or video communication, file upload, notifications (e.g., associated with revisions to the collaborative document, new messages posted, mentions or tags, etc.), mention or tagging functionality, event propagation functionality, workflow management and tracking, access permissions, and / or other functionality enabled based on the type of document identifier or virtual space identifier associated with the collaborative document. That is, the collaborative document may leverage the existing infrastructure of the communication platform within the container associated with the collaborative document based on the association of the document identifier with the collaborative document.
[0048] As described above, in some examples, the first request can be received independent of an existing virtual space in the communication platform. That is, the first request can be received in association with a user account of the requesting user. Thus, the requesting user may be the only member of the collaborative document until the collaborative document is shared with one or more additional users. In some examples, the first request can be received in association with an existing virtual space, such as a communication channel, an audio or video conversation between two or more users, a direct messaging instance, a workspace, etc. In such examples, the collaborative document may further be associated with a virtual space identifier associated with the existing virtual space. In at least one example, the document management component 122 can cause an affordance associated with the collaborative document to be presented in association with the existing virtual space. In such examples, members of the existing virtual space can access the collaborative document via the affordance. Additionally or alternatively, the document management component 122 can cause another affordance associated with the collaborative document to be presented in a sidebar of a user interface associated with the one or more members thereof. That is, the document management component 122 can enable access to the collaborative document via an affordance located in a sidebar of the user interface.
[0049] In various examples, the document management component 122 can identify one or more objects to be associated with the collaborative document based on the first request. The objects can include one or more of text (e.g., which may be editable), a task to be performed (e.g., a task associated with a project or workflow associated with the collaborative document), a ticket to be resolved, a calendar invitation, a calendar instance (e.g., a scheduled meeting, appointment, etc.), a file (e.g., text, audio, video, etc.), a message previously sent via the communication platform (e.g., in a virtual space not associated with the collaborative document), an image, a graphic, a link to a local object, a link to a remote object (e.g., a third-party object), etc. In some examples, the document management component 122 can identify the objects based on user input from the creating user. In such examples, the first request can include data associated with one or more objects to be associated with the collaborative document. Based on this data, the document management component 122 can cause the objects to be associated with the collaborative document and presented.
[0050] In at least one example, the document management component 122 can identify one or more objects to be associated with the collaborative document based in part on the memberships associated therewith. That is, the document management component 122 can identify the objects based on the users associated with the collaborative document. In various examples, the document management component 122 can identify the users to be associated with the collaborative document based on a first request. For example, the first request can include a request to create a collaborative document in association with a particular virtual space. The document management component 122 can receive the first request and associate members of the particular virtual space with the collaborative document. That is, members of the particular virtual space can be automatically associated with the collaborative document.
[0051] In various examples, the document management component 122 can be configured to identify objects based on a user associated with a particular virtual space. Continuing with the above example, the document management component 122 can associate members of a particular virtual space with a collaborative document and can identify one or more tasks, tickets, calendar appointments, and / or other objects associated with the members and / or the virtual space. In another example, the document management component 122 can receive a first request from a first user independent of (e.g., not associated with) a virtual space. The document management component 122 can identify one or more objects associated with the first user, such as based on a to-do list associated with the first user. The document management component 122 can integrate items in the to-do list into the collaborative document and present each item as an object therein. In various examples, the document management component 122 can be configured to cause affordances or identifiers associated with one or more objects associated with (e.g., assigned to, corresponding to, etc.) a particular user to be presented in a sidebar of a respective user interface. In such instances, the document management component 122 can enable easy direct access to objects and / or data associated with objects within a collaborative document.
[0052] In various examples, the objects may include third-party objects managed or otherwise stored in association with the third-party service provider 108. For example, the third-party service provider 108 may include a scheduling platform configured to manage calendars and scheduled events for a user, which may be stored in association with the user's third-party user account 132. In various examples, one or more users of the communications platform may provide credentials, tokens, or other access codes that enable the document management component 122 to request data associated with one or more objects managed by or stored in association with the third-party service provider. In at least one example, the credentials, tokens, or other access codes may be stored as third-party user data 130 in association with the communications platform user data 128 in the data store 126.
[0053] In some examples, based in part on identifying that the user is associated with the collaborative document, the document management component 122 can be configured to identify third-party user data 130 associated with the user. In some examples, the document management component 122 can send a request, such as an application programming interface call, workflow, or other request for data, to a third-party computing device 106 associated with a third-party user account 132 to request data associated with one or more objects corresponding to the user. Continuing with the above example associated with a third-party service provider 108 of a scheduling platform, the document management component 122 can send a request to the third-party computing device 106 requesting scheduling data associated with members of the collaborative document. The request for scheduling data can include a request for data associated with appointments, meetings, etc. associated with at least one of the collaborative document, the virtual space, and / or at least one other member of the collaborative document. That is, the request can include a request for object information related to the collaborative document.
[0054] In various examples, in response to identifying and / or receiving an object and / or data associated therewith, such as from a third-party service provider 108, the document management component 122 can cause the object to be presented in association with a collaborative document. That is, the object can be presented via the collaborative document such that its members can access the object to view, modify, or otherwise interact with the object. In various examples, enabled interactions with the collaborative document object can be determined based on permission settings associated with membership in the collaborative document.
[0055] In some examples, members of a collaborative document may be granted access permissions to the collaborative document based in part on user or organizational preferences associated with the creating user of the collaborative document. In such examples, the document management component 122 may access and associate appropriate permission settings with members of the collaborative document based on communication platform user data 128 stored in a data store. In some examples, the document management component 122 may further store permission settings associated with the collaborative document in association with a user account of a user or member of the collaborative document. In at least one example, the permission settings may include full editing permissions associated with the collaborative document. In such examples, members of the collaborative document may be granted permission to contribute to and / or edit or otherwise modify the collaborative document. In other examples, the permission settings may include limited editing permission settings, such as permission to add content but not delete content, permission to comment but not modify text in the collaborative document, read-only permission, etc.
[0056] Additionally or alternatively, in some examples, the permission settings may include settings associated with sharing of data in a collaborative document. In some examples, the data may include content posted or otherwise made available through other virtual spaces not associated with the collaborative document. That is, the document management component 122 may enable users to share data (e.g., messages, files, etc.) posted or otherwise made available through unrelated virtual spaces in a collaborative document based on the sharing permissions. In some examples, the data may be presented in the collaborative document as an object that includes an indicator of the virtual space, an identifier associated with the sending user, and other data. In various examples, the data may be presented as a read-only object such that the data is not manipulated in the collaborative document. In some examples, the data as an object may be configured to serve as a root for a thread of messages, similar to other objects presented in association with the collaborative document. In such examples, members of a collaborative document may not have permission to modify the data, but members may discuss or otherwise comment on the data in a messaging thread associated with it.
[0057] In various examples, the permission settings may include permission to share the collaborative document and / or portions thereof with one or more additional users. In various examples, the permission settings may include full sharing permission (e.g., sharing read and write capabilities of the collaborative document or portions thereof), limited sharing permission (e.g., sharing a read-only copy of the collaborative document or portions thereof), or no sharing permission (e.g., the user is not allowed to share the collaborative document with non-members). In at least one example, the permission settings associated with sharing the collaborative document may specify whether a particular user can add another user as a member of the collaborative document. In some examples, the permission settings associated with sharing the collaborative document may be based on organizational affiliation with the requesting user and the additional user. For example, the permission settings may allow a member to share the collaborative document with other users of a first organization, but not with users associated with other organizations. In another example, the permission settings may allow a member to share the collaborative document with full editing permission with members of a first organization and to share a read-only copy of the collaborative document with members of a second organization. In this manner, the communications platform may allow data presented in a collaborative document to be shared but not altered by members of the second organization, such as to maintain data integrity. In some examples, permissions to share a collaborative document and / or add additional users to it may be specified explicitly by the creating user, as a designated user preference and / or organization preference associated with the creating user's organization, or as a default setting associated with the communications platform.
[0058] In at least one example, the document management component 122 can be configured to receive a second request to share the collaborative document with one or more additional users. Based on a determination that the requesting user has appropriate permissions to share the collaborative document with the additional users, the document management component 122 can associate user identifiers associated with the additional users with the collaborative document. In various examples, the second request can include a request to share the collaborative document via another virtual space. In such examples, the document management component 122 can identify members of the other virtual space and associate the members with the collaborative document. In at least one example, the document management component 122 can identify one or more additional objects associated with the members of the virtual space. In some examples, the document management component 122 can associate the additional objects with the collaborative document such that the additional objects are presented in association with the collaborative document.
[0059] In various examples, in response to identifying members of the other virtual space and associating the other virtual space with the collaborative document, the document management component 122 can cause affordances associated with the collaborative document to be presented in association with the other virtual space such that users of that virtual space can access the collaborative document. The affordances can include the same or similar affordances associated with the virtual space through which the collaborative document was created and / or originally shared. That is, the affordances can be the same or different from the affordances presented to the original members of the collaborative document in the sidebar of the interface and / or in association with the virtual space.
[0060] In response to receiving an indication of a selection of an affordance associated with the collaborative document, the document management component 122 can cause the collaborative document to be presented in a corresponding user interface. In at least one example, a viewing user can interact with the collaborative document via the user interface, and the document management component 122 can process the interaction. In at least one example, the document management component 122 can update an instance of the collaborative document presented to members of the collaborative document such that data associated therewith is updated in real-time or near real-time. In various examples, the document management component 122 and / or the messaging component 120 can store updated data entries in association with the collaborative document in the data store 126. In at least one example, the data store 126 can be configured to store accessible, downloadable, manageable, and updateable data. In some examples, the data store 126 can be integrated with the server 102 as shown in FIG. 1. In other examples, the data store 126 can be located remotely from the server 102 and can be accessible to the server 102 and / or a user computing device, such as the user computing device 104. Additional or alternative data may be stored in data store 126 and / or in one or more other data stores.
[0061] In some examples, the data store 126 can be partitioned 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, unfurling (e.g., detecting that message content contains links, crawling metadata for links, determining a unified summary of the metadata), and integration configuration. In some examples, data shards can be associated with organizations, groups (e.g., workspaces), communication channels, users, etc.
[0062] In some examples, organizational data stored in data store 126 may include separate shards for each individual organization that contain data associated with a particular organizational 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 in real time or near real time with other members of the same organization. In this example, the organization itself may be the owner of the database shard and have control over where and how the associated data is stored. In some examples, a database shard may store data associated with two or more organizations (e.g., as in a shared channel). In at least one example, at least a portion of a shared collaborative document (e.g., a document that includes users from different organizations as members) may be stored in association with a shard corresponding to each organization associated with the shared collaborative document.
[0063] In some examples, an individual user may be associated with a database shard in the data store 126 that stores data related to a particular user account. For example, communications platform user data 128 associated with a particular user account may be stored in a particular database shard. In some examples, third-party user data 130 associated with a particular user account may be associated with a database shard in the data store 126. One or more objects associated with a particular user, for example obtained from a third-party service provider 108, may be associated with a database shard in the data store 126.
[0064] In some examples, a collaborative document can be associated with a database shared within the data store 126 that stores data related to the particular collaborative document. In some examples, a collaborative document can include an intra-organization collaborative document, such that members of the collaborative document are members of the same organization. In some examples, a collaborative document can include a shared collaborative document or an inter-organization collaborative document, such that members of the collaborative document can include members of two or more different organizations. In the example of a shared collaborative document, the data associated therewith can be subject to a data retention policy (e.g., a policy to store data for one year, two years, etc.) associated with a particular organization of two or more different organizations. In some examples, the particular organization can include an organization associated with an owner or administrator (e.g., creator of the collaborative document), an organization with the most conservative (e.g., longest period) data retention policy, an organization with the least conservative (e.g., shortest period) data retention policy, etc. In such examples, data associated with the collaborative document can be stored within the data store 126 based on the data retention policy associated with the particular organization. In some examples, data associated with a collaborative document may be stored in data store 126 until document management component 122 receives an explicit request to delete the collaborative document or a portion thereof. In such examples, the collaborative document and the data presented in association therewith may be maintained indefinitely until document management component 122 receives an explicit request to delete all or a portion of the data associated with the collaborative document.
[0065] In at least one example, operating system 124 may manage the hardware, software, etc. of processor 112 , computer-readable medium 114 , and / or server 102 .
[0066] The communications interface 116 may include one or more interfaces and hardware components for enabling communication with various other devices (e.g., user computing device 104, third party computing device 106, etc.), for example, over the network 110 or directly. In some examples, the communications interface 116 may facilitate communication via WebSockets, an application programming interface (API) (e.g., using API calls), Hypertext Transfer Protocol (HTTPs), etc.
[0067] The server 102 may further include various input / output devices 118 (e.g., I / O devices). Such I / O devices 118 may include a display, various user interface controls (e.g., buttons, joystick, keyboard, mouse, touch screen, etc.), audio speakers, connection ports, etc.
[0068] In at least one example, user computing device 104 may include one or more processors 134 , computer-readable media 136 , one or more communication interfaces 138 , and input / output devices 140 .
[0069] In at least one example, each processor in processors 134 may be a single processing unit or multiple processing units and may include single or multiple computing units or multiple processing cores. Processor 134 may include any of the types of processors described above with respect to processor 112 and may be the same as or different from processor 112.
[0070] The computer readable medium 136 may include any of the types of computer readable medium 136 described above with respect to the computer readable medium 114, and may be the same as or different from the computer readable medium 114. Functional components stored on the computer readable medium may optionally include one or more applications 142 and an operating system 144.
[0071] The applications 142 may include mobile applications, web applications, and / or desktop applications. In some examples, one or more of the applications 142 may include third party applications 146, which may be provided by a third party service provider 108. In at least one example, at least one application 142 may be provided by a communications platform or may otherwise be a proprietary application. In some examples, individual user computing devices associated with the system 100 may have instances or versioned instances of the applications 142 that are downloaded from an application store, accessible via the Internet, or otherwise executable by the processor 134 to perform operations as described herein. That is, the applications 142 may be access points that enable the user computing devices 104 to interact with the server 102 to access and / or use communications services available via the communications platform. In at least one example, the applications 142 may facilitate data exchange between various other user computing devices, e.g., via the server 102. In at least one example, the applications 142 may present a user interface as described herein. In at least one example, a user can interact with the user interface via touch input, keyboard input, mouse input, speech input, or any other type of input. In some examples, the user interface and / or other operations as described herein can be performed via a web browser or other access mechanism.
[0072] A non-limiting example of a user interface 148 is shown in FIG. 1. As illustrated in FIG. 1, the user interface 148 can present data associated with a communications platform, such as via a communications platform application 142. In various examples, the user interface 148 can be configured to present data associated with one or more collaborative documents, one or more communication channels, one or more direct messages, and in some examples, one or more workspaces. That is, in some examples, the user interface 148 can present data associated with one or more collaborative documents (e.g., objects, messages, etc.), messages sent via one or more communication channels and / or via direct messages within a single user interface, such that a user (e.g., of the user computing device 104) can access and / or interact with data associated with the collaborative documents, channels, and / or direct message instances with which the user is associated, and / or otherwise communicate with other users associated with the collaborative documents, channels, and / or direct message instances. As described above, collaborative documents, communication channels and / or direct message instances can be internal to a user's organization or can be shared externally (e.g., including users from two or more organizations, including a first user from a first organization and a second user not associated with the organization).
[0073] In some examples, the user interface 148 may include a first section 150 or pane that includes indicators (e.g., user interface elements or objects) that represent data with which a user (e.g., a user's account) is associated. Further details associated with the first section 150 and the indicators are described below in connection with FIG. 2A.
[0074] In at least one example, the user interface 148 can include a second section 152 or pane that can be associated with one or more collaborative documents. As a non-limiting example, the data presented via the second section 152 can include a document interface 154 where the viewing user can access one or more collaborative documents associated with the user. That is, the user can access the collaborative documents of which the user is a member via the document interface 154. In at least one example, the collaborative documents can be organized (e.g., presented in an ordered order) based on one or more ranking criteria, such as the most recent time a user accessed the collaborative document, the frequency of access to the collaborative document, the activity level (e.g., amount of interaction) within the collaborative document, user preferences associated with the collaborative document (e.g., marked as a "favorite," etc.). In some examples, the collaborative documents can be created from channel or audio-based synchronous or asynchronous meetings.
[0075] In at least one example, in response to receiving an indication of a selection of a particular collaborative document (e.g., an affordance associated therewith) within document interface 154, document management component 122 can cause the selected document to be presented in second section 152. Further details of the presentation of a particular document are described below with respect to at least FIG. 2B. Additionally or alternatively, second section 152 can be configured to present data associated with a data feed (or “feed”) indicative of messages posted to and / or actions taken on one or more channels, direct messages, and / or other virtual spaces for facilitating communication (e.g., virtual spaces associated with events and / or actions, etc.), as described herein.
[0076] In at least one example, the operating system 144 may manage the processor 134 , computer readable medium 136 , hardware, software, etc. of the user computing device 104 .
[0077] Communications interface 138 may include one or more interfaces and hardware components for enabling communication with various other devices (e.g., user computing device 104), such as over network 110 or directly. In some examples, communications interface 138 may facilitate communication via WebSockets, an API (e.g., using API calls), HTTPs, etc.
[0078] The user computing device 104 may further include various input / output devices 140 (e.g., I / O devices). Such I / O devices 140 may include a display, various user interface controls (e.g., buttons, joystick, keyboard, mouse, touch screen, etc.), audio speakers, connection ports, etc.
[0079] Although the techniques described herein are described as being performed by application 142, the techniques described herein can be performed by any other component or combination of components that can be associated with server 102, user computing device 104, or a combination thereof.
[0080] 2A illustrates an example user interface 148 in which a document interface 154 is presented in a second section 152. As described above, the user interface 148 can include a first section 150 that includes user interface elements that represent a virtual space associated with a workspace to which the user 200 (e.g., the user's user account) is associated. In at least one example, the first section 150 can include one or more subsections, where the one or more subsections can represent different virtual spaces. For example, the first subsection 202 can include user interface elements that represent a virtual space that can aggregate data associated with multiple channels and / or workspaces. In at least one example, each virtual space can be associated with a user interface element in the first subsection 202. In some examples, the user interface elements can be associated with an actuation mechanism that, when actuated, can cause an application, such as application 142, to present data associated with the corresponding virtual space via the second section 152 of the user interface 148.
[0081] In at least one example, a virtual space can 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., viewed) by the user can be presented in the second section 152, e.g., a feed.
[0082] In at least one example, a virtual space can 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., viewed) by the user can be presented in the second section 152, e.g., a feed.
[0083] In at least one example, the virtual space can be associated with all direct message instances (e.g., DMs) with which the user is associated. That is, in some examples, if a user requests access to a virtual space associated with "all DMs," data associated with each direct message instance with which the user is associated can be presented in second section 152, e.g., in a feed.
[0084] In another example, a virtual space associated with "mentions and reactions" (e.g., "M&R") may be associated with a message or thread in which a user 200 (e.g., user F) is mentioned (e.g., via a tag) or another user has responded (e.g., via an emoji, reaction, etc.) to a message object or thread posted by a first user 200. In at least one example, a collaborative document or portion thereof in which a user 200 is mentioned or tagged may be included in association with the mentions and reactions virtual space.
[0085] In at least one example, the virtual space may be associated with facilitating communications between user 200 and other users of a communications platform. For example, a "connection" may be associated with enabling user 200 to generate invitations to communicate with one or more other users with whom user 200 does not have an established connection (e.g., not previously associated) via the communications platform.
[0086] In at least one example, the virtual space can be associated with providing access to one or more collaborative documents associated with a user account of the user 200. For example, the first subsection 202 can include an affordance or user interface element associated with “document” (e.g., document affordance 204), and in response to a selection thereof, the document management component 122 can cause the second section 152 to present the collaborative document with which the user 200 is associated. That is, in response to receiving an indication of a selection of the document affordance 204, a document interface 154 can be presented in the second region.
[0087] In at least one example, the document interface 154 may include a new document affordance 205 that, when selected by the user 200, may initiate the creation of a new collaborative document. Additional details associated with creating a new collaborative document are described below with respect to FIGS. 3A-3D. Additionally, in at least one example, the document interface 154 may include one or more lists of collaborative documents with which the user account of the user 200 is associated. In some examples, the document interface 154 may include user documents 206 (shown as “My Documents”). In some examples, the user documents 206 may include one or more lists of documents of which the user 200 is the only member. That is, the user documents 206 may include personal documents associated with the user account of the user 200. For example, documents included in the user documents 206 may include a personal task list (e.g., a to-do list) for the user 200 to manage.
[0088] In various examples, the document interface 154 may additionally or alternatively include a shared document 208. The shared document 208 may include a document shared with at least one other user of the communication platform. As described above, the collaborative document may be shared via a virtual space with one or more other users who may subsequently become members of the collaborative document (e.g., based on the sharing). In at least one example, the virtual space or other users with which each collaborative document is associated may be presented via the document interface 154. As an illustrative example, the document interface 154 of FIG. 2A includes a first document 210 (e.g., Document A) associated with a first channel (e.g., #channel-abc), a second document 212 (e.g., Document B) associated with a second channel (e.g., #channel-def), and a third document 214 (e.g., Document C) associated with a direct messaging instance between the user 200 and another user (e.g., User G). Although illustrated as being associated with separate pages, this is not intended to be so limiting, and user documents 206 and shared documents 208 may be presented within a single page of document interface 154. In some examples, clicking on a document (or otherwise selecting a document) opens the document in the associated virtual space (e.g., clicking on Document A opens the document from second section 152 associated with #channel-ABC).
[0089] In various examples, the document interface 154 may include additional or alternative details associated with the first document 210, the second document 212, and / or the third document 214. Non-limiting examples of additional or alternative details may include an indication of the creating user (e.g., administrator), an organization associated with the creating user (e.g., managing organization), notification of unread data (e.g., document name in bold, an indication of new messages associated with a collaborative document, etc.), an indication of privacy settings, etc. For example, the second document 212 includes a privacy indicator 216 that indicates that the second document 212 is private and therefore may have limited sharing and / or viewing permissions associated with it.
[0090] In various examples, the document interface 154 can include a search mechanism 220 through which the user 200 can search and identify a particular collaborative document associated with the user account of the user 200. In some examples, the document management component 122 can be configured to receive input via the search mechanism 220 and identify one or more relevant collaborative documents based on the input. The input can include names, topics, members (e.g., usernames or identifiers), associated virtual spaces, and / or other details associated with the collaborative document. In at least one example, in response to receiving the input, the document management component 122 can cause one or more indicators associated with the one or more identified collaborative documents to be presented in association with the document interface 154. In such examples, the indicators can each be selectable to render the associated collaborative document in the second section 152.
[0091] In the illustrative example of FIG. 2A , each of the first document 210, the second document 212, and the third document 214 includes an affordance or user interface element that, when selected by the user 200, causes the respective collaborative document to be presented in the second section 152 of the user interface 148. Additionally or alternatively, the user 200 may access the first document 210, the second document 212, and / or the third document 214 via a respective document affordance 218 (e.g., a user interface element) located in the first subsection 202. That is, in response to receiving an indication of a selection of the document affordance 218, the document management component 122 may cause the respective collaborative document to be presented in the second section 152 of the user interface 148. For example, in response to receiving an indication of a selection of an affordance associated with the first document 210, the document management component 122 may cause the first document 210 to be presented in the second section 152, as illustrated in FIG. 2B .
[0092] In at least one example, the first section 150 of the user interface 148 can include a second subsection 222 or subpane that includes an indicator representing a communication with an individual user or a number of designated users (e.g., rather than all or a subset of the members of an organization). Such a communication can be referred to as a "direct messaging instance" or "direct message." That is, the second subsection 222 or subpane can include an indicator representing a virtual space associated with private messages between two or more users (e.g., a direct message instance).
[0093] In at least one example, the first section 150 of the user interface 148 may include a third subsection 224 or subpane that includes an indicator representing a communication channel with which the user 200 is associated. In some examples, the communication channel may include a public channel, a private channel, a shared channel (e.g., between groups or organizations), a single workspace channel, a cross workspace channel, a combination of the foregoing, and the like. In some examples, the represented communication channel may be associated with a single workspace. In some examples, the represented communication channel 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), the user may be associated with both workspaces or only one of the workspaces. In some examples, the represented communication channel may be associated with a combination of communication channels associated with a single workspace and communication channels associated with different workspaces.
[0094] In some examples, the third subsection 224 may represent all or a subset of all communication channels that the user has permission to access (e.g., as determined by permission data stored in association with the communications platform user data 128). In such examples, the communication channels may be arranged alphabetically based on most recent interaction, based on frequency of interaction, based on type of communication channel (e.g., public, private, shared, cross workspace, etc.), based on workspace, into user-specified sections, etc. In some examples, the third subsection 224 may represent all or a subset of all communication channels of which the user is a member, and the user may interact with the user interface 148 to browse or view other communication channels of which the user is not a member but which are not currently displayed in the third subsection 224. In some examples, different types of communication channels (e.g., public, private, shared, cross workspace, etc.) may be in different sections of the third subsection 224 or may have their own sub-areas or sub-panes within the user interface 148. For example, shared channels may be presented in association with a “connected” indicator shown in the first subsection 202, such as a drop-down menu. In some examples, communication channels associated with different workspaces may be in different sections of the third subsection 224 or may have their own areas or panes in the user interface 148.
[0095] In some examples, the indicators can be associated with graphical elements that visually distinguish the types of communication channels. For example, a first communication channel can be associated with a square visual element and a second communication channel can be associated with a circular visual element. As a non-limiting example, for purposes of this description, a square visual element can indicate that the user is not a current member of the first channel, while a circular visual element can indicate that the user is a current member of the second channel. In some examples, additional or alternative graphical elements can be used to distinguish between public communication channels, private communication channels, shared communication channels, communication channels associated with different workspaces, etc. In other examples, communication channels of which the user is not a current member may not be displayed in the third subsection 224 of the user interface 148. In such examples, the user can navigate to a different interface (not shown) to browse additional channels that are accessible to the user, but of which the user is not currently a member.
[0096] In various examples, in response to receiving an indication of a selection of an indicator associated with a particular communication channel or other virtual space, the associated communication or other virtual space may be presented in second section 152. As described above, in examples where a document is associated with a particular virtual space, a collaborative document may be accessed in association therewith. That is, document management component 122 may cause affordances associated with the collaborative document to be displayed via the virtual space associated therewith. In various examples, in response to receiving an indication of a selection of an affordance associated with a collaborative document presented via a virtual space, document management component may cause the collaborative document to be presented in second section 152.
[0097] 2B illustrates a selected document (e.g., first document 210) presented in second section 152 of user interface 148 based on a selection of an affordance associated therewith, for example, by user 200. As discussed above, the selection can include a selection of an affordance presented via a virtual space (not shown), via a sidebar of the user interface, and / or via document interface 154.
[0098] As discussed above, collaborative documents such as first document 210 can support editable text and / or objects that can be ordered, added, deleted, modified, etc. As an illustrative, non-limiting example, first document 210 includes editable text section 226, first object section 228, second object section 230, and third object section 232. In some examples, editable text section 226 can represent a portion of first document 210 in which members can synchronously or asynchronously input, modify, and / or comment on text, such as in a collaborative effort to refine text associated with the first portion of the first document. In such examples, editable text section 226 can include word processing functionality.
[0099] In various examples, the first object section 228, the second object section 230, and / or the third object section 232 may each include one or more objects. The objects may include, but are not limited to, text, audio and / or video files, tasks, tickets to be resolved, events (e.g., scheduled events, calendar invites, calendar instances, etc.), messages previously sent via the communication platform, images, graphics, links to local objects, links to remote objects (e.g., third party objects), files, etc. In some examples, the first object section 228, the second object section 230, and the third object section 232 may each include different types of objects. For example, the first object section 228 may include one or more tasks to be performed in connection with the first document 210, the second object section 230 may include tickets to be resolved in connection with the first document 210, and the third object section 232 may include one or more messages posted to another virtual space and shared via the first document 210. This is provided merely for illustrative purposes and is not intended to be so limiting.
[0100] In various examples, each of the objects in the first object section 228, the second object section 230, and the third object section 232 may include the root of a messaging channel or thread. That is, members of the first document 210 may communicate through a messaging channel or thread associated with the respective object. In some examples, the user 200 may initiate a thread by selecting (e.g., right-clicking) a particular object in the first document 210. In such examples, a pop-up window or other interface element may be presented through which the user 200 may communicate with other users about the particular object.
[0101] In some examples, the first document 210 may include a messaging interface 234 through which members of the first document 210 can send messages between one another. In an illustrative example, the messaging interface 234 is shown in a flex pane of the user interface 148. That is, the messaging interface 234 is presented adjacent to the data associated with the first document 210 (e.g., the editable text section 226, objects, etc.). In other examples, the messaging interface 234 may be presented as a pop-up window or overlay presented on top of the data associated with the first document 210.
[0102] In some examples, the messaging component 120 can cause messages associated with the messaging interface 234 (and threads as described above) to be presented in real-time or near real-time in association with the first document 210. In at least one example, the messaging component 120 can be configured to identify a mention of a user or document in the message 236. Based on the identification of the mention of a user (e.g., @user, !user, etc.) or document (e.g., @doc, @docA, etc.), the messaging component 120 can cause a notification to be presented to the mentioned user or, in the example of a document mention, all of the users associated with the first document. In some examples, the notification can be presented in association with the first document 210, such as in the document interface 154 and / or in a sidebar of the user interface 148. For example, in response to receiving an indication of a mention of a document in the message 236 (e.g., @doc), the messaging component 120 can cause the document affordance 218 associated with the first document 210 to be rendered in bold text. In another example, the document affordance 218 associated with the first document 210 may have a number or other indicator associated with it to alert the viewing user that there is a mention in the messaging interface 234. Additionally or alternatively, the messaging component 120 may cause a notification to be presented in association with the mention and reaction indicators in the first subsection 202.
[0103] Additionally, in some examples, the first document 210 may include a presence indicator 238. In some examples, the presence indicator 238 may include an indication of the members of the first document 210. The indication of the members may include the number of users associated with the first document 210 and / or additional information about the users, such as usernames, real names, avatars, etc. In some examples, the presence indicator 238 may include an indication of the members of the first document 210 who are currently viewing and / or interacting with the first document 210. For example, three avatars presented within the presence indicator 238 may indicate that three members are currently viewing and / or interacting with the first document 210, while 59 other members are not currently viewing and / or interacting with the first document 210. In some examples, the presence indicator 238 may include an organization or group associated with a user viewing and / or interacting with the first document 210. This is merely an illustrative example, but other presence indicators are contemplated herein, such as a highlighted user name or avatar, a symbol associated with an actively viewing member, etc. In at least one example, the presence indicator 238 may include a user interface element configured to allow the user 200 to view a list of the members of the document. That is, in response to receiving an indication of a selection of the presence indicator 238, the document management component 122 may cause a list of members associated with the second region to be presented (e.g., in place of the first document 210, in a pop-up window associated with the first document 210, etc.).
[0104] Additional functionality associated with collaborative documents (eg, first document 210) is described in more detail below with respect to Figures 3A-7C.
[0105] 3A-3D illustrate exemplary user interfaces for creating a new document in association with a virtual space 302 of a communication platform. FIG. 3A illustrates an exemplary user interface 300a in which a feed 304 associated with the virtual space 302 (e.g., channel y) is presented in a second area 306, which may correspond to the second section 152. Although illustrated as a communication channel, this is not intended to be so limiting, and the virtual space 302 may include alternative types of virtual spaces, such as direct messaging instances, audio or video conversations. That is, the communication platform may be configured to enable a user 308 to initiate the creation of a new document in association with one or more different types of virtual spaces.
[0106] 3A, the feed 304 may include one or more messages transmitted in association with the virtual space 302. The messages may include text, attachments (e.g., text, audio, video, etc.), emojis, reaction emojis, links, etc. In various examples, the messages 310 may be presented in an order based on a transmission time (e.g., a timestamp) associated therewith. In such examples, a messaging component of a communications platform, such as messaging component 120, may cause the messages to be presented in the appropriate order.
[0107] In various examples, the virtual space 302 can include an associated collaborative document 312. In such examples, the collaborative document 312 can include a collaborative document or container for storing data that is persistently available via the virtual space 302. That is, the collaborative document 312 can provide a means by which members of the virtual space 302 can store data such that it is persistently available.
[0108] In various examples, the virtual space 302 may include a new document affordance 314 that, when selected by a user 308, can initiate the creation of a new collaborative document related to the virtual space 302. In some examples, the new document affordance 314 may be accessed via a shortcut menu (e.g., a bookmarks bar, a workflow menu, a shortcut menu, etc.) associated with the channel.
[0109] 3B illustrates an exemplary user interface 300b in which a new document window 316 is presented. In at least one example, the new document window 316 can be configured to allow the user 308 to enter information to be associated with the new collaborative document being created. In an illustrative example, the new document window 316 includes a title input box 318, a message input box 320, and a share input box 322. This is not intended to be so limiting, and the new document window 316 can include additional or alternative input boxes. For example, the new document window 316 can include a topic or description input box in which the user 308 can include a topic or description to be associated with the new collaborative document.
[0110] In various examples, the title input box 318 can be configured to receive user input associated with a title to be associated with the new collaborative document. In such examples, in response to receiving input associated with the title input box 318, the communications platform can associate the entered title with the new collaborative document. In some examples, the message input box 320 can enable the user 308 to enter a message to send to members of the virtual space 302 regarding the new collaborative document. In various examples, a message and / or a link to the new collaborative document or an affordance associated with the new collaborative document can be presented in association with the feed 304 shown in FIG. 3A.
[0111] In various examples, the communications platform may enable the user 308 to further share the new collaborative document with another virtual space different from the virtual space 302, such as by including a name or other identifier associated with the other virtual space in the sharing input box 322. That is, members of the virtual space 302 and members of the other virtual space may be members of the new collaborative document. In some examples, the sharing input box 322 may include a drop-down menu through which the user 308 may select another virtual space to share the new collaborative document. In such examples, the virtual spaces with which the user 308 is associated may be presented via the drop-down menu.
[0112] In some examples, the communications platform may additionally or alternatively enable the user 308 to share the new collaborative document with additional users not associated with the virtual space 302. In such examples, in response to receiving an input of an identifier associated with another user of the communications platform, the communications platform may associate the other user with the new collaborative document. That is, members of the virtual space 302 and other users may be members of the new collaborative document. In some examples, other users with whom the user 308 is connected via the communications platform may be presented and / or selected via a drop-down menu associated with the sharing input box 322.
[0113] In various examples, the new document window 316 may include a save draft affordance 324 that, when selected by the user 308, causes inputs associated with one or more of the title input box 318, the message input box 320, and the shared input box 322 to be stored for future use, such as creating a new collaborative document at another time in the future.
[0114] In various examples, the new document window 316 may include a create affordance 326 that, when selected by the user 308, causes a new collaborative document to be created in association with the virtual space 302. In various examples, an indication of a selection of the create affordance 326 may include a first request from the user (e.g., via a client associated therewith) to create a new collaborative document.
[0115] 3C illustrates an example user interface 300c in which a new collaborative document affordance 328 associated with a new collaborative document is presented in association with the virtual space 302 (e.g., #Channel-Y). Additionally, a message 330 entered via the message input box 320 may be published or otherwise presented in association with the feed 304 of the virtual space 302. As discussed above, in some examples, the message 330 may include a link 332 associated with the new collaborative document. That is, in response to either the new collaborative document affordance 328 or the link 332, the communications platform may cause the new collaborative document to be presented in the second area 306.
[0116] 3D illustrates an example user interface 300d in which a new collaborative document 334 is presented in the second region 306, such as in response to selecting the new collaborative document affordance 328 or the link 332. In various examples, the new collaborative document 334 may include an indication of an association with the virtual space 302. In an illustrative example, an indicator of the virtual space 302 (e.g., a name) is presented in association with the title of the new collaborative document 334. In other examples, the indicator of the virtual space 302 may be presented in an alternative location.
[0117] As described above, the new collaborative document 334 may include an editable text section 336 and an object section 338. At a minimum, the editable text section 336 may include instructions indicating that since the new collaborative document is newly created, text may be inserted into the editable text section 336. In some examples, the instructions may be removed in response to the members of the new collaborative document 334, such as the user 308 adding text to the editable text section 336.
[0118] In various examples, the object section 338 can include one or more objects 340 to be associated with the new collaborative document. The objects 340 can include, but are not limited to, text (which may be editable, for example), audio and / or video files, tasks, tickets to be resolved, events (e.g., scheduled events, calendar invites, calendar instances, etc.), messages previously sent via the communication platform, images, graphics, links to local objects, links to remote objects (e.g., third party objects), files, etc. In the illustrative example of FIG. 3D , the objects 340 include meetings between members of the virtual space 302. This is not intended to be so limiting, and additional or alternative objects may be presented in association with the new collaborative document 334.
[0119] In some examples, the communications platform may identify the object based on input from the user 308, such as when creating a new collaborative document 334. For example, the communications platform may identify an explicit input of an object to be associated with the new collaborative document 334. In another example, the communications platform may identify the object based on the title or description of the new collaborative document 334, such as entered during its creation. In such an example, the communications platform may identify an object that has the same or similar name, topic, or description as the title or description to be associated with the new collaborative document (e.g., "standing Project A team meeting").
[0120] In some examples, the communications platform may identify the object based on objects associated with one or more members of the new collaborative document 334 and / or objects associated with the virtual space 302. In such examples, the communications platform may identify an object associated with at least one of the virtual space 302 or at least one of its members. In response to identifying the object 340, the communications platform may cause the identified object to be presented via the new collaborative document 334.
[0121] In some examples, objects 340 included in new collaborative document 334 may be interactive. That is, objects 340 may include respective affordances 342 or user interface elements that, when selected by user 308, cause object 340 to be presented. For example, in response to receiving an indication of a selection of affordance 342, user 308 may view an invitation for a permanent Project A team meeting.
[0122] 4A and 4B illustrate example user interfaces for viewing objects associated with a collaborative document, as described herein. Fig. 4A illustrates an example user interface 400a in which a collaborative document 402 associated with a user account of a user 404 is presented. As described above, a collaborative document 402, such as a new collaborative document 334, a first document 210, etc., can be presented within the user interface 400a in response to a selection by the user 404 of an affordance associated therewith.
[0123] As mentioned above, the collaborative document 402 may include an object section 406, such as the object section 338, which may include one or more objects identified as being associated with the collaborative document 402. In the illustrative example, the object section 406 includes a first object 408 and a second object 410, although this is merely an example and is not intended to be so limiting, as additional or alternative objects of different object types are contemplated herein.
[0124] 4A , the object section 406 can include a first affordance 412 associated with a first object 408 and a second affordance 414 associated with a second object 410. In various examples, the first affordance 412 and the second affordance 414 can be individually selectable to cause the respective objects to be presented. For example, in response to receiving an indication of a selection of the first affordance 412, the communications platform can cause the first object 408 to be presented in association with or independent of the collaborative document 402.
[0125] 4B illustrates an example user interface 400b in which a first object 408 is presented, such as in response to a user selection of a first affordance 412 associated with the first object 408. In an illustrative example, data associated with the first object 408 is presented within a pop-up window 416 associated with the collaborative document 402. In other examples, the first object 408 may be presented in association with another application (e.g., a third party application, etc.) associated with the first object 408. In such examples, the first affordance 412 may include a link to the first object 408 in another application, different from the application associated with the communications platform. That is, the first affordance 412 may include a direct link to the first object 408 where data associated with the first object 408 can be viewed.
[0126] In an illustrative example, the data includes an organizer, a time, and a location associated with the first object 408. Additional or alternative data associated with the first object 408 is contemplated herein. For example, different types of objects may be associated with different types of data. Thus, in response to selection of an affordance associated with a different type of object (other than a meeting invitation), the communications platform may cause different data to be presented via the associated pop-up window 416. In some examples, selection of an object, document, etc. may cause the referenced object to be displayed in a window separate from the communications platform (e.g., a standalone window or within an instance of a user interface).
[0127] In an illustrative example, the pop-up window 416 includes an edit option 418 that, when selected, allows the user 404 to edit the meeting invitation. In some examples, the edit option 418 can be presented based on a determination that the user 404 has appropriate permissions to edit the first object 408. Additionally, as shown, the pop-up window 416 can include a confirm option 420 that, when selected, causes the pop-up window 416 to close. In some examples, in response to receiving an indication of a selection of the confirm option 420, the communications platform may store an indication of confirmation by the user 404 of the first object 408. In some examples, the user 404 may additionally or alternatively close the pop-up window by selecting an "X" associated with the pop-up window 416, as illustrated in the upper right corner.
[0128] 5A-5E illustrate example user interfaces for sharing a collaborative document with members of a virtual space and presenting objects associated with the document based on data associated with the members of the virtual space, as described herein. FIG 5A illustrates an example user interface 500a in which a collaborative document 502 associated with a user account of a user 504 is presented. In an illustrative example, the collaborative document 502 is associated with a first virtual space 505 (e.g., #channel-abc).
[0129] In various examples, the collaborative document 502 may include further option controls 506 that allow the user 504 to access a menu 508 of actions that may be performed with respect to the collaborative document 502. In an illustrative example, the menu 508 includes a share option, a view details option, a copy link to the document option, an add to saved items option, and a delete document option, although additional or alternative options for interacting with the collaborative document 502 are contemplated herein. In various examples, one or more of the menu options presented via the menu 508 may be presented based on a permission setting associated with the user account of the user 504. For example, a delete document option may be presented based on a determination that the user 504 created the collaborative document and is therefore an administrator of the collaborative document. In another example, a share option may be presented based on a determination that the user account of the user 504 includes permission to share the collaborative document 502.
[0130] In various examples, in response to receiving an indication of a selection of a share option via menu 508 , the communications platform may initiate a document share associated with collaborative document 502 .
[0131] 5B illustrates an example user interface 500b in which a document sharing window 510 is presented in association with the collaborative document 502. In an illustrative example, the document sharing window 510 includes an overlay on top of the collaborative document 502. In other examples, the document sharing window 510 or page may be presented in place of the collaborative document on the user interface 500b.
[0132] In an illustrative example, the document sharing window 510 includes a sharing input box 512 in which the user may enter virtual spaces and / or user accounts associated with additional users with which to share the collaborative document 502. In some examples, the document sharing window 510 may be configured to receive manual input entry of one or more virtual space identifiers (e.g., names, nicknames, unique identifiers, etc.) and / or one or more user identifiers associated with other users of the communications platform. In some examples, the document sharing window 510 is associated with a drop-down menu via which the user 504 may select one or more virtual spaces and / or user accounts with which to share the collaborative document 502.
[0133] In various examples, the document sharing window 510 can include a message input box 514 in which the user 504 can enter a message for a recipient user of the newly shared collaborative document 502. That is, in response to receiving an input of a message in association with the message input box 514 and in response to receiving a request to share the collaborative document (e.g., in response to receiving an indication of a selection of the share control 516), the communications platform can cause the message to be presented to the recipient user, such as by being associated with a feed corresponding to the virtual space in which the collaborative document 502 is shared. In examples in which the collaborative document 502 is shared with another user, the message can be presented via a direct messaging instance between the user 504 and the other user.
[0134] In an illustrative example, the document sharing window 510 includes a previous sharing indication 518. The previous sharing indication can provide data associated with one or more virtual spaces or other user accounts with which the collaborative document 502 was previously shared. As a non-limiting example, the previous sharing indication 518 can include a virtual space identifier associated with the share, a name of the document, a user account associated with the share (e.g., a user who shared the document via the virtual space), a timestamp associated with the share, and a link to the collaborative document.
[0135] In some examples, the document share window 510 may include a link copy affordance 520 through which a user may copy a link to the collaborative document 502. In some examples, the document share window 510 may further include a save draft affordance 522 that, when selected, may cause the communications platform to save data entered through the document share window 510, allowing the user 504 to save the input, for example, for sharing the collaborative document 502 in the future. As described above, the user 504 may select a share control 516 to share the collaborative document with one or more selected additional users (e.g., directly with another user and / or via a virtual space).
[0136] 5C illustrates an example user interface 500c in which a drop-down menu 524 associated with the document sharing window 510 is presented. In at least one example, the user 504 can activate the drop-down menu 524 associated with the share entry box 512. In some examples, the drop-down menu 524 can include a list of virtual spaces with which the user 504 is associated via the communication platform. In some examples, the drop-down menu 524 can further include one or more user identifiers associated with users with which the user 504 is connected via the communication platform.
[0137] In some examples, the communications platform may present the virtual spaces and / or user identifiers in an ordered list. In some examples, the order may be determined based on alphanumeric order, frequency and / or recency of interactions with the virtual spaces and / or other users, keywords or common terms shared between collaborative documents 502 and the virtual spaces and / or in messages between users, indicators as preferred virtual spaces, special relationships with users associated with the user identifiers (e.g., friends, colleagues, partners, family, etc.), and / or other factors that may affect the ranking or ordering of the virtual spaces and / or user identifiers.
[0138] 5C , the user 504 selects a second virtual space 526 (e.g., #channel-b) through which to share the collaborative document. In response to receiving a selection of the indicator associated with the second virtual space 526 and a selection of the share control 516, the communications platform can cause the collaborative document 502 to be shared in association with the second virtual space 526. That is, the communications platform can identify one or more members of the second virtual space 526 and can update the membership of the collaborative document to include members of the first virtual space 505 and members of the second virtual space 526.
[0139] 5D illustrates an example user interface 500d in which the communications platform causes affordances 528 associated with the collaborative document 502 based on the sharing to be presented in association with a second virtual space 526. Although shown within a header associated with the second virtual space 526, this is not intended to be limiting and affordances 528 can alternatively be presented in another location associated with the second virtual space 526.
[0140] In at least one example, the affordance 528 can include an interface element that, when selected by the user 504 , causes the viewing user to present the collaborative document 502 .
[0141] 5E illustrates an example user interface 500e in which a collaborative document 502 is presented, such as in response to receiving an indication of a selection of an affordance 528 associated therewith. In some examples, the affordance 528 can include an affordance associated with the second virtual space 526 and / or an affordance associated with the collaborative document presented in a sidebar of the user interface 500e.
[0142] As described above, the collaborative document 502 may include editable text sections, one or more object sections associated with one or more objects, and one or more messaging interfaces, threads, etc. In at least one example, the collaborative document 502 may include objects and / or users associated therewith associated with a first virtual space 505 and objects and / or users associated therewith associated with a second virtual space 526. That is, in response to receiving a request to share the collaborative document 502 via the second virtual space 526, the communications platform may identify objects and / or users associated therewith associated with the second virtual space 526. For example, the communications platform may identify an object 530 that includes a synchronous meeting between members of the first virtual space 505 and the second virtual space 526.
[0143] Additionally, in various examples, in response to receiving a request to share the collaborative document 502 via the second virtual space 526, the communications platform can update a presence indicator 238 associated with the collaborative document 502 to include members of the first virtual space 505 and the second virtual space 526, where the presence indicator 238 can correspond to the presence indicator 532. In an illustrative example, the collaborative document 502 included 59 members before sharing via the second virtual space 526 and included 101 members after sharing via the second virtual space 526.
[0144] 6A and 6B illustrate example user interfaces for sharing a document with another user of a communication platform as described herein. FIGURE 6A illustrates an example user interface 600a in which a drop-down menu 602 is presented associated with a document sharing window 604 corresponding to a collaborative document 606, which may correspond to the drop-down menu 524 associated with the document sharing window 510. As described above with respect to FIGURE 5C, the drop-down menu 602 may be presented in association with a sharing input box 610, such as the sharing input box 512, which may be configured for a user 608 to enter one or more virtual space identifiers and / or user identifiers to be associated with sharing the collaborative document 606.
[0145] The drop-down menu 602 may include a list of one or more virtual spaces and / or a list of one or more user identifiers associated with users with whom the user 608 is connected via the communications platform. As described above, the virtual spaces and / or user identifiers may be presented in an ordered list, such as based on one or more factors associated with preferences, interactions, relationships, etc. In an illustrative example, the user selects a particular user identifier 612 associated with a user (e.g., User Z) with whom the user 608 wants to share the collaborative document 606. In response to receiving an indication of a selection of a sharing control 614, such as a sharing control 516, the communications platform may share the collaborative document 606 with the selected user associated with the user identifier 612, such as via a direct messaging instance between the user 608 and the selected user.
[0146] 6B shows an example user interface 600b associated with a selected user 616 with whom the collaborative document was shared by the user 608. That is, the user interface 600b may include a user interface associated with the user account of the selected user 616.
[0147] In various examples, in response to receiving a request to share the collaborative document 606 (e.g., selection of the share control 614 by the user 616), the communications platform can generate an automated message 618 to present in association with a direct messaging instance 620 between the user 608 and the selected user 608. The automated message 618 can include details about the collaborative document 606 (e.g., name, sharing user (e.g., User F), time associated with the share, link to the collaborative document 606, etc.). As described above, in some examples, the user 608 can include a message in a request to share the collaborative document 606 (e.g., via the document share window 604). In such examples, the automated message 618 can include a message from the user 608. In at least one example, the communications platform can cause a message composed by the user 608 to be presented as if it was issued in association with a user account associated with the user 608. That is, the communications platform can cause the message to be presented via the direct messaging instance 620 as if the message was sent directly by the user 608.
[0148] In at least one example, the communications platform may cause an affordance 622 associated with the collaborative document 606 to be presented in a sidebar 624 of the user interface 600b. As described above, the affordance 622 may cause the associated collaborative document 606 to be presented via the user interface 600b when selected by the selected user 616. In various examples, the communications platform may further include a notification 626 to indicate that the collaborative document 606 was recently associated with the user account of the selected user 616, or another alert associated with the affordance 622. In an illustrative example, the notification includes an indication that the affordance 622 and / or the collaborative document 606 is “new” to the user account. However, this is not intended to be so limited, and other notifications 626, such as bold text, differently colored text (e.g., red, blue, green, etc.), symbols (!, *, etc.), or other indicators that alert the user that the collaborative document 606 was recently associated with the user account, are contemplated herein.
[0149] 7A-7C illustrate example user interfaces for assigning an object 702 associated with a collaborative document 704 to a user account (of a user 706) associated with the collaborative document 704 and presenting an indication of the object 702 in at least a sidebar 708 of a user interface associated with the user account, as described herein. FIG. 7A illustrates an example user interface 700a in which an object assignment window 710 is presented in association with the collaborative document 704. In at least one example, the communications platform may cause the object assignment window 710 to be presented in response to a selection by the user 706 of an object assignment control 712 associated with the object 702. In various examples, the communications platform may cause the object assignment control 712 to be presented in association with the user interface 700a based on a determination that a user account associated therewith (e.g., the user account of the user 706) includes permission to assign and / or reassign one or more objects 702 associated with the collaborative document 704.
[0150] In an illustrative example, the object assignment window 710 includes a user selection box 714, an instruction input box 716, and a date input box 718. In other examples, the object assignment window 710 may include additional or alternative input boxes for sharing information about the object 702. In at least one example, the user selection box 714 can allow the user 706 to enter one or more user identifiers associated with a user to whom the object 702 is to be assigned. In various examples, the user selection box 714 can include a drop-down menu 720 of one or more user identifiers associated with users associated with the collaborative document 704 that may be selected for assignment. In at least one example, the drop-down menu 720 can include a scrollable menu of user identifiers.
[0151] In various examples, the communications platform may identify users to associate (or include) in drop-down menu 720 based on membership in the collaborative document, user data associated with the users (e.g., qualifications, education, job type, position, title, etc.), the number of tasks assigned to each user in the collaborative document 704, the object type associated with object 702, and / or other factors associated with the users, object 702, and / or collaborative document 704.
[0152] 7A , the user 706 assigns the task to himself, and therefore the user 706 is the selected user 722 for assignment of the object 702. In other examples, the user 706 may select another user associated with the collaborative document 704 for assignment of the object.
[0153] In various examples, in response to receiving a selection of the assign affordance 724, the communications platform assigns the object 702 to the selected user 722. That is, in response to receiving an indication of a selection of the assign affordance 724, the communications platform associates the object with the user account of the selected user 722.
[0154] 7B illustrates an example user interface 700b in which an affordance 726 associated with an object 702 is presented in a sidebar 708 based on the object's assignment, etc. In various examples, in response to receiving an indication of a selection of the assignment affordance 724, the communications platform can cause the affordance 726 to be presented in a sidebar of the user interface 700b associated with a selected user 722, which in this illustrative example is the same as the user 706. Additionally or alternatively, the communications platform can cause a notification 728 to be presented in association with an affordance 730 associated with the collaborative document 704 in the sidebar 708. In at least one example, the notification 728 can provide a means by which the selected user 722 can identify a modification or change associated with the collaborative document 704 based on the object's 702 assignment, etc. In an illustrative example, the notification 728 includes bold text and a numeric indicator indicating that a single change has been made with respect to the collaborative document 704. In other examples, the notification 728 may include alternative alerts such as haptics, sounds, and / or other text, numbers, or symbols to inform the selected users 722 that the collaborative document 704 has been updated.
[0155] In various examples, the affordance 726 associated with the object 702 can be configured to, when selected, cause the communications platform to present the object 702 via the user interface 700b. In one example, the object 702 can be presented directly such that the user interface 700b is modified to include the object 702 and details associated therewith. In some examples, the object 702 can be presented in association with the collaborative document in a pop-up window, overlay, or the like. In at least one example, one or more affordances, such as the affordance 726 associated with an object corresponding to the collaborative document 704 that is assigned to a particular user, can be presented in the sidebar 708. That is, different members of the collaborative document 704 can include different affordances associated with different objects in their respective sidebars based on the object assignment. For example, a first sidebar of an interface associated with a first user can include a first affordance associated with a first object assigned to the first user, and a second sidebar of an interface associated with a second user can include a second affordance associated with a second object assigned to the second user. Although described herein as objects assigned to a user, this is not intended to be so limiting, and a sidebar 708 associated with a particular user may include affordances associated with one or more objects assigned to or otherwise associated with the particular user. For example, a meeting invitation for a meeting to which a particular user is invited or otherwise associated may be presented in association with the sidebar 708.
[0156] Additionally, in at least one example, user interface 700b associated with collaborative document 704 may include a reassignment affordance 732 that, when selected by a viewing user (e.g., selected user 722, user 706, etc.), allows for reassignment of the associated object 702 to an additional or alternative user. In various examples, reassignment affordance 732 may be presented in association with a user account that includes associated permissions to assign and / or reassign object 702.
[0157] 7C illustrates an example user interface 700c in which an object 702 is presented. In various examples, in response to receiving an indication of a selection of an affordance 726 associated with the object 702 in the sidebar 708, the communications platform can cause data associated with the object 702 to be presented. In some examples, the object 702 can be presented in association with the associated collaborative document 704, such as at a location in the collaborative document 704 where the object is stored and / or presented. In some examples, the object 702 can be presented directly or independently of the collaborative document 704. In examples in which the object 702 is a third party object, the communications platform can request data associated with the object 702 from a third party service provider, such as the third party service provider 108, and present the data in association with the user interface 700c. In some examples, in response to receiving an indication of a selection of the affordance 726, the communications platform can launch a third party application or website associated with the object 702, for example, to enable the selected user 722 to directly access the data from the third party service provider.
[0158] Figures 8 and 9 are flow charts illustrating example processes that include the techniques described herein. The processes illustrated in Figures 8 and 9 are described, for convenience and ease of understanding, with reference to the components described above with reference to system 100 shown in Figure 1. However, the processes illustrated in Figures 8 and 9 are not limited to being performed using the components described above with reference to system 100. Furthermore, the components described above with reference to system 100 are not limited to performing the processes illustrated in Figures 8 and 9.
[0159] FIG. 8 illustrates an example process 800 for creating a collaborative document in association with a communications platform and presenting objects in association with the collaborative document based on data associated with a user account associated with the collaborative document, as described herein.
[0160] At operation 802, the server 102 receives a request from a client associated with a user account of the communication system to create a document associated with a virtual space of the communication system. In at least one example, the document can include a collaborative document, as described herein. That is, the document can include a virtual space that includes editable text and one or more objects that can be manipulated or otherwise interacted with by one or more users associated with the document.
[0161] In various examples, the virtual space may include, but is not limited to, a workspace, a communication channel, a direct message instance, a voice or video communication, etc. For example, a user associated with a user account may select an affordance associated with creating a new document that is presented in association with a communication channel, such as new document affordance 314. In some examples, a request to create a document may be received independent of a virtual space. That is, a user may submit a first request to create a document independent of a virtual space (e.g., in association with a user account of the first user) such that a collaborative document may be available for use by the first user.
[0162] In various examples, in response to receiving the request, the server 102 can identify one or more user accounts to be associated with the document. That is, the server 102 can identify members of the document. In some examples, the user accounts can include user accounts associated with a virtual space associated with the request to create the document. In such examples, the members of the virtual space can be members of the document. In some examples, the server 102 can identify the members based on input associated with the request. For example, the request to create a document can include an indication of intent to share the document with one or more other users. Based on the indication of intent, the server 102 can identify the other users as members of the document, as well as the requesting user and / or members of the virtual space.
[0163] In operation 804, in response to creating the document, the server 102 causes the document to be displayed in a user interface of the communication system. In various examples, the server 102 can associate a channel identifier with the document, such as in metadata associated with the document. In some examples, based on the association of the channel identifier, the document can be treated as a communication channel and can include functionality associated with the communication channel. A communication channel can be a data path used to exchange data between systems and devices associated with a communication platform. In at least one example, the server 102 can establish a communication path between various clients associated with members of the document, enabling the clients to communicate with each other, share data, and modify the shared data.
[0164] In operation 806, the server 102 identifies one or more objects in the document, where the one or more objects are associated with one or more users of the virtual space. The objects can include, but are not limited to, text, audio and / or video files, tasks, tickets to be resolved, events (e.g., scheduled events, calendar invitations, calendar instances, etc.), messages previously sent via the communications platform, images, graphics, links to local objects, links to remote objects (e.g., third party objects), files, etc.
[0165] In various examples, the server 102 identifies objects based on a user account associated with the document. That is, the server 102 can identify objects based on the membership of the document and identify objects associated with its members. In some examples, the server 102 can identify objects based on association with the virtual space in which the document was created. In some examples, as described above, the server 102 can identify objects based on topics, keywords, descriptions, etc. associated with the document. For example, the name of the document can include "Project A." The server 102 can identify objects associated with Project A and associate those objects with the document.
[0166] In operation 808, in response to identifying the one or more objects, the server 102 causes the one or more objects to be displayed within the user interface. In various examples, the server 102 causes the objects associated with the document to be displayed. In some examples, the server 102 can be configured to identify one or more users associated with each object and can include affordances associated therewith within a sidebar of the user interface associated with the users. In such examples, the server 102 can present affordances associated with the object within a sidebar of the user interface that is assigned to the object or corresponds to a user associated with the object. That is, a sidebar associated with a user interface of a member of the document can include a personalized object list associated with the member, for example, to facilitate recognition and access of objects assigned to the member. In various examples, different members of the document can include different object affordances in their respective sidebars based on the object assignments.
[0167] At operation 810, the server 102 determines whether a selection of an object of the one or more objects is detected. The selection of an object can include the selection of an indicator associated with the object presented in the document and / or the selection of an affordance associated with the object in a sidebar of the user interface.
[0168] Based on a determination that no selection of an object is detected (“No” at operation 810 ), the server 102 continues to cause one or more objects to be displayed within the user interface as described with respect to operation 810 .
[0169] Based on a determination that a selection of the object is detected (Yes at operation 810), the server 102 causes the object associated with the document to be displayed at operation 812. In various examples, the object may be displayed at a location within the document. That is, in response to receiving a selection of the object or an affordance associated with it, the server 102 may navigate to the object as presented in the document. In some examples, in response to receiving a selection of the object, the server 102 may cause data associated with the object to be presented within a user interface, such as within a pop-up window, an overlay, etc. In various examples, the server 102 may cause the data associated with the object to be presented through the user interface in place of the document. In such examples, the data associated with the object may replace the document in the user interface.
[0170] In at least one example, in response to receiving an indication of a selection of an object affordance in a sidebar, the server 102 can cause the object data to be presented directly via a user interface. As described above, in some examples, the object can include a third-party object, such as an object managed by and / or stored in association with a third-party service provider. In such examples, in response to receiving an indication of a selection of an object affordance, the server 102 can cause the third-party object data to be presented via a client. In some examples, the third-party object data can be presented in association with a communications platform, such as via a user interface. In such examples, the server 102 can request the third-party object data from a third-party computing device via an API call or other data request. In some examples, in response to receiving an indication of a selection of an object affordance, the server 102 can cause the third-party object data to be presented via a client in association with a third-party application or website.
[0171] FIG. 9 illustrates an example process 900 for creating a collaborative document in connection with a communication platform and sharing the collaborative document via a virtual space of the communication platform, as described herein.
[0172] At operation 902, the server 102 receives a request from a client associated with a user account on a communications platform (e.g., a communications system) to create a document associated with the communications system. In at least one example, the document can include a collaborative document, as described herein. That is, the document can include a virtual space that includes editable text and one or more objects that can be manipulated or otherwise interacted with by one or more users associated with the document.
[0173] In various examples, the request can be received via a virtual space. The virtual space can include, but is not limited to, a workspace, a communication channel, a direct message instance, an audio or video communication, and the like. For example, a user associated with a user account can select an affordance associated with creating a new document presented in association with a communication channel, such as new document affordance 314. In some examples, the request to create a document can be received independent of the virtual space. That is, a user can submit a first request to create a document independent of the virtual space (e.g., in association with the first user's user account) such that a collaborative document is available for use by the first user.
[0174] In various examples, in response to receiving the request, the server 102 can identify one or more user accounts to be associated with the document. That is, the server 102 can identify members of the document. In some examples, the user accounts can include user accounts associated with a virtual space associated with the request to create the document. In such examples, the members of the virtual space can be members of the document. In some examples, the server 102 can identify the members based on input associated with the request. For example, the request to create a document can include an indication of intent to share the document with one or more other users. Based on the indication of intent, the server 102 can identify the other users as members of the document, as well as the requesting user and / or members of the virtual space.
[0175] At operation 904, in response to receiving the request, the server 102 creates a document and a first channel associated with the document, where the first channel is configured to enable one or more functionalities associated with the document. In various examples, the first channel can include a communication channel identifier associated with the document. The communication channel identifier can include a unique identifier associated with the document and enabling communication channel functionality within the document. The functionality can include, but is not limited to, messaging functionality (e.g., chat channel), message timing documents (e.g., timestamps), audio and / or video communication, file upload, notifications (e.g., associated with revisions to a collaborative document, new messages posted, mentions or tags, etc.), mention or tagging functionality, event propagation, workflow management and tracking, access rights, and / or other functionality associated with the communication channel. In at least one example, the first channel can enable the document to leverage existing paradigms within a communication platform to enhance the functionality of the document with limited overhead.
[0176] In operation 906, the server 102 causes the client to present, via a user interface associated with the client, an affordance associated with the document that is selectable to access a document associated with the client. In some examples, the affordance can be associated with a document interface, such as document interface 154. In such examples, the document interface can include an interface for organizing and managing one or more documents associated with a user account. In various examples, the affordance can be associated with a sidebar of the user interface. That is, the affordance can be a persistent affordance available for selection by the user regardless of the data with which the user interacts via the user interface.
[0177] At operation 908, the server 102 determines whether a request to share the document through the virtual space of the communications platform is received. In various examples, the document is associated with a sharing option that, when selected by a user, enables the user to initiate document sharing with one or more other users of the communications platform. In some examples, the sharing option may be presented to the user based on a determination that the user account includes a sharing permission. That is, the communications platform may determine whether the user account is authorized to share the document, and based on a determination that sharing is authorized for the user account, the communications platform may cause a sharing option associated with the document to be displayed.
[0178] In at least one example, a request to share a document may include one or more virtual space identifiers and / or user identifiers associated with the share. The virtual space identifiers and user identifiers may represent virtual spaces and / or particular users with whom the requesting user intends to share the document. As described above with respect to Figures 5B and 5C, the server 102 may provide a list of one or more virtual spaces eligible for document sharing and / or user identifiers associated with users with whom the requesting user is connected via a communication platform. As described above, the list of virtual spaces and / or user identifiers may be ordered based on various factors, such as interaction data, preference data, relationship data, etc.
[0179] Based on a determination that a request to share the document via the virtual space is not received ("No" at operation 908), the server 102 continues to cause affordances associated with the document to be presented via the user interface, as described with respect to operation 906.
[0180] Based on a determination that a request to share the document via the virtual space has been received ("Yes" at operation 908), the server 102 causes, at operation 910, to present, via a user interface, an affordance associated with the document in association with the virtual space, where the affordance presented in association with the virtual space enables members of the virtual space to access the document via the virtual space. In various examples, the server 102 can modify the membership of the document based on the sharing. That is, the server 102 can identify additional users with whom the document is shared (e.g., members of a second virtual space associated with the document sharing process, individual users selected in the document sharing process, etc.) and can associate the additional members as members of the document.
[0181] In various examples, the server 102 can identify one or more objects associated with the additional members to be included in the document. In such examples, the server 102 can identify objects associated with the document and the additional members and cause the objects to be presented on the document. That is, the server 102 can be configured to update the objects included in the document based on the updated membership (e.g., new members). In addition, as described above, the server 102 can be configured to update a presence indicator, such as the presence indicator 238, based on the updated membership. Thus, the server 102 can continually update and render to its members (e.g., via their respective clients) updated data associated with the document, e.g., to improve the capabilities of collaboration enabled by the document.
[0182] Thus, the techniques described herein provide particular technical solutions to technical problems faced by existing systems, the details of which are set out above.
[0183] Example Section A. A method implemented at least in part by one or more computing devices of a communications platform, the method including: receiving a first request to create a document associated with a virtual space of a communications system and a first user account of a first user; in response to creating the document, causing the document to be displayed in a first user interface of the communications system; identifying one or more objects in the document, the one or more objects being associated with one or more users of the virtual space; in response to identifying the one or more objects, causing the one or more objects to be displayed in the first user interface; detecting a selection of an object among the one or more objects in the first user interface; and in response to detecting the selection of the object, causing the object to be displayed in the document.
[0184] B. The method of paragraph A, further comprising the step of, in response to creating the document, displaying an indicator associated with the document in a sidebar associated with the first user interface, the sidebar including the indicator associated with the document and one or more communication channels of the communication system associated with the first user of the one or more users.
[0185] C. The method of paragraph A or B, further comprising: receiving a second request to associate the document with a second user account of a second user different from the one or more users; in response to receiving the second request, associating the document with the second user account; and in response to associating the document with the second user account, displaying an identifier associated with the document in a sidebar of a second user interface associated with the second user account.
[0186] D. The method of any of paragraphs A-C, further comprising: receiving a second request to assign the object to a third user of the one or more users; and associating the object with a third user account of the third user.
[0187] E. The method of paragraph D, wherein the object is a first object, and the method further includes: displaying a first identifier associated with the first object in a first sidebar associated with the first user account based at least in part on an association between the first object and the first user account; wherein the first identifier associated with the first object displayed in the first sidebar is different from a second identifier associated with a second object displayed in a second sidebar associated with a second user account associated with a different one of the one or more users.
[0188] F. The method of paragraph E, wherein the selection of the object is a first selection, the method further comprising: detecting a second selection of the first identifier associated with the first object in relation to the first sidebar; and in response to detecting the second selection, displaying the first object via a second user interface, wherein the first object is displayed independent of the document.
[0189] G. The method of any of paragraphs A-F, wherein the object includes at least one of a task, a ticket, a document, a calendar event, or a message sent via the communication system and shared in association with the document.
[0190] H. The method of any of paragraphs A-G, wherein the virtual space includes a communication channel.
[0191] I. A system comprising: one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed, cause the system to receive a first request to create a document associated with a virtual space of a communication system and a first user account of a first user; in response to creating the document, display the document in a first user interface of the communication system; and identify one or more objects within the document, the one or more objects being associated with one or more users of the virtual space; in response to identifying the one or more objects, display the one or more objects in the first user interface; detect a selection of an object among the one or more objects in the first user interface; and in response to detecting the selection of the object, display the object in the document;
[0192] J. The system described in paragraph I, wherein the instructions further cause the system to, in response to creating the document, display an indicator associated with the document in a sidebar associated with the first user interface, the sidebar including the indicator associated with the document and one or more communication channels of the communication system associated with the first user of the one or more users.
[0193] K. The system of paragraph I or J, wherein the instructions further cause the system to receive a second request to associate the document with a second user account of a second user different from the one or more users, and in response to receiving the second request, cause the system to associate the document with the second user account, and in response to associating the document with the second user account, display an identifier associated with the document in a sidebar of a second user interface associated with the second user account.
[0194] L. The system described in any of paragraphs I-K, wherein the instructions further cause the system to receive a second request to assign the object to a third user of the one or more users and associate the object with a third user account of the third user.
[0195] M. The system of paragraph L, wherein the object is a first object, and the instructions further cause the system to display a first identifier associated with the first object in a first sidebar associated with the first user account based at least in part on an association between the first object and the first user account, wherein the first identifier associated with the first object displayed in the first sidebar is different from a second identifier associated with a second object displayed in a second sidebar associated with a second user account associated with a different one of the one or more users.
[0196] N. The system of paragraph M, wherein the selection of the object is a first selection, and the instructions further cause the system to detect a second selection of the first identifier associated with the first object in association with the first sidebar, and in response to detecting the second selection, display the first object via a second user interface, wherein the first object is displayed independent of the document.
[0197] O. The system of any of paragraphs I-N, wherein the object includes at least one of a task, a ticket, a document, a calendar event, or a message sent via the communication system and shared in association with the document.
[0198] P. The system described in any of paragraphs I to O, wherein the virtual space includes a communication channel.
[0199] Q. One or more non-transitory computer-readable media storing instructions that, when executed, cause one or more processors to receive a first request to create a document associated with a virtual space of a communication system and a first user account of a first user; in response to creating the document, display the document in a first user interface of the communication system; and identify one or more objects within the document, the one or more objects being associated with one or more users of the virtual space; in response to identifying the one or more objects, display the one or more objects within the first user interface; detect a selection of an object among the one or more objects in the first user interface; and in response to detecting the selection of the object, display the object within the document.
[0200] R. The one or more non-transitory computer-readable media described in paragraph Q, wherein the instructions further cause the one or more processors to, in response to creating the document, display an indicator associated with the document in a sidebar associated with the first user interface, the sidebar including the indicator associated with the document and one or more communication channels of the communication system associated with the first user of the one or more users.
[0201] S. The one or more non-transitory computer-readable media described in paragraph Q or R, wherein the instructions further cause the one or more processors to receive a second request to associate the document with a second user account of a second user different from the one or more users, and in response to receiving the second request, cause the document to be associated with the second user account, and in response to associating the document with the second user account, display an identifier associated with the document in a sidebar of a second user interface associated with the second user account.
[0202] T. One or more non-transitory computer-readable media described in any of paragraphs Q-S, wherein the instructions further cause the one or more processors to receive a second request to assign the object to a third user of the one or more users and associate the object with a third user account of the third user.
[0203] Although the exemplary sections above are described with respect to one particular implementation, it should be understood that in the context of this document, the contents of the exemplary sections can be implemented via a method, device, system, computer-readable medium, and / or another implementation. In addition, any of the examples A-T may be implemented alone or in combination with one or more of any other of the examples A-T.
[0204] conclusion Having described one or more examples of the technology described herein, various modifications, additions, permutations and equivalents thereof are included within the scope of the technology described herein.
[0205] In describing the embodiments, reference is made to the accompanying drawings, which form a part of this specification. The accompanying drawings show, for purposes of illustration, specific embodiments of the claimed subject matter. It will be understood that other embodiments may be used and that modifications or alterations, such as structural changes, may be made. Such embodiments, modifications or alterations do not necessarily depart from the intended scope of the claimed subject matter. Although steps in this specification may be presented in a certain order, in some cases the order may be changed such that certain inputs are provided at different times or in a different order without changing the functionality of the described systems and methods. The disclosed procedures may also be performed in different orders. In addition, the various calculations described in this specification need not be performed in the order disclosed, and other examples using alternative orders of calculations may be easily implemented. In addition to being reordered, calculations may also be decomposed into sub-calculations having the same results.
Claims
1. 1. A method implemented at least in part by one or more computing devices of a communications platform, comprising: receiving a first request to create a document associated with a virtual space of a communication system and with a first user account of a first user; in response to creating the document, causing the document to be displayed within a first user interface of the communication system; identifying one or more objects within the document, the one or more objects being associated with one or more users of the virtual space; in response to identifying the one or more objects, displaying the one or more objects within the first user interface; detecting a selection of an object of the one or more objects in the first user interface; in response to detecting the selection of the object, causing the object to be displayed within the document; A method comprising:
2. and in response to creating the document, causing an indicator associated with the document to be displayed in a sidebar associated with the first user interface, the sidebar including the indicator associated with the document and one or more communication channels of the communication system associated with the first user of the one or more users. The method of claim 1.
3. receiving a second request to associate the document with a second user account of a second user different from the one or more users; in response to receiving the second request, associating the document with the second user account; in response to associating the document with the second user account, displaying an identifier associated with the document in a sidebar of a second user interface associated with the second user account; The method of claim 1 further comprising:
4. receiving a second request to assign the object to a third user of the one or more users; associating the object with a third user account of the third user; The method of claim 1 further comprising:
5. The object is a first object, and the method includes: displaying a first identifier associated with the first object in a first sidebar associated with the first user account based at least in part on an association between the first object and the first user account; wherein the first identifier associated with the first object displayed in the first sidebar is different from a second identifier associated with a second object displayed in a second sidebar associated with a second user account associated with a different one of the one or more users. The method according to claim 4.
6. The selection of the object is a first selection, the method comprising: detecting, in association with the first sidebar, a second selection of the first identifier associated with the first object; displaying the first object via a second user interface in response to detecting the second selection, the first object being displayed independent of the document; The method of claim 5 further comprising:
7. The object is task, ticket, document, Calendar events, or a message transmitted via the communication system and shared in relation to the document; The method of claim 1 , comprising at least one of:
8. The virtual space includes a communication channel. The method of claim 1.
9. One or more non-transitory computer readable media storing computer executable instructions that, when executed by one or more processors of a computing device, cause the computing device to perform the method of any one of claims 1 to 8.
10. 1. A system comprising: one or more processors; When executed, the system: receiving a first request to create a document associated with a virtual space of the communication system and with a first user account of a first user; displaying the document within a first user interface of the communication system in response to creating the document; identifying one or more objects within the document, where the one or more objects are associated with one or more users of the virtual space; In response to identifying the one or more objects, displaying the one or more objects within the first user interface; detecting a selection of an object of the one or more objects in the first user interface; in response to detecting said selection of said object, causing said object to be displayed within said document; one or more non-transitory computer readable media storing instructions; A system comprising:
11. The instructions further include: in response to creating the document, displaying an indicator associated with the document in a sidebar associated with the first user interface, the sidebar including the indicator associated with the document and one or more communication channels of the communication system associated with the first user of the one or more users; The system of claim 10.
12. The instructions further include: receiving a second request to associate the document with a second user account of a second user different from the one or more users; In response to receiving the second request, associating the document with the second user account; in response to associating the document with the second user account, displaying an identifier associated with the document in a sidebar of a second user interface associated with the second user account. The system of claim 10.
13. The instructions further include: receiving a second request to assign the object to a third user of the one or more users; associating the object with a third user account of the third user; The system of claim 10.
14. The object is a first object, and the instructions to the system further include: displaying a first identifier associated with the first object within a first sidebar associated with the first user account based at least in part on an association between the first object and the first user account; the first identifier associated with the first object displayed in the first sidebar is different from a second identifier associated with a second object displayed in a second sidebar associated with a second user account associated with a different one of the one or more users; The system of claim 13.
15. The selection of the object is a first selection, and the instructions further include for the system to: detecting, in association with the first sidebar, a second selection of the first identifier associated with the first object; in response to detecting the second selection, displaying the first object via a second user interface, wherein the first object is displayed independent of the document. The system of claim 14.