Contextual Workflow Button
Context-aware buttons in group-based communication systems dynamically adapt workflows based on user and space parameters, addressing the lack of context awareness and manual editing in existing systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-05-11
- Publication Date
- 2026-03-13
AI Technical Summary
Existing automated workflows in group-based communication systems lack context awareness and dynamic update capabilities, requiring manual editing for different contexts and failing to adapt display elements accordingly.
Implement context-aware buttons that collect context parameters and user interactions to trigger automated workflows, dynamically updating display elements and initiating workflows based on user and space-specific parameters.
Enables contextually relevant automated workflows within group-based communication systems, enhancing user interaction and adaptability without manual intervention.
Smart Images

Figure 0007829739000001 
Figure 0007829739000002 
Figure 0007829739000003
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.
Background Art
[0002] Automated workflows have been used, for example, to perform various action steps within a group-based communication system. However, these workflows are not contextually applied based on the context in which the workflow was initiated. Therefore, the workflows may need to be manually edited before being applied to different contextual locations within the group-based communication system. Additionally, existing workflows lack the ability to dynamically update various display elements within the group-based communication system. Thus, what is needed is a way to apply workflow steps based on context parameters.
Summary of the Invention
[0003] Embodiments of the present invention address the above needs by providing a medium, method, and system for context automation within a group-based communication system, where buttons are added to a virtual space within the group-based communication system. The buttons obtain context parameters associated with the virtual space and user interaction that are passed to the automated workflows initiated by each button. Thus, the steps performed by the automated workflows can be contextually performed based on the context parameters collected by the buttons.
[0004] In some embodiments, the technology described herein relates to one or more non-temporary computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method of contextual automation within a group-based communication system, wherein the method involves causing a display of a workflow button in the virtual space of the group-based communication system to a user of the group-based communication system, wherein at least one display parameter of the workflow button is determined based on the context associated with the virtual space; receiving an activation of the workflow button from the user; receiving a plurality of contextual parameters associated with the workflow button in response to the activation of the workflow button, including a user identifier associated with the user and contextual data associated with the virtual space; initiating an associated workflow associated with the workflow button in order to perform one or more automated actions based on the plurality of contextual parameters; receiving a response indicating completion of the associated workflow; and updating the workflow button in the virtual space of the group-based communication system based on the received response indicating completion of the associated workflow.
[0005] In some embodiments, the technology described herein relates to one or more non-temporary computer-readable media, wherein the method further includes: initiating an additional workflow for performing one or more additional operations in response to performing one of one or more automated operations; receiving a completion confirmation associated with the additional workflow; and performing a further operation of one or more automated operations that depends on the completion confirmation associated with the additional workflow.
[0006] In some embodiments, the techniques described herein further include one or more non-temporary computer-readable media, the method of causing the display of a new workflow button in a virtual space in response to performing one of one or more automated operations, the new workflow button being configured to initiate an additional workflow.
[0007] In some embodiments, the techniques described herein relate to one or more non-temporary computer-readable media, the method further comprising creating a second virtual space based on a plurality of contextual parameters in a virtual space in response to performing one of one or more automated operations, the second virtual space including direct messages, channels, collaborative documents, or collaboration sessions.
[0008] In some embodiments, the techniques described herein relate to one or more non-temporary computer-readable media, the method comprising: causing a display of a workflow button in a second virtual space for a second user of a group-based communication system, wherein at least one display parameter of the workflow button in the second virtual space is different from at least one display parameter in the virtual space; in response to the activation of the workflow button in the second virtual space, obtaining a plurality of context parameters associated with the activation of the workflow button, 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 plurality of context parameters, wherein the second workflow is different from the associated workflow; and initiating the second workflow.
[0009] In some embodiments, the techniques described herein relate to one or more non-temporary computer-readable media, wherein the method further includes storing information indicating a first context parameter among a plurality of context parameters in a storage location determined based on a second context parameter among a plurality of context parameters, in response to performing one of one or more automated operations.
[0010] In some embodiments, the techniques described herein relate to one or more non-temporary computer-readable media, wherein the method further includes updating a virtual space to reflect user action on a workflow button in response to performing one of one or more automated actions.
[0011] In some embodiments, the technology described herein is 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 in a virtual space of the group-based communication system, wherein at least one display parameter of the workflow button is determined based on the context associated with the virtual space; receiving an activation of the workflow button from the user; receiving a plurality of contextual parameters associated with the workflow button in response to the activation of the workflow button, including 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 actions based on the plurality of contextual parameters; receiving a response indicating the completion of the associated workflow; and updating the workflow button in the virtual space of the group-based communication system based on the received response indicating the completion of the associated workflow.
[0012] In some embodiments, the techniques described herein further include a method for initiating an additional workflow to perform one or more additional actions in response to performing one of one or more automated actions, receiving a completion confirmation associated with the additional workflow, and performing a further action of one or more automated actions that depends on the completion confirmation associated with the additional workflow.
[0013] In some embodiments, the techniques described herein further include a method in which, in response to performing one of one or more automated actions, a new workflow button is displayed in a virtual space, the new workflow button is configured to initiate an additional workflow.
[0014] In some embodiments, the techniques described herein further include creating a second virtual space based on a plurality of contextual parameters in a virtual space in response to performing one of one or more automated operations, wherein the second virtual space includes direct messages, channels, collaborative documents, or collaboration sessions.
[0015] In some embodiments, the technique described herein further includes a method for causing a workflow button to appear in a second virtual space for a second user of a group-based communication system, wherein at least one display parameter of the workflow button in the second virtual space is different from at least one display parameter in the virtual space; obtaining a plurality of context parameters associated with the operation of the workflow button in response to the operation of the workflow button in the second virtual space, 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 plurality of context parameters, wherein the second workflow is different from the associated workflow; and initiating the second workflow.
[0016] In some embodiments, the techniques described herein further include, in response to performing one of one or more automated operations, storing information indicating a first context parameter among a plurality of context parameters in a storage location determined based on a second context parameter among a plurality of context parameters.
[0017] In some embodiments, the techniques described herein further include updating a virtual space to reflect user action on a workflow button in response to performing one of one or more automated actions.
[0018] In some embodiments, the technology described herein relates to a system comprising at least one processor and at least one non-temporary memory for 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, wherein the method involves causing a workflow button to be displayed in the virtual space of the group-based communication system for a user of the group-based communication system, wherein at least one display parameter of the workflow button is determined based on the context associated with the virtual space; receiving an activation of the workflow button from the user; receiving a plurality of contextual parameters associated with the workflow button in response to the activation of the workflow button, including 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 actions based on the plurality of contextual parameters; receiving a response indicating the completion of the associated workflow; and updating the workflow button in the virtual space of the group-based communication system based on the received response indicating the completion of the associated workflow.
[0019] In some embodiments, the technology described herein relates to a system, the method further comprising: initiating an additional workflow for performing one or more additional operations in response to performing one of one or more automated operations; receiving a completion confirmation associated with the additional workflow; and performing a further operation of one or more automated operations that depends on the completion confirmation associated with the additional workflow.
[0020] In some embodiments, the technology described herein relates to a system, the method of which, in response to performing one of one or more automated operations, causes the display of a new workflow button in a virtual space, the new workflow button being configured to initiate an additional workflow.
[0021] In some embodiments, the technology described herein relates to a system, the method of which, in response to performing one of one or more automated operations, creates a second virtual space based on a plurality of contextual parameters in a virtual space, the second virtual space includes direct messages, channels, collaborative documents, or collaboration sessions.
[0022] In some embodiments, the technology described herein relates to a system, the method of causing a workflow button to be displayed in a second virtual space for a second user of a group-based communication system, wherein at least one display parameter of the workflow button in the second virtual space is different from at least one display parameter in the virtual space; in response to the activation of the workflow button in the second virtual space, retrieving a plurality of context parameters associated with the activation of the workflow button, 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 plurality of context parameters, wherein the second workflow is different from the associated workflow; and initiating the second workflow.
[0023] In some aspects, the technology described herein is a system, and the method further includes storing, in a storage location determined based on a second context parameter among a plurality of context parameters, information indicating the first context parameter among the plurality of context parameters in response to performing one of a plurality of automated operations. This relates to a system.
[0024] This summary is provided to introduce, in a simplified form, various concepts that are further described in the detailed description below. This summary is not intended to identify key features or essential features of the subject matter claimed, nor is it intended to be used to limit the scope of the subject matter claimed. Other aspects and advantages of the present invention will become apparent from the detailed description of the embodiments below and the accompanying drawings.
[0025] Embodiments of the present invention are described in detail below with reference to the accompanying drawings.
Brief Description of the Drawings
[0026] [Figure 1] It is a diagram showing an exemplary environment for some embodiments of the present invention.
[0027] [Figure 2A] It is a diagram showing a user interface for a group-based communication system of some embodiments.
[0028] [Figure 2B] It is a diagram showing a user interface for a synchronous multimedia collaboration session within a group-based communication system of some embodiments.
[0029] [Figure 2C]This figure shows a user interface for inter-organizational collaboration within a group-based communication system in several embodiments.
[0030] [Figure 2D] This figure shows the user interface for collaborative documents within a group-based communication system in several embodiments.
[0031] [Figure 3A] This diagram shows the user interface for workflows within a group-based communication system.
[0032] [Figure 3B] Block diagrams for implementing several embodiments are shown.
[0033] [Figure 3C] Block diagrams for implementing several embodiments are shown.
[0034] [Figure 4A] This figure shows an exemplary user interface for buttons within a channel in several embodiments.
[0035] [Figure 4B] This figure shows an exemplary user interface for buttons within a channel in several embodiments.
[0036] [Figure 4C] This figure shows an exemplary user interface for buttons within a channel in several embodiments.
[0037] [Figure 5A] This figure shows an exemplary user interface for a button in a collaborative document relating to several embodiments.
[0038] [Figure 5B] This figure shows an exemplary user interface for a button in a collaborative document relating to several embodiments.
[0039] [Figure 5C] This figure shows an exemplary user interface for a button in a collaborative document relating to several embodiments.
[0040] [Figure 5D] This figure shows an exemplary user interface for a button in a collaborative document relating to several embodiments.
[0041] [Figure 6A] This figure shows an exemplary user interface for a resource channel page in several embodiments.
[0042] [Figure 6B] This figure shows an exemplary user interface for a resource channel page in several embodiments.
[0043] [Figure 6C] This figure shows an exemplary user interface for a resource channel page in several embodiments.
[0044] [Figure 6D] This figure shows an exemplary user interface for buttons within direct messages in several embodiments.
[0045] [Figure 6E] This diagram shows an example user interface for automatically generated collaborative documents.
[0046] [Figure 7A]This figure shows an exemplary user interface for an RSVP button according to some embodiments of the present invention.
[0047] [Figure 7B] This figure shows an exemplary user interface for an RSVP button according to some embodiments of the present invention.
[0048] [Figure 7C] This figure shows an illustrative data table relating to several embodiments.
[0049] [Figure 7D] This figure shows an exemplary user interface for an RSVP button according to some embodiments of the present invention.
[0050] [Figure 8] This figure shows an exemplary user interface associated with a button directory for several embodiments.
[0051] [Figure 9A] This figure illustrates an exemplary method for contextual automation within a group-based communication system, relating to several embodiments.
[0052] [Figure 9B] This figure shows an exemplary continuation of the method for contextual automation within a group-based communication system in several embodiments. [Modes for carrying out the invention]
[0053] The drawings do not limit the present invention to any specific embodiment disclosed or described herein. The drawings are not necessarily to a fixed scale and are rather focused on clearly illustrating the principles of the present invention.
[0054] Some embodiments of the present invention relate to implementing context buttons within a group-based communication system so that when the button is activated by a user or some other triggering event, it initiates one or more automated workflows. The automated workflows may be configured to perform one or more automated actions, either internally within the group-based communication system or externally, for example, within a third-party application. In some embodiments, various means are considered for accessing and configuring the buttons from within the group-based communication system. For example, in some embodiments, a button directory may be included to allow a user to curate a list of available buttons that are shared and posted within the group-based communication system. Furthermore, in some embodiments, it may be possible for a user to manually configure various button parameters, such as which workflow is initiated by a given button.
[0055] In some embodiments, a button may retrieve one or more context parameters associated with the context of a group-based communication system. These context parameters may be passed to an initiated workflow so that the automated action can be performed contextually based at least partially on one or more of these context parameters. In some such embodiments, the context parameters may include an indication of the user who selected the button, as well as contextual indications of the button within the group-based communication system, such as which channel or other virtual space the button was activated in. Thus, the workflow may be executed at least partially based on the context in which the button was activated. Therefore, at least part of the workflow's actions may be executed 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 illustrating specific embodiments in which the present invention may be carried out. The embodiments are intended to describe aspects of the present invention in sufficient detail to enable those skilled in the art to carry out the present invention. Other embodiments may be available and modifications may be made without departing from the scope of the invention. Accordingly, the following detailed description should not be construed as restrictive. The scope of embodiments of the present invention is defined only by the appended claims and the entire scope of equivalents to which such claims are granted.
[0057] In this specification, any reference to “one embodiment,” “embodiment,” or “embodiment (plural)” means that the feature(s) referred to are included in at least one embodiment of the Art. Separate references to “one embodiment,” “embodiment,” or “embodiment (plural)” in this specification do not necessarily refer to the same embodiment, nor are they mutually exclusive unless otherwise stated and / or are readily apparent to those skilled in the art from this specification. For example, a feature, structure, or operation described in one embodiment may, but not necessarily, be included in other embodiments. Thus, the Art may include various combinations and / or integrations of the embodiments described herein.
[0058] [Group-based communication system] Figure 1 shows an exemplary environment 100 for performing the techniques described herein. In at least one example, exemplary environment 100 may be associated with a communication platform that leverages a network-based computing system to enable users of the communication platform to exchange data. In at least one example, the communication platform may be “group-based” such that the platform and associated systems, communication channels, messages, collaborative documents, canvases, audio / video conversations, and / or other virtual spaces have security (which may be defined by permissions) to restrict access to defined groups of users. In some examples, such groups of users may be defined by group identifiers, which may be associated with common access credentials or domains, as described above. In some examples, the communication platform may be a hub that provides a secure and private virtual space for users to chat, meet, call, collaborate, transfer files or other data, or otherwise contact each other. As described above, each group is associated with a workspace, and users associated with the group are able to chat, meet, call, collaborate, transfer files or other data, or otherwise contact each other in a secure and private virtual space. In some examples, members of a group, and therefore of a workspace, may be associated with the same organization. In other examples, members of a group, and therefore of a workspace, may be associated with different organizations (for example, entities with different organization identifiers).
[0059] In at least one example, the exemplary environment 100 may include one or more server computing devices (or “servers”) 102. In at least one example, the servers 102 may include one or more servers or other types of computing devices that can be embodied in any number of ways. For example, in the server example, functional components and data may be implemented in a single server, a cluster of servers, a server farm or data center, a cloud-hosted computing service, a cloud-hosted storage service, etc., but additionally or alternatively, other computer architectures may be used.
[0060] In at least one example, a server(s) 102 may communicate with a user computing device(s) 104 via one or more networks 106. That is, the server(s) 102 and the user computing device(s) 104 may transmit, receive, and / or store data (e.g., content, information, etc.) using the networks 106 as described herein. The user computing device(s) 104 may be any suitable type of computing device, e.g., portable, semi-portable, semi-fixed, or fixed. Some examples of user computing device(s) 104 may include tablet computing devices, smartphones, mobile communication devices, laptops, netbooks, desktop computing devices, terminal computing devices, wearable computing devices, augmented reality devices, Internet of Things (IoT) devices, or any other computing device capable of transmitting communications and performing functions in accordance with the technologies described herein. Although a single user computing device(s) 104 is shown, in practice, the exemplary environment(s) 100 may include multiple (e.g., tens, hundreds, thousands, millions) user computing devices. In at least one example, a user computing device, such as user computing device 104, may be operated by a user to access communication services via a communication platform, among other things. The user may be an individual, a group of individuals, an employer, a company, an organization, and / or similar.
[0061] Network(s) 106 may include, but are not limited to, any type of network known in the art, such as a local area network or wide area network, the Internet, a wireless network, a cellular network, a local wireless network, Wi-Fi and / or near-field communication, Bluetooth®, Bluetooth Low Energy (BLE), near-field communication (NFC), a wired network, or any other such network, or any combination thereof. The components used for such communication may depend at least in part on the type of network, the chosen environment, or both. Protocols for communicating over such network(s) 106 are well known and are not described in detail herein.
[0062] In at least one example, the server(s) 102 may include one or more processors 108, a computer-readable medium 110, one or more communication interfaces 112, and an input / output device 114.
[0063] In at least one example, each processor(s) 108 may be a single processing unit or multiple processing units, and may include one or more computing units or multiple processing cores. Processor(s) 108 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units (CPUs), graphics processing units (GPUs), state machines, logic circuits, and / or any device that manipulates signals based on operational instructions. For example, processor(s) 108 may be one or more hardware processors and / or logic circuits of any suitable type that are specifically programmed or configured to perform the algorithms and processes described herein. Processor(s) 108 may be configured to fetch and execute computer-readable instructions stored on a computer-readable medium, which can be programmed to perform the functions described herein.
[0064] The computer-readable medium 110 may include volatile and non-volatile memory and / or removable and non-removable media implemented in any type of technology for storing data such as computer-readable instructions, data structures, program modules, or other data. Such computer-readable medium 110 may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, optical storage, solid-state storage, magnetic tape, magnetic disk storage, RAID storage systems, storage arrays, network-attached storage, storage area networks, cloud storage, or any other media that may be used to store desired data and may be accessed by computing devices. Depending on the configuration of the server(s) 102, the computer-readable medium 110 may be a type of computer-readable storage medium and / or, where referred to, a non-temporary computer-readable medium may be a tangible non-temporary medium, insofar as non-temporary computer-readable medium excludes media such as energy, carrier signals, electromagnetic waves, and signals themselves.
[0065] The computer-readable medium 110 may be used to store any number of functional components that can be executed by the processor(s) 108. In many implementations, these functional components include instructions or programs that, when executed by the processor(s) 108, specifically configure the processor(s) 108 to perform the operations attributed to the server(s) 102 described above. 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 store 124.
[0066] In at least one example, the messaging component 116 may process messages between users. That is, in at least one example, the messaging component 116 may receive an outgoing message from a user computing device 104 and send that message as an incoming message to a second user computing device 104. Messages may include direct messages sent from an outgoing user to one or more designated users, and / or communication channel messages sent from an outgoing user to one or more users associated with a communication channel via a communication channel. Furthermore, messages may be sent in relation to collaborative documents, canvases, or other collaborative spaces. In at least one example, a canvas may include a flexible canvas for curating, organizing, and sharing collections of information among 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.) configured to allow messaging functionality to originate from a virtual space (e.g., a communication channel) within the collaborative document. That is, a collaborative document may be treated as a virtual space, such as a communication channel, and may include functionality associated with it. A virtual space, i.e., a communication channel, may be a data path used to exchange data between systems and devices associated with a communication platform.
[0067] In at least one example, the messaging component 116 may establish a communication path between various user computing devices, enabling them to communicate with each other and share data. In at least one example, the messaging component 116 may manage such communication and / or data sharing. In some examples, data associated with the virtual space, such as collaborative documents, can be presented through a user interface. In addition, metadata associated with each message sent through the virtual space, such as a timestamp associated with the message, a sender user identifier, a receiver user identifier, a conversation identifier, and / or a root object identifier (e.g., a conversation associated with a thread and / or a root object), can be stored in association with the virtual space.
[0068] In various examples, the messaging component 116 can receive messages sent in relation to a virtual space (e.g., a direct message instance, a communication channel, a canvas, a collaborative document, etc.). In various examples, the messaging component 116 can identify one or more users associated with a virtual space and cause message rendering in relation to the instance of the virtual space on each user computing device 104. In various examples, the messaging component 116 can identify a message as an update to the virtual space and, based on the identified update, can display a notification associated with the update in relation to the sidebar of a user interface associated with one or more of the users associated with the virtual space. For example, the messaging component 116 can receive a message sent in relation to a virtual space from a first user account. In response to receiving the message (e.g., interaction data associated with the interaction between the first user and the virtual space), the messaging component 116 can identify a second user associated with the virtual space (e.g., another user who is a member of the virtual space). In some examples, the messaging component 116 may display notifications of updates to the virtual space via a sidebar of the user interface associated with a second user account of a second user. In some examples, the messaging component 116 may display notifications depending on the decision that the sidebar of the user interface associated with the second user account contains affordances associated with the virtual space. In such examples, notifications may be displayed in relation to affordances associated with the virtual space.
[0069] In various examples, the messaging component 116 may be configured to identify mentions or tags associated with messages sent in relation to a virtual space. In at least one example, the mention or tag may include @mention (or other special characters) of a user identifier associated with the communication platform. The user identifier may include a username, real name, or other unique identifier associated with a particular user. In response to identifying a mention or tag of a user identifier, the messaging component 116 may display a notification on the user interface associated with the user identifier, for example, in relation to affordances associated with a virtual space in the sidebar of a user interface associated with a particular user, and / or in the virtual space associated with the mention and reaction. That is, the messaging component 116 may be configured to alert a particular user that they have been mentioned in a virtual space.
[0070] In at least one example, the audio / video component 118 may be configured to manage audio and / or video communication between users. In some examples, audio and / or video communication may be associated with an audio and / or video conversation. In at least one example, an audio and / or video conversation may include a separate identifier configured to uniquely identify the audio and / or video conversation. In some examples, the audio and / or video component 118 may store user identifiers associated with the user accounts of members of a particular audio and / or video conversation, for example, to identify users(s) who have the appropriate permissions to access that particular audio and / or video conversation.
[0071] In some examples, the communication 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 certain period, after which a third user associated with the Conversation (e.g., a member of the Conversation) may contribute to the Conversation. The audio / video component 118 may be configured to store audio and / or video data associated with the Conversation, for example, to enable a user with the appropriate permissions to listen to and / or view the audio and / or video data.
[0072] In some examples, the audio / video component 118 may be configured to generate a transcript of a conversation and may store the transcript in relation to the audio and / or video data. The transcript may include a textual representation of the audio and / or video data. In at least one example, the audio / video component 118 may use known speech recognition techniques to generate the transcript. In some examples, the audio / video component 118 may generate the transcript concurrently with or substantially concurrently with the conversation. That is, in some examples, the audio / video component 118 may be configured to generate a textual representation of the conversation while the conversation is taking place. In some examples, the audio / video component 118 may generate a transcript after receiving an indication that the conversation is complete. Indications of conversation completion may include an indication that the host or its associated administrator has stopped the conversation, an indication that a threshold number of conference attendees have closed the associated interface, and / or similar. That is, the audio / video component 118 may be able to identify the completion of a conversation and, based on the completion, generate an associated transcript.
[0073] In at least one example, the audio / video component 118 may be configured to produce a transcript presentation in relation to a virtual space associated with an audio and / or video conversation. For example, a first user may initiate an audio and / or video conversation in relation to a communication channel. The audio / video component 118 may process audio and / or video data between participants in the audio and / or video conversation and generate a transcript of the audio and / or video data. Depending on the generation of the transcript, the audio / video component 118 may make the transcript public or otherwise present via the communication channel. In at least one example, the audio / video component 118 may render one or more sections of the transcript that can be selected for commenting on, for example, to allow members of the communication channel to comment on or further contribute to the conversation. In some examples, the audio / video component 118 may update the transcript based on the comments.
[0074] In at least one example, the audio / video component 118 can manage one or more audio and / or video conversations in relation to a virtual space associated with group management or a command center. The group management or command center may, in this specification, be referred to as a virtual (and / or digital) headquarters associated with the group. In at least one example, the audio / video component 118 may work in conjunction with the messaging component 116 and / or other components of the server(s) 102 to transmit communications in relation to other virtual spaces associated with the virtual headquarters. That is, the messaging component 116 can 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 be associated with one or more audio and / or video conversations managed by the audio / video component 118. In other words, audio and / or video conversations associated with the virtual headquarters may be further associated with one or more other virtual spaces within the virtual headquarters, or they may be independent of them.
[0075] In at least one example, the workspace management component 120 may manage workspaces. That is, in at least one example, the communication platform may be divided into different workspaces that may be associated with different groups of users, as described above. As described above, each workspace is associated with a group identifier, and one or more user accounts are mapped to the group identifier or otherwise associated. The user(s) corresponding to such user account(s) may be "members" of the group.
[0076] In some cases, the workspace management component 120 can manage workspace membership. That is, the workspace management component 120 can receive requests to associate users with individual workspaces, and the workspace management component 120 can associate the user accounts associated with such users with group identifiers associated with individual workspaces. For example, in response to receiving a request to add a user to a workspace, the workspace management component 120 can associate the user's user account with the workspace's group identifier. The workspace management component 120 may, for example, disassociate the user account from the group identifier when a user is removed from a workspace.
[0077] In at least one example, the workspace management component 120 may manage cross-workspace data integration as described herein. For example, the workspace management component 120 may detect updates to data associated with a workspace and integrate such updated data into user interfaces presented via user computing devices of users associated with the workspace. Such data integration may be “cross-workspace” such that a user can receive and / or access (as described below, pending permissions) updated data associated with each workspace to which they are a member, regardless of which workspace they are logged into. That is, the workspace management component 120 may detect updates to data associated with a workspace and integrate such updated data into user interfaces presented via user computing devices of users associated with the workspace. Similarly, the workspace management component 120 may facilitate cross-workspace operations. For example, the workspace management component 120 may facilitate inter-workspace messaging, searches between or across multiple workspaces, and so on. Further details about the actions that the workspace management component 120 can perform are described below.
[0078] In at least one example, the operating system 122 can manage the processor(s) 108 of the server(s) 102, computer-readable media 110, hardware, software, etc.
[0079] In at least one example, datastore 124 may be configured to store accessible, manageable, and updatable data. In some examples, datastore 124 may be integrated with server(s) 102, as shown in Figure 1. In other examples, datastore 124 may be located remotely from server(s) 102 and accessible from server(s) 102 and / or user(s), such as user(s) device(s) 104. Datastore 124 may contain multiple databases, which may include user / organization data(s) 126 and / or virtual space data(s) 128. Additional or alternative data may be stored in the datastore and / or one or more other datastores.
[0080] In at least one example, user / organization data 126 may include data associated with a user of the 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”) that can store data associated with a user, including but not limited to: one or more user identifiers associated with multiple different organizations or entities to which the user is associated; one or more communication channel identifiers associated with communication channels to which the user is permitted access; one or more group identifiers of groups (or organizations, teams, entities, etc.) to which the user is associated; an indication of whether the user is the owner or administrator of any communication channel; an indication of whether the user has any communication channel restrictions; multiple messages; multiple emojis; multiple conversations; multiple conversation topics; avatars; email addresses; real names (e.g., John Doe); usernames (e.g., j doe); passwords; time zones; status; tokens, etc.
[0081] In at least one example, user / organization data 126 may include permission data associated with the permissions of individual users on the communication platform. In some examples, permissions may be set automatically or by the communication platform administrator, employer, company, organization, or other entity using the communication platform, such as a team leader, group leader, or other entity, or individual user, to communicate with team members, group members, etc. Permissions associated with individual users may be mapped to accounts or profiles within user / organization data 126 or otherwise associated. In some examples, permissions may indicate which users can communicate directly with other users, which channels users are allowed to access, restrictions on individual channels, which workspaces users are allowed to access, restrictions on individual workspaces, etc. In at least one example, permissions may support the communication platform by maintaining security to restrict access to defined user groups. In some examples, such users may be defined by common access credentials, group identifiers, etc., as described above.
[0082] In at least one example, user / organization data 126 may include data associated with one or more organizations on 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 an 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 identifier, communication channel identifier, direct message instance identifier, collaborative document identifier, canvas identifier, audio / video conversation identifier, etc.), an organization identifier associated with the organization, and one or more organization identifiers associated with other organizations authorized to communicate with the organization.
[0083] 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 types of data configured to be transmitted in connection 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 individual virtual spaces separately, such as based on a separate identifier associated with each virtual space. In some examples, a first virtual space may be associated with a second virtual space. In such examples, the first virtual space data associated with the first virtual space may be stored in connection with the second virtual space. For example, data associated with a collaborative document generated in connection with a communication channel may be stored in connection with the communication channel. In other examples, data associated with audio and / or video conversations conducted in connection with a communication channel may be stored in connection with the communication channel.
[0084] As described above, each virtual space in the communication platform may be assigned a separate identifier that uniquely identifies the virtual space. In some examples, the virtual space identifier associated with a virtual space may include a physical address in the virtual space data 128 where data related to that virtual space is stored. A virtual space may be “public” (for example, associated with an organization identifier), allowing any user within an organization to participate in data sharing through the virtual space, or it may be “private,” restricting data communication within the virtual space to specific users or users with appropriate permissions to view it. In some examples, a virtual space may be “shared,” which may allow users associated with different organizations (for example, entities associated with different organization identifiers) to participate in and participate in data sharing through the virtual space. A shared virtual space (for example, a shared channel) may be public, accessible to any user in either organization, or private, restricting access to specific users in both organizations (for example, users with appropriate permissions).
[0085] In some examples, datastore 124 may be divided into separate data items (e.g., data shards) that can be accessed and managed individually. Data shards can simplify many technical tasks such as data retention, deployment (e.g., detecting if message content contains links, crawling the metadata of links, and determining a uniform summary of the metadata), and integration configuration. In some examples, data shards may be associated with organizations, groups (e.g., workspaces), communication channels, users, etc.
[0086] In some examples, individual organizations may be associated with database shards in datastore 124 that store data related to a specific organization identification. For example, a database shard may store electronic communication data associated with a member of a particular organization, which would allow that member to communicate and exchange data with other members of the same organization in real time or near real time. In this example, the organization itself could be the owner of the database shard and control where and how the relevant data is stored. In some examples, a database shard may store data related to two or more organizations (for example, in a shared virtual space).
[0087] In some examples, individual groups may be associated with database shards in datastore 124 that store data related to a specific group identification (e.g., a workspace). For example, a database shard may store electronic communication data associated with members of a particular group, allowing those members to communicate and exchange data with other members of the same group in real time or near real time. In this example, the group itself may be the owner of the database shard and control where and how the associated data is stored.
[0088] In some examples, a virtual space may be associated with a database shard in a datastore 124 that stores data related to a specific virtual space identifier. For example, a database shard may store electronic communication data associated with a virtual space, which allows members of that particular virtual space to communicate with other members of the same virtual space and exchange data in real time or near real time. As mentioned above, communication through a virtual space can be synchronous and / or asynchronous. In at least one example, a group or organization may be the owner of a database shard and control where and how the associated data is stored.
[0089] In some examples, individual users may be associated with database shards within datastore 124 that store data related to a specific user account. For example, a database shard may store electronic communication data associated with an individual user, which allows the user to communicate and exchange data with other users on the communication platform in real time or near real time. In some examples, the user themselves may be the owner of the database shard and control where and how the associated data is stored.
[0090] The communication interface(s) 112 may include one or more interfaces and hardware components for enabling communication with various other devices (e.g., user computing device 104) via the network(s) 106 or directly. In some examples, the communication interface(s) 112 may facilitate communication via WebSockets, Application Programming Interfaces (APIs) (e.g., using API calls), Hypertext Transfer Protocol (HTTPS), etc.
[0091] The server(s) 102 may further include various input / output devices 114 (e.g., I / O devices). Such I / O devices 114 may include displays, various user interface controls (e.g., buttons, joysticks, keyboards, mice, touchscreens, etc.), audio speakers, connection ports, etc.
[0092] In at least one example, the user computing device 104 may include one or more processors 130, a computer-readable medium 132, one or more communication interfaces 134, and an input / output device 136.
[0093] In at least one example, each processor in processor(s) 130 may be a single processing unit or multiple processing units, and may include one or more computing units or multiple processing cores. Processor(s) 130 may include any of the types of processors described above with reference to processor(s) 108, and may be the same as or different from processor(s) 108.
[0094] The computer-readable medium 132 may include any of the types of computer-readable medium 132 described above with reference to the computer-readable medium 110, and may be the same as or different from the computer-readable medium 110. The functional components stored in the computer-readable medium may optionally include at least one application 138 and an operating system 140.
[0095] 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 otherwise be a dedicated application. In some examples, individual user computing devices 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 run by processor(s) 130 to perform the operations 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 through the communication platform. In at least one example, application 138 may facilitate the exchange of data between various other user computing devices, for example, via server(s) 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, audio input, or any other type of input.
[0096] A non-restrictive example of user interface 142 is shown in Figure 1. As shown in Figure 1, user interface 142 may present data associated with one or more virtual spaces, which may include one or more workspaces. That is, in some examples, user interface 142 may integrate data from multiple workspaces into a single user interface so that a user (e.g., of user computing device 104) can access and / or interact with data associated with multiple workspaces to which they are associated, and / or otherwise communicate with other users associated with multiple workspaces. In some examples, user interface 142 may include a first area 144, or pane, which contains indicators (or multiple) (e.g., user interface elements (or multiple) or objects (or multiple)) associated with the workspace(s) to which the user (e.g., the user's account) is associated. In some examples, user interface 142 may include a second area 146, or pane, which contains indicators (or multiple) (e.g., user interface elements (or multiple), affordances (or multiple), objects (or multiple), etc.) that represent data associated with the workspace(s) to which the user (e.g., the user's account) is associated. In at least one example, the second region 146 may represent the sidebar of the user interface 142. Further details regarding the second region 146 and the indicator(s) are described below.
[0097] In at least one example, the user interface 142 may include a third area 148, or pane, which may be associated with a data feed (or "feed") showing messages posted to and / or actions performed to one or more communication channels, and / or other virtual spaces to facilitate communication (e.g., virtual spaces associated with direct message communications, virtual spaces associated with events and / or actions). 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 sortable by workspace, time (e.g., when the associated data was posted or when the associated action was otherwise performed), type of action, communication channel, user, etc. In some examples, such data may be associated with an indicator of which user (e.g., a member of a communication channel) posted the message and / or performed the action. In the example where the third area 148 presents data associated with multiple workspaces, at least some of the data may be associated with an indicator of which workspace the data is associated with.
[0098] In at least one example, the operating system 140 can manage the processors 130, computer-readable media 132, hardware, software, etc. of the server(s) 102.
[0099] The communication interface(s) 134 may include one or more interfaces and hardware components for enabling communication with various other devices (e.g., user computing device 104) via the network(s) 106 or directly. In some examples, the communication interface(s) 134 may facilitate communication via WebSockets, APIs (e.g., using API calls), HTTPS, etc.
[0100] The user computing device 104 may further include various input / output devices 136 (e.g., I / O devices). Such I / O devices 136 may include a display, various user interface controls (e.g., buttons, joysticks, keyboards, mice, touchscreens, etc.), audio speakers, connection ports, and the like.
[0101] The techniques described herein are described as being performed by the messaging component 116, the audio / video component 118, the workspace management component 120, and the application 138, but the techniques described herein may be performed by the server(s) 102, the user computing device 104, or any other component or combination of components that may be associated with a combination thereof.
[0102] [User interface for group-based communication systems] Figure 2A shows a user interface 200 for a group-based communication system, useful for illustrating the operation of various embodiments, as will be further detailed below. A group-based communication system may include communication data such as messages, queries, files, mentions, users or user profiles, interactions, tickets, channels, applications integrated into one or more channels, conversations, workspaces, or other data generated by or shared among users of the group-based communication system. In some examples, communication data may include user-related data such as user identifiers, channels to which the user is permitted access, groups to which the user is associated, permissions, and other user-specific information.
[0103] The user interface 200 includes multiple objects such as panes, text input fields, buttons, messages, or other user interface components that are viewable by users of the group-based communication system. As shown in the illustration, the user interface 200 includes a title bar 202, a workspace pane 204, a navigation pane 206, a synchronized multimedia collaboration session pane 216, a channel pane 218, and a thread pane 230.
[0104] In some embodiments, the title bar 202 includes a search bar 220. The search bar 220 can allow the user to find content located within the current workspace of a group-based communication system, such as files, messages, channels, members, commands, and features. The user can refine their search by attributes such as content type and content author, and by the user associated with the content. The user may optionally search within a specific workspace, channel, direct message conversation, or document. In some embodiments, the title bar 202 includes navigation commands that allow the user to move back and forth between different panes, as well as view a history of accessed content. The title bar 202 may include additional resources, such as links to assist with documents and user configuration settings.
[0105] In some embodiments, a group-based communication system may include multiple distinct workspaces, each associated with a different group of users and channels. Each workspace may be associated with a group identifier, and one or more user identifiers may be mapped to or otherwise associated with a 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, adding, or removing different workspaces within the group-based communication system. For example, a user may be part of an Acme workspace, and the user may be an Acme employee or otherwise affiliated with Acme. The user may also be a member of a local volunteer organization that uses the group-based communication system to collaborate. To navigate between the two groups, the user can use the workspace pane 204 to switch from the Acme workspace to the volunteer organization workspace. A workspace may include one or more channels specific to that workspace, and / or one or more channels shared between one or more workspaces. For example, Acme may have workspaces for Acme projects such as Project Zen, workspaces for social discussion, and additional workspaces for general company matters. 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 the organization. In yet another embodiment, a particular workspace may be associated with one or more organizations or other entities associated with a group-based communication system.
[0106] In some embodiments, the navigation pane 206 allows the user to navigate between virtual spaces such as pages, channels 208, collaborative documents 210 (as described in Figure 2D), applications 214, and direct messages 212 within a group-based communication system. For example, the navigation pane 206 may include indicators representing virtual spaces from which data associated with multiple virtual spaces to which the user is a member can be aggregated. In at least one example, each virtual space may be associated with an indicator in the navigation pane 206. In some examples, the indicators may be associated with an actuation mechanism (e.g., an affordance) such that, when actuated, the user interface 200 is caused to present data associated with the corresponding virtual space. In at least one example, a virtual space may be associated with all unread data associated with each of the workspaces to which the user is associated. That is, in some examples, if the user requests access to a virtual space associated with “unread”, all data that has not been read (e.g., viewed) by the user may be presented, for example, in a feed. In such examples, different types of events and / or actions that may be associated with different virtual spaces may be presented via the same feed. In some examples, such data may be organized and / or categorized by the associated virtual space (e.g., the virtual space from which the communication was sent), time, type of action, user, and / or similar. In some examples, such data may be associated with an indication of which user (e.g., a member of the associated virtual space) posted the message and / or performed the action.
[0107] In some cases, 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 a message posted in a virtual space; “mentions and reactions” can be associated with messages or threads to which a user is mentioned (e.g., via tags) or to which other users react (e.g., via emojis, reactions, etc.) to messages or threads posted by the user. In other words, in some cases, events and / or actions of the same type that can be associated with different virtual spaces may be presented through the same feed. Similar to the “unread” virtual space, data associated with such virtual spaces can be organized and / or categorized by virtual space, time, type of action, user, and / or similar.
[0108] In some examples, virtual spaces can be associated with facilitating interaction between users of a communication platform and other users. For instance, "connecting" can be associated with enabling a user to generate invitations to connect with one or more other users. In at least one example, in response to receiving a sign of selection for the "connecting" indicator, the communication platform may prompt the user to present a connecting interface.
[0109] In some examples, a virtual space may be associated with one or more boards or collaborative documents to which a user is associated. In at least one example, a 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 to which the user is associated, one or more documents may be presented via the user interface 200. In at least one example, a document may be associated with an individual (e.g., a user's private document), a group of users (e.g., a collaborative document), and / or one or more communication channels (e.g., members of a communication channel granted access to a document), for example, to enable users of a communication platform to create, interact with, and / or view data associated with such a document. 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 can be ordered, added, deleted, modified, etc. In some examples, collaborative documents may be associated with permissions that define which users of the communication platform can view and / or edit the document. In some examples, collaborative documents may be associated with communication channels, and members of those channels can view and / or edit the document. In some examples, collaborative documents may be shareable so that the data associated with the document is accessible and / or interactable to members of multiple communication channels, workspaces, organizations, etc.
[0110] In some examples, a virtual space may be associated with a group's (e.g., organization, team, etc.) headquarters (e.g., a management center or command center). In at least one example, the group headquarters may include a virtual or digital headquarters for administrative or command functions associated with a group of users. For example, “HQ” may be associated with an interface that includes a list of indicators associated with a virtual space configured to allow associated members to communicate. In at least one example, a user may associate one or more virtual spaces with the “HQ” virtual space via drag-and-drop operations, etc. That is, a user may determine which virtual spaces are relevant to associate with a virtual or digital headquarters, such as associating virtual spaces that are important to the user.
[0111] Although not illustrated, in some examples, a virtual space may be associated with one or more boards or collaborative documents to which a user is associated. In at least one example, a 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 to which the user is associated, one or more documents may be presented via the user interface 200. In at least one example, a document may be associated with an individual (e.g., a user's private document), a group of users (e.g., a collaborative document), and / or one or more communication channels (e.g., members of a communication channel granted access to a document), for example, to enable users of a communication platform to create, interact with, and / or view data associated with such a document. 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 can be ordered, added, deleted, modified, etc. In some examples, a collaborative document may 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 may 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 may be shareable so that the data associated with the document is accessible and / or interactable to members of multiple communication channels, workspaces, organizations, etc.
[0112] Furthermore, although not illustrated, in some examples a virtual space may be associated with one or more canvases to which a user is associated. In at least one example, a canvas may include a flexible canvas for curating, organizing, and sharing a collection of information among users. That is, a canvas may be configured to be accessed and / or modified by two or more users with appropriate permissions. In at least one example, a canvas may be configured to allow the sharing of text, images, videos, GIFs, drawings (e.g., user-generated drawings via a canvas interface), game content (e.g., users interacting with game controls synchronously or asynchronously), and / or similar. In at least one example, modifications to a canvas may include adding, deleting, and / or modifying previously shared (e.g., submitted, presented) data. In some examples, content associated with a canvas may be shareable through other virtual spaces so that the data associated with the canvas is accessible to and / or interactable with members of the virtual space.
[0113] Navigation pane 206 may further include indicators representing communication channels. In some examples, communication channels may include public channels, private channels, shared channels (e.g., between groups or organizations), single workspace channels, cross-workspace channels, and combinations of the above. In some examples, represented communication channels may be associated with a single workspace. In some examples, represented communication channels may be associated with different workspaces (e.g., cross-workspace). In at least one example, if a communication channel is cross-workspace (e.g., associated with different workspaces), a user may be associated with both workspaces or with only one of the workspaces. In some examples, represented communication channels may be associated with a combination of communication channels associated with a single workspace and communication channels associated with different workspaces.
[0114] In some embodiments, the navigation pane 206 may display all communication channels to which the user has permission to access (for example, as determined by permission data), or some of all communication channels. In such examples, communication channels may be arranged alphabetically, for example, based on the most recent interaction, based on the frequency of interaction, based on the communication channel type (e.g., public, private, shared, cross-workspace, etc.), based on the workspace, or within a user-specified section. In some examples, the navigation pane 206 may display all communication channels to which the user is a member, or some of all communication channels, 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 they may have their own sub-areas or sub-panes within the user interface 200. In some examples, communication channels associated with different workspaces may be in different sections of the navigation pane 206, or they may have their own areas or panes within the user interface 200.
[0115] In some examples, indicators may be associated with graphical elements that visually distinguish the type of communication channel. For example, project_zen might be associated with the lock graphical element. As a non-restrictive example, for the sake of this explanation, the lock graphical element might indicate that the associated communication channel, namely project_zen, is private and access to it is restricted, while other communication channels, namely general, are public and access to them is available to any member of the organization to which the user is associated. In some examples, additional or alternative graphical elements may be used to distinguish shared communication channels, communication channels associated with different workspaces, communication channels used regardless of whether the user is a current member or not, and / or similar.
[0116] In at least one example, the navigation pane 206 may include an indicator representing communication with an individual user or a group of specified users (rather than all or some members of the organization, for example). Such communication may be referred to as “direct messages.” The navigation pane 206 may also include an indicator representing a virtual space associated with private messages between one or more users.
[0117] A direct message 212 may be communication between a first user and a second user, or it may be a multi-person direct message between a first user and two or more second users. The navigation pane 206 may be sorted and organized into hierarchies or sections according to the user's preference. In some embodiments, all channels to which the user is permitted to access may appear in the navigation pane 206. In other embodiments, the user may choose to hide certain channels or collapse sections containing certain channels. Items in the navigation pane 206 may indicate when new messages or updates have been received or are currently unread, for example, by bolding the text associated with the channel where the unread messages are located, or by adding an icon or badge to the channel name (for example, along with the number of unread messages). In some embodiments, the group-based communication system may additionally or alternatively store permission data associated with the permissions of individual users in the group-based communication system, indicating which channels a user can view or participate in. Permissions can specify, for example, which users can communicate directly with other users, which channels users are allowed to access, restrictions on individual channels, which workspaces users are allowed to access, and restrictions on individual workspaces.
[0118] Furthermore, although not illustrated, the navigation pane 206 may include subsections that are personalized subsections associated with teams to which the user is a member. That is, the “Teams” 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 sync or asynchronous meetings, and / or equivalents. In at least one example, the user can associate selected virtual spaces with the team subsection by dragging and dropping the selected virtual spaces into the team subsection, pinning them, or otherwise associating them.
[0119] [Channels within a group-based communication system] In some embodiments, the group-based communication system is a channel-based messaging platform, as shown in Figure 2A. Within the group-based communication system, communication may be organized into channels, each dedicated to a specific topic and a set of users. A channel is generally a virtual space associated with a particular topic, containing messages and files posted by the channel's members.
[0120] For the purposes of this discussion, “Message” may mean any electronically generated digital object provided by the user using the user computing device 104 and configured to be displayed in a communication channel and / or other virtual space (e.g., a virtual space associated with direct message communication) to facilitate communication, as described herein. A message may include any text, image, video, audio, or a combination thereof provided by the user (using the user computing device). For example, the user may provide a message containing text, as well as images and video, as message content. In such an example, text, images, and video constitute the message. Each message sent or posted to a communication channel of the communication platform may include metadata, including a sender user identifier, a message identifier, message content, a group identifier, a communication channel identifier, and so on. In at least one example, each of the aforementioned identifiers may include U.S. Standard Code for Information Exchange (ASCII) text, a pointer, a memory address, and so on.
[0121] Channel discussions can persist for days, months, or even years, providing a historical log of user activity. Members of a particular channel can post messages within that channel that are visible to other members of that channel, along with other messages within that channel. Users can select which channels to view to see only messages related to the topic of that channel, without seeing messages posted to other channels on different topics. For example, a software development company might have different channels for each software product under development, allowing developers working on each specific project to converse generally on a single topic (e.g., the project) without noise from irrelevant topics. Because channels are generally persistent and targeted to a specific topic or group, users can quickly and easily refer to previous interactions for reference. In some embodiments, the channel pane 218 may display information about the channel selected by the user within the navigation pane 206. For example, a user might select the project_zen channel to discuss ongoing software development efforts about Project Zen. In some embodiments, the channel pane 218 may include a header containing information about the channel, such as the channel name, a list of users in the channel, and other channel controls. Users can pin items to the header for later access and add bookmarks to the header. In some embodiments, links to collaborative documents may be included in the header. In further embodiments, each channel may have a corresponding virtual space containing channel-related information such as channel summaries, tasks, bookmarks, pinned documents, and other channel-related links that may be editable by channel members.
[0122] Communication channels or other virtual spaces may be associated with data and / or content other than messages, or with data and / or content associated with messages. For example, non-exclusive 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 can be edited collaboratively, in real time, or near real time), audio and / or video data associated with a conversation, members added to and / or removed from a communication channel, files (or more) uploaded to and / or removed from a communication channel (e.g., attachments), applications added to and / or removed from a communication channel, posts (or more) added to and / or removed from a communication channel (data that can be collaboratively edited near real time by one or more members of the communication channel), descriptions added to, modified from, and / or removed from a communication channel, changes to the properties of a communication channel, etc.
[0123] The channel pane 218 may contain messages such as message 222, which are content posted to the channel by a user. A user may post text, images, videos, audio, or any other file as message 222. In some embodiments, certain identifiers (within a message or its exceptions) may be indicated by prefixing them with a predetermined character. For example, a channel may be prefixed with the character "#" (e.g., #project_zen), and a username may be prefixed with the character "@" (e.g., @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. The reaction button 224 allows the user to select an icon, such as a thumbs-up (sometimes referred to as reactji in this context), to be associated with the message. 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 within a channel may be further divided into threads. Threads can be used to aggregate messages related to a specific conversation, making it easier to follow and reply to the conversation without cluttering the main channel with discussion. Below the message that starts a thread, a thread reply preview 226 appears. The thread reply preview 226 may show information about the thread, such as the number of replies and the members who have replied. Thread replies may appear in a thread pane 230, which may be separate from the channel pane 218, and can be viewed by other members of the channel by selecting the thread reply preview 226 within the channel pane 218.
[0124] In some embodiments, one or both of the channel pane 218 and the thread pane 230 may include a compose pane 228. The compose pane 228 allows a user to compose a message 222 and send it to a member of the channel, or (when a message is sent in a thread) to a member of the channel following the thread. The compose pane 228 may have text editing capabilities such as bold, strikethrough, and italics. The compose pane 228 may also allow a user to format their message or attach files, such as collaborative documents, images, videos, or any other files to share with other members of the channel. In some embodiments, the compose pane 228 may enable additional formatting options, such as numbered or bulleted lists, via either a user interface or an API. The compose pane 228 may function as a workflow trigger to initiate a workflow related to a channel or message. In further embodiments, a link or document sent via the compose pane 228 may include expansion instructions on how the content should be displayed.
[0125] [Synchronized Multimedia Collaboration Session] Figure 2B shows a synchronous multimedia collaboration session triggered from a channel, as shown in pane 216. Synchronized multimedia collaboration sessions can provide ambient ad-hoc multimedia collaboration in a group-based communication system. Users of the group-based communication system can quickly and easily join and leave these synchronous multimedia collaboration sessions at any time without interrupting synchronous multimedia collaboration sessions for other users. In some embodiments, a synchronous multimedia collaboration session may be based on a specific topic, a specific channel, a specific direct message or a multi-person direct message, or a set of users, while in other embodiments, a synchronous multimedia collaboration session may exist without being tied to any channel, topic, or set of users.
[0126] The synchronous multimedia collaboration session pane 216 can be associated with a session conducted for multiple users in a channel, users in a multi-person direct message conversation, or users in a direct message conversation. Thus, a synchronous multimedia collaboration session can be initiated for a specific channel, a multi-person direct message conversation, or a direct message conversation involving one or more members of that channel or conversation. A user may initiate a synchronous multimedia collaboration session in a channel as a means of interacting with other members of that channel who are currently online. For example, a user may have an urgent decision and want immediate verbal feedback from other members of the channel. As another example, a synchronous multimedia collaboration session may be initiated with one or more other users of a group-based communication system via direct messaging. In some embodiments, the audience for a synchronous multimedia collaboration session may be determined based on the context in which the synchronous multimedia collaboration session was initiated. For example, initiating a synchronous multimedia collaboration session within a channel may automatically invite the entire channel to attend. As another example, initiating a synchronous multimedia collaboration session allows a user to initiate an immediate audio and / or video conversation with other members of the channel without having to schedule or initiate a communication session via a third-party interface. In some embodiments, users may be directly invited to join a synchronized multimedia collaboration session via message or notification.
[0127] A synchronous multimedia collaboration session can be a short, ephemeral session in which data is not persisted. Alternatively, in some embodiments, a synchronous multimedia collaboration session may be recorded, transcribed, and / or summarized for later review. In other embodiments, the content of a synchronous multimedia collaboration session may be automatically persisted within the channel associated with the synchronous multimedia collaboration session. A member of a particular synchronous multimedia collaboration session may post a message within the messaging thread associated with that synchronous multimedia collaboration session, along with other messages within that thread, that is visible to other members of that synchronous multimedia collaboration session.
[0128] Multimedia in a synchronous multimedia collaboration session may include collaboration tools such as audio, video, screen sharing, collaborative document editing, whiteboards, co-programming, or any other form of media, one or all of these. A synchronous multimedia collaboration session may also allow users to share their screens with other members of the session. In some embodiments, members of a synchronous multimedia collaboration session may mark up, comment on, draw on, or otherwise annotate the shared screen. In further embodiments, such annotations may be saved and persisted after the synchronous multimedia collaboration session has ended. A canvas may be created directly from the synchronous multimedia collaboration session to further enhance collaboration among users.
[0129] In some embodiments, a user may initiate a synchronized multimedia collaboration session via a toggle within the synchronized multimedia collaboration session pane 216 shown in Figure 2B. Once a synchronized multimedia collaboration session is initiated, the synchronized multimedia collaboration session pane 216 expands to provide information about the synchronized multimedia collaboration session, such as how many members are present, which users are currently speaking, which users are sharing the user's screen, and / or a screen sharing preview 231. In some embodiments, users of the synchronized multimedia collaboration session may be displayed with an icon indicating that they are participating in the synchronized multimedia collaboration session. In further embodiments, the expanded view of participants may show which users are active and which are not in the synchronized multimedia collaboration session. The screen sharing preview 231 may depict a user's screen or a desktop view of a user sharing a particular application or presentation. Changes to the user's screen, such as a user advancing to the next slide in a presentation, are automatically indicated in the screen sharing preview 231. In some embodiments, the screen sharing preview 231 may be activated to expand so that it appears as its own pane within a group-based communication system. The synchronous multimedia collaboration session pane 216 may include tools for the synchronous multimedia collaboration session that allow a user to mute their 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 can allow a user to share their screen with other members of the synchronous multimedia collaboration session pane 216. In some embodiments, the screen sharing button 232 may provide the user with additional control during screen sharing.For example, a user sharing another user's screen may be provided with additional screen sharing controls to specify which screen to share, to annotate the shared screen, or to save the shared screen. When a synchronous multimedia collaboration session is not active, 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 is started and associated with the currently selected channel, direct message, or multi-person direct message. Similarly, when a synchronous multimedia collaboration session is active, the synchronous multimedia collaboration session pane 216 may be associated with the channel from which the synchronous multimedia collaboration session was started. In some embodiments, the synchronous multimedia collaboration session pane 216 may instead not be associated with any channel, multi-person direct message, or direct message.
[0130] 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 several currently active synchronous multimedia collaboration sessions. Furthermore, synchronous multimedia collaboration sessions may be selected in part on user interaction with the session, or on any association between the user and the session or users involved in the session. For example, recommended synchronous multimedia collaboration sessions may be displayed in part on the user who has been invited to each synchronous multimedia collaboration session, or who has previously collaborated with the user in the recommended synchronous multimedia collaboration session. In some embodiments, the list of synchronous multimedia collaboration sessions may further include additional information for each synchronous multimedia collaboration session, such as an indicator of participating users or the number of participating users, the topic of the synchronous multimedia collaboration session, and / or associated group-based communication channels, multi-person direct message conversations, or indicators of direct message conversations.
[0131] 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 user's active status within the group-based communication system, past, recent, or frequent user interactions with the user (such as interacting within a group-based communication channel), or similarity between the recommended user and the user (such as the recommended user deciding to share a common membership with the user within a channel). In some embodiments, machine learning techniques such as cluster analysis can be used to determine the recommended users. The list of recommended active users may include status user information for each recommended user, such as whether the recommended user is active, in a meeting, idle, in a synchronous multimedia collaboration session, or offline. In some embodiments, the list of recommended active users may further include multiple activatable buttons corresponding to some or all of the recommended users (e.g., recommended users with a status indicating availability) which, when selected, may be configured to initiate at least one of either a text-based communication session (such as a direct message conversation) or a synchronous multimedia collaboration session.
[0132] In some embodiments, one or more recommended asynchronous multimedia collaboration sessions or meetings are displayed in the asynchronous meetings section. In contrast to synchronous multimedia collaboration sessions (described above), asynchronous multimedia collaboration sessions allow each participant to collaborate at a time convenient for them. This collaboration participation is recorded for later consumption by other participants who can then generate additional multimedia replies. In some embodiments, replies are aggregated into a multimedia thread (e.g., a video thread) corresponding to the asynchronous multimedia collaboration session. For example, an asynchronous multimedia collaboration session may be used for an asynchronous meeting where a topic is posted with a message at the start of the meeting thread, and meeting participants can reply by posting messages or video responses. The resulting thread may contain any documents, videos, or other files relating to the asynchronous meeting. In some embodiments, a preview of a portion of a video reply may be shown within the asynchronous collaboration session or thread. This allows, for example, a user to jump to a relevant segment of the asynchronous multimedia collaboration session or pick up where they left off previously.
[0133] In some embodiments, a group-based communication system may include one or more canvases (or one or more links to canvases). A canvas may include a flexible workspace for curating, organizing, and sharing a collection of information among users. Such a canvas may be associated with a synchronous multimedia collaboration session, an asynchronous multimedia collaboration session, a channel, a multi-person direct message conversation, or a direct message conversation. Alternatively, or additionally, a user may have one or more private canvases that are not associated with other users. 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 allow sharing of content including (but not limited to) text, images, videos, GIFs, drawings (e.g., user-generated drawings via a drawing interface), or game content. In some embodiments, a user accessing a canvas may be able to add new content or delete (or modify) previously added content. In some embodiments, appropriate permissions may be required for a user to add content or delete or modify content added by a different user. Therefore, for example, some users may only be able to access the canvas in view-only mode, while others may be able to access it in edit mode, allowing them to add or modify its content. In some examples, the canvas may be shared via messages within a channel, multi-person direct messages, or direct messages so that the data associated with the canvas is accessible to channel members or recipients of multi-person direct messages or direct messages, and / or interactive for those recipients.
[0134] [Connect within a group-based communication system] Figure 2C shows a user interface 200 displaying the Connectivity pane 252. The Connectivity pane 252 provides users with tools and resources to connect across different organizations, each of which may have its own (usually private) instance of a group-based communication system, or may not yet belong to one. For example, a first software company might have a joint venture with a second software company that wants to collaborate on jointly developing a new software application. The Connectivity pane 252 may allow users to determine which other users and organizations are already within the group-based communication system and invite users and organizations that are currently outside the group-based communication system to join.
[0135] The connections pane 252 may include a connections search bar 254, recent contacts 256, connections 258, a channel creation button 260, and a direct message start button 262. The connections search bar 254 allows the user to find users within a group-based communication system. In some embodiments, only users from organizations connected to the user's organization are shown in the search results. In other embodiments, users from any organization that uses the group-based communication system may be shown. In yet another embodiment, users from organizations that do not yet use group-based communication may also be shown, allowing the searching user to invite them to join the group-based communication system. In some embodiments, users may be found via a username or email address in the group-based communication system. In some embodiments, email addresses may be suggested or autocompleted based on an external source of data, such as an email directory or a contact list of the user being searched.
[0136] In some embodiments, external organizations and individual users may be shown in response to a user search. Since the search results may include organizations that have not yet joined the group-based communication system, external organizations may be matched based on their organization name or internet domain (similar to the search and matching of specific users described above). External organizations may be ranked in part based on how many users from the user's organization are connected to users in the external organization. In response to the selection of external organizations in the search results, the searching user may be able to invite the external organization to connect via the group-based communication system.
[0137] In some embodiments, Recent Contacts 256 may display users with whom the user has recently interacted. Recent Contacts 256 may display the user's name, company, and status. Recent Contacts 256 may be ordered based on the contacts the user interacts with most frequently, or based on the contacts the user has most recently interacted with. In some embodiments, each Recent Contact in Recent Contacts 256 may be an operable control that allows the user to quickly initiate a direct message conversation with the Recent Contact, invite the Recent Contact to a channel, or take any other appropriate user action with the Recent Contact.
[0138] In some embodiments, connection 258 may display a list of companies (e.g., organizations) with which the user has interacted. For each company, the company name may be displayed along with the company logo and an indicator of how many times the user has interacted with that company, such as the number of conversations. In some embodiments, each connection in connection 258 may be an operable control that allows the user to quickly invite an external organization to a shared channel, view recent connections with that external organization, or take any other appropriate organizational action for that connection.
[0139] In some embodiments, the Create Channel button 260 allows the user to create a new shared channel between two different organizations. By selecting the Create Channel button 260, the user may further be able to name the new connection channel and enter a description for the connection 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 it has been created. In some embodiments, the user may choose whether to make the connection channel private (i.e., accessible only by invitation from current members of the private channel).
[0140] In some embodiments, the direct message start button 262 allows the user to quickly initiate a direct message (or multi-person direct message) with an external user in an external organization. In some embodiments, the external user identifier in the external organization may be provided by the user as the external user's group-based communication system username or as the external user's email address. In some embodiments, analysis of the email domain of the external user's email address may affect the message between the user and the external user. For example, the external user identifier may indicate that the user's organization and the external user's organization are already connected (for example, based on the email address domain). In some such embodiments, the email address may be translated into a group-based communication system username. Alternatively, the external user identifier may indicate that the external user's organization belongs to a group-based communication system but is not connected to the user's organization. In some such embodiments, an invitation to connect to the user's organization may be generated in response. Alternatively, the external user may not be a member of the group-based communication system, and an invitation to join the group-based communication system as a guest or member may be generated accordingly.
[0141] [Collaborative Document] Figure 2D shows a user interface 200 displaying the collaboration document pane 264. A collaborative document may be any file type, such as a PDF, video, audio, or word processing document, and is not limited to a word processing document or spreadsheet. A collaborative document may be modified and edited by two or more users. A collaborative document may be associated with different user permissions, allowing users to selectively view, edit, or comment on the collaborative document (or section of the document, as described below), based on their permissions to the document (or section of the document). Thus, a user among a pair of users with access to the document may have various permissions to view, edit, comment on, or otherwise interface with the collaborative document. A collaborative document may allow users to create and modify the document simultaneously or asynchronously. A collaborative document may be integrated with a group-based communication system, which can be used both to initiate workflows and to store the results of those workflows, as further described below with reference to Figures 3A and 3B. The collaboration document pane 264 may include a collaboration document toolbar 266 and a collaboration document 268. In some embodiments, the collaboration document toolbar 266 may provide the ability to make text bold, italic, underline, or otherwise format text; the ability to undo or redo actions; the ability to insert and format photos and shapes; or any other word processing functions for modifying content within the collaboration document 268.
[0142] In some embodiments, a collaborative document may include free-form, unstructured sections and workflow-related structured sections. In some embodiments, an unstructured section may include an area of the document where the user can freely modify the collaborative document without constraints. For example, the user may freely type text to explain the purpose of the document. In some embodiments, the user may add a workflow or structured workflow section by typing (or otherwise mentioning) the name of the workflow. In further embodiments, the user may be provided with a list of workflows that the user can choose to add to the document by typing an "at" mark (@), a previously selected symbol, or a given special character or symbol. For example, the user may indicate that a marketing team member needs to sign off on a proposal by typing "!Marketing Approval" to initiate a workflow leading to a marketing team member approving the proposal. Placing an exclamation mark before the group name "Marketing Approval" initiates a request for a specified action, in this case, to route the proposal for approval. In some embodiments, a structured section may include text inputs, selection menus, tables, checkboxes, tasks, calendar events, or any other document sections. In further embodiments, the structured section may include a text input space that is part of the workflow; for example, a user may enter text detailing the reasons for approval into the text input space and then select a submit button to advance the workflow to the next step. In some embodiments, a user may be able to add, edit, or delete structured sections of documents that constitute the workflow component.
[0143] In embodiments, sections of a collaborative document may have individual permissions associated with them. For example, a collaborative document having sections with individual permissions may grant a first user permission to view, edit, or comment on a first section, while a second user does not have permission to view, edit, or comment on the first section. Alternatively, a first user may have permission to view a first section of a collaborative document, while a second user may have permission to both view and edit the first section of the collaborative document. Permissions associated with a particular section of a document may be assigned by the first user through a variety of methods, including manual selection of the particular section of the document by the first user or another user authorized to assign permissions, typing or selecting an "assignment" indicator such as an "@" mark, or selecting a section by its name. In further embodiments, permissions may be assigned to multiple collaborative documents in a single instance through these methods. For example, multiple collaborative documents each have a section titled “Group Information,” and a first user with the authority to assign permissions wants the entire user group to access the information in the “Group Information” section of the multiple collaborative documents. In an embodiment, the first user may select multiple collaborative documents and “Group Information” sections to grant the entire user group permission to access (or view, edit, etc.) each of the “Group Information” sections of the multiple collaborative documents. In some embodiments, a collaborative document includes one or more tasks 270, along with one or more corresponding assignment options 272, as shown. In some embodiments, an assignment dropdown menu 274 may appear in response to the user selecting one of the one or more assignment options 272.
[0144] [Automation in group-based communication systems] Figure 3A shows a user interface 300 for automation in a group-based communication system. Automation, also referred to as workflow, allows users to automate functions within the group-based communication system. A workflow builder 302 is illustrated, which allows users to create new workflows, modify existing workflows, and review workflow activities. The workflow builder 302 may include a workflow tab 304, an activity tab 306, and a settings tab 308. In some embodiments, the workflow builder may include a publish button 314 that allows users to publish new or modified workflows.
[0145] The workflow tab 304 may be selected to allow a user to create a new workflow or modify an existing workflow. For example, a user might want to create a workflow that automatically welcomes new users joining a channel. The workflow may include a workflow step 310. The workflow step 310 includes at least one trigger that starts the workflow and at least one function that performs an action when the workflow is triggered. For example, the workflow may be triggered when a user joins a channel, and the workflow function may be posting in the channel to welcome the new user. In some embodiments, the workflow may be triggered by a user action such as a user reacting to a message, joining a channel, or collaborating on a collaborative document, by a scheduled date and time, or by a web request from a third-party application or service. In further embodiments, the workflow function may include sending a message or form to a user, a channel, or any other virtual space, modifying a collaborative document, or interface with an application. The workflow function may include a workflow variable 312. For example, the welcome message may include the user's name via a variable to allow for a customized message. Users may edit existing workflow steps or add new workflow steps depending on the desired workflow functionality. Once the workflow is complete, users can publish it using the publish button 314. Published workflows wait until they are triggered, at which point their functionality is executed.
[0146] The Activity tab 306 may display information related to the workflow's activities. In some embodiments, the Activity tab 306 may show how many times the workflow has been run. In further embodiments, the Activity tab 306 may include information related to each workflow run, including status, last activity date, run time, the user who initiated the workflow, and other relevant information. The Activity tab 306 may allow the user to sort and filter the workflow activities to find useful information.
[0147] The settings tab 308 may allow users to modify workflow settings. In some embodiments, users may change the title or icon associated with the workflow. Users may also manage collaborators associated with the workflow. For example, users may add additional users as collaborators to the workflow so that additional users can modify the workflow. In some embodiments, the settings tab 308 may also allow users to delete workflows.
[0148] Figure 3B illustrates elements related to workflow in a group-based communication system, collectively referenced by reference no. 316. In various embodiments, trigger 318 is configured to invoke the execution of function 336 in response to a user command. The trigger initiates the function execution and can take the form of a schedule 320, a webhook 322, a shortcut 324, or a slash command 326. In some embodiments, schedule 320 acts like a timer so that the trigger can be scheduled to fire periodically or once at a predetermined point in the future. In some embodiments, the end user of an event-based application sets an arbitrary schedule for the trigger to fire, such as once an hour or at 9:15 a.m. every day.
[0149] Additionally, trigger 318 can take the form of a webhook 322, which is a software component that listens on a webhook URL and port. In some embodiments, the trigger is issued when a suitable HTTP request is received on the webhook URL and port. In some embodiments, the webhook 322 requires appropriate authentication, such as a bearer token. In other embodiments, the trigger depends on the content of the payload.
[0150] One other source of trigger 318 is a shortcut among shortcuts 324. In some embodiments, shortcuts 324 are global to the group-based communication system and not specific to a group-based communication system channel or workspace. Global shortcuts can trigger functions that can be executed without the context of a particular group-based communication system message or group-based communication channel. In contrast, message-based or channel-based shortcuts are specific to a group-based communication system message or channel and operate within the context of a group-based communication system message or group-based communication channel.
[0151] A further source of one of the triggers 318 may be provided by a slash command 326. The slash command 326 may function as an entry point for a group-based communication system function, integration with an external service, or group-based communication system message response. In some embodiments, the slash command 326 may be entered by a user of the group-based communication system to trigger the execution of an application function. The slash command may be followed by slash command-line parameters that can be passed to any group-based communication system function that is invoked in connection with the trigger of a group-based communication system function, such as one of the functions 336.
[0152] An additional way a function is invoked is when an event (such as one of the events 328) matches one or more predetermined conditions within a subscription (such as subscription 334). Event 328 may be subscribed to by any number of subscriptions 334, each subscription may specify different conditions and trigger different functions. In some embodiments, events are implemented as group-based communication system messages received in one or more group-based communication system channels. For example, all events may be posted as non-user visible messages in associated channels monitored by subscriptions 334. App events 330 may be group-based communication system messages with associated metadata, created by an application within a group-based communication system channel. Event 328 may be a direct message received by one or more group-based communication system users, which may be actual users or technical users such as bots. A bot is a technical user of the group-based communication system used to automate tasks. A bot may be programmatically controlled to perform a variety of functions. Bots can help monitor and process channel activity in group-based communication systems, post messages within group-based communication system channels, and react to members' channel activity. Bots can post messages, upload files, and be invited to or removed from both public and private channels in group-based communication systems.
[0153] Event 328 may be any event related to a group-based communication system. Such group-based communication system events 332 may include events related to the creation, modification, or deletion of user accounts in the group-based communication system, or events related to messaging in a group-based communication system channel, such as creating, editing, or deleting messages, or reacting to messages. Event 328 may also be related to the creation, modification, or deletion of group-based communication system channels, or to channel membership. Event 328 may also be related to the modification of user profiles or the creation, maintenance, or deletion of groups.
[0154] As described above, subscription 334 indicates one or more conditions that trigger a function when matched by an event. In some embodiments, a set of event subscriptions is maintained in relation to a group-based communication system so that when an event occurs, information about the event is matched against the set of subscriptions to determine which function 336 (if any) should be invoked. In some embodiments, the events that a particular application can subscribe to are managed by an authorization framework. In one embodiment, the event types that match for a subscription are governed by OAuth permission scopes that may be maintained by the administrator of a particular group-based communication system.
[0155] Function 336 is triggered by trigger 318 and event 328 to which that function is subscribed. Function 336 receives zero or more inputs, performs processing (potentially including access to external resources), and returns zero or more results. Function 336 can be implemented in various ways. Firstly, there is a built-in function 338 of the group-based communication system, associated with the core functionality of a particular group-based communication system. Some examples include creating group-based communication system users or channels. Secondly, there is a no-code builder function 340, which can be developed by users of the group-based communication system in relation to an automated user interface such as a workflow builder user interface. Thirdly, there is a hosted code function 342, which is implemented by a group-based communication system application developed as software code in relation to a software development environment.
[0156] These various types of functions 336 can be integrated with API 344 in turn. In some embodiments, API 344 is associated with a third-party service that functions 336 use to provide custom integrations between a particular third-party service and a group-based communication system. Examples of third-party service integrations include video conferencing, sales, marketing, customer service, project management, and engineering application integrations. In such an example, one of the triggers 318 is a slash command 326 used to trigger a hosted code function 342, which in turn makes an API call to a third-party video conferencing provider via one of the APIs 344. As shown in Figure 3B, APIs 344 can themselves be the source of any number of triggers 318 or events 328. Continuing the example above, the successful completion of a video conference triggers one of the functions 336, and function 310 sends a message to the third-party video conferencing provider to download and archive the video conference recording and store it in a group-based communication system channel, initiating a further API call.
[0157] In addition to integrating with API 344, function 336 can persist and access data in table 346. In some embodiments, table 346 is implemented in relation to a database environment associated with a serverless execution environment on which a particular event-based application is running. In one embodiment, table 346 may be provided in relation to a relational database environment. In other embodiments, table 346 is provided in relation to a database mechanism that does not use relational database technology. As shown in Figure 3B, in some embodiments, reading or writing specific data to one or more of tables 346, or data in a table that matches a predetermined condition, is itself a source of several triggers 318 or events 328. For example, if table 346 is used to maintain ticketing data in an incident management system, a count of public tickets exceeding a predetermined threshold may trigger a message posted to an incident management channel in a group-based communication system.
[0158] Figure 3C shows an exemplary block diagram 350 relating to several embodiments of the present invention. In some embodiments, the block diagram 350 includes a button 352, as shown. In some embodiments, the button 352 includes a visual representation displayed within a user interface, such as within a virtual space 354 of a group-based communication system 356, as shown. In some embodiments, the button 352 can be activated by a user 358 of the group-based communication system. For example, in some embodiments, the button 352 may be displayed in the context of the group-based communication system 356, such as within 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 collaboration session, or any other suitable context of the group-based communication system. It should be understood that in some embodiments, the button 352 may include one or more activatable options. For example, in some embodiments, the button 352 includes multiple selectable options so that the user 358 can activate the button 352 by selecting any one of the options. Therefore, the button 352 can initiate different actions based on which particular option is selected, as will be further detailed below. Alternatively, in some embodiments, the button may be included with a single selectable option.
[0159] In some embodiments, when button 352 is activated, it starts a workflow 360. In some such embodiments, the workflow 360 may be started and executed from within a group-based communication system 356. Furthermore, embodiments are conceivable in which the workflow 360 is started 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 may be associated with a webhook 364. For example, the webhook 364 may 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 actions of the workflow 360 may be performed by submitting an HTTP request via the webhook 364. Furthermore, embodiments are conceivable in which the workflow 360 may be started externally. For example, activation of button 352 may cause one or more external applications 362 to send an HTTP request to start the workflow 360. In some embodiments, the workflow 360 may provide one or more return values to button 352. For example, the workflow 360 may return an acknowledgment to button 352 confirming that the workflow 360 has completed successfully. Alternatively, or additionally, in some embodiments, the return values sent from the workflow 360 may include any of the following additional information, such as acknowledgments, error indications, or information obtained from one or more external applications 362. In some embodiments, button 352 may be updated at least partially based on these return values. In some embodiments, the state of button 352 or the virtual space 354 may be changed based on the execution of the workflow 360 or the webhook 364. For example, button 352 may be changed visually and / or functionally based on the execution of the workflow 360, as will be further detailed below.
[0160] It should be understood that in some embodiments, button 352 may initiate multiple workflows and functions. For example, in some embodiments, the button may be configured to initiate a first workflow that, upon completion, invokes a second workflow. Alternatively, embodiments may be conceivable in which the activation of the button initiates two or more workflows simultaneously. Thus, embodiments may be conceivable in which any number of workflows can be initiated simultaneously or sequentially using the button. In some embodiments, as described herein, button 352 may include any of the following: graphical elements, images, pictures, icons, text, videos, additional selectable items, etc. Furthermore, in some embodiments, the actions described herein with respect to button 352 may be performed using separate interface objects not included within the button, such as any of the graphical elements, images, pictures, icons, text, videos, and selectable items, as well as other interface objects.
[0161] In some embodiments, button-based initiation of workflow 360 allows one or more context variables to be considered when initiating and / or executing workflow 360. For example, in some embodiments, button 352, when activated, passes one or more context parameters to workflow 360 so that at least one action of workflow 360 can be executed in context based on the context of button 352. In some embodiments, the context parameters include, for example, representations of virtual space 354 such as a channel identifier, a collaborative document identifier, or a session identifier, as well as representations of one or more users such as, for example, the user identifier of the user 358 who activated button 352, or optionally, the user identifier of the user who created or posted button 352 within virtual space 354. Thus, workflow 360 can inherit the context of button 352 and be executed in context based on this context. In some embodiments, one or more actions of workflow 360 may be executed differently based on the context received from button 352. Thus, initiating a workflow using a button can provide several benefits, such as performing the workflow in context by considering context parameters of a group-based communication system. However, it should be understood that the button-based initiation of Workflow 360 is just one example, and Workflow 360 can also be initiated by any of the various other triggers mentioned above with respect to Figure 3B.
[0162] [Buttons within the channel] Figure 4A shows a user interface 400 relating to an exemplary scenario of several embodiments of the present invention. In some embodiments, the user interface 400 may be similar to the user interface 200 as described above and may include similar elements as shown. Furthermore, in some embodiments, the user interface 400 may be displayed to a first user. In one example, the first user wants to generate a request button to be posted within a channel of a group-based communication system. Thus, the first user may generate the request button by, for example, typing in the compose pane 228 as shown. In some embodiments, the first user may generate the request button using slash commands, shortcuts, and other suitable techniques not expressly described herein. In some embodiments, the first user may begin by typing the word “request” in the compose pane 228, which results in the display of a suggestion menu including a request creation shortcut.
[0163] In some embodiments, a request generation modal 402, which includes a text input 404 for adding a description to the request, may be generated for display within the user interface 200, as shown in the figure. In some embodiments, the text input 404 includes a multi-line input that allows the user to enter multiple lines of text, variables, or other characters, as well as combinations thereof. Furthermore, in some embodiments, the request generation modal 402 includes an execution 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, selecting the cancel actuator 408 closes the request generation modal 402 and returns to the previous page of the user interface 400. In some embodiments, selecting the execution actuator 406 posts the associated button within the context of a group-based communication system, such as within a channel.
[0164] Figure 4B shows a user interface 400 relating to a continuation exemplary scenario described above in relation to some embodiments of the present invention. In some embodiments, the user interface 400 as shown in Figure 4B may be displayed to one or more other users after, for example, a first user has selected the execution actuator 406 shown in Figure 4A. In some embodiments, a request button 410 may be posted in a channel, as shown. Here, the request button 410 includes a request description 412 which may correspond to the text input 404 in Figure 4A. Furthermore, in some embodiments, the description 412 further includes an indicator of which user generated the request button 410, as shown. Furthermore, in some embodiments, the request button 410 includes an approve option 414 and a reject option 416. In some embodiments, the approve option 414 and the reject option 416 may be displayed only to one or more users with specific approver privileges. For example, an embodiment is conceivable in which only administrator users can approve or reject generated requests. In some embodiments, each of the approve option 414 and the reject option 416 of the request button 410 is configured to initiate a workflow. For example, approval option 414 may initiate an approval workflow, and rejection option 416 may initiate a rejection workflow.
[0165] In some embodiments, the request button 410 may be associated with an external request application configured to handle request-related matters, such as tracking the status of multiple requests. For example, a group-based communication system may interface with the external request application via an API that provides bidirectional communication between the group-based communication system and the external request application. Here, a request table that stores information about various requests and their status may be generated and updated by the external request application based on activity within the group-based communication system, such as a user approving a request by selecting an approval option 414 of the request button 410. Alternatively, an embodiment is conceivable in which the request table may be natively hosted by the group-based communication system. In some embodiments, the request table may be updated by a workflow initiated by the activation of the request button 410, such as a user selecting either an approval option 414 or a rejection option 416.
[0166] Figure 4C shows a user interface 400 relating to an exemplary scenario that is a further continuation of the above-described examples in relation to some embodiments of the present invention. In some such embodiments, the request button 410 may be replaced with a request message 420, as shown. In some embodiments, the request message 420 may be generated based at least in part on information associated with the request button 410. For example, the request message 420 may include a mark of the user who submitted the button, as well as a mark of the user who pressed the button. For example, the request message 420 may replace the request button 410 in the channel after a second user has selected an approval option 414. Thus, the request message 420 may include a mark of the second user, as well as a mark of the option selected by the second user.
[0167] In some embodiments, replacing the request button 410 with a request message 420 is the operation of the workflow initiated by the selection of the request button 410. For example, if the user selects the approval option 414, the approval workflow is initiated, removing the request button 410 and generating a request message 420 based on the contextual information received from the request button 410.
[0168] [Buttons in collaborative documents] Figure 5A shows an exemplary user interface 500 of a group-based communication system according to several embodiments of the present invention. In some embodiments, the user interface 500 includes a collaborative document 268, as shown. In one exemplary scenario, the collaborative document 268 is a new blank document edited via the group-based communication system interface. Thus, the user can begin creating a button by using a slash command, or, in some embodiments, by typing a comment 502 within the collaborative document 268, as shown, and by typing "@" within the collaborative document 268. Here, a shortcut menu 504 containing multiple options for user selection may be generated for display within the user interface 500. In some embodiments, the multiple options of the shortcut menu 504 may include a workflow button option 506 for initiating the creation of a workflow button within the collaborative document 268, as shown. Alternatively, or additionally, in some embodiments, the user can begin creating a button using a variety of other means. For example, in some embodiments, the button can be posted within the group-based communication system by copy and paste, drag and drop functionality, or other suitable posting methods. In some embodiments, the button may be included within a message posted in a channel, a direct message channel, or a collaborative document.
[0169] Figure 5B shows an exemplary user interface 500 relating to the above-described exemplary scenarios concerning some embodiments of the present invention. In some embodiments, the selection of a workflow button option 506 results in the display of a button configuration modal 510, as shown. However, it should be understood that many other means of accessing the button configuration modal 510 are also conceivable. For example, in some embodiments, the button configuration modal 510 may be accessed from a settings menu, a workflow builder tool, or another appropriate section of a group-based communication system.
[0170] In some embodiments, the button configuration modal 510 includes a workflow selection input 512 for allowing a user to select a workflow associated with a button, as shown in the figure. In some embodiments, the workflow may be referenced using a webhook URL corresponding to the workflow. Alternatively, or additionally, in some embodiments, the workflow may be referenced using a workflow identifier for the workflow. In some embodiments, the button configuration modal 510 further includes a button label input 514 for receiving a button label for the button, as shown in the figure. In some embodiments, the button label may be used as a button identifier for referencing the button within a group-based communication system.
[0171] In some embodiments, the button configuration modal 510 further includes one or more workflow variable inputs 516, as shown. In some such embodiments, the workflow variable inputs 516 may allow the button to reference one or more variables associated with a workflow. In some embodiments, the button configuration modal 510 further includes one or more variable inputs 518, as shown. Here, the variable inputs 518 may allow the user to select a value corresponding to a selected workflow variable. Thus, values may be passed between the button and the workflow, and vice versa. For example, the button may be configured to collect one or more variables associated with either the context of the button or one or more user selections that are passed to the workflow, so that the workflow may be executed based on the values received from the button. In some embodiments, the button configuration modal 510 includes any number of additional features or inputs for configuring the button.
[0172] While the button configuration process has been described above using an exemplary button configuration modal 510, it should be understood that in some embodiments, various other means of button configuration are also possible. For example, in some embodiments, button configuration may be accessed via a settings menu, a separate button configuration page, or a window displayed within the user interface 500 of a group-based communication system. In some embodiments, at least some of the inputs in the button configuration modal 510 may be automatically filled in based on previous user selections. In some embodiments, the user can finalize the creation of a button by selecting a save option contained within the button configuration modal 510.
[0173] 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, where a predetermined period is set before a button posted within a group-based communication system expires. In one example, a button may be posted to a channel having a predetermined expiration time of one hour. Thus, the button remains in the channel for one hour after being posted. In this example, the button may expire after one hour and be automatically deleted. One hour is just one example, and many other expiration times are conceivable, such as one minute, fifteen minutes, one day, one month, or any other period. In some embodiments, a button may be deleted manually. For example, the user who posted the button or another user can remove the button from the context in which it was posted by selecting the button and selecting the delete option. In some embodiments, the delete option may be accessed, for example, by right-clicking the button. However, various other operations may be performed to delete a button. In addition, in some embodiments, buttons may be generated or appear based on one or more given criteria within a group-based communication system, or other parameters such as contextual parameters described herein. In some embodiments, additional button options are also possible. For example, in some such embodiments, the user may be able to select and edit various parameters of the appearance and / or function of a given button. Furthermore, the button may be permanent so as not to expire after any period of time. In some embodiments, the user may be able to configure a predetermined period of time or set the button as permanent. Furthermore, in some embodiments, the button may be pinned within a channel, canvas, collaborative document, or other context of a group-based communication system so as not to be deleted. In some embodiments, the button may be configured to be deleted based on some event rather than a period of time.For example, a button may be configured to be deleted after being selected. In some embodiments, it should be understood that deleting a button refers to removing the 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 posted again in the same virtual space or in another context. Furthermore, in some embodiments, there may be a button that triggers the deletion of other linked or grouped buttons. For example, in some embodiments, a first button may be associated with one or more other buttons within a group-based communication system. Here, the workflow may begin with the first button deleting one or more associated buttons. In one example, a group of buttons may be associated, such as a group of buttons where each button contains a mutually exclusive selection option for the user. Therefore, if the user selects one of the buttons, all of the associated buttons may be automatically deleted so that the user cannot select two or more of the associated buttons.
[0174] One advantage of the buttons and workflows described herein is that users can generate and configure them without having to hardcode various functions and parameters. For example, using the button configuration modal 510 or a similar builder tool interface, users can select details on how buttons and workflows are implemented within a group-based communication system. Thus, users can configure the parameters of buttons and associated workflows without writing any code. However, it should be understood that in some embodiments, it may be possible for developer users to configure buttons and workflows using any combination of code and builder tools. Thus, it may be possible for both advanced developer users and standard users to configure buttons.
[0175] Figure 5C shows a user interface 500 relating to the exemplary scenario described above in relation to some embodiments of the present invention. In some embodiments, after the user configures a button, for example by selecting a save option in the button configuration modal 510, a button 520 may be generated for display within the user interface 500, as shown. In some embodiments, the button 520 may include a selected button label, as shown. In this exemplary scenario, the button 520 is a template build button associated with a template build workflow. For example, the template build workflow may be a workflow previously configured to generate a specific type of document template within a collaborative document 268. In some embodiments, such a workflow may be associated with the button 520 using the workflow webhook URL of the workflow. In some embodiments, the button 520 may be inserted into the collaborative document 268 at a location corresponding to a comment 502 inserted by the user, as shown.
[0176] Figure 5D shows a user interface 500 relating to the exemplary scenario described above in relation to some embodiments of the present invention. Here, after the button 520 is activated, a document template 530 may be automatically generated within the collaborative document 268, as shown. In some embodiments, various values in the document template 530 may be automatically populated based on data associated with the button selection. For example, in some embodiments, data values associated with the button may be collected, such as a context value including the contextual location of the button 520 within a group-based communication system, as well as further values indicating the user who created the button and / or the user who selected the button 520. For example, in some embodiments, if a second user selects the button 520, a document template 530 for the second user, including the username 532 of the second user, may be automatically generated, as shown. Furthermore, in some embodiments, the workflow associated with the button 520 may be configured to automatically retrieve one or more additional values 534 associated with the user using the user identifier of the user. Thus, the values may be retrieved from within the group-based communication system or from any number of external data sources.
[0177] While the exemplary scenario described above refers to posting a button in a blank document to execute a workflow for generating a document template, it should be understood that buttons can also be added to existing documents, for example, to automatically modify a document or to automatically fill in one or more input fields of a form. Furthermore, buttons can be conceivable for reformatting a document or generating a copy of an existing document. In addition, in some embodiments, buttons can be conceivable for updating the state of an existing document. For example, a button could initiate a workflow that updates the document state from an initial state to a document review state, where, in some cases, the document review state provides review-related features such as track changes and review comments.
[0178] [Buttons within resource channels] Figure 6A shows an exemplary user interface 600 of a group-based communication system according to several embodiments of the present invention. In some embodiments, the exemplary user interface 600 includes a resource channel page 602, as shown, where the resource channel page 602 may correspond to a specific channel in the group-based communication system. In some such embodiments, the channel may be a resource channel rather than a communication channel, as described above. Here, the resource channel may be configured to access one or more resources referenced within 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 some such embodiments, each of the one or more document buttons 604 corresponds to a workflow for accessing or generating its respective associated document. For example, a career development button may be included for generating a career development document or for accessing an existing career development document.
[0179] In the exemplary scenario shown in Figure 6A, the user selects one of the document buttons 604 from the resource channel page 602. For example, the user might select the career development button to generate a career development document template using the associated document template workflow. In some embodiments, selecting one of the document buttons 604 allows the user to either start creating a document using a document template or access an existing document, as will be further detailed below.
[0180] Figure 6B shows a user interface 600 relating to a continuation exemplary scenario described above in relation to some embodiments of the present invention. Here, a document selection modal 610 may be generated for display within the exemplary user interface 600, as shown. Thus, the document selection modal 610 may include a new creation option 612 and a search for all copies option 614. In some such embodiments, the new creation option 612 may be configured to generate a new document template, while the search for all copies option 614 may be configured to access one or more existing documents. Continuing the above example, selecting a career development button may provide the user with the option to generate a new career development document based on a document template or to access one or more previously created career development documents. Thus, an embodiment is conceivable in which a resource channel page 602 provides one or more users with an environment for accessing multiple relevant resources. For example, an administrator user may use the resource channel page 602 to organize multiple documents and other resources related to a particular user in a group-based communication system.
[0181] Figure 6C shows a user interface 600 relating to a continuation exemplary scenario described above in relation to some embodiments of the present invention. Here, a document template setting modal 620 may be generated for display within the user interface 600, as shown. In some embodiments, the document template setting modal 620 may be displayed in response to the user selecting one of the document buttons 604 and further selecting the Create New option 612. In some embodiments, the document template setting 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 may be generated at least in part based on the selection made within the document template setting modal 620.
[0182] In some embodiments, the document template settings modal 620 further includes a list of buttons and shortcut details 626 corresponding to associated workflows. In some embodiments, the list of shortcut details 626 includes one or more details relating to various operations of the workflow, as illustrated. For example, the list of shortcut details 626 may include descriptions of one or more steps of the workflow, as well as other variables of the workflow. In some embodiments, the user can edit the workflow parameters within the document template settings modal 620. For example, the user may add, edit, or delete workflow steps, as well as set and modify various other workflow variables. Furthermore, once the user has finished editing the document template settings modal 620, the user can select a submit option for the document template settings modal 620. In some embodiments, selecting the submit option initiates the execution of the workflow within a group-based communication system, as will be described in more detail below.
[0183] Figure 6D shows a user interface 600 relating to a continuation exemplary scenario described above in relation to some embodiments of the present invention. In some embodiments, after selecting a submit option from the document template setting modal 620, the workflow generates a document and posts it within a specific communication channel of a group-based communication system. For example, in some embodiments, a document link 632 associated with the generated document may be automatically posted along with a message 634 within a direct message communication channel 630 with a user referenced in the employee selection input 622, as shown in the figure. In some embodiments, a document preview 636 can be generated for display on the user interface 600, as shown in the figure, showing a preview associated with the generated document.
[0184] Figure 6E shows a user interface 600 relating to a continuation exemplary scenario described above in relation to some embodiments of the present invention. Here, the exemplary document 640 may be automatically generated based on a document template associated with a selected document button 604, as shown. For example, the corresponding workflow may include one or more steps for generating the document 640 and automatically filling in 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, so that the document 640 can be edited in real time by one or more distinct users in a group-based communication system.
[0185] An exemplary document 640 may include any number of document components, such as an automatically generated data table 642, as illustrated. For example, the data table 642 may include user information obtained from a group-based communication system or from one or more external sources, such as an employee data application. For example, the workflow may be configured to retrieve user information associated with a selected employee from WORKDAY or another external employee record service. In some embodiments, the document 640 further includes a self-assessment section 644, as illustrated. In some embodiments, the self-assessment section 644 allows the user to fill out and submit a self-assessment form. Embodiments in which the generated document 640 includes one or more buttons are conceivable. For example, in some embodiments, the self-assessment section 644 may be incorporated as one or more buttons linked to yet another workflow for generating and submitting a self-assessment form.
[0186] In some embodiments, the exemplary document 640 further includes a career goals section 646 that allows the user to enter various different types of career goals, such as short-term, medium-term, and long-term goals, as illustrated. In some embodiments, the career goals section 646 may be incorporated as a button that allows the user to generate a career goals form for submission to an external application such as WORKDAY. Furthermore, the exemplary document 640 may include an action plan section 648 that allows the user to define an action plan to achieve the user's selected career goals.
[0187] In some embodiments, each component and feature within the automatically generated document 640 may be created by a workflow initiated by a document button 604. For example, in some embodiments, as shown in Figure 6A, each document button 604 is associated with a different workflow for generating a particular type of document. Thus, the corresponding workflow may contain instructions for generating each document. For example, the career development document button may contain instructions for generating each of the following: data table 642, self-assessment section 644, career goals section 646, and action plan section 648.
[0188] The career development examples described above are merely illustrative, and it should be understood that various other types of buttons and documents are conceivable and considered for further embodiments of the present invention. For example, document templates may be generated based on any combination of user-defined parameters. Thus, embodiments are conceivable in which users of a group-based communication system can create custom user-defined buttons and workflows to perform various actions within the group-based communication system as well as in other external applications.
[0189] [RSVP button] Figure 7A shows an exemplary user interface 700 relating to several embodiments of the present invention. In some embodiments, the user interface 700 includes a channel pane 218, as shown, which includes any number of messages 222, reactions and reaction buttons 224, and a thread reply preview 226. In one exemplary scenario, an RSVP button 702 is posted to the channel, as shown, where the RSVP button 702 may include a button message 704 containing a description of the RSVP button 702. In some embodiments, the RSVP button 702 includes an accept option 706 and a decline option 708, which allow a user to accept an RSVP to an associated event from within the channel pane 218. In one example, a first user accepts an RSVP by selecting the accept option 706 of the RSVP button 702. In some embodiments, the RSVP button 702 may be posted in the channel using any of the techniques described herein for adding buttons, as well as various other suitable button generation techniques not expressly described herein.
[0190] Figure 7B shows a user interface 700 for a continuation of the above-described exemplary scenario relating to some embodiments of the present invention. Here, in response to receiving a selection from a first user on the RSVP button 702, a replacement button 710 may be generated for display within the user interface 700. For example, the first user may select the accept option 706, as shown, to replace the RSVP button 702 with the replacement button 710. In some embodiments, the replacement button 710 includes a button message 712 prompting the user to select from one or more button options 714, as shown. In this example, each of the button options 714 corresponds to an item of the corporate event associated with the RSVP. Thus, after accepting the RSVP, the user may be prompted to select items to bring to the event. In some embodiments, as shown, certain button options may be grayed out to indicate that other users have already selected to bring those items. In some embodiments, a data table may be updated based on the responses received from the RSVP button 702 and the replacement button 710, as will be further detailed below. Additional embodiments may be conceivable in which the user can select from other options, such as selecting a meal from the event menu. Furthermore, other options not explicitly described herein are also conceivable. For example, in some embodiments, users may manually create customized buttons and workflows to provide various functionalities both inside and outside the group-based communication system.
[0191] The replacement button 710 is described herein as replacing the RSVP button 702, but further embodiments are conceivable in which the replacement button 710 may be considered the same button. For example, the state of a button may be changed so that one or more button parameters are changed, rather than replacing the button. Here, the 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 different to a user who has already selected the button compared to a user who has not selected the button. In some embodiments, the state of a button may be changed based on any of various factors, such as a workflow, an external trigger, or a user selecting the button.
[0192] Figure 7C shows an exemplary data table 720 relating to the exemplary scenarios described above in connection with some embodiments of the present invention. In some embodiments, the data table 720 may be natively contained within a group-based communication system. Alternatively, in some embodiments, the data table 720 may be remotely accessed from one or more external sources. Furthermore, in some embodiments, the data table 720 may be included as a table in a collaborative document, such as the collaborative document 268 described above.
[0193] In some embodiments, the data table 720 may be generated and / or updated based on responses and selections received regarding buttons posted within a group-based communication system. For example, the data table 720 may include an RSVP data table corresponding to the aforementioned corporate events. Thus, the data table 720 may include a first column 722 containing an event identifier, a second column 724 containing a guest identifier, a third column 726 containing a response status, and a fourth column containing an item identifier 728 indicating the item each user has chosen to bring. Thus, embodiments are conceivable in which the data table 720 is automatically generated, for example, by an event creation workflow. In some embodiments, the values in the table may be automatically updated by workflows corresponding to the RSVP button 702 and the replace button 710. For example, in some embodiments, the data table 720 may be automatically updated in response to receiving one or more selections from users in a channel. In some such embodiments, the corresponding workflow may be configured to automatically add an additional row to the data table 720 for each respective user.
[0194] Embodiments are conceivable in which buttons may be displayed differently to each user. For example, in some embodiments, the RSVP button 702 may be displayed only to users who have not yet responded. Furthermore, the button options 714 of the replace button 710 may be updated at least partially based on data from a data table. For example, if a user chooses to retrieve an item by selecting a button option 714, these button options may be removed or grayed out when displayed to subsequent users. Thus, embodiments are conceivable in which button inputs may be configured to receive values from an external or natively stored data table or other data source. Furthermore, embodiments are conceivable in which buttons may be displayed differently to each user based on the role of each user in the group-based communication system. For example, in some embodiments, additional information and button parameters may be visible to administrator users but not to standard users. Furthermore, in some embodiments, the actions performed by the associated workflow may depend further on the user's role in the group-based communication system or other user-specific parameters. For example, in some embodiments, the workflow may be able to perform actions based on the permissions of the user who selected the associated button. In one example, a button is posted within a channel, and the workflow associated with the button is configured to create a new shared channel between the selecting user's organization and other organizations. Therefore, if the user who selects the button does not have permission to create a shared channel, the workflow will also be unable to create one. However, if a user who does have permission to create a shared channel selects the button, the shared channel will be created automatically. In some embodiments, a notification may be generated to the user if the workflow fails to take action based on permissions.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 did not have access to it.
[0195] Embodiments can include any number of additional types of data tables. For example, in some embodiments, a button may be associated with a specific data table for recording which users selected the button, or conversely, which users did not. 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, data store, or some other storage mechanism.
[0196] Figure 7D shows an exemplary user interface 700 relating to exemplary scenarios continuing from those described above in relation to some embodiments of the present invention. In some embodiments, after a user responds to an RSVP, the RSVP button 702 and the replace button 710 may be replaced with a response message 730, where the response message 730 may be generated for each user so that a different response message is displayed for each respective user, at least in part based on the user's response to the RSVP. For example, the response message 730 may include a description 732 indicating the user's response (acceptance or refusal) to the RSVP. In some embodiments, as shown, an RSVP edit button 734 may be included within the user interface 700, allowing the user to edit their response after it has been submitted. For example, a user may initially accept an RSVP but change their response to a refusal based on scheduling conflicts. In some such embodiments, the RSVP edit button 734 allows the user to update and change values stored in a data table 720. For example, the user may change their response or change the selected items.
[0197] [Button Directory] Figure 8 shows an exemplary user interface 800 associated with a button directory according to several embodiments of the present invention. In some embodiments, the user interface 800 may include a button page 802 which may be generated for display as part of the user interface 800, as shown. In some embodiments, the button directory may be used to configure new buttons, edit existing buttons, import existing buttons, or select buttons to post or place in various positions and contexts within a group-based communication system. Furthermore, in some embodiments, the button directory provides space for the user to curate a list of available buttons.
[0198] In some embodiments, the user interface 800 includes an Available Buttons tab 804 and a Button Templates tab 806, as shown in the illustration. Here, the Available Buttons tab 804 may be used for the user to select and edit existing buttons that are available. For example, the user may select the Available Buttons tab 804 to generate a list of Available Buttons 808 that are available for the user to select or edit, as shown in the illustration. In some embodiments, the Available Buttons 808 may include any combination of the buttons described herein, such as the RSVP button 702, the Template Build button 520, and the Request button 410, as well as other buttons not expressly described herein. For example, in some embodiments, a Message Post button may be included for automatically posting a message into a certain channel when pressed. It should be understood that any number of additional buttons corresponding to custom workflows and pre-configured workflows are also conceivable.
[0199] Furthermore, in some embodiments, additional buttons such as a help button, as illustrated, are assumed. In some embodiments, the help button may be posted within the context of a group-based communication system to submit a help request. In some such embodiments, the help button, when selected, may initiate a help request workflow. For example, a help request may be configured to generate a help ticket that can be sent to one or more users, such as customer service representatives or information technology experts. In some embodiments, the help ticket may be supplemented with contextual information automatically retrieved based on the context of the button. For example, if a user selects the help button from within a channel associated with a particular type of project, the help ticket may be routed to the appropriate personnel to assist the user in that particular project. In one example, a particular user may be designated as a help source for a particular channel, and the help ticket generated from the help button in that channel is routed to that particular user. In some embodiments, the help ticket may be automatically posted to a direct message to a particular user.
[0200] Embodiments may include shortcut buttons. In some such embodiments, shortcut buttons may be configured to provide access to some type of resource from within a group-based communication system. For example, in some embodiments, shortcuts may be used to provide quick access to a specific channel within a group-based communication system, or to some other resource posted within a group-based communication system. Furthermore, embodiments may be conceivable in which shortcut buttons can be used to access external resources. For example, a button may invoke a workflow to access a hyperlink to an external resource such as an external web page, file, or video. In some embodiments, shortcut buttons may include a preview associated with the corresponding resource.
[0201] Furthermore, embodiments may include buttons to update or create new channels within a group-based communication system. For example, a copy channel button may generate a new copy channel based on an existing template channel. Here, the copy channel button may be posted within the channel that is to be copied and used as a template. Thus, the button retrieves the context of the template channel, including various channel parameters such as the channel owner, channel members, and channel organization. In some embodiments, the channel parameters are automatically applied within the newly created channel generated in response to the button's activation. In some embodiments, the user who selects the button may be automatically set as the channel owner. Alternatively, in some embodiments, existing channel members from the template channel may automatically receive an invitation to the newly created channel. Furthermore, in some embodiments, the copy channel button may be converted into a join channel button, allowing users to join the new channel after it has been created. Furthermore, in some embodiments, such a button may only be visible to or activated by certain users. For example, in some embodiments, the button may only be activated by users who have permission to create new channels. Thus, buttons may be conceivable that retrieve various additional contextual parameters and pass these additional contextual parameters to one or more initiated workflows. For example, it should be understood that additional buttons may be possible to create a new virtual space. For instance, a button posted within the first virtual space may be linked to a workflow for creating a second virtual space, and this workflow could be a direct message, channel, collaborative document, or collaboration session.
[0202] In some embodiments, the button template tab 806 may be used to access one or more pre-configured button templates. These pre-configured button templates may be used to generate new buttons based on pre-configured button templates. In some embodiments, custom buttons may be added as templates so that a user can select an existing button as a template, fine-tune various parameters for the existing button, and create a new, modified button. In some embodiments, a user may be able to edit or modify existing buttons, for example, by changing the workflow associated with each button.
[0203] In some embodiments, the user interface 800 may be configured to display one or more buttons stored in a button directory containing all buttons associated with a user. For example, in some embodiments, any buttons used or created within a given user's organization may be included in the button directory. In some embodiments, the user interface 800 further includes an import option 810 configured to import existing buttons from some external source. For example, the import option 810 may be used to import buttons from another organization or workspace. In some embodiments, the user interface 800 further includes a create option 812 which may be used to create a new button. In some embodiments, selecting the create option 812 results in the display of a button configuration modal, such as a button configuration modal 510, as shown in Figure 5B.
[0204] In some embodiments, buttons can be copied and pasted within various contexts of a group-based communication system. For example, a user can copy a button from a buttons page and paste it into a channel, canvas, collaborative document, or direct message channel. Furthermore, embodiments are conceivable in which buttons can be directly copied and pasted between two different contexts. For example, a button may be copied from one channel and posted into another channel. Similarly, in some embodiments, a button may be copied from a channel and posted in a collaborative document or into any other suitable context of the group-based communication system. Moreover, in some embodiments, buttons can be dragged and dropped into various contexts within the group-based communication system. For example, in some embodiments, a button may be accessed from a shortcut menu or sidebar, then selected, and dragged into a desired context such as a channel or collaborative document.
[0205] In some embodiments, the button page 802 further allows users to access and modify the workflow itself. For example, in some embodiments, the button page 802 allows users to edit, delete, and add workflow steps to the workflow associated with a given button. In some embodiments, modifying a workflow step may generate a workflow copy of the modified workflow so that the workflow is not affected elsewhere in the group-based communication system and is modified only with respect to the specific button.
[0206] In some embodiments, buttons may be configured immediately before posting within a group-based communication system. Furthermore, in some embodiments, buttons may be set up and configured in advance. Thus, multiple buttons and button templates may be stored in a button directory as described herein. Furthermore, in some embodiments, buttons may be pre-configured, stored in a button directory, and then further edited immediately before posting. For example, a button configuration modal 510 may be presented to the user before the button is posted, allowing the user to edit various parameters of the button (and, in some embodiments, associated workflows) before posting.
[0207] In some embodiments, a personalized button directory or button library may be generated for each user of a group-based communication system. Here, the personalized button directory may be automatically generated based on previous user activity, or it may be manually customized by the user. For example, in some embodiments, the button library may be accessible to each user, containing a list of buttons they have recently used. Furthermore, in some embodiments, users may be able to manually customize the button library by adding and removing buttons. For example, a user can add a button to a list of available buttons and / or remove a button from it. Thus, embodiments are conceivable in which a personally customizable button directory is provided and stored for each user. For example, in some embodiments, the personalized button directory may be stored in a data store associated with the group-based communication system. In some embodiments, machine learning can be used to suggest buttons from the user's button library for placement in a given context. Similarly, when configuring placed buttons, machine learning may be employed to suggest configuration parameters based on the user's (or other users') previous placement of placed buttons (or other buttons).
[0208] [Contextual Automation] Figure 9A shows an exemplary method 900A for context automation in a group-based communication system according to some embodiments of the present invention. In some embodiments, any number of steps described herein may be performed using a variety of different suitable techniques. For example, in some embodiments, one or more steps of method 900A may be performed using a processor to execute computer-readable instructions stored on a computer-readable medium. Furthermore, in some embodiments, the processing may be divided, for example, such that a first processor performs a first part of the step and a second processor performs a second part of the step.
[0209] In step 902, the button creation input is received. In some embodiments, the button creation input may be received within the virtual space of a group-based communication system. For example, the button creation input may be received within the context of a specific channel or a specific collaborative document. In some embodiments, the button creation input includes user selection, such as the user typing a slash command, selecting a button from a shortcut menu, or selecting a button from within a button directory. However, it should be understood that many additional means of receiving the button creation input are also conceivable. In some embodiments, various parameters of the button may be configured as part of the button creation input. For example, the user may select one or more workflows associated with the button, as well as other button parameters such as values to be passed to the workflows.
[0210] In step 904, based on the received button creation input, the button can be displayed in the virtual space. In some embodiments, displaying the button in the virtual space includes displaying the button in a specific channel, collaborative document, or other appropriate context within a group-based communication system. In some embodiments, the button may be posted and displayed in any of the channels, documents, direct messages, canvases, or communication sessions. 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.
[0211] In some embodiments, buttons may be displayed based at least partially on the context of a virtual space. Furthermore, in some embodiments, buttons may be displayed based at least partially on the associated workflow linked to the button. Thus, embodiments are conceivable in which at least one display parameter of a button is determined based on data received from the context of the virtual space and the associated workflow. For example, in some embodiments, a button display theme may be selected for a button based on the channel to which the button was posted. Thus, the button's theme may be configured to reflect the theme of the context in which the button persists within a group-based communication system. In some embodiments, such a theme may determine display parameters such as, for example, the border size, border shape, and border color for the button, as well as the font, font size, and font color. Furthermore, embodiments are conceivable in which one or more selection options for a button may be determined based on the context of a virtual space. For example, in some embodiments, a Monthly Employee of the Month voting button is conceivable, where the voting button may be configured to automatically retrieve and display each of the channel member names as selection items for the voting button.
[0212] Additional buttons may be displayed based on specific contextual parameters. In some embodiments, the selection options of a button may be determined and displayed based on channel parameters, such as associated location. For example, if a particular channel is associated with the geographical location of a physical office, the selection options may be determined based on the geographical location. Thus, in some embodiments, a lunch voting button may be conceivable that automatically provides selection options for caterers near the geographical location associated with a particular channel in a group-based communication system.
[0213] In some embodiments, one or more display parameters of a button may be determined at least in part based on the workflow associated with the button. For example, in some embodiments, the button's display may change in accordance with the progress of the associated workflow. Here, the button's initial display may be updated during the execution of the workflow, and may be updated again after the workflow is completed. Furthermore, there are embodiments in which a workflow indicator may be displayed along with the button in the virtual space.
[0214] In step 906, the activation of the button is received. In some embodiments, the activation is received from the user, for example, by the user clicking, tapping, or otherwise selecting a button in the virtual space. It should be understood that the buttons described herein may include multiple components. For example, in some embodiments, a button may include any combination of button descriptions along with various selectable options. Furthermore, in some embodiments, a button may be expandable so that various additional information and selection options are presented after the activation of the button or interaction with the button.
[0215] Further embodiments are conceivable in which the button may be activated automatically. For example, the button may be activated using a workflow. In some embodiments, the button may be activated based on any number of internal and external triggers. For example, an external application may activate a button in a group-based communication system using a webhook or API. Furthermore, the button may be activated by triggering an event from within the group-based communication system, such as by any combination of user interaction or automation. For example, an embodiment is conceivable in which the button may be activated based on a user viewing the button in a display associated with the group-based communication system. Furthermore, in some embodiments, the button may be activated based on, for example, a user sending a message or some other internal event within the group-based communication system.
[0216] In step 908, one or more context parameters are obtained. In some embodiments, context parameters may be obtained in response to receiving a button activation. In some embodiments, context parameters include a user identifier associated with a particular user and a context identifier associated with the virtual space in which the button resides. Furthermore, in some embodiments, two or more user identifiers may be obtained. For example, the user identifier of the user who activated the button, as well as the user identifier of the user who created or posted the button in the virtual space, may be obtained.
[0217] In step 910, the workflow associated with the button is initiated. In some embodiments, the workflow may be initiated in response to the activation of the button. Furthermore, in some embodiments, the workflow may be executed in context such that at least one workflow action is performed based on one or more context parameters. For example, in some embodiments, the workflow action may be performed based on a retrieved user identifier and / or context identifier. For example, a channel identifier associated with the channel to which the button was posted may be passed to the workflow and used within at least one step of the workflow. For example, the workflow may be configured to post a message within that channel or to share a document link within the channel to an automatically generated document associated with the workflow. It should be understood that this is just one example of a use case for contextual workflows, and various other contextual applications are also possible. For example, the workflow may be configured to perform an action based on a specific user identifier associated with the button.
[0218] Furthermore, embodiments are conceivable in which additional information can 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 who clicked a button in a virtual space and add this user information to a document or data table.
[0219] In some embodiments, the operation of a workflow may include any combination of internal and external operations, where internal operations include steps performed within a group-based communication system and external operations include steps performed on one or more external applications or services. For example, a single workflow may include a first part of steps performed natively within a group-based communication system and a second part of steps performed within an external application. Furthermore, workflows may include those that are entirely hosted within a group-based communication system or that run entirely on one or more external sources. For example, a workflow may be initiated from within a group-based communication system, for example, by a user selecting a button, but the operation of the workflow may be performed elsewhere on an external application, such as updating values in an external remote data table. In some embodiments, enabling workflows to be implemented both internally and externally allows users to achieve various functions without incorporating or creating dedicated applications. For example, if a dedicated application is used in some cases to take action based on information received from a group-based communication system, a combination of a button and a workflow may be sufficient to achieve the same function without requiring the creation of a completely separate application. Furthermore, by using context buttons to trigger workflows, it becomes possible to trigger activities outside the group-based communication system without users having to leave the group-based communication system interface.
[0220] Figure 9B shows an exemplary continuation of Method 900B relating to several embodiments of the present invention. In some embodiments, the steps of Method 900B may optionally be included after Method 900A described above. For example, in some embodiments, after starting a workflow in step 910, a completion confirmation may be received in step 912. In some such embodiments, the completion confirmation may be associated with the completion of the started workflow. For example, the completion confirmation may be submitted in response to a determination that one or more operations of the workflow have been successfully performed.
[0221] In step 914, the button may be updated in the virtual space. In some embodiments, updating a button may include replacing the button with a message or other button, removing the button, or changing different aspects of the button based on completion confirmation from a workflow, as described above. For example, in some embodiments, the button's description or selection options may be automatically changed based on the workflow or other external information. For example, in some embodiments, the button's selection options may be updated based on information from a data table stored natively or externally.
[0222] One possible embodiment is that users can share workflows by posting buttons 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 into a direct message to the second user. The second user can then copy and paste the button for later use or select the button to activate the workflow. Alternatively, if the first user wants to share the workflow with several other users, the button may be posted within a channel in the group-based communication system. Thus, the button provides an additional means of sharing workflows within a group-based communication system.
[0223] While various embodiments of the present invention have been described, those that are claimed to be novel and for which protection by patent is desired include those described in the claims.
Claims
1. One or more non-temporary computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method of context automation within a group-based communication system, wherein the method is To enable users of the group-based communication system to display a workflow button within the virtual space of the group-based communication system based on at least one display parameter determined based on the context of the virtual space, Receiving the activation of the workflow button from the aforementioned user, In response to the operation of the workflow button, a plurality of context parameters associated with the workflow button, including a user identifier associated with the user and context data associated with the virtual space, are obtained from an internal or external data source of the group-based communication system. To perform one or more automated actions based on the aforementioned multiple context parameters, the associated workflow associated with the workflow button is initiated. To receive a response and additional information indicating the completion of the associated workflow, This includes updating the display of the workflow button in the virtual space of the group-based communication system to present the additional information based on the received response indicating the completion of the associated workflow, One or more non-temporary computer-readable media.
2. The aforementioned method, In response to performing one of the aforementioned automated actions, an additional workflow is initiated to perform one or more additional actions. Receiving completion confirmation associated with the aforementioned additional workflow, Further including performing a further action among the one or more automated actions that depend on the completion confirmation associated with the additional workflow, One or more non-temporary computer-readable media according to claim 1.
3. The aforementioned method, In response to performing one of the one or more automated actions described above, a new workflow button is displayed in the virtual space, the new workflow button is configured to initiate an additional workflow, One or more non-temporary computer-readable media according to claim 1.
4. The aforementioned method, In response to performing one of the one or more automated operations described above, a second virtual space is created based on the plurality of context parameters in the virtual space, further comprising a second virtual space including direct messages, channels, collaborative documents, or collaboration sessions. One or more non-temporary computer-readable media according to claim 1.
5. The aforementioned method, The present invention provides a second user of the group-based communication system with a display of the workflow button in a second virtual space, wherein the at least one display parameter of the workflow button in the second virtual space is different from the at least one display parameter in the virtual space. In response to the operation of the workflow button in the second virtual space, the plurality of context parameters associated with the operation of the workflow button are obtained, 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 plurality of context parameters, wherein the second workflow is different from the associated workflow. This further includes initiating the second workflow described above, One or more non-temporary computer-readable media according to claim 1.
6. The aforementioned method, In response to performing one of the one or more automated operations, the system further includes storing information indicating a first context parameter among the plurality of context parameters in a storage location determined based on a second context parameter among the plurality of context parameters. One or more non-temporary computer-readable media according to claim 1.
7. The aforementioned method, In response to performing one of the one or more automated actions described above, the virtual space is further updated to reflect the user's action on the workflow button. One or more non-temporary computer-readable media according to claim 1.
8. A method for context automation in a group-based communication system, which is performed by at least one processor, the method being: To enable users of the group-based communication system to display a workflow button within the virtual space of the group-based communication system based on at least one display parameter determined based on the context of the virtual space, Receiving the activation of the workflow button from the aforementioned user, In response to the operation of the workflow button, a plurality of context parameters associated with the workflow button, including a user identifier associated with the user and context data associated with the virtual space, are obtained from an internal or external data source of the group-based communication system. To perform one or more automated actions based on the aforementioned multiple context parameters, the associated workflow associated with the workflow button is initiated. To receive a response and additional information indicating the completion of the associated workflow, A method comprising updating the display of the workflow button in the virtual space of the group-based communication system to present the additional information based on the received response indicating the completion of the associated workflow.
9. In response to performing one of the aforementioned automated actions, an additional workflow is initiated to perform one or more additional actions. Receiving completion confirmation associated with the aforementioned additional workflow, Further including performing a further action among the one or more automated actions that depend on the completion confirmation associated with the additional workflow, The method according to claim 8.
10. In response to performing one of the one or more automated actions described above, a new workflow button is displayed in the virtual space, the new workflow button is configured to initiate an additional workflow, further comprising: The method according to claim 8.
11. In response to performing one of the one or more automated operations described above, a second virtual space is created based on the plurality of context parameters in the virtual space, further comprising a second virtual space including direct messages, channels, collaborative documents, or collaboration sessions. The method according to claim 8.
12. The present invention provides a second user of the group-based communication system with a display of the workflow button in a second virtual space, wherein the at least one display parameter of the workflow button in the second virtual space is different from the at least one display parameter in the virtual space. In response to the operation of the workflow button in the second virtual space, the plurality of context parameters associated with the operation of the workflow button are obtained, 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 plurality of context parameters, wherein the second workflow is different from the associated workflow. This further includes initiating the second workflow described above, The method according to claim 8.
13. In response to performing one of the one or more automated operations, the system further includes storing information indicating a first context parameter among the plurality of context parameters in a storage location determined based on a second context parameter among the plurality of context parameters. The method according to claim 8.
14. In response to performing one of the one or more automated actions described above, the virtual space is further updated to reflect the user's action on the workflow button. The method according to claim 8.
15. A system comprising at least one processor and at least one non-temporary memory for storing computer executable instructions that, when executed by the at least one processor, perform a method for context automation within a group-based communication system, wherein the method is To enable users of the group-based communication system to display a workflow button within the virtual space of the group-based communication system based on at least one display parameter determined based on the context of the virtual space, Receiving the activation of the workflow button from the aforementioned user, In response to the operation of the workflow button, a plurality of context parameters associated with the workflow button, including a user identifier associated with the user and context data associated with the virtual space, are obtained from an internal or external data source of the group-based communication system. To perform one or more automated actions based on the aforementioned multiple context parameters, the associated workflow associated with the workflow button is initiated. To receive a response and additional information indicating the completion of the associated workflow, This includes updating the display of the workflow button in the virtual space of the group-based communication system to present the additional information based on the received response indicating the completion of the associated workflow, system.
16. The aforementioned method, In response to performing one of the aforementioned automated actions, an additional workflow is initiated to perform one or more additional actions. Receiving completion confirmation associated with the aforementioned additional workflow, Performing a further action among the one or more automated actions that depend on the completion confirmation associated with the additional workflow, Further including, The system according to claim 15.
17. The aforementioned method, In response to performing one of the one or more automated actions described above, a new workflow button is displayed in the virtual space, the new workflow button is configured to initiate an additional workflow, further comprising: The system according to claim 15.
18. The aforementioned method, In response to performing one of the one or more automated operations described above, a second virtual space is created based on the plurality of context parameters in the virtual space, further comprising a second virtual space including direct messages, channels, collaborative documents, or collaboration sessions. The system according to claim 15.
19. The aforementioned method, The present invention provides a second user of the group-based communication system with a display of the workflow button in a second virtual space, wherein the at least one display parameter of the workflow button in the second virtual space is different from the at least one display parameter in the virtual space. In response to the operation of the workflow button in the second virtual space, the plurality of context parameters associated with the operation of the workflow button are obtained, 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 plurality of context parameters, wherein the second workflow is different from the associated workflow. To initiate the second workflow described above, Further including, The system according to claim 15.
20. The aforementioned method, In response to performing one of the one or more automated operations, the system further includes storing information indicating a first context parameter among the plurality of context parameters in a storage location determined based on a second context parameter among the plurality of context parameters. The system according to claim 15.