Contextual workflow button
By adding buttons in the virtual space within the group-based communication system, obtaining context parameters and launching an automated workflow, the problem of lack of context perception of automated workflows in the prior art is solved, and dynamic and efficient workflow applications are realized.
Patent Information
- Application Number
- CN202380049136.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-05-13
- Filing Date
- 2023-05-11
- Publication Date
- 2025-02-11
AI Technical Summary
Existing automated workflows lack context awareness in group-based communication systems, resulting in the need for manual editing to adapt to different contexts and the inability to dynamically update the display elements.
By adding buttons within a group-based communication system, the context parameters associated with the virtual space are obtained and passed to an automated workflow initiated by the buttons, the workflow steps can be implemented contextually.
It realizes context-aware applications of automated workflows in different contexts, reduces the need for manual editing, and dynamically updates display elements within the system.
Smart Images

Figure CN119422156A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present invention generally relate to automated workflows. More specifically, embodiments of the present invention relate to buttons for triggering automated workflows within a group-based communication system.
[0002] Automated workflows have been used to perform various action steps within, for example, group-based communication systems. However, these workflows are not contextually applied based on the context in which the workflow was initiated. Therefore, the workflow may need to be manually edited before being applied to different contextual locations of a group-based communication system. In addition, existing workflows lack the ability to dynamically update various display elements within a group-based communication system. Therefore, a way to apply workflow steps based on contextual parameters is needed. Summary of the invention
[0003] Embodiments of the present invention address the above needs by providing a medium, method, and system for contextual automation within a group-based communication system, wherein buttons are added to a virtual space within the group-based communication system. The buttons acquire contextual parameters associated with the virtual space and user interactions that are passed to an automated workflow initiated by the corresponding button. Thus, steps performed by the automated workflow can be contextually implemented based on the contextual parameters collected by the button.
[0004] In some aspects, the technology described herein relates to one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method for performing contextual automation within a group-based communication system, the method comprising: causing a workflow button to be displayed to a user of the group-based communication system within a virtual space of the group-based communication system, at least one display parameter of the workflow button being determined based on a context associated with the virtual space; receiving an actuation of the workflow button from the user; in response to the actuation of the workflow button, receiving multiple context parameters associated with the workflow button, the multiple context parameters including a user identifier associated with the user and context data associated with the virtual space; based on the multiple context parameters, initiating an associated workflow associated with the workflow button to perform one or more automated operations; receiving a response indicating completion of the associated workflow; and updating the workflow button within the virtual space of the group-based communication system based on the received response indicating completion of the associated workflow.
[0005] In some aspects, the technology described herein relates to one or more non-transitory computer-readable media, and the method also includes: in response to performing an operation in one or more automated operations, initiating an additional workflow to perform one or more additional operations; receiving a completion confirmation associated with the additional workflow; and performing further operations in one or more automated operations based on the completion confirmation associated with the additional workflow.
[0006] In some aspects, the technology described herein relates to one or more non-transitory computer-readable media, and the method also includes: in response to performing an operation in one or more automated operations, causing a new workflow button to be displayed in the virtual space, wherein the new workflow button is configured to initiate an additional workflow.
[0007] In some aspects, the technology described herein relates to one or more non-transitory computer-readable media, and the method also includes: in response to performing an operation in one or more automated operations, creating a second virtual space based on multiple contextual parameters within the virtual space, wherein the second virtual space includes a direct message, a channel, a collaborative document, or a collaborative session.
[0008] In some aspects, the technology described herein relates to one or more non-transitory computer-readable media, and the method also includes: causing a workflow button to be displayed to a second user of a group-based communication system in a second virtual space, at least one display parameter of the workflow button in the second virtual space being different from at least one display parameter in the virtual space; in response to actuation of the workflow button in the second virtual space, obtaining multiple context parameters associated with the actuation of the workflow button, the multiple context parameters including a second user identifier associated with the second user and a second context identifier indicating the second virtual space; based on the workflow button and the multiple context parameters, determining a second workflow for the workflow button, the second workflow being different from the associated workflow; and initiating the second workflow.
[0009] In some aspects, the technology described herein relates to one or more non-transitory computer-readable media, and the method also includes: in response to performing an operation in one or more automated operations, storing information indicating a first context parameter among multiple context parameters in a storage location determined based on a second context parameter among the multiple context parameters.
[0010] In some aspects, the techniques described herein involve one or more non-transitory computer-readable media, the method further comprising: in response to performing an operation in the one or more automated operations, updating the virtual space to reflect the user's actuation of the workflow button.
[0011] In some aspects, the technology described herein relates to a method for performing contextual automation within a group-based communication system, the method comprising: causing a workflow button to be displayed to a user of the group-based communication system within a virtual space of the group-based communication system, at least one display parameter of the workflow button being determined based on a context associated with the virtual space; receiving an actuation of the workflow button from the user; in response to the actuation of the workflow button, receiving multiple context parameters associated with the workflow button, the multiple context parameters including a user identifier associated with the user and context data associated with the virtual space; based on the multiple context parameters, initiating an associated workflow associated with the workflow button to perform one or more automated operations; receiving a response indicating completion of the associated workflow; and updating the workflow button within the virtual space of the group-based communication system based on the received response indicating completion of the associated workflow.
[0012] In some aspects, the technology described herein relates to a method that also includes: in response to performing an operation in one or more automated operations, initiating an additional workflow to perform the one or more additional operations; receiving a completion confirmation associated with the additional workflow; and performing further operations in the one or more automated operations based on the completion confirmation associated with the additional workflow.
[0013] In some aspects, the technology described herein relates to a method, further comprising: in response to performing an operation of the one or more automated operations, causing a new workflow button to be displayed within the virtual space, wherein the new workflow button is configured to initiate an additional workflow.
[0014] In some aspects, the technology described herein relates to a method that also includes: in response to performing an operation in one or more automated operations, creating a second virtual space based on multiple contextual parameters within the virtual space, wherein the second virtual space includes a direct message, a channel, a collaborative document, or a collaborative session.
[0015] In some aspects, the technology described herein relates to a method that also includes: causing a workflow button to be displayed to a second user of a group-based communication system in a second virtual space, at least one display parameter of the workflow button in the second virtual space being different from at least one display parameter in the virtual space; in response to actuation of the workflow button in the second virtual space, obtaining multiple context parameters associated with the actuation of the workflow button, the multiple context parameters including a second user identifier associated with the second user and a second context identifier indicating the second virtual space; determining a second workflow for the workflow button based on the workflow button and the multiple context parameters, the second workflow being different from the associated workflow; and initiating the second workflow.
[0016] In some aspects, the technology described herein relates to a method, further comprising: in response to performing an operation in one or more automated operations, storing information indicating a first context parameter among multiple context parameters in a storage location determined based on a second context parameter among the multiple context parameters.
[0017] In some aspects, the technology described herein relates to a method, further comprising: in response to performing an operation in the one or more automated operations, updating the virtual space to reflect actuation of the workflow button by the user.
[0018] In some aspects, the technology described herein relates to a system comprising at least one processor and at least one non-volatile memory, wherein the at least one non-volatile memory stores computer executable instructions that, when executed by the at least one processor, perform a method for performing contextual automation within a group-based communication system, the method comprising: causing a workflow button to be displayed to a user of a group-based communication system within a virtual space of the group-based communication system, wherein at least one display parameter of the workflow button is determined based on a context associated with the virtual space; receiving an actuation of the workflow button from the user; in response to the actuation of the workflow button, receiving multiple context parameters associated with the workflow button, the multiple context parameters including a user identifier associated with the user and context data associated with the virtual space; based on the multiple context parameters, initiating an associated workflow associated with the workflow button to perform one or more automated operations; receiving a response indicating completion of the associated workflow; and updating the workflow button within the virtual space of the group-based communication system based on the received response indicating completion of the associated workflow.
[0019] In some aspects, the technology described herein relates to a system, and the method also includes: in response to performing an operation in one or more automated operations, initiating an additional workflow to perform one or more additional operations; receiving a completion confirmation associated with the additional workflow; and performing further operations in the one or more automated operations based on the completion confirmation associated with the additional workflow.
[0020] In some aspects, the technology described herein relates to a system, the method also comprising: in response to performing an operation of the one or more automated operations, causing a new workflow button to be displayed in the virtual space, wherein the new workflow button is configured to initiate an additional workflow.
[0021] In some aspects, the technology described herein relates to a system, wherein the method further includes: in response to performing an operation in one or more automated operations, creating a second virtual space based on multiple contextual parameters within the virtual space, wherein the second virtual space includes a direct message, a channel, a collaborative document, or a collaborative session.
[0022] In some aspects, the technology described herein relates to a system, and the method also includes: causing a workflow button to be displayed to a second user of a group-based communication system in a second virtual space, at least one display parameter of the workflow button in the second virtual space being different from at least one display parameter in the virtual space; in response to actuation of the workflow button in the second virtual space, obtaining multiple context parameters associated with the actuation of the workflow button, the multiple context parameters including a second user identifier associated with the second user and a second context identifier indicating the second virtual space; based on the workflow button and the multiple context parameters, determining a second workflow for the workflow button, the second workflow being different from the associated workflow; and initiating the second workflow.
[0023] In some aspects, the technology described herein relates to a system, wherein the method further includes: in response to performing an operation in one or more automated operations, storing information indicating a first context parameter among multiple context parameters in a storage location determined based on a second context parameter among the multiple context parameters.
[0024] The present invention summary is provided to introduce in simplified form a selection of concepts that will be further described below in the detailed description. The present invention summary is not intended to identify the key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Other aspects and advantages of the present invention will be apparent from the following detailed description and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] Embodiments of the present invention are described in detail below with reference to the accompanying drawings, in which:
[0026] Figure 1 Depicting an exemplary environment for certain embodiments of the present invention;
[0027] Figure 2A A user interface for a group-based communication system of certain embodiments is shown;
[0028] Figure 2B A user interface for a synchronous multimedia collaboration session within a group-based communication system of certain embodiments is shown;
[0029] Figure 2C A user interface for inter-organizational collaboration within a group-based communication system of certain embodiments is shown;
[0030] Figure 2D A user interface for collaborative documents within a group-based communication system of certain embodiments is shown;
[0031] Figure 3A depicts a user interface for workflow within a group-based communication system;
[0032] Figure 3B depicts block diagrams for implementing certain embodiments;
[0033] Figure 3C depicts block diagrams for implementing certain embodiments;
[0034] Figure 4A depicts an exemplary user interface for buttons within a channel in connection with some embodiments;
[0035] Figure 4B depicts an exemplary user interface for buttons within a channel in connection with some embodiments;
[0036] Figure 4C depicts an exemplary user interface for buttons within a channel in connection with some embodiments;
[0037] Figure 5A depicts an exemplary user interface for buttons within a collaborative document in connection with some embodiments;
[0038] Figure 5B depicts an exemplary user interface for buttons within a collaborative document in connection with some embodiments;
[0039] Figure 5C depicts an exemplary user interface for buttons within a collaborative document in connection with some embodiments;
[0040] Figure 5D depicts an exemplary user interface for buttons within a collaborative document in connection with some embodiments;
[0041] Fig. 6A depicts an exemplary user interface for a resource channel page associated with some embodiments;
[0042] Figure 6B depicts an exemplary user interface for a resource channel page associated with some embodiments;
[0043] Figure 6C depicts an exemplary user interface for a resource channel page associated with some embodiments;
[0044] Fig.6D depicts an exemplary user interface for a button within a direct message in connection with some embodiments;
[0045] Fig. 6E depicts an exemplary user interface for automatically generated collaborative documents;
[0046] Fig. 7A depicts an exemplary user interface for an RSVP button associated with some embodiments of the present invention;
[0047] Figure 7B depicts an exemplary user interface for an RSVP button associated with some embodiments of the present invention;
[0048] Figure 7C shows exemplary data tables associated with some embodiments;
[0049] Fig.7D depicts an exemplary user interface for an RSVP button associated with some embodiments of the present invention;
[0050] Figure 8 depicts an exemplary user interface associated with a button catalog related to some embodiments;
[0051] Fig. 9A An exemplary method for contextual automation within a group-based communication system related to some embodiments is shown;
[0052] Fig. 9B An exemplary continued method for contextual automation within a group-based communication system related to some embodiments is shown;
[0053] The drawings do not limit the invention to the specific embodiments disclosed and described herein. The drawings are not necessarily drawn to scale, emphasis instead being placed upon clearly illustrating the principles of the invention. DETAILED DESCRIPTION
[0054] Some embodiments of the present invention relate to implementing contextual buttons within a group-based communication system so that these buttons initiate one or more automated workflows when actuated by a user or some other triggering event. The automated workflows can be configured to perform one or more automated operations internally within the group-based communication system or externally within, for example, a third-party application. In some embodiments, various means for accessing and configuring buttons from within a group-based communication system are contemplated. For example, in some embodiments, a button catalog may be included to allow a user to curate a list of available buttons to be shared and published within a group-based communication system. In addition, in some embodiments, a user may be able to manually configure various button parameters, such as what workflow a given button initiates.
[0055] In some embodiments, the button is capable of acquiring one or more context parameters associated with the context of the group-based communication system. These context parameters can be passed to the initiated workflow so that the automated operation can be contextually performed based at least in part on the one or more context parameters. In some such embodiments, the context parameters can include an indication of the user who selected the button, and an indication of the context of the button within the group-based communication system, such as from which channel or other virtual space the button was actuated. Thus, the workflow can be executed at least in part based on the context from which the button was actuated. Thus, at least a portion of the operations of the workflow can be performed differently based on which user selected the button and where the button was selected.
[0056] The following detailed description of embodiments of the present invention refers to the accompanying drawings showing specific embodiments in which the present invention can be practiced. These embodiments are intended to fully describe aspects of the present invention in detail so that those skilled in the art can practice the present invention. Other embodiments may be utilized and may be changed without departing from the scope of the present invention. Therefore, the following detailed description should not be construed as limiting. The scope of embodiments of the present invention is limited only by the appended claims together with the full scope of equivalents enjoyed by such claims.
[0057] In this specification, reference to "an embodiment," "an embodiment," or "multiple embodiments" means that the referenced one or more features are included in at least one embodiment of the present technology. In this specification, separate references to "an embodiment," "an embodiment," or "multiple embodiments" do not necessarily refer to the same embodiment, and are not mutually exclusive unless so stated and / or unless it is obvious to a person skilled in the art in the specification. For example, a feature, structure, or action described in one embodiment may also be included in other embodiments, but not necessarily therein. Therefore, the present technology may include various combinations and / or integrations of the embodiments described herein.
[0058] Group-based communication systems
[0059] Figure 1An exemplary environment 100 for performing the techniques described herein is shown. In at least one example, the exemplary environment 100 may be associated with a communication platform that may utilize a network-based computing system to enable users of the communication platform to exchange data. In at least one example, the communication platform may be "group-based" so that the platform and associated systems, communication channels, messages, collaborative documents, canvases, audio / video conversations, and / or other virtual spaces have security (which may be defined by permissions) to limit access to a defined user group. In some examples, such user groups may be defined by group identifiers, which may be associated with public access credentials, domains, and the like, as described above. In some examples, the communication platform may be a hub that provides a secure and private virtual space to enable users to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate with each other or among them. As described above, each group may be associated with a workspace, so that users associated with the group may chat, meet, call, collaborate, transfer files or other data, or otherwise communicate with each other or among them in a secure and private virtual space. In some examples, members of the group and therefore the workspace may be associated with the same organization. In some examples, members of a group, and therefore a workspace, may be associated with different organizations (eg, entities with different organization identifiers).
[0060] In at least one example, exemplary environment 100 may include one or more server computing devices (or "servers") 102. In at least one example, server 102 may include one or more servers or other types of computing devices that may be embodied in any number of ways. For example, in the example of a server, functional components and data may be implemented on a single server, a cluster of servers, a server farm or data center, a cloud-hosted computing service, a cloud-hosted storage service, etc., although other computer architectures may additionally or alternatively be used.
[0061] In at least one example, the server 102 can communicate with the user computing device 104 via one or more networks 106. That is, the server 102 and the user computing device 104 can use the network 106 to transmit, receive and / or store data (e.g., content, information, etc.), as described herein. The user computing device 104 can be any suitable type of computing device, for example, portable, semi-portable, semi-fixed or fixed. Some examples of the user computing device 104 may include a tablet computing device, a smart phone, a mobile communication device, a laptop, a netbook, a desktop computing device, a terminal computing device, a wearable computing device, an augmented reality device, an Internet of Things (IOT) device, or any other computing device capable of sending communications and performing functions according to the technology described herein. Although a single user computing device 104 is shown, in practice, the exemplary environment 100 may include multiple (e.g., tens, hundreds, thousands, millions) of user computing devices. In at least one example, among other aspects, a user computing device (such as the user computing device 104) can be operated by a user to access a communication service via a communication platform. The user can be an individual, a group of individuals, an employer, a business, an organization, etc.
[0062] The network 106 may include, but is not limited to, any type of network known in the art, such as a local area network or a wide area network, the Internet, a wireless network, a cellular network, a local wireless network, Wi-Fi, and / or short-range wireless communication, Bluetooth Low Energy (BLE), Near Field Communication (NFC), a wired network, or any 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. The protocols used to communicate over such networks 106 are well known and will not be discussed in detail herein.
[0063] In at least one example, server 102 may include one or more processors 108 , computer-readable media 110 , one or more communication interfaces 112 , and input / output devices 114 .
[0064] In at least one example, each of the processors 108 can be a single processing unit or multiple processing units, and can include a single or multiple computing units or multiple processing cores. The processor 108 can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units (CPUs), graphics processing units (GPUs), state machines, logic circuits, and / or any device that manipulates signals based on operating instructions. For example, the processor 108 can be one or more hardware processors and / or any suitable type of logic circuit that is specifically programmed or configured to perform the algorithms and processes described herein. The processor 108 can be configured to fetch and execute computer-readable instructions stored in a computer-readable medium that can program the processor to perform the functions described herein.
[0065] The computer-readable medium 110 may include volatile and non-volatile memory and / or removable and non-removable media implemented with any type of technology for storing data such as computer-readable instructions, data structures, program modules or other data. Such computer-readable media 110 may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, optical storage, solid-state storage, tape, disk storage, RAID storage system, storage array, network attached storage, storage area network, cloud storage, or any other medium that can be used to store desired data and can be accessed by a computing device. Depending on the configuration of the server 102, the computer-readable medium 110 may be a type of computer-readable storage medium and / or may be a tangible non-transient medium to the extent that when referred to, non-transient computer-readable media exclude media such as energy, carrier signals, electromagnetic waves, and signals themselves.
[0066] The computer-readable medium 110 may be used to store any number of functional components that are executable by the processor 108. In many implementations, these functional components include instructions or programs that are executable by the processor 108 and that, when executed, specifically configure the processor 108 to perform the actions attributed above to the server 102. The functional components stored in the computer-readable medium may optionally include a messaging component 116, an audio / video component 118, a workspace management component 120, an operating system 122, and a data repository 124.
[0067] In at least one example, the messaging component 116 can process messages between users. That is, in at least one example, the messaging component 116 can receive outgoing messages from the user computing device 104 and can send the message as an incoming message to the second user computing device 104. The message may include a direct message sent from the originating user to one or more specified users and / or a communication channel message sent from the originating user to one or more users associated with the communication channel via a communication channel. In addition, messages can be transmitted in association with a collaborative document, a canvas, or other collaborative space. In at least one example, the canvas may include a flexible canvas for planning, organizing, and sharing information collections between users. In at least one example, a collaborative document may be associated with a document identifier (e.g., a virtual space identifier, a communication channel identifier, etc.), which is configured to implement messaging functionality that can be attributed to a virtual space (e.g., a communication channel) within the collaborative document. That is, a collaborative document can be viewed as a virtual space (such as a communication channel) and includes functionality associated with a virtual space (such as a communication channel). A virtual space or a communication channel may be a data route for exchanging data between and among systems and devices associated with a communication platform.
[0068] In at least one example, the messaging component 116 can establish communication routes between and among various user computing devices, thereby allowing user computing devices to communicate and share data between and among each other. In at least one example, the messaging component 116 can manage such communications and / or data sharing. In some examples, data associated with the virtual space (such as a collaborative document) can be presented via a user interface. In addition, metadata associated with each message transmitted via the virtual space, such as a timestamp associated with the message, a sending user identifier, a recipient user identifier, a conversation identifier, and / or a root object identifier (e.g., a conversation associated with a thread and / or a root object), etc. can be stored in association with the virtual space.
[0069] In various examples, messaging component 116 may receive a message transmitted in association with a virtual space (e.g., a direct message instance, a communication channel, a canvas, a collaborative document, etc.). In various examples, messaging component 116 may identify one or more users associated with the virtual space and may cause the message to be presented in association with the instance of the virtual space on the respective user computing devices 104. In various examples, messaging component 116 may identify the message as an update to the virtual space and, based on the identified update, may cause a notification associated with the update to be presented in association with a sidebar of a user interface associated with one or more of the users associated with the virtual space. For example, messaging component 116 may receive a message transmitted in association with the virtual space from a first user account. In response to receiving the message (e.g., interaction data associated with an interaction of the first user with the virtual space), messaging component 116 may identify a second user associated with the virtual space (e.g., another user who is a member of the virtual space). In some examples, messaging component 116 may cause a notification of the update to the virtual space to be presented via a sidebar of a user interface associated with a second user account of the second user. In some examples, messaging component 116 can cause presentation of a notification in response to determining that a sidebar of a user interface associated with a second user account includes an affordance associated with a virtual space. In such examples, the notification can be presented in association with the affordance associated with the virtual space.
[0070] In various examples, messaging component 116 may be configured to identify mentions or tags associated with messages transmitted in association with a virtual space. In at least one example, a mention or tag may include an @ mention (or other special characters) of a user identifier associated with a communication platform. A user identifier may include a username, a real name, or other unique identifier associated with a particular user. In response to identifying a mention or tag of a user identifier, messaging component 116 may cause a notification to be presented on a user interface associated with the user identifier, such as in a sidebar of a user interface associated with a particular user and / or in a virtual space associated with a mention and reaction in association with an affordance associated with the virtual space. That is, messaging component 116 may be configured to alert a particular user that they are mentioned in a virtual space.
[0071] In at least one example, the audio / video component 118 can be configured to manage audio and / or video communications between and among users. In some examples, the audio and / or video communications can be associated with an audio and / or video conversation. In at least one example, an audio and / or video conversation can include a discrete identifier configured to uniquely identify the audio and / or video conversation. In some examples, the audio and / or video component 118 can store user identifiers associated with user accounts of members of a particular audio and / or video conversation, such as to identify users with appropriate permissions to access a particular audio and / or video conversation.
[0072] In some examples, communications associated with an audio and / or video conversation ("conversation") may be synchronous and / or asynchronous. That is, a conversation may include a real-time audio and / or video conversation between a first user and a second user over a period of time, and after the first period of time, a third user associated with the conversation (e.g., as a member of the conversation) may contribute to the conversation. Audio / video component 118 may be configured to store audio and / or video data associated with the conversation, such as to enable users with appropriate permissions to listen to and / or view the audio and / or video data.
[0073] In some examples, the audio / video component 118 may be configured to generate a transcription of the conversation, and the transcription may be stored in association with the audio and / or video data. The transcription may include a text representation of the audio and / or video data. In at least one example, the audio / video component 118 may generate a transcription using known speech recognition techniques. In some examples, the audio / video component 118 may generate a transcription simultaneously or substantially simultaneously with the conversation. That is, in some examples, the audio / video component 118 may be configured to generate a text representation of the conversation while the conversation is ongoing. In some examples, the audio / video component 118 may generate a transcription after receiving an indication that the conversation has been completed. The indication that the conversation has been completed may include an indication that the host or administrator associated with it has stopped the conversation, an indication that a threshold number of conference attendees have closed an associated interface, etc. That is, the audio / video component 118 may identify the completion of the conversation, and may generate a transcription associated with it based on the completion.
[0074] In at least one example, the audio / video component 118 can be configured to present a transcription in association with a virtual space associated with an audio and / or video conversation. For example, a first user can initiate an audio and / or video conversation in association with a communication channel. The audio / video component 118 can process audio and / or video data between attendees of the audio and / or video conversation, and can generate a transcription of the audio and / or video data. In response to generating the transcription, the audio / video component 118 can cause the transcription to be published or otherwise presented via the communication channel. In at least one example, the audio / video component 118 can render one or more segments of the transcription as selectable for comment, such as to enable members of the communication channel to comment on the conversation or to further contribute to the conversation. In some examples, the audio / video component 118 can update the transcription based on the comment.
[0075] In at least one example, the audio / video component 118 can manage one or more audio and / or video conversations in association with a virtual space associated with a group (e.g., organization, team, etc.) administrator or command center. The group administrator or command center may be referred to herein as a virtual (and / or digital) headquarters associated with the group. In at least one example, the audio / video component 118 may be configured to coordinate with the messaging component 116 and / or other components of the server 102 to transmit communications in association with other virtual spaces associated with the virtual headquarters. That is, the messaging component 116 may transmit data (e.g., messages, images, drawings, files, etc.) associated with one or more communication channels, direct messaging instances, collaborative documents, canvases, etc. associated with the virtual headquarters. In some examples, the communication channels, direct messaging instances, collaborative documents, canvases, etc. may have one or more audio and / or video conversations associated therewith that are managed by the audio / video component 118. That is, the audio and / or video conversations associated with the virtual headquarters may be further associated with one or more other virtual spaces of the virtual headquarters or independent of one or more other virtual spaces of the virtual headquarters.
[0076] In at least one example, the workspace management component 120 can manage workspaces. That is, in at least one example, the communication platform can be divided into different workspaces, which can be associated with different user groups, as described above. As described above, each workspace can be associated with a group identifier, and one or more user accounts can be mapped to the group identifier or otherwise associated with the group identifier. Users corresponding to such user accounts can be "members" of the group.
[0077] In some examples, the workspace management component 120 can manage workspace membership. That is, the workspace management component 120 can receive a request to associate a user with a separate workspace, and the workspace management component 120 can associate a user account associated with such a user with a group identifier associated with the separate workspace. For example, in response to receiving a request to add a user to a workspace, the workspace management component 120 can associate the user account of the user with the group identifier of the workspace. The workspace management component 120 can disassociate a user account and a group identifier, for example, when removing a user from a workspace.
[0078] In at least one example, the workspace management component 120 can manage cross-workspace data integration, as described herein. For example, the workspace management component 120 can detect updates to data associated with a workspace, and can integrate such updated data into a user interface presented via a user computing device associated with a workspace. Such data integration can be "cross-workspace" so that no matter which workspace a user logs into, the user can receive updated data associated with each workspace in the workspace of which he or she is a member and / or access data associated with each workspace in the workspace of which he or she is a member (pending permission, as described below). That is, the workspace management component 120 can detect updates to data associated with a workspace, and can integrate such updated data into a user interface presented via a user computing device associated with a workspace. Similarly, the workspace management component 120 can facilitate cross-workspace operations. For example, the workspace management component 120 can facilitate messages between workspaces, searches between or across multiple workspaces, and the like. Additional details of the operations that can be performed by the workspace management component 120 are described below.
[0079] In at least one example, operating system 122 can manage processor 108 , computer-readable media 110 , hardware, software, etc. of server 102 .
[0080] In at least one example, data repository 124 can be configured to store data that can be accessed, managed, and updated. In some examples, data repository 124 can be integrated with server 102, such as Figure 1In other examples, data repository 124 may be located remotely from server 102 and may be accessible by server 102 and / or a user device, such as user device 104. Data repository 124 may include multiple databases that may include user / organization data 126 and / or virtual space data 128. Additional or alternative data may be stored in the data repository and / or one or more other data repositories.
[0081] In at least one example, user / organization data 126 may include data associated with a user of a communication platform. In at least one example, user / organization data 126 may store data in a user profile (which may also be referred to as a "user account"), which may store data associated with a user, including, but not limited to: one or more user identifiers associated with multiple different organizations or entities with which the user is associated, one or more communication channel identifiers associated with communication channels to which the user has been authorized to access, one or more group identifiers of groups (or organizations, teams, entities, etc.) with which the user is associated, an indication of whether the user is the owner or manager of any communication channel, an indication of whether the user has any communication channel constraints, multiple messages, multiple emoticons, multiple conversations, multiple conversation topics, avatars, email addresses, real names (e.g., John Doe), usernames (e.g., j doe), passwords, time zones, statuses, tokens, etc.
[0082] In at least one example, user / organization data 126 may include permission data associated with permissions for individual users of the communication platform. In some examples, permissions may be set automatically or by an administrator of the communication platform, an employer, an enterprise, an organization, or other entities utilizing the communication platform, a team leader, a group leader, or other entities utilizing the communication platform to communicate with team members, group members, etc., individual users, etc. The permissions associated with individual users may be mapped to an account or profile within user / organization data 126, or otherwise associated with an account or profile. In some examples, permissions may indicate which users may communicate directly with other users, which channels are permitted for users to access, constraints on individual channels, which workspaces are permitted for users to access, constraints on individual workspaces, etc. In at least one example, permissions may support the communication platform by maintaining security for limiting access to a defined group of users. In some examples, such users may be defined by public access credentials, group identifiers, etc., as described above.
[0083] In at least one example, user / organization data 126 may include data associated with one or more organizations of the communication platform. In at least one example, user / organization data 126 may store data in an organization profile, which may store data associated with the organization, including, but not limited to: one or more user identifiers associated with the organization, one or more virtual space identifiers associated with the organization (e.g., workspace identifiers, communication channel identifiers, direct message instance identifiers, collaborative document identifiers, canvas identifiers, audio / video conversation identifiers, etc.), an organization identifier associated with the organization, one or more organization identifiers associated with other organizations authorized to communicate with the organization, and the like.
[0084] In at least one example, the virtual space data 128 may include data associated with one or more virtual spaces associated with the communication platform. The virtual space data 128 may include text data, audio data, video data, images, files, and / or any other type of data configured to be transmitted in association with the virtual space. Non-limiting examples of virtual spaces include workspaces, communication channels, direct messaging instances, collaborative documents, canvases, and audio and / or video conversations. In at least one example, the virtual space data may store data associated with separate virtual spaces, such as based on discrete identifiers associated with each virtual space. In some examples, a first virtual space may be associated with a second virtual space. In such examples, first virtual space data associated with a first virtual space may be stored in association with a second virtual space. For example, data associated with a collaborative document generated in association with a communication channel may be stored in association with the communication channel. As another example, data associated with an audio and / or video conversation conducted in association with a communication channel may be stored in association with the communication channel.
[0085] As described above, each virtual space of the communication platform may be assigned a discrete identifier that uniquely identifies the virtual space. In some examples, the virtual space identifier associated with the virtual space may include a physical address in the virtual space data 128 where data related to the virtual space is stored. A virtual space may be "public," which may allow any user within an organization (e.g., associated with an organization identifier) to join and participate in data sharing through the virtual space, or a virtual space may be "private," which may restrict data communications in the virtual space to certain users or users with appropriate viewing permissions. In some examples, a virtual space may be "shared," which may allow users associated with different organizations (e.g., entities associated with different organization identifiers) to join and participate in data sharing through the virtual space. A shared virtual space (e.g., a shared channel) may be public, such that it can be accessed by any user of either organization, or a shared virtual space (e.g., a shared channel) may be private, such that it is restricted to access by certain users of both organizations (e.g., users with appropriate permissions).
[0086] In some examples, the data repository 124 can be divided into discrete data items (e.g., data shards) that can be accessed and managed separately. Data shards can simplify many technical tasks, such as data retention, expansion (e.g., detecting that message content includes links, crawling metadata for links, and determining a unified overview of metadata), and integration setup. In some examples, data shards can be associated with organizations, groups (e.g., workspaces), communication channels, users, etc.
[0087] In some examples, separate organizations can be associated with database shards within the data repository 124 that store data associated with a particular organization identity. For example, a database shard can store electronic communication data associated with members of a particular organization, which enables members of the particular organization to communicate and exchange data with other members of the same organization in real time or near real time. In examples, the organization itself can be the owner of the database shard and have control over where and how the relevant data is stored. In some examples, a database shard can store data associated with two or more organizations (e.g., such as in a shared virtual space).
[0088] In some examples, individual groups may be associated with database shards within the data repository 124 that store data associated with a particular group identity (e.g., a workspace). For example, a database shard may store electronic communication data associated with members of a particular group, which enables members of the particular group to communicate and exchange data with other members of the same group in real time or near real time. In an example, the group itself may be the owner of the database shard and have control over where and how the relevant data is stored.
[0089] In some examples, a virtual space may be associated with a database shard within data repository 124 that stores data associated with a particular virtual space identity. For example, a database shard may store electronic communication data associated with a virtual space, which enables members of a particular virtual space to communicate and exchange data with other members of the same virtual space in real time or near real time. As described above, communications via the virtual space may be synchronous and / or asynchronous. In at least one example, a group or organization may be the owner of a database shard and may control where and how the associated data is stored.
[0090] In some examples, individual users may be associated with a database shard within data repository 124 that stores data associated with a particular user account. For example, a database shard may store electronic communication data associated with an individual user, which enables the user to communicate and exchange data with other users of a communication platform in real time or near real time. In some examples, the user themselves may be the owner of the database shard and have control over where and how the relevant data is stored.
[0091] The communication interface 112 may include one or more interfaces and hardware components for enabling communication with various other devices (e.g., user computing device 104), such as through network 106 or directly. In some examples, the communication interface 112 may facilitate communication via Websockets, an application programming interface (API) (e.g., using API calls), Hypertext Transfer Protocol (HTTP), etc.
[0092] The server 102 may also be equipped with various input / output devices 114 (e.g., I / O devices). Such I / O devices 114 may include a display, various user interface controls (e.g., buttons, joysticks, keyboards, mice, touch screens, etc.), audio speakers, connection ports, etc.
[0093] In at least one example, user computing device 104 may include one or more processors 130 , computer-readable media 132 , one or more communication interfaces 134 , and input / output devices 136 .
[0094] In at least one example, each of processors 130 may be a single processing unit or multiple processing units and may include a single or multiple computing units or multiple processing cores. Processor 130 may include any type of processor described above with reference to processor 108 and may be the same as or different from processor 108.
[0095] Computer readable media 132 may include any type of computer readable media 132 described above with reference to computer readable media 110, and may be the same as or different from computer readable media 110. Functional components stored in the computer readable media may optionally include at least one application 138 and an operating system 140.
[0096] In at least one example, application 138 may be a mobile application, a web application, or a desktop application, which may be provided by the communication platform or it may be another dedicated application. In some examples, a separate user computing device associated with environment 100 may have an instance or versioned instance of application 138, which may be downloaded from an application store, accessible via the Internet, or otherwise executable by processor 130 to perform operations as described herein. That is, application 138 may be an access point that enables user computing device 104 to interact with server 102 to access and / or use communication services available via the communication platform. In at least one example, application 138 may facilitate data exchange between and among various other user computing devices, for example, via server 102. In at least one example, application 138 may present a user interface, as described herein. In at least one example, a user may interact with the user interface via touch input, keyboard input, mouse input, voice input, or any other type of input.
[0097] Figure 1 A non-limiting example of a user interface 142 is shown in FIG. Figure 1 As shown, the user interface 142 can present data associated with one or more virtual spaces (which may include one or more workspaces). That is, in some examples, the user interface 142 can integrate data from multiple workspaces into a single user interface so that a user (e.g., of the user computing device 104) can access data associated with multiple workspaces associated with it and / or interact with it and / or otherwise communicate with other users associated with multiple workspaces. In some examples, the user interface 142 may include a first area 144 or pane, the first area or pane including an indicator (e.g., a user interface element or object) associated with a workspace associated with a user (e.g., a user's account). In some examples, the user interface 142 may include a second area 146 or pane, the second area or pane including an indicator (e.g., a user interface element, an affordance, an object, etc.) representing data associated with a workspace associated with a user (e.g., a user's account). In at least one example, the second area 146 may represent a sidebar of the user interface 142. Additional details associated with the second area 146 and the indicator are described below.
[0098] In at least one example, the user interface 142 may include a third area 148 or pane that may be associated with a data feed (or "feed") indicating messages posted to one or more communication channels and / or other virtual spaces for facilitating communication (e.g., virtual spaces associated with direct message communications, virtual spaces associated with events and / or actions, etc.) and / or actions taken relative to one or more communication channels and / or other virtual spaces, as described herein. In at least one example, the data associated with the third area 148 may be associated with the same or different workspaces. That is, in some examples, the third area 148 may present data associated with the same or different workspaces via an integrated feed. In some examples, the data may be organized and / or sorted by workspace, time (e.g., time when the associated data is posted or the associated action is otherwise performed), action type, communication channel, user, etc. In some examples, such data may be associated with an indication of which user (e.g., a member of a communication channel) posted the message and / or performed the action. In examples where the third area 148 presents data associated with multiple workspaces, at least some of the data may be associated with an indication of which workspace the data is associated with.
[0099] In at least one example, operating system 140 can manage processor 130 , computer-readable media 132 , hardware, software, etc. of server 102 .
[0100] The communication interface 134 may include one or more interfaces and hardware components for enabling communication with various other devices (e.g., user computing device 104), such as through network 106 or directly. In some examples, the communication interface 134 may facilitate communication via Websockets, APIs (e.g., using API calls), HTTP, etc.
[0101] The user computing device 104 may also be equipped with various input / output devices 136 (e.g., I / O devices). Such I / O devices 136 may include a display, various user interface controls (e.g., buttons, joysticks, keyboards, mice, touch screens, etc.), audio speakers, connection ports, etc.
[0102] Although the techniques described herein are described as being performed by messaging component 116, audio / video component 118, workspace management component 120, and applications 138, the techniques described herein may be performed by any other component or combination of components that may be associated with server 102, user computing device 104, or a combination thereof.
[0103] User interface for a group-based communication system
[0104] Figure 2AA user interface 200 of a group-based communication system is shown, which will be used to illustrate the operation of various embodiments, as discussed in further detail below. A group-based communication system may include communication data such as messages, queries, files, mentions, users or user profiles, interactions, work orders, channels, applications integrated into one or more channels, conversations, workspaces, or other data generated by or shared between users of the group-based communication system. In some cases, the communication data may include data associated with a user, such as a user identifier, channels to which the user has been authorized to access, groups to which the user is associated, permissions, and other user-specific information.
[0105] The user interface 200 includes a plurality of objects, such as panes, text input fields, buttons, messages, or other user interface components that can be viewed by a user of the group-based communication system. As depicted, the user interface 200 includes a title bar 202, a workspace pane 204, a navigation pane 206, a synchronous multimedia collaboration session pane 216, a channel pane 218, and a thread pane 230.
[0106] In some embodiments, title bar 202 includes search bar 220. Search bar 220 can allow users to search for content in the current workspace of the group-based communication system, such as files, messages, channels, members, commands, functions, etc. The user can refine his search by attributes such as content type, content author, and by users associated with the content. The user can optionally search within a specific workspace, channel, direct message conversation, or document. In some embodiments, title bar 202 includes navigation commands that allow the user to move back and forth between different panes and view the history of accessed content. Title bar 202 may include additional resources, such as links to help documents and user configuration settings.
[0107] In some embodiments, a group-based communication system may include multiple different workspaces, each of which is associated with different user groups and channel groups. Each workspace may be associated with a group identifier, and one or more user identifiers may be mapped to the group identifier, or otherwise associated with the group identifier. Users corresponding to such user identifiers may be referred to as members of a group. In some embodiments, the user interface 200 includes a workspace pane 204 for navigating between various workspaces in a group-based communication system, adding or deleting various workspaces. For example, a user may be part of a workspace for Acme, where the user is an employee of Acme or otherwise affiliated with Acme. A user may also be a member of a local volunteer organization, which also collaborates using a group-based communication system. In order to navigate between the two groups, a user may use a workspace pane 204 to change from an Acme workspace to a volunteer organization workspace. A workspace may include one or more channels unique to a workspace and / or one or more channels shared between one or more workspaces. For example, Acme Corporation may have a workspace for an Acme project (such as Project Zen), a workspace for social discussions, and an additional workspace for general corporate affairs. In some embodiments, an organization (such as a particular company) may have multiple workspaces, and a user may be associated with one or more workspaces belonging to an organization. In other embodiments, a particular workspace may be associated with one or more organizations or other entities associated with a group-based communication system.
[0108] In some embodiments, the navigation pane 206 allows a user to navigate between virtual spaces within the group-based communication system such as pages, channels 208, collaborative documents 210 (such as in Figure 2D), applications 214, and direct messages 212. For example, navigation pane 206 may include an indicator representing a virtual space that may aggregate data associated with multiple virtual spaces of which the user is a member. In at least one example, each virtual space may be associated with an indicator in navigation pane 206. In some examples, the indicator may be associated with an actuation mechanism (e.g., an affordance) such that when actuated, it may cause user interface 200 to present data associated with the corresponding virtual space. In at least one example, a virtual space may be associated with all unread data, and all unread data may be associated with each of the workspaces associated with the user. That is, in some examples, if a user requests access to a virtual space associated with "unread," all data that the user has not yet read (e.g., viewed) may be presented, for example, in a feed. In such examples, different types of events and / or actions that may be associated with different virtual spaces may be presented via the same feed. In some examples, such data may be organized and / or sorted by associated virtual space (e.g., a virtual space via which communications are transmitted), time, action type, user, and the like. In some examples, such data may be associated with an indication of which user (eg, a member of an associated virtual space) posted a message and / or performed an action.
[0109] In some examples, virtual spaces can be associated with events and / or actions of the same type. For example, a "thread" can be associated with messages, files, etc. posted in a thread to messages posted in a virtual space, and "mentions and reactions" can be associated with messages or threads in which a user has been mentioned (e.g., via tags) or another user has reacted to a message or thread posted by the user (e.g., via emoticons, reactions, etc.). That is, in some examples, events and / or actions of the same type that can be associated with different virtual spaces can be presented via the same feed. As with the "unread" virtual space, data associated with such a virtual space can be organized and / or sorted by virtual space, time, action type, user, etc.
[0110] In some examples, the virtual space can be associated with facilitating communications between the user and other users of the communication platform. For example, "connect" can be associated with enabling the user to generate an invitation to communicate with one or more other users. In at least one example, in response to receiving an indication of a selection of the "connect" indicator, the communication platform can cause a connection interface to be presented.
[0111] In some examples, the virtual space may be associated with one or more boards or collaborative documents associated with the user. In at least one example, the document may include a collaborative document configured to be accessed and / or edited by two or more users with appropriate permissions (e.g., viewing permissions, editing permissions, etc.). In at least one example, if a user requests access to a virtual space associated with one or more documents associated with the user, the one or more documents may be presented via the user interface 200. In at least one example, as described herein, a document may be associated with an individual (e.g., a user's private document), associated with a group of users (e.g., collaborative documents), and / or associated with one or more communication channels (e.g., members of a communication channel are given access permissions to the document), such as to enable users of the communication platform to create data associated with such documents, interact with such documents, and / or view data associated with such documents. In some examples, a collaborative document may be a virtual space, board, canvas, page, etc., for collaborative communication and / or data organization within a communication platform. In at least one example, a collaborative document may support editable text and / or objects that may be sorted, added, deleted, modified, etc. In some examples, a collaborative document may be associated with permissions that define which users of the communication platform may view and / or edit the document. In some examples, a collaborative document can be associated with a communication channel, and members of the communication channel can view and / or edit the document. In some examples, a collaborative document can be shareable, such that data associated with the document is accessible and / or interactive to members of multiple communication channels, workspaces, organizations, etc.
[0112] In some examples, a virtual space can be associated with a group (e.g., organization, team, etc.) headquarters (e.g., an administrator or command center). In at least one example, a group headquarters can include a virtual or digital headquarters for administrator or command functions associated with a group of users. For example, "HQ" can be associated with an interface that includes a list of indicators associated with virtual spaces that are configured to enable associated members to communicate. In at least one example, a user can associate one or more virtual spaces with the "HQ" virtual space, such as via a drag and drop operation. That is, a user can determine the relevant virtual spaces to be associated with the virtual or digital headquarters, such as to associate virtual spaces that are important to the user with it.
[0113] Although not shown, in some examples, the virtual space can be associated with one or more boards or collaborative documents associated with the user. In at least one example, the document can include a collaborative document that is configured to be accessed and / or edited by two or more users with appropriate permissions (e.g., viewing permissions, editing permissions, etc.). In at least one example, if a user requests access to a virtual space associated with one or more documents associated with the user, the one or more documents can be presented via the user interface 200. In at least one example, as described herein, a document can be associated with an individual (e.g., a user's private document), associated with a group of users (e.g., collaborative documents), and / or associated with one or more communication channels (e.g., members of a communication channel are given access permissions to the document), such as to enable users of the communication platform to create data associated with such documents, interact with such documents, and / or view data associated with such documents. In some examples, a collaborative document can be a virtual space, board, canvas, page, etc. for collaborative communication and / or data organization within a communication platform. In at least one example, a collaborative document can support editable text and / or objects that can be sorted, added, deleted, modified, etc. In some examples, a collaborative document can be associated with permissions that define which users of the communication platform can view and / or edit the document. In some examples, a collaborative document can be associated with a communication channel, and members of the communication channel can view and / or edit the document. In some examples, a collaborative document can be shareable, such that data associated with the document is accessible and / or interactable to members of multiple communication channels, workspaces, organizations, etc.
[0114] In addition, although not shown, in some examples, the virtual space may be associated with one or more canvases associated with the user. In at least one example, the canvas may include a flexible canvas for planning, organizing and sharing information collections between users. That is, the canvas may be configured to be accessed and / or modified by two or more users with appropriate permissions. In at least one example, the canvas may be configured to enable sharing of text, images, videos, GIFs, drawings (e.g., drawings generated by users via a canvas interface), game content (e.g., users synchronously or asynchronously manipulate game controls), etc. In at least one example, modifications to the canvas may include adding, deleting, and / or modifying previously shared (e.g., transmitted, presented) data. In some examples, the content associated with the canvas may be shareable via another virtual space, so that the data associated with the canvas can be accessed and / or rendered by members of the virtual space to enable interaction by members of the virtual space.
[0115] The navigation pane 206 may also include an indicator representing a communication channel. In some examples, the communication channel may include a public channel, a private channel, a shared channel (e.g., between a group or organization), a single workspace channel, a cross-workspace channel, a combination of the foregoing channels, 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-workspaces). In at least one example, if the communication channel is a cross-workspace (e.g., associated with different workspaces), the user may be associated with both workspaces, or alternatively, may be associated with only one of the workspaces. In some examples, the represented communication channel may be associated with a combination of a communication channel associated with a single workspace and a communication channel associated with different workspaces.
[0116] In some embodiments, the navigation pane 206 may depict all communication channels or a subset of all communication channels to which the user has access permissions (e.g., as determined by the permissions data). In such examples, the communication channels may be arranged alphabetically, based on the most recent interaction, based on the frequency of interaction, based on the type of communication channel (e.g., public, private, shared, cross-workspace, etc.), based on the workspace, in a user-specified section, etc. In some examples, the navigation pane 206 may depict all communication channels or a subset of all communication channels to which the user is a member, and the user may interact with the user interface 200 to browse or view other communication channels to which the user is not a member but which are not currently displayed in the navigation pane 206. In some examples, different types of communication channels (e.g., public, private, shared, cross-workspace, etc.) may be in different sections of the navigation pane 206, or may have their own sub-areas or sub-panes in the user interface 200. In some examples, communication channels associated with different workspaces may be in different sections of the navigation pane 206, or may have their own areas or panes in the user interface 200.
[0117] In some examples, the indicator can be associated with a graphical element that visually distinguishes the type of communication channel. For example, project_zen is associated with a lock graphical element. As a non-limiting example, and for the purposes of this discussion, the lock graphical element can indicate that the associated communication channel (project_zen) is private and access to it is limited, while another communication channel (universal) is public and access to it is available to any member of the organization associated with the user. In some examples, additional or alternative graphical elements can be used to distinguish between shared communication channels, communication channels associated with different workspaces, communication channels of which the user is or is not a current member, etc.
[0118] In at least one example, navigation pane 206 may include an indicator representing communications with an individual user or multiple specified users (e.g., rather than all members of an organization or a subset thereof). Such communications may be referred to as "direct messages." Navigation pane 206 may include an indicator representing a virtual space associated with private messages between one or more users.
[0119] Direct messages 212 can be communications between a first user and a second user, or they can be multi-person direct messages between a first user and two or more second users. The navigation pane 206 can be sorted and organized into hierarchical structures or sections according to user preferences. In some embodiments, all channels to which a user has been authorized to access can appear in the navigation pane 206. In other embodiments, a user can choose to hide certain channels or fold sections containing certain channels. The items in the navigation pane 206 can indicate when a new message or update has been received or a new message or update is currently unread, such as by bolding the text associated with the channel where the unread message is located or adding an icon or badge (e.g., with a count of unread messages) to the channel name. In some embodiments, a group-based communication system can additionally or alternatively store permission data associated with the permission of a separate user of a group-based communication system, thereby indicating which channels a user can view or join. Permission can, for example, indicate which users can communicate directly with other users, which channels a user is allowed to access, constraints on separate channels, which workspaces a user is allowed to access, and constraints on separate workspaces.
[0120] Additionally, although not shown, navigation pane 206 may include a subsection that is a personalized subsection associated with a team of which the user is a member. That is, the "Team" subsection may include affordances of one or more virtual spaces associated with the team (such as communication channels, collaborative documents, direct messaging instances, audio or video synchronous or asynchronous conferences, etc.). In at least one example, the user may associate a selected virtual space with the Team subsection, such as by dragging and dropping, setting a pin, or otherwise associating the selected virtual space with the Team subsection.
[0121] Channels within a group-based communication system
[0122] In some embodiments, the group-based communication system is a channel-based messaging platform, such as Figure 2A As shown. Within a group-based communication system, communications can be organized into channels, each dedicated to a specific topic and set of users. A channel is typically a virtual space related to a specific topic, including messages and files posted by members of the channel.
[0123] For the purposes of this discussion, a "message" may refer to any electronically generated digital object provided by a user using a user computing device 104 and configured for display within a communication channel as described herein and / or other virtual spaces for facilitating communication (e.g., a virtual space associated with direct messaging, etc.). A message may include any text, image, video, audio, or combination thereof provided by a user (using a user computing device). For example, a user may provide a message that includes text within the message as well as images and videos as message content. In such examples, the text, images, and videos will include a message. Each message sent or posted to a communication channel of a communication platform may include metadata including a sending user identifier, a message identifier, message content, a group identifier, a communication channel identifier, and the like. In at least one example, each of the aforementioned identifiers may include American Standard Code for Information Interchange (ASCII) text, a pointer, a memory address, and the like.
[0124] Channel discussions can be persisted for days, months, or years, and provide a historical log of user activity. Members of a particular channel can post messages within the channel, which are visible to other members of the channel along with other messages in the channel. Users can select a channel for viewing to see only those messages related to the subject of the channel, without seeing messages posted in other channels on different subjects. For example, a software development company may have different channels for each software product being developed, where developers working on each specific project can have conversations on a roughly single subject (e.g., project) without noise from unrelated subjects. Because channels are typically persistent and involve specific subjects or groups, users can quickly and easily access previous communications for reference. In some embodiments, the channel pane 218 may display information related to the channel that the user has selected in the navigation pane 206. For example, a user may select the project_zen channel to discuss ongoing software development work for project Zen. In some embodiments, the channel pane 218 may include a header, which includes information about the channel, such as the channel name, a list of users in the channel, and other channel controls. Users may be able to pin items to the header for later access, and may be able to add bookmarks to the header. In some embodiments, a link to a collaborative document may be included in the header. In other embodiments, each channel may have a corresponding virtual space that includes channel-related information, such as a channel overview, tasks, bookmarks, pinned documents, and other channel-related links that may be editable by members of the channel.
[0125] A communication channel or other virtual space may be associated with data and / or content that is different from or associated with a message. For example, non-limiting examples of additional data that may be presented via the channel pane 218 of the user interface 200 include collaborative documents (e.g., documents that may be collaboratively edited in real time or near real time, etc.), audio and / or video data associated with a conversation, members added to and / or removed from a communication channel, files (e.g., file attachments uploaded and / or removed from a communication channel), applications added to and / or removed from a communication channel, postings added to and / or removed from a communication channel (data that may be collaboratively edited in near real time by one or more members of a communication channel), descriptions added to, modified and / or removed from a communication channel, modifications to properties of a communication channel, etc.
[0126] Channel pane 218 may include messages such as message 222, which are content posted by users in a channel. Users may post text, images, videos, audio, or any other files as message 222. In some embodiments, a specific identifier may be represented (in a message or elsewhere) by prefixing a specific identifier with a predetermined character. For example, a channel may be prefixed with a "#" character (as in #project_zen), and a user name may be prefixed with an "@" character (as in @austin_a). A message (such as message 222) may include an indication of which user posted the message and the time the message was posted. In some embodiments, a user may react to a message (such as message 222) by selecting a reaction button 224. Reaction button 224 allows a user to select an icon (sometimes referred to as a reaction emoticon in context) that will be associated with the message, such as a thumbs up. A user may respond to another user's message (such as message 222) with a new message (such as message 222). In some embodiments, such conversations in a channel may be further broken down into threads. Threads can be used to aggregate messages related to a particular conversation to make it easier to follow and reply to the conversation without cluttering the main channel with the discussion. Below the message where the thread started, a thread reply preview 226 appears. The thread reply preview 226 can show information related to the thread, such as the number of replies and the members who have replied. The thread replies can appear in a thread pane 230 that can be separate from the channel pane 218 and can be viewed by other members of the channel by selecting the thread reply preview 226 in the channel pane 218.
[0127] In some embodiments, one or both of the channel pane 218 and the thread pane 230 may include a writing pane 228. The writing pane 228 allows the user to write a message 222 and transmit it to the member of the channel or those members of the channel who are following the thread (when sending a message in a thread). The writing pane 228 may have text editing functions, such as bold, strikethrough, and italics. The writing pane 228 may also allow the user to format their message or attach files, such as collaborative documents, images, videos, or any other files to be shared with other members of the channel. In some embodiments, the writing pane 228 may implement additional formatting options, such as numbered or bulleted lists, via a user interface or API. The writing pane 228 may also be used as a workflow trigger to initiate a workflow associated with a channel or message. In other embodiments, the link or document sent via the writing pane 228 may include an expansion instruction associated with how the content should be displayed.
[0128] Synchronous multimedia collaboration sessions
[0129] Figure 2B A synchronous multimedia collaboration session that has been triggered from a channel is shown, as shown in pane 216. Synchronous multimedia collaboration sessions can provide environmental self-organizing multimedia collaboration in a group-based communication system. Users of a group-based communication system can quickly and easily join and leave these synchronous multimedia collaboration sessions at any time without causing other users to interrupt the synchronous multimedia collaboration session. In some embodiments, the synchronous multimedia collaboration session can be based on a specific topic, a specific channel, a specific direct message or multi-person direct message, or a user set, while in other embodiments, the synchronous multimedia collaboration session can exist without being bound to any channel, topic, or user set.
[0130] The synchronous multimedia collaboration session pane 216 can be associated with a session conducted for multiple users in a channel, a user in a multi-person direct message conversation, or a user in a direct message conversation. Therefore, a synchronous multimedia collaboration session for a specific channel or conversation can be started by one or more members of a specific channel, a multi-person direct message conversation, or a direct message conversation. A user can start a synchronous multimedia collaboration session in a channel as a means of communicating with other members of the channel who are currently online. For example, a user may have an urgent decision and want to get immediate verbal feedback from other members of the channel. As another example, a synchronous multimedia collaboration session with one or more other users of a group-based communication system can be initiated through direct messaging. In some embodiments, the audience of the synchronous multimedia collaboration session can be determined based on the context in which the synchronous multimedia collaboration session is initiated. For example, starting a synchronous multimedia collaboration session in a channel can automatically invite the entire channel to attend. As another example, starting a synchronous multimedia collaboration session allows a user to start an instant audio and / or video conversation with other members of the channel without scheduling or initiating a communication session through a third-party interface. In some embodiments, users can be directly invited to attend a synchronous multimedia collaboration session via a message or notification.
[0131] A synchronous multimedia collaboration session may be a brief, transient session in which no data is persisted. Alternatively, in some embodiments, the synchronous multimedia collaboration session may be recorded, transcribed, and / or summarized for later review. In other embodiments, the content of the synchronous multimedia collaboration session may be automatically persisted in a channel associated with the synchronous multimedia collaboration session. Members of a particular synchronous multimedia collaboration session may post messages within a messaging thread associated with the synchronous multimedia collaboration session, which are visible to other members of the synchronous multimedia collaboration session along with other messages in the thread.
[0132] The multimedia in the synchronous multimedia collaboration session may include any or all of collaboration tools, such as audio, video, screen sharing, collaborative document editing, whiteboard, collaborative programming, or any other form of media. The synchronous multimedia collaboration session may also allow the user to share the user's screen with other members of the synchronous multimedia collaboration session. In some embodiments, members of the synchronous multimedia collaboration session may mark, comment, draw, or otherwise annotate the shared screen. In other embodiments, such annotations may be saved and persisted after the synchronous multimedia collaboration session has ended. Canvases may be created directly from the synchronous multimedia collaboration session to further enhance collaboration between users.
[0133] In some embodiments, the user can Figure 2BThe synchronous multimedia collaboration session pane 216 shown in the figure can be used to start a synchronous multimedia collaboration session by switching back and forth. Once the synchronous multimedia collaboration session has begun, the synchronous multimedia collaboration session pane 216 can be expanded to provide information about the synchronous multimedia collaboration session (such as how many members there are, which user is currently speaking, which user is sharing the user's screen) and / or a screen sharing preview 231. In some embodiments, the users in the synchronous multimedia collaboration session can be displayed using icons indicating that the user is participating in the synchronous multimedia collaboration session. In other embodiments, the expanded view of the participants can show which users are active and which users are not active in the synchronous multimedia collaboration session. The screen sharing preview 231 can depict a desktop view of the user sharing the user's screen, or a specific application or presentation. Changes to the user's screen will be automatically depicted in the screen sharing preview 231, such as the user advancing to the next slide in the presentation. In some embodiments, the screen sharing preview 231 can be actuated so that the screen sharing preview 231 is enlarged so that it is displayed as its own pane within the group-based communication system. The synchronous multimedia collaboration session pane 216 may include tools for the synchronous multimedia collaboration session that allow the user to mute the user's microphone or invite other users. In some embodiments, the synchronous multimedia collaboration session pane 216 may include a screen sharing button 232. The screen sharing button 232 may allow a user to share a user screen with other members of the synchronous multimedia collaboration session pane 216. In some embodiments, the screen sharing button 232 may provide additional controls to the user during screen sharing. For example, additional screen sharing controls may be provided to the user sharing the user screen to specify which screen is shared, annotate the shared screen, or save the shared screen. When there is no active synchronous multimedia collaboration session, the synchronous multimedia collaboration session pane 216 may be associated with the currently selected channel, direct message, or multi-person direct message, so that the synchronous multimedia collaboration session may be initiated and associated with the currently selected channel, direct message, or multi-person direct message. Similarly, when the synchronous multimedia collaboration session is active, the synchronous multimedia collaboration session pane 216 may be associated with the channel in which the synchronous multimedia collaboration session is initiated. In some embodiments, the synchronous multimedia collaboration session pane 216 may alternatively not be associated with any channel, multi-person direct message, or direct message.
[0134] The list of synchronous multimedia collaboration sessions may include one or more active synchronous multimedia collaboration sessions selected for recommendation. For example, a synchronous multimedia collaboration session may be selected from a plurality of currently active synchronous multimedia collaboration sessions. In addition, a synchronous multimedia collaboration session may be selected based in part on user interactions with the session or some associations of an instant user with a session or users involved in the session. For example, a recommended synchronous multimedia collaboration session may be displayed based in part on the fact that the instant user has been invited to the corresponding synchronous multimedia collaboration session or has previously collaborated with a user in the recommended synchronous multimedia collaboration session. In some embodiments, the list of synchronous multimedia collaboration sessions also includes additional information for each corresponding synchronous multimedia collaboration session, such as an indication of participating users or the number of participating users, the subject of the synchronous multimedia collaboration session, and / or an indication of an associated group-based communication channel, a multi-person direct message conversation, or a direct message conversation.
[0135] In some embodiments, the list of recommended active users may include multiple group-based communication system users recommended based on at least one of user activity, user interaction, or other user information. For example, the list of recommended active users may be selected based on the following items: the active status of users within the group-based communication system; historical, recent, or frequent user interactions with instant users (such as communicating within a group-based communication channel); or similarities between recommended users and instant users (such as determining common membership in a channel shared by the recommended user and the instant user). In some embodiments, machine learning techniques (such as cluster analysis) may be used to determine recommended users. The list of recommended active users may include status user information for each recommended user, such as whether the recommended user is active, in a meeting, idle, in a synchronous multimedia collaboration session, or offline. In some embodiments, the list of recommended active users also includes a plurality of actuable buttons corresponding to some or all of the recommended users (e.g., those recommended users with a status indicating availability), and the plurality of actuable buttons, when selected, may be configured to initiate at least one of a text-based communication session (such as a direct message conversation) or a synchronous multimedia collaboration session.
[0136] In some embodiments, one or more recommended asynchronous multimedia collaboration sessions or conferences are displayed in the asynchronous conference segment. Compared with synchronous multimedia collaboration sessions (as described above), asynchronous multimedia collaboration sessions allow each participant to collaborate at a time convenient for them. Then, the collaborative participation is recorded for later consumption by other participants, and these participants can generate additional multimedia replies. In some embodiments, the reply is aggregated in a multimedia thread (e.g., a video thread) corresponding to the asynchronous multimedia collaboration session. For example, an asynchronous multimedia collaboration session can be used for an asynchronous conference, wherein a topic is posted in a message at the beginning of a conference thread, and the participants of the conference can reply by posting a message or a video response. Then, the resulting thread includes any document, video or other file related to the asynchronous conference. In some embodiments, a preview of a subset of video replies can be shown in an asynchronous collaboration session or thread. This can allow, for example, a user to jump to the relevant segment of an asynchronous multimedia collaboration session or restart from where they were previously interrupted.
[0137] In some embodiments, a group-based communication system may include one or more canvases (or one or more links to a canvas). A canvas may include a flexible workspace for planning, organizing and sharing information collections between users. Such canvases may be associated with synchronous multimedia collaboration sessions, asynchronous multimedia collaboration sessions, channels, multi-person direct message conversations, or direct message conversations. Alternatively or additionally, a user may have one or more private canvases that are not associated with any other user. A shared canvas may be configured to be accessed and / or modified by two or more users with appropriate permissions. In some embodiments, a canvas may be configured to enable sharing of content, including (but not limited to) text, images, videos, GIFs, drawings (e.g., drawings generated by users of a drawing interface), or game content. In some embodiments, users accessing a canvas may add new content or delete (or modify) previously added content. In some embodiments, a user may need appropriate permissions to add content or delete or modify content added by different users. Therefore, for example, some users may only be able to access a canvas in a view-only mode, while other users may be able to access a canvas in an edit mode that allows those users to add or modify their content. In some examples, a canvas can be shared via a message in a channel, a multi-person direct message, or a direct message, so that data associated with the canvas can be accessed by members of the channel or the multi-person direct message or recipients of the direct message and / or rendered to be interactive by members of the channel or the multi-person direct message or recipients of the direct message.
[0138] Connect within a group-based communication system
[0139] Figure 2CThe user interface 200 is shown displaying a contact pane 252. The contact pane 252 provides the user with tools and resources to communicate across different organizations, each of which may have its own (typically private) instance of a group-based communication system, or may not yet belong to a group-based communication system. For example, a first software company may have a joint venture with a second software company with which they wish to collaborate in jointly developing a new software application. The contact pane 252 may enable the user to determine which other users and organizations are already within the group-based communication system, and to invite those users and organizations that are currently outside the group-based communication system to join.
[0140] The contact pane 252 may include a contact search bar 254, a recent contact 256, a connection 258, a create channel button 260, and a start direct message button 262. The contact search bar 254 allows the user to search for users within the group-based communication system. In some embodiments, only users from organizations that have contact with the user's organization will be shown in the search results. In other embodiments, users from any organization that uses a group-based communication system may be displayed. In other embodiments, users from organizations that have not yet used group-based communication may also be displayed, allowing the search user to invite them to join the group-based communication system. In some embodiments, users may be searched via the user's group-based communication system username or their email address. In some embodiments, email addresses may be suggested or automatically completed based on external data sources such as an email directory or a contact list of the search user.
[0141] In some embodiments, external organizations can be shown as well as individual users in response to a user search. External organizations can be matched based on organization name or Internet domain, because search results can include organizations that have not yet joined the group-based communication system (similar to the search and matching for a specific user discussed above). External organizations can be ranked based in part on how many users from the user's organization have contact with users of the external organization. In response to selecting an external organization in the search results, the searching user can be able to invite the external organization to contact via the group-based communication system.
[0142] In some embodiments, recent contacts 256 can display users with whom the instant user has recently interacted. Recent contacts 256 can display the user's name, company, and status indication. Recent contacts 256 can be sorted based on which contacts the instant user interacts with most frequently or based on which contacts the instant user has recently interacted with. In some embodiments, each recent contact in recent contacts 256 can be an actuatable control that allows the instant user to quickly start a direct message conversation with the recent contact, invite them to a channel, or take any other appropriate user action with the recent contact.
[0143] In some embodiments, connections 258 may display a list of companies (e.g., organizations) with which the user has interacted. For each company, the name of the company may be displayed along with the company's logo and an indication of how many times the user has interacted with the company (e.g., number of conversations). In some embodiments, each of connections 258 may be an actuatable control that allows the instant user to quickly invite an external organization to a shared channel, display recent connections with an external organization, or take any other appropriate organizational action on the connection.
[0144] In some embodiments, the create channel button 260 allows the user to create a new shared channel between two different organizations. Selecting the create channel button 260 may also allow the user to name the new contact channel and enter a description for the contact channel. In some embodiments, the user may select one or more external organizations or one or more external users to add to the shared channel. In other embodiments, the user may add external organizations or external users to the shared channel after the shared channel is created. In some embodiments, the user may choose whether to make the contact channel private (i.e., accessible only by invitation from current members of the private channel).
[0145] In some embodiments, the start direct message button 262 allows the user to quickly start a direct message (or multi-person direct message) with an external user at an external organization. In some embodiments, the external user identifier at the external organization can be provided by the instant user as a group-based communication system user name of the external user or as an email address of the external user. In some embodiments, the analysis of the email domain of the email address of the external user can affect the message between the user and the external user. For example, the identifier of the external user can (for example, based on the email address domain) indicate that the organization of the user and the organization of the external user have been contacted. In some such embodiments, the email address can be converted into a group-based communication system user name. Alternatively, the identifier of the external user can indicate that the organization of the external user belongs to a group-based communication system, but is not contacted with the organization of the instant user. In some such embodiments, an invitation to contact the organization of the instant user can be generated in response. As another alternative, the external user can not be a member of the group-based communication system, and an invitation to join the group-based communication system as a visitor or member can be generated in response.
[0146] Collaborative Documents
[0147] Figure 2DA user interface 200 is shown displaying a collaborative document pane 264. A collaborative document can be any file type, such as a PDF, video, audio, word processing document, and the like, and is not limited to a word processing document or a spreadsheet. A collaborative document can be modified and edited by two or more users. A collaborative document can also be associated with different user permissions, such that based on the user's permissions on the document (or a section of a document, as described below), a user can be selectively allowed to view, edit, or comment on a collaborative document (or a section of a collaborative document). Thus, users within a set of users that can access a document can have varying permissions for viewing, editing, commenting on, or otherwise handing over a collaborative document. A collaborative document can allow users to create and modify a document concurrently or asynchronously. A collaborative document can be integrated with a group-based communication system and can both initiate workflows and be used to store the results of workflows, which will be discussed below with respect to Figure 3A and Figure 3B The collaborative document pane 264 may include a collaborative document toolbar 266 and a collaborative document 268. In some embodiments, the collaborative document toolbar 266 may provide the ability to bold, italicize, underline, or otherwise format text, the ability to undo or redo actions, the ability to insert and format pictures and shapes, or any other word processing functionality to modify the content within the collaborative document 268.
[0148] In some embodiments, the collaborative document may include a free-form unstructured segment and a workflow-related structured segment. In some embodiments, the unstructured segment may include an area of the document where the user can freely modify the collaborative document without any constraints. For example, the user may be able to freely type text to explain the purpose of the document. In some embodiments, the user may add a workflow or structured workflow segment by typing the name of the workflow (or otherwise mentioning the workflow). In other embodiments, typing the "at" sign (@) or a previously selected symbol or a predetermined special character or symbol may provide the user with a list of workflows that the user may choose to add to the document. For example, a user may indicate that a marketing team member needs to sign a proposal to initiate a workflow that ends when a member of the marketing team approves the proposal by typing "! Marketing Approval". Placing an exclamation mark before the group name of "Marketing Approval" initiates a request for a standard action, in this case routing the proposal for approval. In some embodiments, the structured segment may include a text input, a selection menu, a table, a check box, a task, a calendar event, or any other document segment. In other embodiments, the structured segment may include a text input space that is part of a workflow. For example, a user may enter text detailing the reason for seeking approval into the text input space and then select a submit button that will advance the workflow to the next step of the workflow. In some embodiments, a user may be able to add, edit or remove structured sections of a document that constitute a workflow component.
[0149] In an embodiment, a segment of a collaborative document may have a separate permission associated with it. For example, a collaborative document with a segment with a separate permission may provide a first user with permission to view, edit, or comment on the first segment, while a second user does not have permission to view, edit, or comment on the first segment. Alternatively, a first user may have permission to view a first segment of a collaborative document, while a second user has permission to view and edit the first segment of a collaborative document. Permissions associated with a particular segment of a document may be assigned by a first user via various methods, including manually selecting a particular segment of a document by the first user or another user with permission to assign, typing or selecting an "assign" indicator (such as an "@" symbol), or selecting a segment by the name of the segment. In other embodiments, permissions may be assigned to multiple collaborative documents at a single instance via these methods. For example, multiple collaborative documents each have a segment titled "Group Information," where a first user with permission to assign permissions expects that the entire user group may access information in the "Group Information" segment of multiple collaborative documents. In an embodiment, the first user can select multiple collaborative documents and a "Group Information" section to enable permission for the entire user group to access (or view, edit, etc.) the "Group Information" section of each of the multiple collaborative documents. In some embodiments, the collaborative document includes one or more tasks 270 and one or more corresponding assignment options 272, as shown. In some embodiments, an assignment drop-down menu 274 can be displayed in response to the user selecting an assignment option in the one or more assignment options 272.
[0150] Automation in group-based communication systems
[0151] Figure 3A A user interface 300 for automating in a group-based communication system is shown. Automation, also known as workflow, allows a user to automate functionality within a group-based communication system. A workflow builder 302 is depicted, which allows a user to create new workflows, modify existing workflows, and review workflow activities. The workflow builder 302 may include a workflow tab 304, an activity tab 306, and a settings tab 308. In some embodiments, the workflow builder may include a publish button 314 that allows a user to publish a new or modified workflow.
[0152] The workflow tab 304 may be selected to enable the user to create a new workflow or modify an existing workflow. For example, the user may wish to create a workflow to automatically welcome new users who join a channel. The workflow may include a workflow step 310. The workflow step 310 includes at least one trigger that initiates the workflow and at least one function that takes action once the workflow is triggered. For example, when a user joins a channel, the workflow may be triggered, and the function of the workflow may be to publish a welcome new user within the channel. In some embodiments, the workflow may be triggered from a user action (such as a user reacting to a message, joining a channel, or collaborating in a collaborative document), from a scheduled date and time, or from a web request from a third-party application or service. In other embodiments, the workflow functionality may include sending a message or form to a user, a channel, or any other virtual space, modifying a collaborative document, or interfacing with an application. The workflow functionality may include a workflow variable 312. For example, a welcome message may include the user's name via a variable to implement a custom message. The user may edit an existing workflow step or add a new workflow step according to the desired workflow functionality. Once the workflow is complete, the user may use the publish button 314 to publish the workflow. The published workflow will wait until it is triggered, at which time the functionality will be executed.
[0153] The activity tab 306 can display information related to the activities of the workflow. In some embodiments, the activity tab 306 can show how many times the workflow has been executed. In other embodiments, the activity tab 306 can include information related to each workflow execution, including the status, the last activity date, the execution time, the user who initiated the workflow, and other relevant information. The activity tab 306 can allow the user to sort and filter the workflow activities to find useful information.
[0154] The settings tab 308 may allow the user to modify the settings of the workflow. In some embodiments, the user may change the title or icon associated with the workflow. The user may also manage collaborators associated with the workflow. For example, the user may add additional users as collaborators to the workflow so that the additional users may modify the workflow. In some embodiments, the settings tab 308 may also allow the user to delete a workflow.
[0155] Figure 3BElements related to workflow in a group-based communication system are depicted and generally referred to by reference numeral 316. In various embodiments, trigger 318 is configured to invoke execution of function 336 in response to a user instruction. Triggers initiate function execution and may take the form of schedule 320, webhook 322, shortcut 324, or slash command 326. In some embodiments, schedule 320 operates like a timer, such that a trigger may be scheduled to fire periodically or once at a predetermined click in the future. In some embodiments, an end user of an event-based application sets an arbitrary schedule for the firing of a trigger, such as once an hour or every day at 9:15 a.m.
[0156] Additionally, trigger 318 may take the form of a webhook 322. Webhook 322 is a software component that listens at a webhook URL and port. In some embodiments, the trigger fires when an appropriate HTTP request is received at the webhook URL and port. In some embodiments, webhook 322 requires appropriate authentication, such as through a bearer token. In other embodiments, the trigger will depend on the payload content.
[0157] Another source of a trigger in triggers 318 is a shortcut in shortcuts 324. In some embodiments, shortcuts 324 are global to the group-based communication system, rather than specific to a group-based communication system channel or workspace. A global shortcut can trigger a function that can be performed without the context of a specific group-based communication system message or group-based communication channel. In contrast, a message- or channel-based shortcut is specific to a group-based communication system message or channel and operates in the context of a group-based communication system message or group-based communication channel.
[0158] Another source of one of the triggers 318 may be provided by a slash command 326. The slash command 326 may be used as an entry point to a group-based communication system function, integration with an external service, or a group-based communication system message response. In some embodiments, the slash command 326 may be input by a user of the group-based communication system to trigger execution of the application functionality. The slash command may be followed by slash command line parameters that may be passed to any group-based communication system function invoked in conjunction with the triggering of a group-based communication system function, such as one of the functions 336.
[0159] An additional way to call a function is when an event (such as one of the events in event 328) matches one or more conditions predetermined in a subscription (such as subscription 334). Event 328 can be subscribed to by any number of subscriptions 334, and each subscription can specify different conditions and trigger different functions. In some embodiments, the event is implemented as a group-based communication system message received in one or more group-based communication system channels. For example, all events can be published as non-user visible messages in an associated channel monitored by subscription 334. Application events 330 can be group-based communication system messages with associated metadata, which are created by applications in group-based communication system channels. Event 328 can also be a direct message received by one or more group-based communication system users (which can be actual users or technical users, such as robots). Robots are technical users of group-based communication systems for automating tasks. Robots can be programmatically controlled to perform various functions. Robots can monitor and help process group-based communication system channel activities, as well as publish messages in group-based communication system channels and react to member activities within the channel. Bots may be able to post messages and upload files, as well as be invited to or removed from public and private channels in a group-based communication system.
[0160] Event 328 may also be any event associated with a group-based communication system. Such group-based communication system events 332 include events related to the creation, modification, or deletion of a user account in a group-based communication system, or events related to messages in a group-based communication system channel, such as creating a message, editing or deleting a message, or reacting to a message. Event 328 may also involve the creation, modification, or deletion of a group-based communication system channel or the membership of a channel. Event 328 may also involve user profile modification or group creation, membership maintenance, or group deletion.
[0161] As described above, subscriptions 334 indicate one or more conditions that trigger a function when matched by an event. In some embodiments, a set of event subscriptions is maintained in conjunction with a group-based communication system so that when an event occurs, information about the event is matched to a set of subscriptions to determine which, if any, of functions 336 should be invoked. In some embodiments, the events to which a particular application can subscribe are managed by an authorization framework. In one embodiment, the types of events that are matched to subscriptions are managed by OAuth permission scopes, which can be maintained by an administrator of a particular group-based communication system.
[0162] Function 336 is triggered by triggers 318 and events 328 to which the function subscribes. Function 336 takes zero or more inputs, performs processing (potentially including accessing external resources), and returns zero or more results. Function 336 can be implemented in various forms. First, there are group-based communication system built-ins 338, which are associated with the core functionality of a particular group-based communication system. Some examples include creating group-based communication system users or channels. Second, there is a no-code builder function 340, which can be developed by a user of a group-based communication system user in conjunction with an automated user interface (such as a workflow builder user interface). Third, there is a managed code function 342, which is implemented by developing a group-based communication system application as software code in conjunction with a software development environment.
[0163] These various types of functions 336 can in turn be integrated with API 344. In some embodiments, API 344 is associated with third-party services that are used by functions 336 to provide custom integration between specific third-party services and the group-based communication system. Examples of third-party service integrations include video conferencing, sales, marketing, customer service, project management, and engineering application integration. In such an example, one of the triggers 318 would be a slash command 326 that triggers managed code function 342, which makes an API call to a third-party video conferencing provider through one of the APIs in API 344. Figure 3B As shown, API 344 itself may also be the source of any number of triggers 318 or events 328. Continuing with the above example, successful completion of the video conference would trigger one of functions 336 to send a message to the third-party video conference provider initiating a further API call to download and archive a recording of the video conference and store it in a group-based communication system channel.
[0164] In addition to integrating with API 344, functionality 336 can persist and access data in table 346. In some embodiments, table 346 is implemented in conjunction with a database environment associated with a serverless execution environment in which a particular event-based application is executing. In one embodiment, table 346 can be provided in conjunction with a relational database environment. In other embodiments, table 346 is provided in conjunction with a database mechanism that does not employ relational database technology. Figure 3B As shown, in some embodiments, reading or writing certain data to one or more tables 346 or data in a table matching a predefined condition is itself the source of some number of triggers 318 or events 328. For example, if table 346 is used to maintain ticketing data in an incident management system, a count of open tickets exceeding a predetermined threshold may trigger the posting of a message in an incident management channel in a group-based communication system.
[0165] Figure 3C An exemplary block diagram 350 related to some embodiments of the present invention is shown. In some embodiments, the block diagram 350 includes a button 352, as shown. In some embodiments, the button 352 includes a visual representation displayed in a user interface (such as in a virtual space 354 of a group-based communication system 356), as shown. In some embodiments, the button 352 can be actuated by a user 358 of a group-based communication system. For example, in some embodiments, the button 352 can be displayed in the context of a group-based communication system 356, such as displayed in a virtual space 354, so that the user 358 can select the button 352 from the user interface. In some embodiments, the virtual space 354 includes a channel, a direct message channel, a collaborative document environment, a synchronous multimedia collaborative session, or any other suitable context of a group-based communication system. It should be understood that in some embodiments, the button 352 can include one or more actuable options. For example, in some embodiments, the button 352 includes a plurality of selectable options, so that the user 358 can actuate the button 352 by selecting any one of the options. Thus, button 352 may initiate different operations based on which particular option is selected, as will be described in further detail below.Alternatively, in some embodiments, a button may be included with a single selectable option.
[0166] In some embodiments, the button 352 initiates the workflow 360 when actuated. In some such embodiments, the workflow 360 can be initiated and executed from within the group-based communication system 356. In addition, embodiments are contemplated in which the workflow 360 is initiated within the group-based communication system 356 but is at least partially executed within one or more external applications 362. In some embodiments, the workflow 360 can be associated with a network hook 364. For example, the network hook 364 can be used to provide communication between the group-based communication system 356 and one or more external applications 362. In some embodiments, one or more operations of the workflow 360 can be implemented by submitting an HTTP request via the network hook 364. In addition, embodiments are also contemplated in which the workflow 360 can be initiated from the outside. For example, the actuation of the button 352 can cause the transmission of an HTTP request, which initiates the workflow 360 within one or more external applications 362. In some embodiments, the workflow 360 can provide one or more return values to the button 352. For example, the workflow 360 may transmit a confirmation response back to the button 352, thereby confirming that the workflow 360 was successfully completed. Alternatively or additionally, in some embodiments, the return value transmitted from the workflow 360 may include any of a confirmation response, an error indication, or any of a variety of additional information, such as information obtained from one or more external applications 362. In some embodiments, the button 352 may be updated based at least in part on these return values. In some embodiments, the state of the button 352 or the virtual space 354 may be changed based on the execution of the workflow 360 or the webhook 364. For example, the button 352 may be changed visually and / or functionally based on the execution of the workflow 360, as will be described in further detail below.
[0167] It should be understood that in some embodiments, button 352 can initiate multiple workflows and functions. For example, in some embodiments, a button can be configured to initiate a first workflow, and the first workflow calls a second workflow after completion. Alternatively, it is envisioned that the actuation of a button simultaneously initiates an embodiment of two or more workflows. Therefore, it is envisioned that a button can be used to activate any number of workflows simultaneously or continuously. In some embodiments, as described herein, button 352 can include any one of a graphical element, an image, a picture, an icon, a text, a video, an additional selectable item, etc. In addition, in some embodiments, the action described herein relative to button 352 can be performed using a separate interface object not included in the button, such as any one of a graphical element, an image, a picture, an icon, a text, a video, and selectable items and other interface objects.
[0168] In some embodiments, button-based initiation of workflow 360 allows one or more contextual variables to be considered when initiating and / or executing workflow 360. For example, in some embodiments, button 352, when actuated, passes one or more contextual parameters to workflow 360, such that at least one operation of workflow 360 can be contextually executed based on the context of button 352. In some embodiments, the contextual parameters include an indication of virtual space 354, such as a channel identifier, a collaborative document identifier, or a session identifier, and an indication of one or more users, such as a user identifier of user 358 who actuated button 352, or in some cases, a user identifier of a user who created or published button 352 within virtual space 354. Thus, workflow 360 can inherit the context of button 352 and can be contextually executed based on the context. In some embodiments, one or more operations of workflow 360 can be executed differently based on the context received from button 352. Thus, initiating a workflow using a button can provide multiple benefits, such as contextually executing a workflow by considering the contextual parameters of a group-based communication system. However, it should be understood that button-based initiation of workflow 360 is merely one example, and workflow 360 may be initiated by any of a variety of other triggers, as described above with respect to Figure 3B As described.
[0169] Buttons in channels
[0170] Figure 4A A user interface 400 relative to an exemplary scenario relevant to some embodiments of the present invention is shown. In some embodiments, the user interface 400 may be similar to the user interface 200 as described above, and include similar elements, as shown. In addition, in some embodiments, the user interface 400 may be displayed to the first user. In one example, the first user wishes to generate a request button to be published within a channel of a group-based communication system. Therefore, the first user may generate a request button, for example, by typing into a writing pane 228, as shown. In some embodiments, the first user may generate a request button using slash commands, shortcuts, and other suitable techniques not explicitly described herein. In some embodiments, the first user may begin typing the word "request" into a writing pane 228, which causes a suggestion menu including making a request shortcut to be displayed.
[0171] In some embodiments, a generation request modality 402 for display in user interface 200 can be generated, as shown, including a text input 404 for adding a description to the request. In some embodiments, text input 404 includes a multi-line input that allows a user to input multiple lines of text, variables or other characters and combinations thereof. In addition, in some embodiments, the generation request modality 402 includes a run actuator 406 configured to activate the generated request button and a cancel actuator 408 configured to terminate the creation of the request button. In some embodiments, the selection of cancel actuator 408 closes the generation request modality 402 and returns to the previous page of user interface 400. In some embodiments, the selection of run actuator 406 publishes an associated button in the context of a group-based communication system (such as in a channel).
[0172] Figure 4B 4 shows a user interface 400 related to some embodiments of the present invention relative to the above-described continuing exemplary scenario. In some embodiments, one or more other users may be displayed such as Figure 4B In the user interface 400 depicted in FIG. 1 , for example, in the first user selection Figure 4A After running actuator 406 as shown in . In some embodiments, request button 410 can be posted in the channel, as shown. Here, request button 410 includes a description 412 of the request, which can correspond to Figure 4A 404. In addition, in some embodiments, description 412 also includes an indication of which user generated request button 410, as shown. In addition, in some embodiments, request button 410 includes approval option 414 and veto option 416. In some embodiments, approval option 414 and veto option 416 can be displayed only to one or more users with specific approval permissions. For example, it is envisioned that only administrator users can approve or veto the generated request. In some embodiments, each of the approval option 414 and veto option 416 of request button 410 is configured to initiate a workflow. For example, approval option 414 can initiate an approval workflow, and veto option 416 can initiate a veto workflow.
[0173] In some embodiments, the request button 410 can be associated with an external request application that is configured to handle matters related to the request (such as tracking the status of multiple requests). For example, the group-based communication system can interface with the external request application via an API that provides two-way communication between the group-based communication system and the external request application. Here, a request table storing information about various requests and their status can be generated and updated by the external request application based on activities within the group-based communication system, such as a user approving the request by selecting the approval option 414 of the request button 410. Alternatively, an embodiment is envisioned in which the request table can be natively hosted by the group-based communication system. In some embodiments, the request table can be updated by a workflow initiated by actuating the request button 410 (such as a user selecting either the approval option 414 or the rejection option 416).
[0174] Figure 4C A user interface 400 is shown that is related to some embodiments of the present invention relative to further continuing the exemplary scenario described above. In some such embodiments, the request button 410 can be replaced with a request message 420, as shown. In some embodiments, the request message 420 can be generated based at least in part on information associated with the request button 410. For example, the request message 420 can include an indication of the user who submitted the button, and an indication of the user who pressed the button. For example, after the second user selects the approval option 414, the request message 420 can replace the request button 410 in the channel. Therefore, the request message 420 can include an indication of the second user, and an indication of the option selected by the second user.
[0175] In some embodiments, replacing request button 410 with request message 420 is an operation of a workflow initiated by selecting request button 410. For example, when the user selects approve option 414, an approval workflow may be initiated that removes request button 410 and generates request message 420 based on context information received from request button 410.
[0176] Buttons in collaborative documents
[0177] Figure 5AAn exemplary user interface 500 of a group-based communication system related to some embodiments of the present invention is shown. In some embodiments, the user interface 500 includes a collaborative document 268, as shown in the figure. In an exemplary scenario, the collaborative document 268 is a new blank document edited by a group-based communication system interface. Therefore, the user can use a slash command or in some embodiments, by entering a comment 502 in the collaborative document 268 and typing "@" in the collaborative document 268 to initiate the creation of a button, as shown in the figure. Here, a shortcut menu 504 can be generated for display in the user interface 500, including multiple options for the user to select. In some embodiments, the multiple options of the shortcut menu 504 can include a workflow button option 506, as shown in the figure, to initiate the creation of a workflow button in the collaborative document 268. Alternatively or additionally, in some embodiments, the user can use various other means to initiate the creation of a button. For example, in some embodiments, a button can be published in a group-based communication system by copying and pasting, dragging and dropping features or other suitable publishing methods. In some embodiments, a button can be included in a message published in any one of a channel, a direct message channel or a collaborative document.
[0178] Figure 5B An exemplary user interface 500 is shown with respect to the exemplary scenario described above in relation to some embodiments of the present invention. In some embodiments, selection of the workflow button option 506 causes a button configuration modal 510 to be displayed, as shown. However, it should be understood that many other means of accessing the button configuration modal 510 are also contemplated. For example, in some embodiments, the button configuration modal 510 may be accessed from a settings menu, a workflow builder tool, or other suitable section of a group-based communication system.
[0179] In some embodiments, button configuration modality 510 includes workflow selection input 512, as shown in the figure, to allow a user to select a workflow to be associated with a button. In some embodiments, a webhook URL corresponding to a workflow can be used to reference a workflow. Alternatively or additionally, in some embodiments, a workflow identifier of a workflow can be used to reference a workflow. In some embodiments, button configuration modality 510 also includes button label input 514, as shown in the figure, to receive a button label of a button. In some embodiments, a button label can be used as a button identifier to refer to a button within a group-based communication system.
[0180] In some embodiments, the button configuration modal 510 also includes one or more workflow variable inputs 516, as shown. In some such embodiments, the workflow variable input 516 can allow the button to reference one or more variables associated with the workflow. In some embodiments, the button configuration modal 510 also includes one or more variable inputs 518, as shown. Here, the variable input 518 can allow the user to select a value corresponding to the selected workflow variable. Therefore, a value can be transferred between a button and a workflow, and vice versa. For example, a button can be configured to collect one or more variables associated with the context of a button or one or more user selections passed to a workflow, so that a workflow can be executed based on the value received from a button. In some embodiments, the button configuration modal 510 includes any number of additional features or inputs for configuring a button.
[0181] The button configuration process is described above using an exemplary button configuration modal 510, however, it should be understood that in some embodiments, various other means of button configuration are also contemplated. For example, in some embodiments, the button configuration may be accessed via a settings menu, a separate button configuration page, or a window displayed within the user interface 500 of the group-based communication system. In some embodiments, at least a portion of the inputs to the button configuration modal 510 may be automatically populated based on previous user selections. In some embodiments, the user may complete the creation of a button by selecting a save option included within the button configuration modal 510.
[0182] In some embodiments, a button may be configured to include additional button parameters. For example, in some embodiments, a button may be associated with a predetermined expiration time. Here, a predetermined time period that will expire may be set for a button published in a group-based communication system. In one example, a button may be published in a channel with a predetermined expiration time of 1 hour. Therefore, the button will be permanently stored in the channel for one hour after being published. In the example, the button will expire after one hour and may be automatically deleted. It should be understood that one hour is just an example, and many other expiration times are also envisioned, such as 1 minute, 15 minutes, 1 day, 1 month, or any other time period. In some embodiments, a button may be manually deleted. For example, a user or another user who has published a button may select a button and select a delete option to remove the button from the context in which it is published. In some embodiments, a delete option may be accessed, such as by right-clicking a button. However, various other operations may be performed to delete a button. In addition, in some embodiments, a button may be generated or appear according to one or more given standards or other parameters (such as the context parameters described herein) in a group-based communication system. In some embodiments, additional button options are also envisioned. For example, in some such embodiments, a user may be able to selectively edit various parameters of the appearance and / or functionality of a given button. In addition, buttons may be permanent so that they will not expire after any time period. In some embodiments, a user may be able to configure a predetermined time period or set a button to be permanent. In addition, in some embodiments, buttons may be pinned to channels, canvases, collaborative documents, or other contexts of group-based communication systems so that they are not deleted. In some embodiments, a button may be configured to be deleted based on an event rather than a time period. For example, a button may be configured to be deleted after it has been selected. It should be understood that in some embodiments, deleting a button refers to removing a button from a virtual space within a group-based communication system. However, the button may still be saved for later use so that it can be published again in the same virtual space or published in another context. In addition, in some embodiments, it is envisioned that a button that triggers the deletion of other linked or grouped buttons is deleted. For example, in some embodiments, a first button may be associated with one or more other buttons within a group-based communication system. Here, a workflow to delete one or more associated buttons may be initiated from the first button. In one example, a group of buttons may be related, such as a group of buttons in which each button contains mutually exclusive selection options for a user. Thus, if a user selects one of the buttons, all related buttons may be automatically deleted so that the user cannot select more than one of the related buttons.
[0183] One benefit of the buttons and workflows described herein is that they can be generated and configured without requiring the user to hard-code various functions and parameters. For example, a button configuration modal 510 or similar builder tool interface can be used to select details about how to implement buttons and workflows within a group-based communication system. Therefore, a user can configure parameters for buttons and associated workflows without code. However, it should be understood that in some embodiments, a developer user may be able to configure buttons and workflows using any combination of code and builder tools. Therefore, both advanced developer users and standard users may be able to configure buttons.
[0184] Figure 5C Shown is a user interface 500 relative to the above exemplary scenario related to some embodiments of the present invention. In some embodiments, after the user has configured a button, for example, by selecting the save option of the button configuration modality 510, a button 520 can be generated for display in the user interface 500, as shown in the figure. In some embodiments, button 520 can include a selected button label, as shown in the figure. In the exemplary scenario, button 520 is a building template button associated with a building template workflow. For example, a building template workflow can be a previously configured workflow for generating a document template of a specific type in a collaborative document 268. In some embodiments, the workflow network hook URL of the workflow can be used to associate such a workflow with button 520. In some embodiments, button 520 can be inserted into the collaborative document 268 at a position corresponding to the comment 502 inserted by the user, as shown in the figure.
[0185] Figure 5D A user interface 500 is shown relative to the above exemplary scenario related to some embodiments of the present invention. Here, after activating button 520, a document template 530 can be automatically generated within collaborative document 268, as shown. In some embodiments, various values of document template 530 can be automatically filled based on data associated with button selection. For example, in some embodiments, data values can be collected for buttons, such as context values including context positions of button 520 within a group-based communication system, and other values indicating the user who created the button and / or the user who selected button 520. For example, in some embodiments, if a second user selects button 520, a document template 530 including the user name 532 of the second user can be automatically generated for the second user, as shown. In addition, in some embodiments, the workflow associated with button 520 can be configured to automatically obtain one or more additional values 534 associated with the user using the user identifier of the user. Therefore, values can be obtained from within a group-based communication system or from any number of external data sources.
[0186] The above exemplary scenario mentions publishing a button within a blank document to run a workflow for generating a document template, however, it should be understood that a button may also be added to an existing document, for example, to automatically change a document or automatically fill in one or more input fields of a form. In addition, buttons for reformatting a document or generating a copy of an existing document are contemplated. Additionally, in some embodiments, buttons for updating the state of an existing document are contemplated. For example, a button may initiate a workflow that updates the state of a document from an initial state to a document review state. Here, in some cases, the document review state will provide review-related features, such as tracking changes and reviewing comments.
[0187] Buttons in the Resource Channel
[0188] Fig. 6A An exemplary user interface 600 of a group-based communication system relevant to some embodiments of the present invention is shown. In some embodiments, the exemplary user interface 600 includes a resource channel page 602, as shown in the figure. Here, the resource channel page 602 can correspond to a specific channel of a group-based communication system. In some such embodiments, the channel can be a resource channel rather than a communication channel, as described above. Here, the resource channel can be configured to access one or more resources quoted in the group-based communication system. For example, in some embodiments, the resource channel page 602 includes one or more document buttons 604, as shown in the figure. In some such embodiments, each document button in the one or more document buttons 604 corresponds to a workflow for accessing or generating corresponding related documents. For example, a career development button can be included to generate a career development document or to access an existing career development document.
[0189] exist Fig. 6A In the exemplary scenario of FIG. 6 , a user selects one of document buttons 604 from resource channel page 602. For example, a user may select a career development button to generate a career development document template using an associated document template workflow. In some embodiments, selection of one of document buttons 604 initiates creation of a document using a document template, or alternatively, access to an existing document, as will be described in further detail below.
[0190] Figure 6BShown is a user interface 600 related to some embodiments of the present invention relative to the above-mentioned continuation exemplary scenario.Here, a document selection modality 610 can be generated for display in the exemplary user interface 600, as shown in the figure.Therefore, the document selection modality 610 can include creating a new option 612 and searching for each of all copies option 614.In some such embodiments, creating a new option 612 can be configured to generate a new document template, and searching for all copies option 614 can be configured to access one or more existing documents.Continue the above example, the selection of the career development button can provide the user with the option of generating a new career development document based on the document template or accessing one or more previously created career development documents.Therefore, it is envisioned that wherein the resource channel page 602 provides one or more users with an embodiment of the environment of accessing multiple related resources.For example, a manager user can utilize the resource channel page 602 to organize multiple documents and other resources related to a specific user of a communication system based on a group.
[0191] Figure 6C A user interface 600 is shown in relation to some embodiments of the present invention in relation to the above-described continued exemplary scenario. Here, a document template setup modal 620 can be generated for display within the user interface 600, as shown. In some embodiments, the document template setup modal 620 can be displayed in response to a user selecting one of the document buttons 604 and further selecting the create new option 612. In some embodiments, the document template setup modal 620 includes an employee selection input 622 for receiving an employee indicator and a team selection input 624 for receiving a team indicator. In some embodiments, a document template can be generated based at least in part on the selections made within the document template setup modal 620.
[0192] In some embodiments, the document template settings modality 620 also includes a list of shortcut details 626 corresponding to the button and the associated workflow. In some embodiments, the list of shortcut details 626 includes one or more details related to the various operations of the workflow, as shown in the figure. For example, the list of shortcut details 626 can include the description of one or more steps of the workflow and other variables of the workflow. In some embodiments, the user can be able to edit the workflow parameters in the document template settings modality 620. For example, the user can add, edit or remove workflow steps, and set and change various other workflow variables. In addition, once the user has finished editing the document template settings modality 620, the user can select the submission option of the document template settings modality 620. In some embodiments, the selection of the submission option initiates the execution of the workflow in the communication system based on the group, as will be described in further detail below.
[0193] Fig.6D A user interface 600 is shown that is relevant to some embodiments of the present invention relative to the above-described continued exemplary scenario. In some embodiments, after selecting the submit option from the document template setup modal 620, the workflow causes the document to be generated and published within a specific communication channel of the group-based communication system. For example, in some embodiments, a document link 632 associated with the generated document can be automatically published along with a message 634 within a direct message communication channel 630 with the user referenced within the employee selection input 622, as shown. In some embodiments, a document preview 636 can be generated for display on the user interface 600, as shown, thereby showing a preview associated with the generated document.
[0194] Fig. 6E A user interface 600 is shown in relation to the above-described continuing exemplary scenario related to some embodiments of the present invention. Here, an exemplary document 640 may be automatically generated based on a document template associated with a selected document button 604, as shown. For example, a corresponding workflow may include one or more steps for generating the document 640 and automatically populating various fields within the document 640. In some embodiments, the document 640 may be a collaborative document similar to that described above with respect to the collaborative document 268, such that the document 640 may be edited in real time by one or more different users within the group-based communication system.
[0195] Exemplary document 640 may include any number of document components, such as automatically generated data table 642, as shown in the figure.For example, data table 642 may include user information obtained from a group-based communication system or from one or more external sources (such as employee data applications).For example, workflow may be configured to obtain user information associated with selected employees from WORKDAY or another external employee record service.In some embodiments, document 640 also includes self-assessment sections 644, as shown in the figure.In some embodiments, self-assessment sections 644 allow users to fill in and submit self-assessment forms.It is envisioned that the document 640 generated therein includes one or more buttons.For example, in some embodiments, self-assessment sections 644 may be combined as one or more buttons bound to another workflow for generating and submitting self-assessment forms.
[0196] In some embodiments, the exemplary document 640 also includes a career goal section 646, which allows the user to enter various different types of career goals, such as short-term, medium-term and long-term goals, as shown. In some embodiments, the career goal section 646 can also be incorporated as a button that allows the user to generate a career goal form for submission to an external application (such as WORKDAY). In addition, the exemplary document 640 may include an action plan section 648, which allows the user to define an action plan for completing the career goal selected by the user.
[0197] In some embodiments, each component and feature within the automatically generated document 640 can be created by a workflow initiated by the document button 604. For example, in some embodiments, Fig. 6A As shown, each document button 604 is associated with a different workflow for generating a specific type of document. Therefore, the corresponding workflow can include instructions for generating the corresponding document. For example, the career development document button can include instructions for generating each of the data table 642, the self-assessment section 644, the career goal section 646, and the action plan section 648.
[0198] It should be understood that the career development example described above is merely one example, and that various other types of buttons and documents are also contemplated and contemplated for other embodiments of the present invention. For example, a document template may be generated based on any combination of user-defined parameters. Thus, embodiments are contemplated in which users of a group-based communication system are able to create customized user-defined buttons and workflows for performing various operations within the group-based communication system and within other external applications.
[0199] RSVP Button
[0200] Fig. 7AAn exemplary user interface 700 relevant to some embodiments of the present invention is shown. In some embodiments, the user interface 700 includes a channel pane 218, as shown, including any number of messages 222, reactions and reaction buttons 224 and thread reply previews 226. In an exemplary scenario, an RSVP button 702 is posted in a channel, as shown. Here, the RSVP button 702 may include a button message 704, which includes a description of the RSVP button 702. In some embodiments, the RSVP button 702 includes an acceptance option 706 and a rejection option 708, thereby allowing a user to accept RSVP for an associated event from within the channel pane 218. In one example, the first user accepts RSVP by selecting the acceptance option 706 of the RSVP button 702. In some embodiments, the RSVP button 702 may be posted in a channel using any technology described herein for adding a button and various other suitable button generation technologies not explicitly described herein.
[0201] Figure 7B A user interface 700 is shown that is relevant to some embodiments of the present invention relative to the above-mentioned continuing exemplary scenario. Here, in response to receiving a selection of RSVP button 702 from the first user, a replacement button 710 can be generated for display in the user interface 700. For example, the first user can choose to accept option 706, so that RSVP button 702 is replaced by replacement button 710, as shown in the figure. In some embodiments, replacement button 710 includes button message 712, as shown in the figure, which prompts the user to select from one or more button options 714. In the example, each button option 714 corresponds to an item of a company event associated with RSVP. Therefore, after accepting RSVP, the user can be prompted to select the item they will carry to the event. In some embodiments, some button options can be grayed out, as shown in the figure, thereby indicating that other users have chosen to carry those items. In some embodiments, the data table can be updated based on the response received from RSVP button 702 and replacement button 710, as will be described in further detail below. It is contemplated that the user can select from other options (such as selecting a meal from a menu for an event) in an additional embodiment. In addition, it is also contemplated that the selection options not explicitly described herein. For example, in some embodiments, users can create manually customized buttons and workflows to provide various functions within and outside the group-based communication system.
[0202] Replacement button 710 is described herein as replacing RSVP button 702, however, other embodiments are contemplated in which replacement button 710 may be considered to be the same button. For example, rather than replacing a button, the state of a button may be changed so that one or more button parameters are changed. Here, a button may be changed from an initial state to any number of subsequent states. In some embodiments, a single button may have multiple different states based on which user is viewing the button. For example, a button may appear differently to a user who has selected a button compared to a user who has not yet selected the button. In some embodiments, the state of a button may be changed based on any of a variety of factors, such as a workflow, an external trigger, or a user selecting a button.
[0203] Figure 7C An exemplary data table 720 is shown in relation to the above continued exemplary scenario related to some embodiments of the present invention. In some embodiments, the data table 720 can be natively included in the group-based communication system. Alternatively, in some embodiments, the data table 720 can be remotely accessed from one or more external sources. In addition, in some embodiments, the data table 720 can be included as a table in a collaborative document, such as the above-described collaborative document 268.
[0204] In some embodiments, data table 720 may be generated and / or updated based on responses and selections received relative to buttons posted within a group-based communication system. For example, data table 720 may include an RSVP data table corresponding to the above-mentioned corporate event. Thus, data table 720 may include: a first column 722, which includes an event identifier; a second column 724, which includes a visitor identifier; a third column 726, which includes a response status; and a fourth column, which includes an item identifier 728 indicating the items that each user has selected to carry. Thus, embodiments are envisioned in which data table 720 is automatically generated, for example, by a create event workflow. In some embodiments, the values within the table may be automatically updated by a workflow corresponding to RSVP button 702 and replace button 710. For example, in some embodiments, data table 720 may be automatically updated in response to receiving one or more selections from users within a channel. In some such embodiments, the corresponding workflow may be configured to automatically add additional rows to data table 720 for each respective user.
[0205] It is contemplated that the embodiment in which the button can be displayed differently for each user. For example, in some embodiments, the RSVP button 702 can be displayed only to users who have not yet responded. In addition, the button options 714 of the replacement button 710 can be updated at least in part based on the data from the data table. For example, when the user chooses to carry the project by selecting the button option 714, these button options can be removed or grayed out when displayed to subsequent users. Therefore, it is contemplated that the input of the button can be configured to receive values from a data table or other data source stored externally or natively. In addition, it is contemplated that the embodiment in which the button can be displayed differently to each user based on the role of the corresponding user in the group-based communication system. For example, in some embodiments, the administrator user can see additional information and button parameters that are invisible to standard users. In addition, in some embodiments, the action implemented by the associated workflow can also depend on the user's role or other user-specific parameters in the group-based communication system. For example, in some embodiments, the workflow can be allowed to perform actions based on the permission of the user who selects the associated button. In one example, the button is published in the channel, and the associated workflow of the button is configured to generate a new shared channel between the organization of the selected user and another organization. Thus, if the user who selects the button does not have permission to create a shared channel, the workflow will likewise fail to create the shared channel. However, if a user who has permission to create a shared channel selects the button, the shared channel will be automatically created. In some embodiments, if the workflow fails to perform an action based on permissions, a notification may be generated for the user. For example, in some embodiments, the button may be replaced with a notification message indicating that the workflow did not create a channel because the user does not have access rights.
[0206] Embodiments are contemplated in which any number of additional types of data tables are included. For example, in some embodiments, a button may be associated with a particular data table that records which users have selected the button or, by contrast, which users have not yet selected the button. Thus, in some embodiments, a button may be displayed to each user based on information such as user interactions with the button stored in a data table, a data repository, or some other storage mechanism.
[0207] Fig.7DAn exemplary user interface 700 related to some embodiments of the present invention relative to the above-mentioned continuation exemplary scenario is shown. In some embodiments, after the user has responded to RSVP, RSVP button 702 and replacement button 710 can be replaced with response message 730. Here, response message 730 can be generated for each user, so that different response messages are displayed to each corresponding user at least in part based on the user's response to RSVP. For example, response message 730 can include description 732, which indicates the user's response (acceptance or rejection) to RSVP. In some embodiments, edit RSVP button 734 can be included in user interface 700, as shown in the figure, thereby allowing the user to edit its response after its response is submitted. For example, the user can initially accept RSVP, but can change its response to rejection based on scheduling conflicts. In some such embodiments, edit RSVP button 734 allows the user to update and change the value stored in data table 720. For example, the user can change its response or change the project they selected.
[0208] Button Catalog
[0209] Figure 8 An exemplary user interface 800 associated with a button catalogue is shown in connection with some embodiments of the present invention. In some embodiments, the user interface 800 may include a button page 802, which may be generated to be displayed as part of the user interface 800, as shown. In some embodiments, the button catalogue may be used to configure new buttons, edit existing buttons, import existing buttons, or select any of buttons to be published or placed at various locations and contexts within a group-based communication system. Additionally, in some embodiments, the button catalogue provides a space for a user to curate a list of available buttons.
[0210] In some embodiments, user interface 800 comprises available button tab 804 and button template tab 806, as shown in the figure.Here, available button tab 804 can be used for selecting and editing the available existing button of user.For example, the user can select available button tab 804, and it generates the list of available button 808 that can be selected or edited for the user, as shown in the figure.In some embodiments, available button 808 can comprise any combination of button described herein, such as RSVP button 702, build template button 520 and request button 410, and other buttons that are not clearly described herein.For example, in some embodiments, can comprise the release message button, for automatically releasing a message in a specific channel when being pressed.It should be understood that it is also envisioned that the additional button of any number corresponding to the workflow of self-defined and pre-configuration is also envisioned.
[0211] In addition, in some embodiments, additional buttons are envisioned, such as help buttons, as shown. In some embodiments, a help button can be issued within the context of a group-based communication system to submit a help request. In some such embodiments, a help button can initiate a help request workflow when selected. For example, a help request can be configured to generate a help sheet that can be sent to one or more users (such as sent to a customer service staff or information technology expert). In some embodiments, the help sheet can be expanded using context information automatically obtained based on the context of a button. For example, if a user selects a help button from a channel associated with a specific type of project, the help sheet can be routed to appropriate personnel to help the user in terms of a specific project. In one example, a specific user can be designated as a help source for a specific channel so that the help sheet generated from the help button in the channel is routed to a specific user. In some embodiments, a help sheet can be automatically issued in a direct message with a specific user.
[0212] Embodiments in which shortcut buttons may be included are contemplated. In some such embodiments, shortcut buttons may be configured to provide access to some types of resources from within a group-based communication system. For example, in some embodiments, shortcuts may be used to provide quick access to a particular channel within a group-based communication system or to some other resources published within a group-based communication system. In addition, embodiments in which shortcut buttons may be used to access external resources are contemplated. For example, a button may invoke a workflow for accessing a hyperlink to an external resource, such as an external web page, file, or video. In some embodiments, a shortcut button may include a preview associated with the corresponding resource.
[0213] In addition, it is envisioned that a button may be included to update a channel or create a new channel within a group-based communication system. For example, it is envisioned that a copy channel button is generated based on an existing template channel to generate a new copy channel. Here, a copy channel button can be issued in a channel that is expected to be copied and used as a template. Therefore, the button will obtain the context of the template channel, including various channel parameters, such as the channel owner, the member of the channel, and the organization of the channel. In some embodiments, the channel parameters will be automatically applied in the newly created channel generated in response to the actuation of the button. In some embodiments, the user who selects the button can be automatically set as the channel owner. Alternatively, in some embodiments, the existing channel members from the template channel can automatically receive invitations to the newly created channel. In addition, in some embodiments, the copy channel button can be converted to a join channel button that allows users to join the new channel after the new channel is created. In addition, in some embodiments, such buttons can be displayed only to certain users or can be actuated only by certain users. For example, in some embodiments, the button can be actuated only by users with permission to create a new channel. Therefore, it is envisioned that various additional context parameters are obtained and these additional context parameters are passed to one or more initiated workflows. It should be understood that additional buttons, such as for creating new virtual spaces, are contemplated. For example, a button published within a first virtual space can be tied to a workflow for creating a second virtual space, which can be any of a direct message, a channel, a collaborative document, or a collaborative session.
[0214] In some embodiments, the button templates tab 806 can be used to access one or more pre-configured button templates. Pre-configured button templates can be used to generate new buttons based on preset button templates. In some embodiments, custom buttons can be added as templates so that users can select existing buttons as templates and slightly adjust various parameters of existing buttons to create new changed buttons. In some embodiments, users can be able to edit or change existing buttons, for example, by changing the workflow associated with each button.
[0215] In some embodiments, the user interface 800 can be configured to display one or more buttons stored in a button catalog that includes all buttons associated with a user. For example, in some embodiments, any button used or created within a given user's organization can be included in the button catalog. In some embodiments, the user interface 800 also includes an import option 810 that is configured to import existing buttons from some external source. For example, the import option 810 can be used to import buttons from another organization or workspace. In some embodiments, the user interface 800 also includes a create option 812 that can be used to create a new button. In some embodiments, selection of the create option 812 causes a button configuration modal, such as the button configuration modal 510, to be displayed. Figure 5B shown.
[0216] In some embodiments, buttons can be copied and pasted in various contexts of a group-based communication system. For example, a user can copy a button from a button page and paste the button into a channel, canvas, collaborative document, or direct message channel. In addition, embodiments are envisioned in which buttons can be directly copied and pasted between two different contexts. For example, a button can be copied from one channel and published in another channel. Similarly, in some embodiments, a button can be copied from a channel and published in a collaborative document or any other suitable context of a group-based communication system. In addition, in some embodiments, buttons can be dragged and dropped into various contexts within a group-based communication system. For example, in some embodiments, a button can be accessed from a shortcut menu or sidebar, and then a button can be selected and dragged into a desired context (such as a channel or collaborative document).
[0217] In some embodiments, the button page 802 also allows the user to access and change the workflow itself. For example, in some embodiments, the button page 802 allows the user to edit, remove, and add workflow steps to the workflow associated with a given button. In some embodiments, changing a workflow step can cause a workflow copy of the workflow to be generated, which is augmented with the change so that the workflow is not affected elsewhere in the group-based communication system and will only be changed with respect to the specific button.
[0218] In some embodiments, the button can be configured directly before being published in the group-based communication system. In addition, in some embodiments, the button can be set and configured in advance. Therefore, multiple buttons and button templates can be stored in a button directory, as described herein. In addition, in some embodiments, the button can be configured in advance and stored in a button directory, and then further edited just before being published. For example, a button configuration modal 510 can be presented to the user before the button is published, so that the user can edit various parameters of the button (and in some embodiments, the associated workflow) before publishing.
[0219] In some embodiments, a personalized button catalog or button library can be generated for each user of a group-based communication system. Here, a personalized button catalog can be automatically generated based on previous user activities or a personalized button catalog can be manually customized by the user. For example, in some embodiments, a button library can be accessed by each user, including a list of buttons that the user has recently used. In addition, in some embodiments, the user can manually customize their button library by adding and removing buttons. For example, the user can add and / or remove buttons from a list of available buttons 808. Therefore, it is envisioned that an embodiment in which a button catalog that can be customized personally is provided and stored for each user is envisioned. For example, in some embodiments, a personalized button catalog can be stored in a data repository associated with a group-based communication system. In some embodiments, machine learning can be used to suggest buttons for placement in a given context from a user's button library. Similarly, when configuring the placed button, machine learning can be used to suggest configuration parameters based on the previous placement of the placed button (or other buttons) by the user (or other users).
[0220] Contextual Automation
[0221] Fig. 9A An exemplary method 900A for contextual automation within a group-based communication system related to some embodiments of the present invention is shown. In some embodiments, any number of the steps described herein can be performed using a variety of different suitable techniques. For example, in some embodiments, one or more steps of method 900A can be implemented using a processor for executing computer-readable instructions stored in a computer-readable medium. In addition, in some embodiments, processing can be divided, for example, so that a first processor performs a first portion of the steps and a second processor performs a second portion of the steps.
[0222] At step 902, a button creation input is received. In some embodiments, the button creation input can be received within the virtual space of a group-based communication system. For example, the button creation input can be received within the context of a specific channel or a specific collaborative document. In some embodiments, the button creation input includes a user selection, for example, the user types a slash command, selects a button from a shortcut menu, or selects a button from a button directory. However, it should be understood that many additional means of receiving button creation input are also contemplated. In some embodiments, various parameters of a button can be configured as part of the button creation input. For example, a user can select one or more workflows to be associated with a button, as well as other button parameters, such as what value is passed to the workflow.
[0223] At step 904, a button may be displayed in the virtual space based on the received button creation input. In some embodiments, displaying the button in the virtual space includes displaying the button in a particular channel, collaborative document, or another suitable context within the group-based communication system. In some embodiments, the button may be published and displayed within any of a channel, document, direct message, canvas, or communication session. For example, in some embodiments, the button may be shared and persisted within the context of a synchronous multimedia collaboration session so that users participating in the synchronous multimedia collaboration session can select the button.
[0224] In some embodiments, a button may be displayed based at least in part on the context of a virtual space. In addition, in some embodiments, a button may be displayed based at least in part on an associated workflow bound to the button. Therefore, an embodiment in which at least one display parameter of a button is determined based on the context of the virtual space and data received from the associated workflow is envisioned. For example, in some embodiments, a button display theme may be selected for a button based on the channel in which the button is posted. Therefore, the theme of a button may be configured to reflect the theme of the context in which the button is persistently stored within a group-based communication system. In some embodiments, such themes may determine display parameters such as the border size, border shape, and border color of a button, as well as the font, font size, and font color. In addition, an embodiment in which one or more selection options of a button may be determined based on the context of a virtual space is envisioned. For example, in some embodiments, a voting button for the employee of the month is envisioned. Here, a voting button may be configured to automatically obtain and display each channel member name as a selection option for a voting button.
[0225] It is contemplated that additional buttons may be displayed based on specific contextual parameters. In some embodiments, selection options for a button may be determined and displayed, for example, based on channel parameters such as an associated location. For example, if a particular channel is associated with a geographic location of a physical office, selection options may be determined based on the geographic location. Thus, in some embodiments, it is contemplated that a lunch voting button automatically provides selection options for caterers near a geographic location associated with a particular channel of a group-based communication system.
[0226] In some embodiments, one or more display parameters of a button may be determined based at least in part on the button's associated workflow. For example, in some embodiments, the display of a button may change based on the progress of the associated workflow. Here, the initial display of a button may be updated while the workflow is being executed, and may be updated again once the workflow is completed. In addition, embodiments are contemplated in which an indication of the workflow may be displayed in the virtual space along with the button.
[0227] At step 906, an actuation of the button is received. In some embodiments, the actuation is received from a user, for example, from a user clicking, tapping, or otherwise selecting a button in the virtual space. It should be understood that a button as described herein may include multiple components. For example, in some embodiments, a button may include a button description and any combination of various selectable options. In addition, in some embodiments, a button may be expandable so that various additional information and selection options are presented after actuation or interaction with the button.
[0228] Other embodiments are contemplated in which the button can be automatically actuated. For example, a workflow can be used to actuate the button. In some embodiments, the button can be actuated based on any number of internal and external triggers. For example, an external application can use a webhook or API to actuate a button within a group-based communication system. In addition, the button can be actuated by triggering an event from within the group-based communication system, such as by any combination of user interaction or automation. For example, embodiments are contemplated in which the button can be actuated based on, for example, a user viewing a button within a display associated with a group-based communication system. In addition, in some embodiments, the button can be actuated, for example, based on a user sending a message or some other internal event within the group-based communication system.
[0229] At step 908, one or more context parameters are obtained. In some embodiments, the context parameters may be obtained in response to receiving an actuation of a button. In some embodiments, the context parameters include a user identifier associated with a particular user and a context identifier associated with a virtual space in which the button is persisted. Additionally, in some embodiments, two or more user identifiers may be obtained. For example, a user identifier of the user who actuated the button and a user identifier of the user who created the button or published the button within the virtual space may be obtained.
[0230] At step 910, a workflow associated with a button is initiated. In some embodiments, a workflow may be initiated in response to actuation of a button. In addition, in some embodiments, a workflow may be contextually executed so that at least one workflow operation is performed based on one or more context parameters. For example, in some embodiments, a workflow operation may be performed based on an acquired user identifier and / or context identifier. In one example, a channel identifier associated with a channel in which a button is posted may be passed to the workflow and used within at least one step of the workflow. For example, a workflow may be configured to post a message within a channel or to share a document link to an automatically generated document associated with a workflow within a channel. It should be understood that this is merely an exemplary use case for a contextual workflow, and various other context applications are also contemplated. For example, a workflow may be configured to perform an operation based on a specific user identifier associated with a button.
[0231] Furthermore, embodiments are contemplated in which additional information may be obtained based on contextual parameters. For example, user information may be obtained from various internal or external data sources based on a user identifier. In one example, a workflow may be configured to obtain user information associated with a user clicking a button within a virtual space and add the user information to a document or data table.
[0232] In some embodiments, the operation of the workflow may include any combination of internal and external operations, wherein the internal operation includes steps implemented within the group-based communication system, and the external operation includes steps implemented on one or more external applications or services. For example, a single workflow may include a first part of the steps that are natively executed within the group-based communication system and a second part of the steps that are executed within the external application. In addition, a workflow that is fully hosted within the group-based communication system or fully executed on one or more external sources may be included. In one example, a workflow may be initiated from within the group-based communication system, for example, by a user selecting a button, but the operation of the workflow may be performed elsewhere on the external application, such as updating a value within an external remote data table. In some embodiments, allowing workflows to be implemented internally and externally allows users to implement various functionalities without combining or creating specialized applications. For example, in some cases where a dedicated application will be used to perform actions based on information received from a group-based communication system, a combination of buttons and workflows may be sufficient to achieve the same functionality without generating an entire separate application. In addition, using context buttons to trigger workflows allows triggering activities outside the group-based communication system without requiring the user to exit the group-based communication system interface.
[0233] Fig. 9B An exemplary continuation method 900B is shown that is relevant to some embodiments of the present invention. In some embodiments, the steps of method 900B may be optionally included after the above-mentioned method 900A. For example, in some embodiments, after the workflow is initiated at step 910, a completion confirmation may be received at step 912. In some such embodiments, the completion confirmation may be associated with the completion of the initiated workflow. For example, the completion confirmation may be submitted in response to determining that one or more operations of the workflow have been successfully implemented.
[0234] At step 914, the button may be updated in the virtual space. In some embodiments, updating the button may include replacing the button with a message or with another button, removing the button, or changing various aspects of the button based on a completion confirmation from the workflow as described above. For example, in some embodiments, the button description or selection options may be automatically changed based on the workflow or other external information. For example, in some embodiments, the selection options of the button may be updated based on information from a data table stored natively or externally.
[0235] Embodiments are contemplated in which users may be able to share a workflow by posting a button within a group-based communication system. For example, if a first user wants to share a given workflow with a second user, the first user may paste a button associated with the workflow within a direct message with the second user. Thus, the second user would be able to copy and paste the button for later use, or select the button in order to activate the workflow. Alternatively, if the first user wishes to share the workflow with multiple other users, the button may be posted within a channel of the group-based communication system. Thus, the button provides an additional means of sharing workflows within a group-based communication system.
[0236] Having thus described various embodiments of the present invention, what is desired as new and protected by Letters Patent includes the following claims.
Claims
1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method for contextual automation within a group-based communication system, the method comprising: causing a workflow button to be displayed to a user of the group-based communication system within a virtual space of the group-based communication system, at least one display parameter of the workflow button being determined based on a context associated with the virtual space; receiving an actuation of the workflow button from the user; receiving, in response to the actuation of the workflow button, a plurality of contextual parameters associated with the workflow button, the plurality of contextual parameters comprising a user identifier associated with the user and contextual data associated with the virtual space; Initiating an associated workflow associated with the workflow button to perform one or more automated operations based on the plurality of context parameters; receiving a response indicating completion of the associated workflow; and The workflow button within the virtual space of the group-based communication system is updated based on the received response indicating the completion of the associated workflow.
2. The one or more non-transitory computer-readable media of claim 1, the method further comprising: In response to performing an operation in the one or more automated operations, initiating an additional workflow to perform one or more additional operations; receiving a completion confirmation associated with the additional workflow; and A further operation of the one or more automated operations is performed based on the completion confirmation associated with the additional workflow.
3. The one or more non-transitory computer readable media of claim 1, the method further comprising: In response to performing an operation of the one or more automated operations, a new workflow button is caused to be displayed within the virtual space, wherein the new workflow button is configured to initiate an additional workflow.
4. The one or more non-transitory computer-readable media of claim 1, the method further comprising: In response to performing an operation of the one or more automated operations, a second virtual space is created based on the plurality of contextual parameters within the virtual space, wherein the second virtual space includes a direct message, a channel, a collaborative document, or a collaborative session.
5. The one or more non-transitory computer-readable media of claim 1, the method further comprising: causing display of the workflow button to a second user of the group-based communication system in a second virtual space, the at least one display parameter of the workflow button in the second virtual space being different from the at least one display parameter in the virtual space; in response to actuation of the workflow button in the second virtual space, obtaining the plurality of context parameters associated with the actuation of the workflow button, the plurality of context parameters comprising a second user identifier associated with the second user and a second context identifier indicating the second virtual space; determining, based on the workflow button and the plurality of context parameters, a second workflow for the workflow button, the second workflow being different from the associated workflow; and The second workflow is initiated.
6. The one or more non-transitory computer-readable media of claim 1, the method further comprising: In response to performing an operation of the one or more automated operations, information indicative of a first context parameter of the plurality of context parameters is stored in a storage location determined based on a second context parameter of the plurality of context parameters.
7. The one or more non-transitory computer-readable media of claim 1, the method further comprising: In response to performing an operation of the one or more automated operations, the virtual space is updated to reflect the actuation of the workflow button by the user.
8. A method for contextual automation within a group-based communication system, the method comprising: causing a workflow button to be displayed to a user of the group-based communication system within a virtual space of the group-based communication system, at least one display parameter of the workflow button being determined based on a context associated with the virtual space; receiving an actuation of the workflow button from the user; receiving, in response to the actuation of the workflow button, a plurality of contextual parameters associated with the workflow button, the plurality of contextual parameters comprising a user identifier associated with the user and contextual data associated with the virtual space; Initiating an associated workflow associated with the workflow button to perform one or more automated operations based on the plurality of context parameters; receiving a response indicating completion of the associated workflow; and The workflow button within the virtual space of the group-based communication system is updated based on the received response indicating the completion of the associated workflow.
9. The method according to claim 8, further comprising: In response to performing an operation in the one or more automated operations, initiating an additional workflow to perform one or more additional operations; receiving a completion confirmation associated with the additional workflow; and A further operation of the one or more automated operations is performed based on the completion confirmation associated with the additional workflow.
10. The method according to claim 8, further comprising: In response to performing an operation of the one or more automated operations, a new workflow button is caused to be displayed within the virtual space, wherein the new workflow button is configured to initiate an additional workflow.
11. The method according to claim 8, further comprising: In response to performing an operation of the one or more automated operations, a second virtual space is created based on the plurality of contextual parameters within the virtual space, wherein the second virtual space includes a direct message, a channel, a collaborative document, or a collaborative session.
12. The method according to claim 8, further comprising: causing display of the workflow button to a second user of the group-based communication system in a second virtual space, the at least one display parameter of the workflow button in the second virtual space being different from the at least one display parameter in the virtual space; in response to actuation of the workflow button in the second virtual space, obtaining the plurality of context parameters associated with the actuation of the workflow button, the plurality of context parameters comprising a second user identifier associated with the second user and a second context identifier indicating the second virtual space; determining, based on the workflow button and the plurality of context parameters, a second workflow for the workflow button, the second workflow being different from the associated workflow; and The second workflow is initiated.
13. The method according to claim 8, further comprising: In response to performing an operation of the one or more automated operations, information indicative of a first context parameter of the plurality of context parameters is stored in a storage location determined based on a second context parameter of the plurality of context parameters.
14. The method according to claim 8, further comprising: In response to performing an operation of the one or more automated operations, the virtual space is updated to reflect the actuation of the workflow button by the user.
15. A system comprising at least one processor and at least one non-transitory memory, the at least one non-transitory memory storing computer executable instructions that, when executed by the at least one processor, perform a method for contextual automation within a group-based communication system, the method comprising: causing a workflow button to be displayed to a user of the group-based communication system within a virtual space of the group-based communication system, at least one display parameter of the workflow button being determined based on a context associated with the virtual space; receiving an actuation of the workflow button from the user; receiving, in response to the actuation of the workflow button, a plurality of contextual parameters associated with the workflow button, the plurality of contextual parameters comprising a user identifier associated with the user and contextual data associated with the virtual space; Initiating an associated workflow associated with the workflow button to perform one or more automated operations based on the plurality of context parameters; receiving a response indicating completion of the associated workflow; and The workflow button within the virtual space of the group-based communication system is updated based on the received response indicating the completion of the associated workflow.
16. The system of claim 15, wherein the method further comprises: In response to performing an operation in the one or more automated operations, initiating an additional workflow to perform one or more additional operations; receiving a completion confirmation associated with the additional workflow; and A further operation of the one or more automated operations is performed based on the completion confirmation associated with the additional workflow.
17. The system of claim 15, wherein the method further comprises: In response to performing an operation of the one or more automated operations, a new workflow button is caused to be displayed within the virtual space, wherein the new workflow button is configured to initiate an additional workflow.
18. The system of claim 15, wherein the method further comprises: In response to performing an operation of the one or more automated operations, a second virtual space is created based on the plurality of contextual parameters within the virtual space, wherein the second virtual space includes a direct message, a channel, a collaborative document, or a collaborative session.
19. The system of claim 15, wherein the method further comprises: causing display of the workflow button to a second user of the group-based communication system in a second virtual space, the at least one display parameter of the workflow button in the second virtual space being different from the at least one display parameter in the virtual space; in response to actuation of the workflow button in the second virtual space, obtaining the plurality of context parameters associated with the actuation of the workflow button, the plurality of context parameters comprising a second user identifier associated with the second user and a second context identifier indicating the second virtual space; determining, based on the workflow button and the plurality of context parameters, a second workflow for the workflow button, the second workflow being different from the associated workflow; and The second workflow is initiated.
20. The system of claim 15, the method further comprising: In response to performing an operation of the one or more automated operations, information indicative of a first context parameter of the plurality of context parameters is stored in a storage location determined based on a second context parameter of the plurality of context parameters.