Converting a private channel to a public channel
By using the channel settings interface and metadata updates, private channels can be converted into public channels, solving the problem of low conversion efficiency in existing technologies, enabling efficient sharing of channel content and improving user experience.
Patent Information
- Application Number
- CN202280070419.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-10-22
- Filing Date
- 2022-10-21
- Publication Date
- 2025-11-25
- Estimated Expiration
- 2042-10-21
AI Technical Summary
In existing communication platforms, the process of converting private channels into public channels requires a lot of time and computing resources, resulting in a poor user experience and an inability to efficiently share channel content.
It provides a channel settings interface that allows authorized members to choose to convert private channels to public channels and make channels public by updating metadata and search indexes. It also supports an approval workflow to ensure the consent of channel members.
It improves the discoverability of channel content, reduces resource consumption and time costs, enhances user experience, and ensures the privacy protection of channel members.
Smart Images

Figure CN118120182B_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This patent application claims priority to U.S. Utility Patent Application No. 17 / 452,016, filed October 22, 2021, the entire contents of which are incorporated herein by reference. Technical Field
[0003] A group of users can be organized within a domain (sometimes referred to as a "workspace") in association with a communication platform or service. Domains are typically associated with businesses, organizations, companies, schools, or other discrete entities. The users comprising a domain (sometimes referred to as "members") typically exchange communications related to common goals, topics, purposes, or work. A domain or workspace can represent a virtual space dedicated to a group and can include tools for members to perform various functions. For example, a workspace may include tools for messaging, conferencing, sharing data, scheduling / assigning tasks, responding to posts, mentioning members in posts, etc.
[0004] In some cases, channels can be created within a workspace to organize work around specific projects or subtopics for the entire group, and channels can include subsets of workspace members or be joined by subsets of workspace members. Some channels can be designated as public channels, meaning they can be discovered by all members of the workspace even if a workspace member is not included in their subset. That is, even if a workspace member has not yet joined a public channel, they can still search for, find, and view its content. In other cases, workspace channels can be designated as private channels (e.g., using settings), and private channels may not be discoverable or viewable by workspace members who have not yet joined the private channel. That is, even if a private channel is part of the workspace, workspace members who have not yet joined the private channel may not be able to discover it (e.g., when searching) or view its content (e.g., messages, shared data, etc.). However, during the lifetime or pending period of a private channel, a member may want to share the channel's content with other members of the workspace. For this purpose, in an existing system, a member of a private channel might need to create a new public channel and manually copy data from the private channel to the new public channel. The process may require excessive time and computing power to transfer channel data, and could result in a negative user experience. Attached Figure Description
[0005] Detailed description of the embodiments is based on the accompanying drawings. In the drawings, the leftmost digit of the reference numeral indicates the drawing in which the reference numeral first appears. The same reference numeral is used in different drawings to denote similar or identical parts or features.
[0006] Figure 1A block diagram illustrating an example system depicting a computing device that can be used to implement the example techniques described herein is shown.
[0007] Figure 2A An example user interface as described herein is shown.
[0008] Figure 2B Example user interfaces as described herein that can be presented on a networked user computing device and that depict different channel discoverability in each user interface are shown.
[0009] Figure 3 A user interface for changing a private channel to a public channel as described herein is shown.
[0010] Figure 4 A flowchart illustrating an example process for converting a private channel to a public channel as described herein is included.
[0011] Figure 5 A flowchart illustrating an example process for converting a private channel to a public channel as described herein is included. DETAILED DESCRIPTION
[0012] As described above, in a communication platform, a group of users can be organized as a workspace, and within the workspace, various channels can be created for organizing work around specific projects or subtopics for the entire group. In some examples, a channel can be designated as "private," in which case the private channel (and its content) is not discoverable or viewable by workspace members who have not joined the private channel, even if the channel is associated with the workspace. The present disclosure relates to solutions for changing a private channel to a public channel, which allows other members of the workspace who were not previously associated with the channel to discover the channel (e.g., when searching), view the content of the channel, and / or join the channel (e.g., without an invitation). Among other things, examples of the present disclosure that allow a private channel to be converted to a public channel help improve efficiency by improving the discoverability of information that members should have access to. Additionally, examples of the present disclosure can significantly reduce the time and resources that would otherwise be used to attempt to copy content from a private channel to another channel to allow others to access the content.
[0013] Having described some examples generally, more specific details will now be provided. In some examples of a communication platform, a workspace is created and represents a common or general domain that is associated with a group of users (sometimes referred to as “members”). For example, a given workspace (e.g., associated with a business or organization) can include many members (e.g., tens, hundreds, thousands, etc.). Additionally, within a workspace, members can create virtual spaces (sometimes referred to as “channels”) to organize communications and content around specific work, projects, topics, etc. associated with the workspace. In some examples, for a given channel, members can join the channel, which can result in alerting them to updates to the channel or otherwise allowing them to interact with the channel in ways that members who have not joined can not be permitted.
[0014] Generally, any member can interact with other members and / or can request services of the communication platform (e.g., to post content to a channel) by using a communication application on a client. Additionally, members can generally discover channels associated with a workspace via the communication application. For example, a member can wish to discover other channels associated with a workspace regardless of whether the member has joined the other channels. In some examples, members can be able to browse or search channels associated with a workspace (via the communication application).
[0015] In some examples, members associated with the same workspace can have different permissions associated with a workspace channel. For example, in some cases, a channel can be designated as a private channel, which can affect permissions associated with any members who have not joined the private channel. In some examples, any members who have not joined a private channel are unable to discover the private channel when searching or browsing. Additionally, any members who have not joined a private channel can be unable to view or post content associated with the private channel.
[0016] In some cases, it can be desirable to change a channel from a private channel to a public channel, such as in cases where a channel can have been mistakenly designated as a private channel or where there is no longer a need to restrict access to content of the private channel. Conventionally, changing a private channel to a public channel is challenging and, in some cases, impossible. Among other things, such inability to change from a private channel to a public channel can prevent users from accessing important information that would otherwise be discoverable. Additionally, such potential limitations can result in inefficient use of resources (e.g., time, computational resources, etc.) used in searching for information that is prevented from being discovered / accessed. Furthermore, such restrictions in changing permissions can increase duplication of effort and resource consumption due to copying content from a private channel to a more publicly accessible space. In contrast to conventional solutions, examples of the disclosed text include techniques for changing a channel from a private setting / designation to a public setting / designation.
[0017] In some examples, a channel settings interface can be provided that enables a member (e.g., a member with permission to change the private designation) to request that a private channel be changed to a public channel. The members authorized to change a private channel to a public channel can depend on workspace preferences. For example, in some cases, one or more of the channel creator, channel owner, channel members, and / or channel administrators can be authorized to change a private channel to a public channel.
[0018] In some examples, the channel settings interface can enable a requesting user to select a portion of data associated with a private channel to remain private, while other non-selected portions of the channel can become public. That is, the requesting user can designate first data to be published to all members of the public channel converted from the private channel, and second data to be published to members of the original private channel. This portion of data can be identified based on various criteria such as data, content type, user, etc. In examples, the techniques of exposing text can maintain the private nature of this portion of data by applying one or more of various techniques. For example, in some cases, this portion of data designated to remain private can still be associated with the public channel and only accessible by approved user accounts (e.g., due to a flag or other metadata associated with this portion of data and that can be used to selectively restrict access). In other examples, this portion of data designated to remain private can be forked from the public data. In such cases, the forked private data can be archived, and / or both the forked private data and the public data can exist as separate channels going forward.
[0019] In at least some examples, designating a change from private to public can have various implications in the communication platform. For example, in one example, the change from private to public can initiate an approval workflow in which members of the private channel can have an opportunity to approve or object to the conversion to a public channel. In some examples, the approval workflow can allow members to specify whether the member wants to keep any content associated with the member private (e.g., the member can approve the conversion of the channel to public on the condition that content associated with the member (e.g., posted by the member) remains private).
[0020] In some examples, the channel conversion from private to public can affect the way data is stored. For example, a flag or other metadata indicating whether data (e.g., the channel or data associated with the channel) is private or public can be updated to reflect the public nature. Additionally, a search index associated with the channel can be updated to indicate that the channel is public, and the updated search index can be used to determine that the channel is discoverable by user accounts (e.g., when user accounts are searching and / or browsing).
[0021] Referring now toFigure 1 , Figure 1 An example system 100 for performing the techniques described herein is shown. In at least one example, the example environment 100 can be associated with a communication platform that can utilize a network-based computing system to enable users of the communication platform to exchange data. In at least one example, the communication platform can be “group-based” such that the platform and associated systems, communication channels, messages, and / or virtual spaces have security (e.g., which can be defined by permissions) to limit access to a defined group of users. In some examples, such a group of users can be defined by a group identifier, which can be associated with a common access credential, domain, or the like. In some examples, the communication platform can be a hub that provides secure and private virtual spaces to enable users to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate between or among one another. As noted above, each group can be associated with a workspace, thereby enabling users associated with the group to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate between or among one another in a secure and private virtual space. In some examples, members of a group and thus a workspace can be associated with the same organization. In some examples, members of a group and thus a workspace can be associated with different organizations (e.g., entities with different organization identifiers).
[0022] In at least one example, the example system 100 can include one or more server computing devices (or “servers”) 102. In at least one example, the servers 102 can include one or more servers or other types of computing devices that can be embodied in any number of ways. For example, in the example of a server, functional components and data can be implemented on a single server, a cluster of servers, a server farm or data center, a cloud-hosted computing service, a cloud-hosted storage service, or the like, although other computer architectures can additionally or alternatively be used.
[0023] In at least one example, the server 102 can communicate with one or more user computing devices 104a, 104b, and / or 104c (also referred to as user computing devices 104) via one or more networks 106. That is, the server 102 and the user computing devices 104 can use the network 106 to transmit, receive, and / or store data (e.g., content, information, etc.) as described herein. The user computing devices 104 can be any suitable type of computing device, such as, for example, portable, semi-portable, semi-fixed, or fixed. Some examples of user computing devices 104 can include a tablet computing device, a smartphone, a mobile communication device, a laptop computer, a netbook, a desktop computing device, a terminal computing device, a wearable computing device, an augmented reality device, an Internet of Things (IOT) device, or any other computing device capable of transmitting communications and performing functions in accordance with the techniques described herein. Although Figure 1 The user computing devices 104a, 104b, and 104c are shown, but in practice, the example system 100 can include additional (e.g., tens, hundreds, thousands, millions) user computing devices.
[0024] In at least one example, a user computing device, such as the user computing devices 104, can be operated by a user to access a communication service via a communication platform, among other things. The user can be an individual, a group of individuals, an employer, a business, an organization, etc. In some examples, a user (e.g., the same user) can use multiple computing devices to access the communication service via the communication platform. For example, the user can switch or alternate between different user computing devices 104 when accessing the communication service.
[0025] The network 106 can include, but is not limited to, any type of network known in the art, such as a local or wide area network, the Internet, a wireless network, a cellular network, a local wireless network, Wi-Fi, and / or near field wireless communication, Bluetooth Low Energy (BLE), near field communication (NFC), a wired network, or any such network or any combination thereof. The components used for such communication can depend at least in part on the type of network, the environment selected, or both. Protocols for communicating over such networks 106 are well known and are not discussed in detail here.
[0026] In at least one example, the server 102 can include one or more processors 108, a computer-readable medium 110, one or more communication interfaces 112, and input / output devices 114.
[0027] In at least one example, each of the processors 108 can be a single processing unit or a plurality of processing units, and can include single or multiple computing units or processing cores. The processors 108 can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units (CPUs), graphics processing units (GPUs), state machines, logic circuitries, and / or any devices that manipulate signals based on operational instructions. For example, the processors 108 can be one or more hardware processors and / or any suitable type of logic circuitry, specially configured or programmed to perform the algorithms and processes described herein. The processors 108 can be configured to fetch and execute computer-readable instructions stored in the computer-readable medium, which can program the processors to perform the functions described herein.
[0028] The computer-readable medium 110 can include volatile and non-volatile memory and / or removable and non-removable media implemented in any type of technology for storage of data such as computer-readable instructions, data structures, program modules, or other data. Such computer-readable medium 110 can include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, optical storage, solid state storage, magnetic tape, magnetic disk storage, RAID storage systems, storage arrays, network attached storage, storage area networks, cloud storage, or any other medium that can be used to store the desired information and that can be accessed by a computing device. The computer-readable medium 110 can be one type of computer-readable storage media and / or can be a tangible, non-transitory medium, to the extent that, when the program is referred to as such, the non-transitory computer-readable media excludes media such as energy, carrier signals, electromagnetic waves, and signals per se.
[0029] The computer-readable medium 110 can be used to store any number of functional components that can be executed by the processors 108. In many implementations, these functional components include instructions or programs that are executable by the processors 108 and that, when executed, specifically configure the processors 108 to perform the actions attributed above to the server 102. The functional components stored in the computer-readable medium can optionally include a workspace management component 116, a channel management component 118, an operating system 121, and a data store 122.
[0030] In at least one example, the workspace management component 116 can manage workspaces. That is, in at least one example, the communication platform can be divided into different workspaces, which can be associated with different groups of users, as described above. As described above, each workspace can be associated with a group identifier, and one or more user accounts can be mapped to or otherwise associated with the group identifier. Users corresponding to such user accounts can be “members” of the group.
[0031] In some examples, the workspace management component 116 can manage workspace membership. That is, the workspace management component 116 can receive requests to associate users with individual workspaces, and the workspace management component 116 can associate 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 116 can associate a user account of the user with a group identifier of the workspace. The workspace management component 116 can disassociate user accounts and group identifiers, for example, when a user is removed from a workspace.
[0032] In at least one example, the channel management component 118 can manage communication channels. As described above, in at least one example, a communication platform can be a channel-based messaging platform, which in some examples, can be usable by groups of users. Users of the communication platform can communicate with other users via communication channels. A communication channel or virtual space can be a data route for exchanging data between and among systems and devices associated with the communication platform. In at least one example, the channel management component 118 can establish communication channels between and among various user computing devices, thereby allowing the user computing devices to communicate and share data between and among one another. In at least one example, the channel management component 118 can manage such communication and / or data sharing.
[0033] In some examples, a channel may include one or more members who have already joined the channel, and in some cases, fewer than all members of the workspace may join the channel. Therefore, the channel management component 118 may perform operations related to tracking, granting, inviting, and other member joining associated with the channel. Additionally, in some examples, a channel may be designated as a "public" channel, in which case members of the workspace who have not yet joined the channel may still be able to interact with the channel (e.g., discover the channel when searching, view the channel's content, join the channel without an invitation, etc.). In some examples, a channel may be designated as a "private" channel, in which case members of the workspace who have not yet joined the channel may not be allowed to interact with the channel (e.g., the channel cannot be discovered when searching / browsing, the channel cannot be viewed, or joining the channel without an invitation). Therefore, in some examples, the channel management component 118 may perform operations related to making a channel public or private. In some examples, data associated with the communication channel may be presented via a user interface, such as content shared or associated with the channel, identifiers of members who have already joined the channel, and the private or public nature of the channel. In at least one example, the channel management component 118 can interact with the workspace management component 116 to manage the generation, rendering, and / or updating of the user interface.
[0034] In at least one example, the operating system 121 can manage the processor 108, computer-readable medium 110, hardware, software, etc. of the server 102.
[0035] In at least one example, data repository 122 can be configured to store data that is accessible, manageable, and updatable. In some examples, data repository 122 can be integrated with server 102, such as... Figure 1 As shown. In other examples, data repository 122 may be located remotely from server 102 and may be accessible by server 102 and / or user devices (such as user computing device 104). Data repository 122 may include multiple databases, which may include user data 124, license data 126, workspace data 128, and channel data 130. Additional or alternative data may be stored in the data repository and / or one or more other data repositories.
[0036] In at least one example, user data 124 can store data associated with users of the communication platform. In at least one example, user data 124 can store data in user profiles (which can also be referred to as“user accounts”), which can store data associated with users, including but not limited to: one or more user identifiers associated with a plurality of different organizations or entities with which the user is associated, one or more communication channel identifiers associated with communication channels that the user has been authorized to access, one or more group identifiers of groups (or organizations, teams, entities, etc.) with which the user is associated, an indication of whether the user is an owner or manager of any communication channels, an indication of whether the user has any communication channel restrictions, a plurality of messages, a plurality of emojis, a plurality of conversations, a plurality of conversation topics, an avatar, an email address, a real name (e.g., John Doe), a username (e.g., j doe), a password, a time zone, a status (e.g., a user status such as active, away, inactive, etc.), a token, etc.
[0037] In at least one example, permissions data 126 can store data associated with permissions of individual users of the communication platform. In some examples, permissions can be set automatically or by an administrator, employer, enterprise, organization, or other entity utilizing the communication platform, a team leader, a group leader, or other entity utilizing the communication platform to communicate with team members, group members, etc., an individual user, etc. In some examples, permissions associated with an individual user can be mapped to or otherwise associated with an account or profile associated with user data 124. In some examples, permissions can indicate which users can communicate directly with other users, which channels a user is permitted to access, restrictions on individual channels, which workspaces a user is permitted to access, restrictions on individual workspaces, etc. In at least one example, permissions can support the communication platform by maintaining security for limiting access to defined groups of users. In some examples, such users can be defined by public access credentials, group identifiers, etc., as described above. In some examples, permissions data 126 can indicate whether a user is permitted to control or change a designation or setting associated with whether a channel is private or public.
[0038] In at least one example, workspace data 128 can store data associated with individual workspaces. As described above, the communication platform can be divided into workspaces associated with groups of users. In at least one example, a group identifier can be associated with a workspace. In at least one example, the group identifier can indicate a physical address in workspace data 128 where data related to the corresponding workspace is stored. In at least one example, data associated with workspace permissions can be stored in association with the group identifier, data identifying users associated with the workspace can be stored in association with the group identifier, data associated with messages and / or other content associated with the workspace can be stored in association with the group identifier, data associated with communication channels associated with the workspace can be stored in association with the group identifier, and the like. In some examples, a workspace can be associated with one or more organization identifiers, which can be associated with an organization or other entity associated with the communication platform. In some examples, such data can be mapped to or otherwise associated with other types of data in data store 122 (e.g., user data 124, permissions data 126, channel data 130, etc.).
[0039] In at least one example, channel data 130 can store data associated with individual communication channels. In at least one example, channel management component 118 can establish communication channels between and among various user computing devices, allowing the user computing devices to communicate and share data between and among one another. In at least one example, a communication channel can be assigned an identification that indicates a physical address in channel data 130 where data related to the communication channel is stored. As indicated above, a communication channel can be“public,” which can allow any user within an organization (e.g., associated with an organization identifier) to join and participate in data sharing through the communication channel, or the communication channel can be“private,” which can restrict data communication in the communication channel to certain users or users with particular roles (e.g., managers, administrators, etc.). Accordingly, channel data 130 can store data associated with public or private designations. For example, in some cases, channel data 130 can include tags or other metadata associated with a channel and / or content of the channel, and these tags can be able to be referenced in various contexts to help determine whether a user or member is permitted to interact with the channel or content. In at least some examples, channel data 120 can include or be associated with a channel search index that includes data indicating whether a channel is private or public. In some examples, a communication channel can be“shared,” which can allow users associated with different organizations (e.g., entities associated with different organization identifiers) to join and participate in data sharing through the communication channel. A shared channel can be public, such that it is accessible by any user of either organization, or a shared channel can be private, such that it is restricted to access by certain users or users with particular roles from both organizations.
[0040] In some examples, data store 122 can be partitioned into discrete data items (e.g., data shards) that can be individually accessed and managed. Data shards can simplify many technical tasks, such as data retention, unrolling (e.g., detecting that message content includes a link, crawling metadata for the link, and determining a unified overview of the metadata), and integration setup. In some examples, data shards can be associated with organizations, groups (e.g., workspaces), communication channels, users, etc.
[0041] In some examples, an individual organization can be associated with a database shard within the data store 122 that stores data related to a particular organization identity. For example, the database shard can store electronic communication data associated with members of a particular organization, which enables members of the particular organization to communicate and exchange data with other members of the same organization in real-time or near real-time. In examples, the organization itself can be the owner of the database shard and have control over where and how the related data is stored. In some examples, the database shard can store data related to two or more organizations (e.g., as in a shared channel).
[0042] In some examples, an individual group can be associated with a database shard within the data store 122 that stores data related to a particular group identity (e.g., a workspace). For example, the database shard can store electronic communication data associated with members of a particular group, which enables members of the particular group to communicate and exchange data with other members of the same group in real-time or near real-time. In examples, the group itself can be the owner of the database shard and have control over where and how the related data is stored.
[0043] In some examples, a communication channel can be associated with a database shard within the data store 122 that stores data related to a particular channel identity. For example, the database shard can store electronic communication data associated with a communication channel, which enables members of the particular communication channel to communicate and exchange data with other members of the same communication channel in real-time or near real-time. In examples, a group or organization can be the owner of the database shard and can control where and how the related data is stored.
[0044] In some examples, an individual user can be associated with a database shard within the data store 122 that stores data related to a particular user account. For example, the database shard can store electronic communication data associated with an individual user, which enables the user to communicate and exchange data with other users of the communication platform in real-time or near real-time. In some examples, the user itself can be the owner of the database shard and have control over where and how the related data is stored.
[0045] The communication interface 112 can include one or more interfaces and hardware components for enabling communication with various other devices (e.g., the user computing device 104), such as over the network 106 or directly. In some examples, the communication interface 112 can facilitate communication via WebSockets, application programming interfaces (APIs) (e.g., using API calls), hypertext transfer protocol (HTTP), and the like.
[0046] The server 102 can also be equipped with various input / output devices 114 (e.g., I / O devices). Such I / O devices 114 can include a display, various user interface controls (e.g., buttons, joysticks, keyboards, mice, touchscreens, etc.), audio speakers, connection ports, etc.
[0047] In at least one example, the user computing device 104 can include one or more processors 132, computer-readable media 134, one or more communication interfaces 136, and input / output devices 138 (I / O devices).
[0048] In at least one example, each of the processors 132 can be a single processing unit or a plurality of processing units, and can include single or multiple computing units or processing cores. The processors 132 can include any type of processors described above with reference to the processors 108, and can be the same as or different from the processors 108.
[0049] The computer-readable media 134 can include any type of computer-readable media described above with reference to the computer-readable media 110, and can be the same as or different from the computer-readable media 110. The functional components stored in the computer-readable media can optionally include a communication application 140 (e.g., for interacting with the server 102) and an operating system 142.
[0050] In at least one example, the operating system 142 can manage the processors 132, computer-readable media 134, hardware, software, etc. of the server 102.
[0051] The communication interfaces 136 can include one or more interfaces and hardware components for enabling communication with various other devices (e.g., the user computing device 104), such as over the network 106 or directly. In some examples, the communication interfaces 136 can facilitate communication via WebSockets, APIs (e.g., using API calls), HTTP, etc.
[0052] The user computing device 104 can also be equipped with various input / output devices 138 (e.g., I / O devices). Such I / O devices 138 can include a display, various user interface controls (e.g., buttons, joysticks, keyboards, mice, touchscreens, etc.), audio speakers, connection ports, etc.
[0053] In at least one example, communication application 140 may be a mobile application, a web application, or a desktop application, which may be provided by a communication platform or may be another dedicated application. In some examples, a separate user computing device associated with system 100 may have an instance or versioned instance of communication application 140, which may be downloaded from an app store, accessible via the Internet, or otherwise executable by processor 132 to perform the operations described herein. That is, communication application 140 may be an access point enabling user computing device 104 to interact with server 102 to access and / or use communication services available via the communication platform. In at least one example, communication application 140 may facilitate data exchange between and among various other user computing devices, for example, via server 102. In at least one example, communication application 140 may present a user interface, as described herein. In at least one example, a user may interact with the user interface via touch input, keyboard input, mouse input, voice input, or any other type of input (e.g., using I / O device 138).
[0054] Communication application 140 may include various functional components, and in at least one example, application 140 includes channel manager 143. In some examples, channel manager 143 may perform one or more operations that enable members to perform various channel-related functions, such as viewing or sorting a list of channels, browsing channels associated with a workspace, and creating new channels with characteristics specified by members (e.g., name, purpose, joined members, public or private, etc.).
[0055] Figure 1 A non-limiting example of user interface 144 is shown. User interface 144 may present information associated with a user account (e.g., user AB as indicated by user profile indicator 145). Figure 1 As shown, user interface 144 can present data associated with one or more channels, and in some examples, it can present data associated with one or more workspaces. That is, in some examples, user interface 144 can enable a user to access multiple workspaces. In some examples, user interface 144 may include a first segment 146 (e.g., it may be part of user interface 144, a pane, or other partition unit), the first segment including user interface elements associated with the workspace associated with the user (e.g., the user's account). Figure 1Two user interface elements are shown, including a first user interface element 147a representing a first workspace and a second user interface element 147b representing a second workspace. As described above, such workspaces can be associated with different domains. In some examples, a user can interact with the first user interface element 147a or the second user interface element 147b to access the corresponding workspace. In some examples, the user can be prompted to provide credentials to authenticate to the corresponding workspace. While two user interface elements 147a and 147b are shown, any number of user interface elements can be presented via the first section 146, which can be associated with one or more domains.
[0056] In some examples, the user interface 144 can include a second section 148 (e.g., which can be a portion, pane, or other partitioned unit of the user interface 144) that includes user interface elements representing data associated with workspaces associated with the user (e.g., the user’s account). In some examples, the user interface elements presented via the second section 148 can represent virtual spaces that the user can access via a particular workspace or multiple workspaces. In some examples, the second section 148 can include user interface elements that allow the user to take additional actions with respect to the virtual spaces. For example, by selecting one of the channel identifiers in the section 148, the user can be able to view (via the user interface 144) content associated with the selected channel. In some examples, the second section 148 can include a menu expansion indicator 152 that, when selected, causes a channel menu 154 to be presented. Additionally, the channel menu 154 can present selectable links that, when selected by the user, facilitate corresponding functionality, such as controlling the list of channels in the second section 148, creating a new channel, or browsing channels associated with the selected workspace (e.g., presenting all channels that the user has access to). Additional details are described below with respect to Figure 2A Additional details associated with the second section 148 and the indicator are described.
[0057] In at least one example, the user interface 144 can include a third section 150 (e.g., which can be a portion, pane, or other partitioned element of the user interface 144) that can be associated with a data feed (or “feed”) that indicates messages posted to one or more channels and / or other virtual spaces for facilitating communications (e.g., virtual spaces associated with direct message communications, virtual spaces associated with events and / or actions, etc.) and / or actions taken with respect to one or more channels and / or other virtual spaces, as described herein. In at least one example, the data associated with the third section 150 can include a list of channels that the user can access (e.g., when “Browse” is selected in the menu 154). In at least one example, the data associated with the third section 150 can be associated with the same or different workspace. That is, in some examples, the third section 150 can present data associated with the same or different workspace via an integrated feed. In some examples, the data can be organized and / or ordered by workspace, time (e.g., time at which the associated data was posted or otherwise the associated action was performed), action type, channel, user, etc. In some examples, such data can be associated with an indication of which user (e.g., member of a channel) posted a message and / or performed an action. In examples in which the third section 150 presents data associated with multiple workspaces, at least some of the data can be associated with an indication of which workspace the data is associated with. Additional details associated with the user interface 144 and the third section 150 are described below with reference to Figure 2A Additional details associated with the user interface 144 and the third section 150 are described below with reference to
[0058] While the techniques described herein are described as being performed by the workspace management component 116, the channel management component 118, and the communication application 140, the techniques described herein can be performed by any other component or combination of components that can be associated with the server 102, the user computing device 104, or a combination thereof.
[0059] Reference is made to Figure 2A , Figure 2A Additional details associated with the user interface 144 that presents data associated with multiple workspaces are illustrated, as described above with reference to Figure 1 As described above, in at least one example, the user interface 144 can include a first section or pane 146 that includes an indicator (e.g., user interface element or object) of a workspace with which a user (e.g., account of the user) is associated. As Figure 2AAs shown, a user (e.g., user AB) can be associated with three different workspaces. In some examples, the workspaces can be associated with the same organization (e.g., associated with the same organization identifier). In some examples, one or more of the workspaces can be associated with different organizations (e.g., associated with different organization identifiers). In some examples, one of the workspaces can be associated with users from a single organization (e.g., associated with the same organization identifier), and another of the workspaces can be associated with users from two or more different organizations (e.g., associated with different organization identifiers).
[0060] In at least one example, each of the workspaces can be associated with a different indicator 200, 202, and 204 presented via the first region 146. In at least one example, a user account of a user (e.g., user AB) can be associated with a group identifier corresponding to each of the workspaces (e.g., as determined by user data 124 and / or workspace data 128). Thus, the user account of the user can be associated with each of the workspaces. The first indicator 200 can represent the first workspace, the second indicator 202 can represent the second workspace, and the third indicator 204 can represent the third workspace.
[0061] In some examples, a user can navigate between workspaces by actuating a control associated with each of the indicators 200, 202, and 204 without needing to log out of one workspace and log into each of the other workspaces. Non-limiting examples of such indicators or any of the indicators described herein can include an icon, a symbol, a link, a tab, or other user interface element or object. In some examples, such indicators can be associated with an actuation mechanism to enable a user to select the indicator and transition to another workspace. In some examples, a visual indicator can indicate which workspace the user is currently interacting with and / or which workspace the user has most recently interacted with. For example, the second indicator 202 is outlined with more weight than the first indicator 200 and the third indicator 204 to indicate which workspace the user is currently interacting with and / or which workspace the user has most recently interacted with. In some examples, the indicators 200, 202, and 204 can be associated with another indicator that indicates that the corresponding workspace has been updated. An example is shown with respect to the third indicator 204.
[0062] While in Figure 2AThree indicators 200, 202, and 204 are shown, but a user can be associated with any number of workspaces. In some examples, indicators associated with all workspaces with which a user is associated can be presented via the first region 146. In some examples, some of the indicators associated with all workspaces with which a user is associated can be presented via the first region 146, and the user can interact with the user interface 144 to view additional or alternative indicators. In examples in which fewer than all workspaces are represented via the user interface 144, the indicators can be arranged in alphabetical order, in order of most recent interaction, in order of most frequent interaction, or some other order.
[0063] In some examples, the first region 146 can not be included in the user interface 144, and such information can be integrated into the user interface 144 via additional or alternative mechanisms.
[0064] In some examples, the user interface 144 can include a second region 148 or pane that includes indicators (e.g., user interface elements or objects) representing virtual spaces associated with workspaces with which a user (e.g., the user’s account) is associated. In at least one example, the second region 148 can include one or more sub-sections or sub-panes that can represent different virtual spaces. For example, a first sub-section 206 can include indicators representing virtual spaces that can aggregate data associated with multiple communication channels and / or workspaces. In at least one example, each virtual space can be associated with an indicator in the first sub-section 206. In some examples, the indicators can be associated with actuation mechanisms such that, when actuated, they can cause the application 140 to present data associated with the corresponding virtual space via a third region 150. In at least one example, a virtual space can be associated with all unread data associated with each of the workspaces with which a user is associated. That is, in some examples, if a user requests access to a virtual space associated with “unread,” all data that the user has not read (e.g., viewed) can be presented in the third region 150, e.g., in a feed. In such examples, different types of events and / or actions that can be associated with different communication channels and / or virtual spaces can be presented via the same feed. In some examples, such data can be organized and / or ordered by workspace, time, action type, communication channel, user, etc. In some examples, such data can be associated with an indication of which user (e.g., a member of the communication channel) posted a message and / or performed an action.
[0065] In some examples, each virtual space can be associated with the same type of event and / or action. For example, "threads" can be associated with messages, files, etc. posted in a thread to messages posted in a communication channel, and "mentions and reactions" (e.g., "M&R (Mentions & Reactions)") can be associated with messages or threads in which a user (e.g., user AB) has been mentioned (e.g., via a tag) or another user has reacted (e.g., via an emoji, reaction, etc.) to a message or thread posted by the user. That is, in some examples, the same type of event and / or action that can be associated with different communication channels and / or virtual spaces can be presented via the same feed. As with the "unread" virtual space, data associated with such virtual spaces can be organized and / or ordered by workspace, time, action type, communication channel, user, etc.
[0066] In at least one example, the second region 148 of the user interface 144 can include a second sub-section 208 or sub-pane that includes an indicator representing a communication channel. In some examples, the communication channel can include a public channel, a private channel, a shared channel (e.g., between groups or organizations), a single workspace channel, a cross-workspace channel, a combination of the foregoing channels, etc. In some examples, the represented communication channel can be associated with a single workspace. In some examples, the represented communication channel can be associated with different workspaces (e.g., a cross-workspace). In at least one example, if the communication channel is a cross-workspace (e.g., associated with different workspaces), the user can be associated with both workspaces or can be associated with only one of the workspaces. In some examples, the represented communication channel can be associated with a combination of a communication channel associated with a single workspace and a communication channel associated with a different workspace.
[0067] In some examples, the second sub-section 208 can depict all communication channels or a subset of all communication channels that the user has access permissions to (e.g., as determined by the permissions data 126). In such examples, the communication channels can be arranged in alphabetical order, based on most recent interactions, based on frequency of interactions, based on communication channel type (e.g., public, private, shared, cross-workspace, etc.), based on workspace, in a user-specified section, etc. In some examples, the second sub-section 208 can depict all communication channels or a subset of all communication channels that the user is a member of, and the user can interact with the user interface 144 to browse or view other communication channels that the user is not a member of but that are not currently displayed in the second sub-section 208. In some examples, different types of communication channels (e.g., public, private, shared, cross-workspace, etc.) can be in different sections of the second sub-section 208, or can have their own sub-areas or sub-panes in the user interface 144. In some examples, communication channels associated with different workspaces can be in different sections of the second sub-section 208, or can have their own areas or panes in the user interface 144.
[0068] In some examples, the indicators can be associated with graphical elements that visually distinguish the types of communication channels. For example, channel B is associated with a square visual element rather than a circular visual element. As a non-limiting example, and for purposes of the present discussion, the square visual element can indicate that the user is not a current member of channel B, while the circular visual element can indicate that the user is a current member of channels A, D, and N. In some examples, additional or alternative graphical elements can be used to distinguish public communication channels, private communication channels, shared communication channels, communication channels associated with different workspaces, etc. In other examples, communication channels that the user is not a current member of can not be displayed in the second sub-section 208 of the user interface 144. In such examples, the user can navigate to a different interface (not shown in FIG. 2B, and an example of which is shown in FIG. 2C) to browse additional channels that the user has access to but that the user is not currently a member of. Figure 2A Figure 2B In some examples, the second sub-section 208 can depict all communication channels or a subset of all communication channels that the user has access permissions to (e.g., as determined by the permissions data 126). In such examples, the communication channels can be arranged in alphabetical order, based on most recent interactions, based on frequency of interactions, based on communication channel type (e.g., public, private, shared, cross-workspace, etc.), based on workspace, in a user-specified section, etc. In some examples, the second sub-section 208 can depict all communication channels or a subset of all communication channels that the user is a member of, and the user can interact with the user interface 144 to browse or view other communication channels that the user is not a member of but that are not currently displayed in the second sub-section 208. In some examples, different types of communication channels (e.g., public, private, shared, cross-workspace, etc.) can be in different sections of the second sub-section 208, or can have their own sub-areas or sub-panes in the user interface 144. In some examples, communication channels associated with different workspaces can be in different sections of the second sub-section 208, or can have their own areas or panes in the user interface 144.
[0069] In addition to the second sub-section 208, the second area 148 can include a third sub-section 210 or sub-pane that can include indicators representing communications with an individual user or a plurality of designated users (e.g., rather than all members of an organization or a subset thereof). Such communications can be referred to as “direct messages.” That is, the third sub-section 210 or sub-pane can include indicators representing virtual spaces associated with private messages between one or more users.
[0070] As described above, in at least one example, the user interface 144 can include a third region 150 or pane that is associated with a feed that indicates messages posted to a communication channel and / or other virtual spaces for facilitating communications (e.g., virtual spaces associated with direct message communications, virtual spaces associated with events and / or actions, etc.) and / or actions taken with respect to the communication channel and / or other virtual spaces. As described above, in at least one example, the data associated with the third region 150 can be associated with the same or different workspace. That is, in some examples, the third region 150 can present data associated with the same or different workspace via an integrated feed. In some examples, the data can be organized and / or ordered by workspace, time, action type, communication channel, user, etc. In some examples, such data can be associated with an indication of which user posted the message and / or performed the action. In examples in which the third region 150 presents data associated with multiple workspaces, at least some of the data can be associated with an indication of which workspace the data is associated with.
[0071] For example, in Figure 2A , a user (e.g., user AB) can interact with the user interface 144 to view data associated with a virtual space corresponding to “mentions and reactions.” In Figure 2A , the data associated with the virtual space can be associated with different communication channels and different workspaces. As shown, the data is organized by communication channel (e.g., #channel D and #channel K). However, as described above, the data can be organized and / or ordered by workspace, time, action type, user, etc. As shown, another user (e.g., user M) mentioned the user (e.g., user AB) in a message represented by an indicator 212 (e.g., user interface element, object, etc.) that is associated with a communication channel (e.g., #channel D). The user (e.g., user AB) also posted a message represented by an indicator 214 (e.g., user interface element, object, etc.) in the same communication channel. One or more other users reacted to the message represented by the indicator 214 with an emoji. Thus, the indicators associated with these two messages can be presented in the third region 150. Because the data is organized by communication channel, the indicators associated with these two messages are presented together. In at least one example, the communication channel (e.g., #channel D) can be associated with a second workspace (e.g., associated with the second indicator 202). In some examples, because the user is currently interacting with (or recently interacted with) the second workspace, neither indicator 212 or 214 is associated with a workspace indicator (e.g., the second indicator 202).
[0072] As shown, another user (e.g., user L) mentioned the user (e.g., user AB) in a message represented by indicator 216 (e.g., a user interface element or object), the message associated with a communication channel (e.g., #channel K). Accordingly, indicator 216 can be presented in third region 150. Because data is organized by communication channel, indicator 216 can be presented in the feed in a different location than other indicators 212 and 214. In at least one example, the communication channel (e.g., #channel K) can be associated with a third workspace (e.g., associated with third indicator 204). In some examples, because the user is currently interacting with (or recently interacted with) the second workspace, indicator 216 can include an indicator that it is associated with the third workspace (e.g., third indicator 204).
[0073] For purposes of the present discussion, a "message" can refer to any electronically generated digital object provided by a user using a user computing device 104 and configured for display within a communication channel and / or other virtual space for facilitating communication as described herein (e.g., a virtual space associated with direct messaging, etc.). A message can include any text, image, video, audio, or combination thereof provided by a user (using a user computing device). For example, a user can provide a message that includes text within the message as well as images and videos as message content. In such an example, the text, images, and videos would comprise the message. Each message sent or posted to a communication channel of a communication platform can include metadata including a sending user identifier, a message identifier, message content, a group identifier, a communication channel identifier, etc. In at least one example, each of the foregoing identifiers can include American Standard Code for Information Interchange (ASCII) text, a pointer, a memory address, etc.
[0074] In some examples, a user can comment on a message in a "thread." A thread can be a message associated with another message that is not posted to a communication channel, but instead maintained within an object associated with the original message. A message and / or thread can be associated with a file, an emoji, an application, etc.
[0075] A communication channel or other virtual space can be associated with data and / or content that is different from or associated with the messages. For example, non-limiting examples of additional data that can be presented via the third region 150 of the user interface 144 include members added to and / or removed from a communication channel, files uploaded and / or removed from a communication channel (e.g., file attachments), applications added to and / or removed from a communication channel, posts added to and / or removed from a communication channel (data that can be collaboratively, near real-time edited by one or more members of the communication channel), descriptions added to, modified from, and / or removed from a communication channel, modifications to properties of a communication channel, etc.
[0076] In some examples, the third region 150 can include a feed associated with a single communication channel. In such examples, data associated with the communication channel can be presented via the feed. In at least one example, the data associated with the communication channel can be viewable by at least some of a group of users associated with the same group identifier. In some examples, for members of a communication channel, content of the communication channel (e.g., messaging communications) can be displayed to each member of the communication channel. For example, a common set of group-based messaging communications can be displayed to each member of the communication channel, such that content of the communication channel (e.g., messaging communications) can not vary by member of the communication channel. In some examples, data associated with a communication channel can appear differently for different users (e.g., based on personal configuration, group membership, etc.).
[0077] In at least one example, the format of an individual communication channel or virtual space can appear differently for different users. In some examples, the format of an individual communication channel or virtual space can appear differently based on which workspace a user is currently interacting with or most recently interacted with. In some examples, the format of an individual communication channel or virtual space can appear differently for different users (e.g., based on personal configuration, group membership, etc.).
[0078] In at least one example, the user interface 144 can include a search mechanism 218, where a user can input a search term and the server 102 can perform a search associated with the communication platform. In some examples, the search can be performed across each workspace associated with the user, or the search can be constrained to a particular workspace based on user specification.
[0079] User interface 144 is a non-limiting example of a user interface that can be presented via user computing device 104 (e.g., by application 140). In some examples, application 140 can receive data from workspace management component 116 and / or channel management component 118, and application 140 can generate and present user interface 144 based on the data. In other examples, application 140 can receive data from channel management component 118, and receive instructions for generating user interface 144 from workspace management component 116 and / or channel management component 118. In such examples, application 140 can present user interface 144 based on the instructions. Additional or alternative data can be presented via the user interface, and additional or alternative configurations can be imagined.
[0080] In some non-limiting examples, reference is made to Figure 2B Additional details associated with user interface 144 and the communication platform are described, the figure depicts a system 200 that includes user computing devices 104a, 104b, and 104c (e.g., relative to Figure 1 described) connected over network 106. Additionally, user computing devices 104a, 104b, and 104c are associated with (related to respective user accounts) respective user interfaces 222a, 222b, and 222c. For example, user computing device 104a is associated with “User AB” (as indicated by user account indication 224a); user computing device 104b is associated with “User CD” (as indicated by user account indication 224b); and user computing device 104c is associated with “User Admin” (as indicated by user account indication 224c). In an example, User AB, User CD, and User Admin are all members of the same “Workspace A.” Additionally, user interfaces 222a, 222b, and 222c all present (respectively) a channel browser interface in segments 226a, 226b, and 226c, such as in response to a request from a user to browse channels that the user has access to. For example, the channel browser interface can be presented in response to selection of channel browser indicator 228a, 228b, or 228c (or in response to selection of “Browse” in menu 154 of Figure 1 .
[0081] In the examples of the publicly available text, the channel browser interface may include various tools configured to perform various functionalities. For example, the channel browser interface in section 226a may present a list 230 of channels that a user account has the right to view, (e.g., join without an invitation), and / or post content to. Additionally, the channel browser interface may include a search function 232 that allows users to search the channels included in the channel list. Furthermore, the channel browser interface may include a sorting interface tool 234 for sorting the channel list (e.g., by latest, alphabetical order, etc.), and / or a filtering interface tool 236 for filtering the channel list (e.g., public channel type, private channel type, sharing status, etc.). The channel browser interfaces in sections 226b and 226c may include similar features.
[0082] Based on the publicly available text, and in the same workspace (e.g., Figure 2B In a workspace A), associated members can have different access levels to different channels, such as based on granted / denied permissions and / or private / public designations associated with the channel. For example, in some cases, a user account that has joined a channel (e.g., a public or private channel) may have permission to view content associated with the channel and to publish content to the channel. Additionally, in some examples, a member of a private channel (who has joined the private channel) may have permission to change settings associated with the private channel (e.g., change the channel from private to public). In some examples, a member of a private channel may not have permission to change a private channel to a public channel.
[0083] In some examples, user accounts designated as administrators can have different permissions, such as based on permission settings associated with the workspace and / or designated by the workspace owner or organization associated with the workspace. For example, in some cases, administrators can have limited access to private channels. In some examples, administrators can have permission to access only limited information associated with private channels (e.g., member list, channel description, etc.), but the administrators can not have permission to view content posted to the private channels. In some examples, regardless of whether the administrators can view the content of the private channels, the administrators can have permission to change settings associated with the private channels (e.g., change the private channel to a public channel). In some examples, the administrators can not be able to discover the private channels, such as when searching or browsing via a channel browser interface. In some examples, via searching or browsing, the administrators can be able to discover limited information associated with the private channels (e.g., a name associated with the private channel, but not other details associated with the private channel). In some examples, the administrators can be able to make administrative changes to channels (e.g., all channels associated with the workspace), but the private channels can not be discoverable by the administrator user accounts unless the administrator user accounts have joined the private channels. In other examples, the administrator user accounts can have permission to access at least a portion of the content associated with the private channels and to make administrative changes associated with the private channels.
[0084] As one illustrated example, referring to Figure 2B The user account“User Admin” represented in user interface 222c can have permission to make changes relative to all channels, even private channels that are not discoverable by user AB and / or user CD (but not necessarily discover the content of the private channels). For example, user AB can have permission to access“Channel-D” (e.g., discover Channel-D when searching or browsing, make posts in Channel-D, etc.) represented by channel indicator 238 in user interface 222a. Additionally, Channel-D can be a private channel, as represented by private channel indicator 240. The information associated with Channel-D and depicted in user interface 222a includes joined indicator 242, which indicates that user AB has joined Channel-D and can access Channel-D. Based on user AB’s ability to access Channel-D, information associated with Channel-D is presented by the channel browser in section 226a, and in some examples, Channel-D will be discoverable by user AB, such as by using search function 232. In some examples, user AB can have permission to make administrative changes to Channel-D (e.g., change Channel-D from a private channel to a public channel). However, in some examples, user AB can not have permission to make some administrative changes to Channel-D.
[0085] Continuing Figure 2B In the example of FIG. 2, other user accounts associated with workspace A can not have access to private channel D. For example, the list 244 associated with user CD (in user interface 222b) does not include information associated with channel D (e.g., the list jumps from channel-C to channel-E in A-to-Z order). Additionally, user CD will not be able to discover information associated with channel D (e.g., through search or otherwise), and access restrictions can be implemented based on permissions associated with user accounts, channel metadata tags, channel indices, etc. as previously explained. In other examples, user Admin can have permission to make administrative changes to channel-D listed in the channel browser associated with user interface 222c, but in some cases, can be restricted from permission to view content or participate in other activities with respect to channel-D. In another example, user CD can have access to private "channel-C," and user Admin can be able to make administrative changes to channel-C. However, channel-C can not be accessible or discoverable by user AB. In some examples, an administrative user account can have permission to change a channel from a private channel to a public channel and lack permission to discover private channels (e.g., via search or browsing). Accordingly, the communication platform can provide an administrative dashboard to an administrative user account to make such changes, and / or the administrative user account can have other database access to perform such changes.
[0086] In some examples, it can be desirable to change a channel from a private designation to a public designation. For example, a channel can have been mistakenly designated as a private channel. Or, in some cases, a change in circumstances (e.g., time, organizational views on what should be private versus what should be shared, etc.) can facilitate a change from private to public. Changing a channel designation from private to public can be challenging in the absence of a disclosure text example, and in some cases, impossible. Such inability to change from a private channel to a public channel can prevent users from accessing important information that would otherwise be discoverable, among other things. Additionally, such potential restrictions can result in inefficient use of resources (e.g., time, computing resources, etc.) used by searches to discover / access information that is blocked. Moreover, such restrictions in changing designations can increase duplication of effort and resource consumption due to copying content from a private channel to a more publicly accessible space. In contrast to conventional solutions, the disclosure text example includes techniques for changing a channel from a private setting / designation to a public setting / designation.
[0087] Referring to Figure 3 FIG. 2, depicts a flow 300 of user interfaces that, in some examples, can be interacted with by users through links associated with those user interfaces (e.g., by Figure 3The hand icon represents an interaction (e.g., a tap gesture) to navigate these user interfaces. For example, user interface 302 includes a section 304 that presents information associated with a channel (e.g., channel-C). The content associated with the channel can be presented in response to the user selecting the channel from a list of channels, such as by selecting channel indicator 306 (or selecting channel indicator 246 in FIG. 2). Additionally, user interface 302 includes a settings interface link 308 that, when selected, navigates to settings interfaces 310a and / or 310b. That is, in some examples, selecting the “channel-C” text and / or the drop-down “V” indicator can navigate to a channel settings user interface, such as settings interfaces 310a / 310b (collectively, settings interface 310). Settings interface 310 can include a pop-up style interface (e.g., which can be presented as an overlay in front of user interface 302), or in some examples, settings interface 310 can replace the content in section 304 that is presented in association with the channel.
[0088] In the example of the disclosure, settings interface 310 can include various tabs or panes for viewing various information associated with the channel. For example, settings interface 310 can include a members tab 311 that, when selected, presents a searchable list of members associated with the channel (e.g., joined to the channel). For example, in Figure 3 In the example of FIG. 3B, settings interface 310a presents information associated with members tab 311, including three members that are joined to channel-C, which is also reflected by joined member indicators 312 in user interface 302. Additionally, settings interface 310 can include a settings tab 313 that, when selected, includes various fields or channel details that can be edited by the user account (as depicted by user interface 310b).
[0089] In some examples, the editable settings can depend on permissions associated with the user account. For example, in some cases, settings that can be edited by non-administrators and / or non-owners can be limited or constrained as compared to settings that can be edited by administrators and / or owners. With reference to settings interface 310b, an administrator (e.g., as indicated by indicator 204c) can be able to edit the channel name, user permissions, and / or private / public designation associated with the channel. Additionally, non-administrator members that have joined the channel (e.g., users CD, EF, and GH as indicated by joined member indicators 312 and listed in settings interface 310a) can have more constrained permissions to edit different settings (e.g., the channel name, but not the private designation). In some examples, both administrators and joined non-administrators can be able to edit the private setting.
[0090] Implementation of the edit permissions can be performed in various ways. In some examples, a user can submit a request to change a private channel to a public channel. Accordingly, a determination can be made as to whether the user who submitted the request has permission to change a channel from private to public. In some examples, the settings interface 310b can be customized based on permissions associated with the user. For example, if the user does not have permission to change a private channel to a public channel, the settings interface 310b can be customized to not include any interface elements for submitting such a change request, and / or any such interface elements can be locked from user interaction. On the other hand, if the user does have permission to change a private channel to a public channel, the settings interface 310b can reflect such modification options with appropriate user interface elements to indicate that such a change is possible.
[0091] In some examples, the settings interface 310b can include a selectable affordance 314 associated with the private designation, and the selectable affordance when selected can change the channel from a private channel to a public channel. Additionally, selection of the affordance 314 (e.g., to cause the affordance to change from“on” to“off”) can present additional user interface elements such as the user interface 316 associated therewith. In some examples, the user interface 316 can include a confirmation indicator 318 that when selected can confirm the change from private to public. Additionally, in some examples, the user interface 316 can include a privacy configuration button 320 that when selected invokes the user interface 322 to configure additional settings associated with the private / public designation. For example, when changing a channel from private to public, it can be desirable to designate information associated with the channel to remain private. In some examples, the information can be categorized based on date such that information associated with the channel prior to a designated date remains private and information associated with the channel after the designated date is public. In some examples, the information can be categorized based on content type (e.g., attachments, videos, audio, images, etc.) such that information categorized as a designated type remains private and information not categorized as the designated type is public. In some examples, the information can be categorized based on user accounts associated with the information (e.g., the user account that posted the content) such that information associated with one or more designated user accounts remains private and information not associated with the one or more designated user accounts becomes public.
[0092] In some examples, such as via an option presented in the user interface 322, a portion of the data associated with a private channel can be excluded from the public channel. Examples of the disclosure can maintain the private nature of this portion of data by applying one or more of a variety of techniques. For example, in some cases, this portion of data designated to remain private can still be associated with the public channel and only accessible by approved user accounts (e.g., due to a flag or other metadata associated with this portion of data and usable to selectively restrict access). In other examples, this portion of data designated to remain private can be forked from the public data. In such cases, the forked private data can be archived. And / or in some examples, both the forked private data and the public data can exist as separate channels moving forward.
[0093] In at least some examples, designating a change from private to public can have various implications in the communication platform. For example, in one example, a change from private to public can initiate an approval workflow in which members who have joined the channel while the channel was private can have an opportunity to influence the change to a public channel. In one example, the approval workflow can include an approval request inviting each joined member to approve the change to public or oppose the change to public. In some examples, the approval workflow can allow a member to specify whether the member wants to keep any content associated with the member private (e.g., the member can approve the conversion of the channel to public on the condition that content associated with the member (e.g., posted by the member) remains private).
[0094] In at least some examples, a request to change a channel from private to public can include verifying that the member submitting the request has permission to make the change. For example, reference can be made to permissions associated with the user account and / or with the channel to determine whether the user account is permitted to make the change. In some examples, permissions can be based on roles associated with the user account and with the channel. For example, for each channel, one or more roles can be assigned in association with the channel. Examples of roles can include channel creator, channel owner, channel or workspace administrator, workspace owner, etc. In some examples, permission to change a private channel to a public channel can be reserved to user accounts controlled by users assumed to have the necessary organizational knowledge appropriate to determine whether to make a change from private to public.
[0095] In at least some examples, changing a channel from private to public can affect permissions associated with the channel. That is, in some examples, a private channel can include a first set of permissions specifying permissible actions by designated user accounts, and when changed to a public channel, the public channel can include a second set of permissions that are less restrictive than the first set of permissions (e.g., the second set of permissions allow more user accounts to take more actions with respect to the channel).
[0096] In some examples, the change from private to public can affect the way data is handled on the backend (such as by the server 102). For example, a flag or other metadata indicating whether data (e.g., a channel or data associated with a channel) is private or public can be updated to reflect the public nature. The flag can be used to assess discoverability, accessibility, joinability, etc., among other aspects. In some examples, a search index associated with the channel can be updated to indicate that the channel is public, and the updated search index can be used to determine that the channel is discoverable by user accounts (e.g., when the user accounts are searching and / or browsing).
[0097] As explained, channels can be shared between different workspaces or other groups of users. In the example of a disclosure text, a channel can be changed from private to public with respect to one workspace, while the channel can remain private with respect to another workspace. Thus, a first organization can be able to share private information with users of the first organization while being less concerned that users of a second organization also have access (e.g., based on a unilateral action by the first organization to change the channel to public).
[0098] Reference is made to Figure 4 and Figure 5 showing example processes 400 and 500 for changing a private channel to a public channel. In some cases, some or all of the processes 400 and 500 can be performed by one or more components in the system 100 or with respect to the system 100. However, the processes 400 and 500 are not limited to being performed by components in the system 100, and components in the system 100 are not limited to performing the processes 400 and 500. Additionally, example user interfaces are also provided in Figure 1 , Figure 2A , Figure 2B and / or Figure 3 to help illustrate elements, and the processes 400 and 500 are not limited to aspects shown in the user interfaces. Figure 4 and Figure 5 The processes 400 and 500 are not limited to being performed by components in the system 100, and components in the system 100 are not limited to performing the processes 400 and 500. Additionally, example user interfaces are also provided in
[0099] Reference is made to Figure 4In at least some examples, at operation 402, process 400 includes receiving, in association with a private channel, a request to convert the private channel to a public channel, the private channel being associated with two or more users of a communication platform. Additionally, the private channel is associated with a first discoverability setting such that the private channel is not discoverable by users other than the two or more users associated with the private channel or another user that is permitted to access the private channel associated with the workspace. For example, Figure 4 User interfaces 404, 410, and 416 are included, which can represent information associated with private channel-C and similar to elements of operation 402. For example, user interface 404 includes information associated with private channel-C, where private channel icon 406 indicates the private nature or designation. Additionally, member tab 408 of user interface 404 identifies three users that joined private channel-C and can discover private channel-C and view its content / post to it (e.g., to the exclusion of other non-joining members in the same workspace). In the illustrative example, user interface 410 includes settings presented under settings tab 412. In an example, the settings can include private setting 414 (e.g., a selectable affordance), which can provide or affect the discoverability setting. That is, designation of private setting 414 can determine which user accounts can discover channel-C (e.g., when searching or browsing channels associated with the workspace). When private setting 414 is on, as described above, private channel-C can only be discoverable by members of the channel (e.g., users CD, users EF, and users GH that have joined the channel). For example, even though user AB can be a member of the same workspace as users CD, users EF, and users GH, user AB can not be able to discover private channel-C (e.g., when searching or browsing channels associated with the workspace). In another example, user interface 416 includes additional information that can be presented when private setting 414 is toggled (e.g., selected) and changed from “on” to “off”. For example, user interface 416 presents confirmation interface element 418. In an example, changing private setting 414 from “on” to “off” and / or selection of confirmation interface element 418 can represent a request to convert channel-C from private to public.
[0100] In at least some examples, at operation 420, process 400 includes modifying a first discoverability setting associated with the private channel based at least in part on receiving the request to convert the private channel to the public channel, where based at least in part on the modification, the public channel is associated with a second discoverability setting such that the public channel is discoverable by any user associated with the workspace. For example, user interface 416 includes a private setting 422, which is shown to include an "off" designation (e.g., based on selection of private setting 414 and / or confirmation interface element 418). As described above, changing private setting 414 from "on" to "off" and / or selection of confirmation interface element 418 can represent a request to convert channel-C from private to public. Additionally, the "off" designation or status can represent the modified (e.g., modified from the "on" status) discoverability setting. Additionally, Figure 5 includes a channel browser that depicts a list of channels that are discoverable by user AB. The list of discoverable channels includes channel-C (as identified by channel identifier 426), which is now discoverable by user AB even though user AB has not joined channel-C (e.g., in contrast to the "joined" indication 428 associated with channel-A, there is no "joined" indication associated with channel-C channel identifier 426). The discoverability of channel-C with respect to user AB can be controlled by various techniques implemented when channel-C is converted from private to public, such as the updated label associated with channel-C and / or the channel search index.
[0101] Referring to Figure 5 In at least some examples, process 500 includes causing presentation of a configurable channel setting (e.g., affordance) based on a permission setting associated with a user account, the configurable channel setting configured to change the channel from a private channel to a public channel, at operation 502. For example, in Figure 5 In at least some examples, process 500 includes causing presentation of a configurable channel setting (e.g., affordance) based on a permission setting associated with a user account, the configurable channel setting configured to change the channel from a private channel to a public channel, at operation 502. For example, in
[0102] In some examples, at operation 508, the process 500 includes receiving a request to change the channel to a public channel based on an interaction with the configurable channel setting (e.g., an interaction with the affordance). For example, the hand icon 510 indicates a selection of the configurable channel setting 506, which can transition 512 the user interface 504 to another user interface 514 that provides additional information associated with the request. For example, the user interface 514 can indicate, via a modified configurable channel setting 516, that the configurable channel setting 506 was selected, which can represent a request to change the channel-C from a private channel to a public channel. Additionally, the user interface 514 can include a confirmation interface element 518 that, when selected, submits the request to change the channel-C from a private channel to a public channel.
[0103] In examples, at operation 520, the process 500 includes updating data associated with the channel from first data to second data based on the request, where the first data indicates that the channel includes a private channel and the second data indicates that the channel includes a public channel. For example, a tag and / or channel search index (e.g., as maintained by the server 102) associated with the channel-C can be changed from first data indicating that the channel-C is private to second data indicating that the channel-C is a public channel.
[0104] In some examples, at operation 522, the process 500 can include receiving a query with a scope including the channel from a user account that is not joined to the channel. For example, A user interface 524 associated with a user account user AB is depicted, which includes a user account that has not joined the channel-C. A query with a scope including the workspace A (e.g., any channels that user AB has access to in the workspace A) can be submitted via the user interface 524 (e.g., via search and / or browse).
[0105] The process 500 includes presenting (or surfacing) an indication of the channel to the user account based on the second data and in response to the query, at operation 526. For example, in a section 528 that includes a channel browser interface, an indication 530 of the channel-C is presented based on information returned to the user account user AB in response to the search.
[0106] Exemplary Clauses
[0107] A: A method implemented at least in part by one or more computing devices of a communication platform, the method comprising: receiving, in association with a private channel, a request to convert the private channel to a public channel, the private channel being associated with two or more users of the communication platform, wherein the private channel is associated with a first discoverability setting such that the private channel is not discoverable by users of the workspace other than the two or more users associated with the private channel; and based at least in part on receiving the request to convert the private channel to the public channel, modifying the first discoverability setting associated with the private channel, wherein based at least in part on the modification, the public channel is associated with a second discoverability setting such that the public channel is discoverable by any user associated with the workspace.
[0108] B: The method of paragraph A, further comprising: receiving the request to convert the private channel to the public channel from a particular user; determining whether the particular user is associated with a permission or role that enables the particular user to modify the first discoverability setting; and modifying the first discoverability setting based at least in part on determining that the particular user is associated with the permission or role that enables the particular user to modify the first discoverability setting.
[0109] C: The method of paragraph A or B, wherein based at least in part on the first discoverability setting, the private channel is not discoverable via a search query or a channel browse query.
[0110] D: The method of any of paragraphs A-C, wherein based at least in part on the second discoverability setting, the public channel is discoverable via at least one of a search query or a channel browse query.
[0111] E: The method of any of paragraphs A-D, wherein the private channel is associated with a first set of permissions, the first set of permissions being different from a second set of permissions associated with the public channel, and wherein the first set of permissions is more restrictive than the second set of permissions.
[0112] F: The method of any of paragraphs A-E, further comprising receiving an indication of a portion of data associated with the private channel to exclude from the public channel, wherein the portion of data associated with the private channel is excluded from the public channel.
[0113] G: The method of any of paragraphs A-F, further comprising receiving an indication of a portion of data associated with the private channel to exclude from the public channel, wherein: the portion of data is included in the public channel when viewed by the two or more users associated with the private channel; and the portion of data is excluded from the public channel when viewed by other users associated with the public channel.
[0114] H: A system for implementing at least a portion of a communication platform, the system comprising: one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed, cause the system to: receive, in association with a private channel, a request to convert the private channel to a public channel, the private channel being associated with two or more users of the communication platform, wherein the private channel is associated with a first discoverability setting such that the private channel is not discoverable by users of the workspace other than the two or more users associated with the private channel; and based at least in part on receiving the request to convert the private channel to the public channel, modify the first discoverability setting associated with the private channel, wherein based at least in part on the modification, the public channel is associated with a second discoverability setting such that the public channel is discoverable by any user associated with the workspace.
[0115] I: The system of paragraph H, the instructions that, when executed, further cause the system to: receive, from a particular user, a request to convert the private channel to the public channel; determine whether the particular user is associated with a permission or role that enables the particular user to modify the first discoverability setting; and modify the first discoverability setting based at least in part on determining that the particular user is associated with the permission or role that enables the particular user to modify the first discoverability setting.
[0116] J: The system of paragraph H or I, wherein: based at least in part on the first discoverability setting, the private channel is not discoverable via a search query or a channel browse query; and based at least in part on the second discoverability setting, the public channel is discoverable via at least one of the search query or the channel browse query.
[0117] K: The system of any of paragraphs H through J, wherein: the private channel is associated with a first set of permissions, the first set of permissions being different from a second set of permissions associated with the public channel; the first set of permissions is more restrictive than the second set of permissions.
[0118] L: The system of any of paragraphs H through K, the instructions that, when executed, further cause the system to receive an indication of a portion of data associated with the private channel to exclude from the public channel, wherein the portion of data associated with the private channel is excluded from the public channel.
[0119] M: The system of any of paragraphs H through L, the instructions that, when executed, further cause the system to receive an indication of a portion of data associated with the private channel to exclude from the public channel, wherein: the portion of data is included in the public channel when viewed by the two or more users associated with the private channel; and the portion of data is excluded from the public channel when viewed by other users associated with the public channel.
[0120] N: One or more non-transitory computer-readable media storing instructions that, when executed, cause one or more processors to: receive, in association with a private channel, a request to convert the private channel to a public channel, the private channel being associated with two or more users of a communication platform, wherein the private channel is associated with a first discoverability setting such that the private channel is not discoverable by users of the workspace other than the two or more users associated with the private channel; and based at least in part on receiving the request to convert the private channel to the public channel, modify the first discoverability setting associated with the private channel, wherein based at least in part on the modification, the public channel is associated with a second discoverability setting such that the public channel is discoverable by any user associated with the workspace.
[0121] O: The one or more non-transitory computer-readable media of paragraph N, the instructions, when executed, further cause the one or more processors to: receive, from a particular user, a request to convert the private channel to the public channel; determine whether the particular user is associated with a permission or role that enables the particular user to modify the first discoverability setting; and modify the first discoverability setting based at least in part on determining that the particular user is associated with the permission or role that enables the particular user to modify the first discoverability setting.
[0122] P: The one or more non-transitory computer-readable media of paragraph N or O, wherein based at least in part on the first discoverability setting, the private channel is not discoverable via a search query or a channel browse query.
[0123] Q: The one or more non-transitory computer-readable media of any of paragraphs N- P, wherein based at least in part on the second discoverability setting, the public channel is discoverable via at least one of a search query or a channel browse query.
[0124] R: The one or more non-transitory computer-readable media of any of paragraphs N- Q, wherein: the private channel is associated with a first set of permissions, the first set of permissions being different from a second set of permissions associated with the public channel; the first set of permissions is more restrictive than the second set of permissions.
[0125] S: The one or more non-transitory computer-readable media of any of paragraphs N- R, the instructions, when executed, further cause the one or more processors to receive an indication of a portion of data associated with the private channel to exclude from the public channel, wherein the portion of data associated with the private channel is excluded from the public channel.
[0126] T: The one or more non-transitory computer-readable media of any of paragraphs N-S, the instructions, when executed, further cause the one or more processors to receive an indication of a portion of data associated with the private channel to exclude from the public channel, wherein: the portion of data is included in the public channel when viewed by two or more users associated with the private channel; and the portion of data is excluded from the public channel when viewed by other users associated with the public channel.
[0127] U: The one or more non-transitory computer-readable media of any of paragraphs N-T, the instructions, when executed, further cause the one or more processors to: based at least in part on the user being associated with the private channel, cause presentation of an affordance associated with the private channel on a user interface, wherein the request to convert the private channel to the public channel is received based on user interaction with the affordance.
[0128] While the example clauses described above are described with respect to one particular implementation, it should be understood that the content of the example clauses can also be implemented via a method, device, system, computer-readable medium, and / or another implementation in the context of this document. Additionally, any of examples A-U can be implemented alone or in combination with any other one or more of examples A-U.
[0129] CONCLUSION
[0130] While one or more examples of the technology described herein have been described, various alterations, permutations and equivalents thereof will be apparent to those skilled in the art.
[0131] In the description of the examples, reference has been made to apparatus forming part of the Invention. These form part of the Invention. The examples described are to be considered as illustrative only and the disclosure is not to be limited to the examples given. Although specific reference can be made in this text to the use of the apparatus according to the Invention in the medical, food and beverage and pharmaceutical fields, it is to be understood that the Invention has a range of applications in various fields of endeavour. Although the steps in the methods described herein have been presented in a particular order, this should not be taken as indicating that the described order is the only order in which the steps can be performed. Rather, the steps can be performed in any order or simultaneously, unless otherwise indicated by the disclosure. The disclosed processes can also be performed in different orders. Additionally, various computations herein need not be performed in the disclosed order and other examples using alternative computation ordering can be readily implemented. In addition to being reordered, computations can be broken down into subcomputations that achieve the same result.
Claims
1. A method implemented at least in part by one or more computing devices of a communication platform, the method comprising: receiving, in association with a private channel, a request to convert the private channel to a public channel, the private channel shared between different workspaces of the communication platform and associated with two or more users of each of the different workspaces, wherein the private channel is associated with a first discoverability setting such that the private channel is not discoverable by users of each of the different workspaces other than the two or more users associated with the private channel; initiating, based at least in part on receiving the request to convert the private channel to the public channel, an approval workflow that provides at least one of a first option or a second option to the two or more users of one of the different workspaces, the first option to approve or oppose converting the private channel to the public channel, the second option to identify content within the private channel that is not viewable by the users of the one workspace; and modifying, based at least in part on receiving the request to convert the private channel to the public channel and the approval workflow, the first discoverability setting associated with the private channel, wherein based at least in part on the modification to the first discoverability setting, the public channel is associated with a second discoverability setting such that the public channel is discoverable by any user associated with the one workspace while the private channel remains private with respect to other workspaces of the different workspaces.
2. The method of claim 1, further comprising: receiving the request to convert the private channel to the public channel from a particular user; determining whether the particular user is associated with a permission or role that enables the particular user to modify the first discoverability setting; and modifying the first discoverability setting based at least in part on determining that the particular user is associated with the permission or role that enables the particular user to modify the first discoverability setting.
3. The method of claim 1, wherein based at least in part on the first discoverability setting, the private channel is not discoverable via a search query or a channel browse query.
4. The method of claim 1, wherein based at least in part on the second discoverability setting, the public channel is discoverable via at least one of a search query or a channel browse query.
5. The method of claim 1, wherein: the private channel is associated with a first set of permissions that is different from a second set of permissions associated with the public channel; and the first set of permissions is more restrictive than the second set of permissions.
6. The method of claim 1, further comprising: receiving an indication of a portion of data associated with the private channel to exclude from the public channel, wherein the portion of data associated with the private channel is excluded from the public channel.
7. The method of claim 1, further comprising: receive an indication of a portion of data associated with the private channel that is to be excluded from the public channel, wherein: the portion of data is included in the public channel when viewed by the two or more users associated with the private channel; and the portion of data is excluded from the public channel when viewed by other users associated with the public channel.
8. A system for implementing at least a portion of a communication platform, the system comprising: one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed, cause the system to: receive, in association with a private channel, a request to convert the private channel to a public channel, the private channel being shared between different workspaces of the communication platform and associated with two or more users of each of the different workspaces, wherein the private channel is associated with a first discoverability setting such that the private channel is not discoverable by users of each of the different workspaces other than the two or more users associated with the private channel; based at least in part on receiving the request to convert the private channel to the public channel, initiate an approval workflow that provides at least one of a first option or a second option to the two or more users of one of the different workspaces, the first option to approve or oppose converting the private channel to the public channel, the second option to identify content within the private channel that is not viewable by the users of the one workspace; and based at least in part on receiving the request to convert the private channel to the public channel and the approval workflow, modify the first discoverability setting associated with the private channel, wherein based at least in part on the modification to the first discoverability setting, the public channel is associated with a second discoverability setting such that the public channel is discoverable by any user associated with the one workspace while the private channel remains private with respect to other workspaces of the different workspaces.
9. The system of claim 8, the instructions, when executed, further cause the system to: receive the request to convert the private channel to the public channel from a particular user; determine whether the particular user is associated with a permission or role that enables the particular user to modify the first discoverability setting; and based at least in part on determining that the particular user is associated with the permission or role that enables the particular user to modify the first discoverability setting, modify the first discoverability setting.
10. The system of claim 8, wherein: based at least in part on the first discoverability setting, the private channel is not discoverable via a search query or a channel browse query; and based at least in part on the second discoverability setting, the public channel is discoverable via at least one of the search query or the channel browse query.
11. The system of claim 8, wherein: the private channel is associated with a first set of permissions that is different from a second set of permissions associated with the public channel; and the first set of permissions is more restrictive than the second set of permissions.
12. The system of claim 8, the instructions, when executed, further cause the system to receive an indication of a portion of data associated with the private channel that is to be excluded from the public channel, wherein the portion of data associated with the private channel is excluded from the public channel.
13. The system of claim 8, the instructions, when executed, further cause the system to receive an indication of a portion of data associated with the private channel that is to be excluded from the public channel, wherein: the portion of data is included in the public channel when viewed by the two or more users associated with the private channel; and the portion of data is excluded from the public channel when viewed by other users associated with the public channel.
14. One or more non-transitory computer-readable media storing instructions that, when executed, cause one or more processors to: receive, in association with a private channel, a request to convert the private channel to a public channel, the private channel being shared between different workspaces of a communication platform and associated with two or more users of each of the different workspaces, wherein the private channel is associated with a first discoverability setting such that the private channel is not discoverable by users of each of the different workspaces other than the two or more users associated with the private channel; based at least in part on receiving the request to convert the private channel to the public channel, initiate an approval workflow that provides at least one of a first option or a second option to the two or more users of one of the different workspaces, the first option to approve or oppose converting the private channel to the public channel, the second option to identify content within the private channel that is not viewable by the users of the one workspace; and based at least in part on receiving the request to convert the private channel to the public channel, modify the first discoverability setting associated with the private channel, wherein based at least in part on the modification to the first discoverability setting, the public channel is associated with a second discoverability setting such that the public channel is discoverable by any user associated with the one workspace while the private channel remains private with respect to other workspaces of the different workspaces.
15. The one or more non-transitory computer-readable media of claim 14, the instructions, when executed, further cause the one or more processors to: receive the request to convert the private channel to the public channel from a particular user; determine whether the particular user is associated with a permission or role that enables the particular user to modify the first discoverability setting; and based at least in part on the determination, modify the first discoverability setting to enable the particular user to modify the first discoverability setting. modify the first discoverability setting based at least in part on determining that the particular user is associated with the permission or role that enables the particular user to modify the first discoverability setting.
16. The one or more non-transitory computer-readable media of claim 14, wherein the private channel is not discoverable via a search query or a channel browse query based at least in part on the first discoverability setting.
17. The one or more non-transitory computer-readable media of claim 14, wherein the public channel is discoverable via at least one of a search query or a channel browse query based at least in part on the second discoverability setting.
18. The one or more non-transitory computer-readable media of claim 14, wherein: the private channel is associated with a first set of permissions that is different from a second set of permissions associated with the public channel; and the first set of permissions is more restrictive than the second set of permissions.
19. The one or more non-transitory computer-readable media of claim 14, the instructions, when executed, further cause the one or more processors to receive an indication of a portion of data associated with the private channel that is to be excluded from the public channel, wherein the portion of data associated with the private channel is excluded from the public channel.
20. The one or more non-transitory computer-readable media of claim 14, the instructions, when executed, further cause the one or more processors to receive an indication of a portion of data associated with the private channel that is to be excluded from the public channel, wherein: the portion of data is included in the public channel when viewed by the two or more users associated with the private channel; and the portion of data is excluded from the public channel when viewed by other users associated with the public channel.
Citation Information
Patent Citations
Method, apparatus, and computer program product for authorizing and authenticating user communication within an enterprise group-based communication platform
US20180197144A1
Managing channels in an open data ecosystem
US20180248709A1
Dynamic Profile Reconciliation In Group-Based Communication Systems
US20210240729A1