Converting a private channel to a public channel
The method allows authorized users to convert private channels to public channels with controlled data access, improving efficiency and reducing resource consumption by enabling seamless transitions and metadata updates.
Patent Information
- Application Number
- JP2024523606
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-10-22
- Filing Date
- 2022-10-21
- Publication Date
- 2025-12-03
- Estimated Expiration
- 2042-10-21
AI Technical Summary
Existing communication platforms require manual data transfer and excessive computing resources to convert private channels to public channels, leading to inefficiencies and poor user experience.
A method to convert private channels to public channels by allowing authorized users to select data portions to remain private while making others public, with an optional approval workflow and metadata updates for discoverability.
Enhances channel discoverability and reduces time and resource consumption by enabling efficient conversion of private channels to public channels with controlled data access.
Smart Images

Figure 0007779621000001 
Figure 0007779621000002 
Figure 0007779621000003
Abstract
Description
[Technical Field]
[0001] This patent application claims priority to U.S. Patent Application No. 17 / 452,016, filed October 22, 2021, which is incorporated herein by reference in its entirety.
[0002] In the context of a communication platform or service, a group of users may be organized under a domain (e.g., sometimes referred to as a "workspace"), which is often associated with a company, organization, enterprise, school, or other distinct entity. The constituent users of a domain (e.g., sometimes referred to as "members") often exchange communications related to a common goal, theme, objective, or endeavor. A domain or workspace may represent a virtual space dedicated to the group and may 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. [Background technology]
[0003] In some instances, a channel may be created within a workspace to organize the group's efforts on a particular project or subtopic, and the channel may include or subscribe to a subset of the workspace's members. Some channels may be designated as public channels, which may be discoverable by all workspace members even if the workspace member is not included in the subset. That is, even if a workspace member does not subscribe to a workspace's public channel, the workspace member can still search, discover, and view the content of the public channel. In other instances, a workspace channel may be designated (e.g., using settings) as a private channel, which may not be discoverable or viewable by workspace members who are not subscribed to the private channel. That is, even if the private channel is part of the workspace, workspace members who are not subscribed to the private channel may not be able to discover the private channel (e.g., when searching) or view the content (e.g., messages, shared data, etc.). However, during the life or pending of a private channel, a member may want to share the channel's contents with other members of the workspace. To do this, existing systems may require members of a private channel to create a new public channel and manually copy data from the private channel to the new public channel, a process that may require excessive amounts of time and computing power to transfer channel data and may lead to a poor user experience. [Brief explanation of the drawings]
[0004] The following detailed description is described with reference to the accompanying drawings, in which the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears. Use of the same reference number in different figures indicates similar or identical components or features.
[0005] [Figure 1] 1 shows a block diagram depicting an example system of a computing device that can be used to implement the example techniques described herein.
[0006] [Figure 2A] 1 illustrates an exemplary user interface as described herein.
[0007] [Figure 2B] 1 illustrates exemplary user interfaces that may be presented on a user computing device connected to a network as described herein and depict different channel discoverability in each user interface.
[0008] [Figure 3] 1 illustrates a user interface for changing a private channel to a public channel as described herein.
[0009] [Figure 4] 1 includes a flow diagram illustrating an example process for converting a private channel to a public channel, as described herein.
[0010] [Figure 5] 1 includes a flow diagram illustrating an example process for converting a private channel to a public channel, as described herein. DETAILED DESCRIPTION OF THE INVENTION
[0011] As described above, communication platforms allow groups of users to be organized into workspaces, where various channels may be created to organize the group's overall efforts on a particular project or subtopic. In some examples, a channel is designated as "private," in which case the private channel (and its content) is not discoverable or viewable by members of the workspace who are not subscribed to the private channel, even if the channel is associated with the workspace. The present disclosure relates to solutions for converting a private channel to a public channel, thereby enabling other members of the workspace who were not previously associated with the channel to discover the channel (e.g., when searching), view the channel's content, and / or subscribe to the channel (e.g., without requiring an invitation). Among other things, examples of the present disclosure that enable converting a private channel to a public channel help improve efficiency by improving the discoverability of information members should access. Additionally, examples of the present disclosure may significantly reduce the time and resources that may be used when attempting to copy content from a private channel to another channel to allow others to access the content.
[0012] Although some examples have been generally described, more specific details are provided below. In some examples of communication platforms, workspaces are created to represent a common or general domain that associates a group of users (sometimes referred to as "members"). For example, a given workspace (e.g., associated with a business or organization) may 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 communication and content related to a particular endeavor, project, topic, etc. associated with the workspace. In some examples, for a given channel, members may subscribe to the channel and, as a result, may be alerted to update the channel or may be allowed to interact with the channel in a manner potentially unauthorized by non-subscribed members.
[0013] Typically, any member may interact with other members and / or request the services of the communications platform (e.g., to post content to a channel) by using a communications application on the client. Additionally, members often discover channels associated with a workspace via a communications application. For example, a member may want to discover other channels associated with a workspace, regardless of whether the member subscribes to those other channels. In some examples, a member may be able to browse or search for channels associated with a workspace (via a communications application).
[0014] In some examples, members associated with the same workspace may have different permissions associated with channels of the workspace. For example, in some instances, a channel may be designated as a private channel, and this private channel may affect the permissions associated with any member who is not subscribed to the private channel. In some examples, members who are not subscribed to the private channel may not be able to discover the private channel when searching or browsing. Additionally, members who are not subscribed to the private channel may not be able to view or post content associated with the private channel.
[0015] In some instances, it may be desirable to change a channel from a private channel to a public channel, such as when a channel is mistakenly designated as a private channel or when there is no longer a need to restrict access to the private channel's content. Traditionally, changing a private channel to a public channel has been difficult and, in some cases, impossible. Among other things, the inability to change from a private channel to a public channel may block a user from accessing important information that would otherwise be discoverable. Additionally, this potential limitation may contribute to inefficient use of resources (e.g., time, computing resources, etc.) used to search for information blocked from discovery / access. Furthermore, this limitation on changing permissions may increase duplicated effort and resource consumption due to content being copied from a private channel to a more publicly accessible space. In contrast to conventional solutions, examples of the present disclosure include techniques for changing a channel from a private setting / designation to a public setting / designation.
[0016] In some examples, a channel settings interface is provided whereby a member (e.g., a member with permission to change the private designation) may request that a private channel be changed to a public channel. The members authorized to change a private channel to a public channel may vary depending on workspace preferences. For example, in some instances, permission to change a private channel to a public channel may be granted to one or more of the channel creator, channel owner, channel members, and / or channel administrators.
[0017] In some examples, the channel configuration interface may allow a requesting user to select a portion of data associated with a private channel to remain private, while making other, unselected portions of the channel public. That is, the requesting user may specify first data to be made public to all members of the public channel converted from the private channel and second data to be made public to members of the original private channel. The portions of data may be identified based on various criteria, such as data, content type, user, etc. By way of example, the techniques of this disclosure may maintain the private nature of portions of data by applying one or more various techniques. For example, in some instances, portions of data designated to remain private are still associated with the public channel and are accessible only to authorized user accounts (e.g., due to flags or other metadata associated with the portions of data and usable to selectively restrict access). In other examples, portions of data designated to remain private may be branched from the public data. In that case, the branched private data may be archived, and / or both the branched private data and the public data may exist moving forward as separate channels.
[0018] In at least some examples, changing the designation from private to public may have various implications in a communications platform. For example, in one example, the change from private to public may initiate an approval workflow in which members of the private channel may have an opportunity to approve or object to the conversion to a public channel. In some examples, the approval workflow may allow a member to specify whether they want any content associated with that member to remain private (e.g., a member may approve the conversion of a channel to public on the condition that content associated with (e.g., posted by) that member remains private).
[0019] In some examples, converting a channel from private to public may affect the manner in which data is stored. For example, a flag or other metadata indicating whether data (e.g., a channel or data related to a channel) is private or public may be updated to reflect its public nature. Additionally, a search index associated with the channel may be updated to indicate that the channel is public, and the updated search index may be used to determine that the channel is discoverable by a user account (e.g., when the user account is searching and / or browsing).
[0020] Referring now to FIG. 1 , FIG. 1 illustrates an example system 100 for implementing the techniques described herein. In at least one example, the example environment 100 may be associated with a communications platform that may leverage a network-based computing system to enable users of the communications platform to exchange data. In at least one example, the communications platform may be “group-based” such that the platform and associated systems, communication channels, messages, and / or virtual spaces have security (e.g., which may be defined by permissions) to limit access to defined groups of users. In some examples, such user groups may be defined by a group identifier that may be associated with common access credentials, domains, etc. In some examples, the communications platform may be a hub that provides a secure, private virtual space for users to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate with each other. As mentioned above, each group may be associated with a workspace, enabling users associated with the group to chat, meet, call, collaborate, transfer files or other data, or otherwise communicate with each other within the secure, private virtual space. In some examples, group members, and thus workspaces, may be associated with the same organization. In some examples, group members, and therefore workspaces, may be associated with different organizations (eg, entities with different organization identifiers).
[0021] In at least one example, exemplary system 100 may include one or more server computing devices (or "servers") 102. In at least one example, server 102 may include one or more servers or other types of computing devices, which may be embodied in any number of ways. For example, in the server example, functional components and data may be implemented on a single server, a cluster of servers, a server farm or data center, a cloud-hosted computing service, a cloud-hosted storage service, etc., although other computer architectures may additionally or alternatively be used.
[0022] In at least one example, server 102 may communicate with one or more user computing devices 104a, 104b, and / or 104c (sometimes referred to as user computing devices 104) via one or more networks 106. That is, server 102 and user computing devices 104 may send, receive, and / or store data (e.g., content, information, etc.) using network 106 as described herein. User computing device 104 may be any suitable type of computing device, e.g., portable, semi-portable, semi-stationary, or stationary. Some examples of user computing device 104 may include a tablet computing device, a smartphone, a mobile communication device, a laptop, a netbook, a desktop computing device, a terminal computing device, a wearable computing device, an augmented reality device, an Internet of Things (IoT) device, or any other computing device capable of sending communications and performing functions according to the techniques described herein. Although FIG. 1 shows user computing devices 104a, 104b, and 104c, in practice, the exemplary system 100 may include additional (e.g., tens, hundreds, thousands, or millions) of user computing devices.
[0023] In at least one example, a user computing device, such as user computing device 104, may be operable by a user to, among other things, access communication services via a communication platform. A user may be an individual, a group of individuals, an employer, a business, an organization, etc. In some examples, a user (e.g., the same user) may use multiple computing devices to access communication services via a communication platform. For example, a user may switch or alternate between different user computing devices 104 when accessing communication services.
[0024] The network 106 may include any type of network known in the art, such as, but not limited to, a local or wide area network, the Internet, a wireless network, a cellular network, a local wireless network, Wi-Fi and / or near field communication, Bluetooth®, Bluetooth Low Energy (BLE), Near Field Communication (NFC), a wired network, or any other such network, or any combination thereof. The components used for such communication may depend, at least in part, on the type of network, the selected environment, or both. Protocols for communicating over such networks 106 are well known and will not be discussed in detail herein.
[0025] In at least one example, server 102 may include one or more processors 108 , computer-readable media 110 , one or more communication interfaces 112 , and input / output devices 114 .
[0026] In at least one example, each processor of processors 108 may be a single processing unit or multiple processing units and may include single or multiple computing units or multiple processing cores. Processor 108 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units (CPUs), graphics processing units (GPUs), state machines, logic circuitry, and / or any device that manipulates signals based on operational instructions. For example, processor 108 may be one or more hardware processors and / or logic circuits of any suitable type that are specifically programmed or configured to execute the algorithms and processes described herein. Processor 108 may be configured to fetch and execute computer-readable instructions stored on a computer-readable medium, which may program the processor to perform the functions described herein.
[0027] Computer-readable medium 110 may include volatile and nonvolatile memory and / or removable and non-removable media implemented with any type of technology for storing data, such as computer-readable instructions, data structures, program modules, or other data. Such computer-readable medium 110 may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, optical storage, solid-state storage, magnetic tape, magnetic disk storage, RAID storage systems, storage arrays, network-attached storage, storage area networks, cloud storage, or any other medium used to store desired data and that can be accessed by a computing device. Depending on the configuration of server 102, computer-readable medium 110 may be one type of computer-readable storage medium and / or may be tangible, non-transitory medium, to the extent that, when referred to, non-transitory computer-readable medium excludes media such as energy, carrier signals, electromagnetic waves, and signals themselves.
[0028] The computer-readable medium 110 may be used to store any number of functional components executable by the processor 108. In many implementations, these functional components include instructions or programs executable by the processor 108 that, when executed, specifically configure the processor 108 to perform the operations described above for the server 102. The functional components stored on the computer-readable medium may optionally include a workspace management component 116, a channel management component 118, an operating system 121, and a data store 122.
[0029] In at least one example, workspace management component 116 may manage workspaces. That is, in at least one example, a communications platform may be partitioned into different workspaces, which may be associated with different user groups, as described above. As described above, each workspace may be associated with a group identifier, and one or more user accounts may be mapped to or otherwise associated with the group identifier. Users corresponding to such user accounts may be "members" of the group.
[0030] In some examples, workspace management component 116 may manage workspace membership. That is, workspace management component 116 may receive requests to associate users with individual workspaces, and workspace management component 116 may associate the user account associated with such users with the group identifier associated with the individual workspace. For example, workspace management component 116 may associate the user's user account with the workspace's group identifier in response to receiving a request to add the user to a workspace. Workspace management component 116 may disassociate the user account from the group identifier when the user is removed from the workspace, for example.
[0031] In at least one example, the channel management component 118 may manage communication channels. As described above, in at least one example, the communication platform may be a channel-based messaging platform and, in some examples, may be usable by a group of users. Users of the communication platform may communicate with other users through communication channels. A communication channel, or virtual space, may be a data pathway used to exchange data between systems and devices associated with the communication platform. In at least one example, the channel management component 118 establishes communication channels between various user computing devices, allowing the user computing devices to communicate and share data with each other. In at least one example, the channel management component 118 may manage such communication and / or data sharing.
[0032] In some examples, a channel may include one or more members who have subscribed to the channel, and in some instances, fewer than all members of a workspace may subscribe to a channel. As such, the channel management component 118 may perform operations associated with tracking, authorizing, inviting, subscribing, etc., of members associated with a channel. Additionally, in some examples, a channel may be designated as a “public” channel, in which case workspace members who are not subscribed to the workspace 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 workspace members who are not subscribed to the workspace channel may not be able to interact with the channel (e.g., the channel may not be discovered or viewed when searching / browsing, or may not be joined without an invitation). Thus, in some examples, the channel management component 118 may perform operations related to the channel being public or private. In some examples, data associated with a communication channel, such as content shared with or associated with the channel, identities of members who have subscribed to the channel, and the private or public nature of the channel, may be presented via a user interface. In at least one example, the channel management component 118 may interact with the workspace management component 116 to manage the generation, presentation, and / or updates of the user interface.
[0033] In at least one example, operating system 121 may manage processor 108, computer-readable medium 110, hardware, software, etc.
[0034] In at least one example, data store 122 may be configured to store accessible, manageable, and updatable data. In some examples, data store 122 may be integrated with server 102, as shown in FIG. 1 . In other examples, data store 122 may be located remotely from server 102 and may be accessible to server 102 and / or user devices, such as user computing device 104. Data store 122 may include multiple databases, which may include user data 124, authorization data 126, workspace data 128, and channel data 130. Additional or alternative data may be stored in the data store and / or one or more other data stores.
[0035] In at least one example, user data 124 may store data associated with a user of the communications platform. In at least one example, user data 124 may store data in a user profile (also referred to as a “user account”), which may store data associated with a user, including, but not limited to, one or more user identifiers associated with multiple different organizations or entities with which the user is associated, one or more communication channel identifiers associated with communication channels to which the user has been given access, one or more group identifiers for groups (or organizations, teams, entities, etc.) with which the user is associated, an indication of whether the user is the owner or administrator of any communication channels, an indication of whether the user has any communication channel restrictions, a number of messages, a number of emojis, a number of conversations, a number 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.
[0036] In at least one example, the permission data 126 may store data associated with the permissions of individual users of the communications platform. In some examples, the permissions may be set automatically or by an administrator of the communications platform, an employer, company, organization, or other entity using the communications platform, a team leader, group leader, or other entity using the communications platform to communicate with team members, group members, etc., an individual user, etc. In some examples, the permissions associated with an individual user may be mapped to or otherwise associated with an account or profile associated with the user data 124. In some examples, the permissions may indicate which users can communicate directly with other users, which channels the user is authorized to access, restrictions on individual channels, which workspaces the user is authorized to access, restrictions on individual workspaces, etc. In at least one example, the permissions may support the communications platform by maintaining security for limiting access to defined groups of users. In some examples, such users may be defined by common access credentials, group identifiers, etc., as described above. In some examples, the permission data 126 may indicate whether the user is authorized to control or change designations or settings associated with whether a channel is private or public.
[0037] In at least one example, workspace data 128 may store data associated with individual workspaces. As described above, the communications platform may be partitioned into workspaces associated with user groups. In at least one example, a group identifier may be associated with a workspace. In at least one example, the group identifier may 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 may be stored in association with the group identifier, data identifying a user associated with a workspace may be stored in association with the group identifier, data associated with messages and / or other content associated with a workspace may be stored in association with the group identifier, data associated with communication channels associated with a workspace may be stored in association with the group identifier, etc. In some examples, a workspace may be associated with one or more organization identifiers, which may be associated with an organization or other entity associated with the communications platform. In some examples, such data may be mapped to or otherwise associated with other types of data in data store 122 (e.g., user data 124, authorization data 126, channel data 130, etc.).
[0038] In at least one example, channel data 130 may store data associated with individual communication channels. In at least one example, channel management component 118 establishes communication channels between various user computing devices, enabling the user computing devices to communicate and share data with one another. In at least one example, communication channels may be assigned communication channel identifications that indicate physical addresses in channel data 130 where data about the communication channel is stored. As indicated above, a communication channel may be “public,” which may allow any user within an organization (e.g., associated with an organization identifier) to join and subscribe to data sharing via the communication channel, or a communication channel may be “private,” which may restrict data communication within the communication channel to certain users or users with specific roles (e.g., managers, administrators, etc.). As such, channel data 130 may store data related to the public or private designation. For example, in some instances, channel data 130 may include tags or other metadata associated with a channel and / or the channel's content, and the tags may be referenceable in various contexts to help determine whether a user or member is authorized to interact with the channel or content. In at least some examples, channel data 120 may 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 may be "shared," thereby allowing users associated with different organizations (e.g., entities associated with different organization identifiers) to subscribe and subscribe to data sharing via the communication channel. A shared channel may be public, accessible by any user from either organization, or private, restricted to access by certain users or users with specific roles from both organizations.
[0039] In some examples, data store 122 may be partitioned into separate items of data (e.g., data shards) that can be accessed and managed individually. Data shards may simplify many technical tasks, such as data retention, unfurling (e.g., detecting that message content contains links, crawling the link metadata, and determining a unified summary of the metadata), and integration configuration. In some examples, data shards may be associated with organizations, groups (e.g., workspaces), communication channels, users, etc.
[0040] In some examples, individual organizations may be associated with database shards in data store 122 that store data related to a particular organization identity. For example, a database shard may store electronic communication data associated with members of a particular organization, allowing members of that particular organization to communicate and exchange data in real time or near real time with other members of the same organization. In this example, the organization itself may be the owner of the database shard and have control over where and how the associated data is stored. In some examples, a database shard may store data related to more than one organization (e.g., as in a shared channel).
[0041] In some examples, individual groups may be associated with database shards in data store 122 that store data related to a particular group identity (e.g., a workspace). For example, a database shard may store electronic communication data associated with members of a particular group, allowing members of that particular group to communicate and exchange data in real time or near real time with other members of the same group. In this example, the group itself may be the owner of the database shard and have control over where and how the associated data is stored.
[0042] In some examples, a communication channel may be associated with a database shard in data store 122 that stores data related to a particular channel identification. For example, a database shard may store electronic communication data associated with a communication channel, thereby allowing members of that particular communication channel to communicate and exchange data in real time or near real time with other members of the same communication channel. In this example, a group or organization may be the owner of the database shard and may have control over where and how the associated data is stored.
[0043] In some examples, individual users may be associated with database shards within data store 122 that store data related to a particular user account. For example, a database shard may store electronic communication data associated with an individual user, allowing the user to communicate and exchange data in real time or near real time with other users of the communications platform. In some examples, the user may themselves be the owner of the database shard and have control over where and how the associated data is stored.
[0044] The communications interface 112 may include one or more interfaces and hardware components for enabling communication with various other devices (e.g., user computing device 104) over the network 106 or directly. In some examples, the communications interface 112 may facilitate communication via Websockets, an Application Programming Interface (API) (e.g., using API calls), HyperText Transfer Protocol (HTTP), etc.
[0045] The server 102 may further include various input / output devices 114 (e.g., I / O devices). Such I / O devices 114 may include a display, various user interface controls (e.g., buttons, joystick, keyboard, mouse, touch screen, etc.), audio speakers, connection ports, etc.
[0046] In at least one example, user computing device 104 may include one or more processors 132, computer-readable media 134, one or more communication interfaces 136, and input / output devices 138 (I / O devices).
[0047] In at least one example, each processor in processors 132 may be a single processing unit or multiple processing units, and may include single or multiple computing units or multiple processing cores. Processor 132 may include any type of processor described above with respect to processor 108, and may be the same as or different from processor 108.
[0048] Computer-readable medium 134 may include any type of computer-readable medium 134 described above with respect to computer-readable medium 110, and may be the same as or different from computer-readable medium 110. Functional components stored on the computer-readable medium may optionally include a communications application 140 (e.g., for interacting with server 102) and an operating system 142.
[0049] In at least one example, the operating system 142 may manage the processor 132, the computer-readable medium 134, the hardware, the software, etc. of the server 102.
[0050] The communications interface 136 may include one or more interfaces and hardware components for enabling communication with various other devices (e.g., user computing device 104) over the network 106 or directly. In some examples, the communications interface 136 may facilitate communication via Websockets, an API (e.g., using API calls), HTTP, etc.
[0051] The user computing device 104 may further include various input / output devices 138 (e.g., I / O devices). Such I / O devices 138 may include a display, various user interface controls (e.g., buttons, joystick, keyboard, mouse, touch screen, etc.), audio speakers, connection ports, etc.
[0052] In at least one example, communications application 140 may be a mobile application, a web application, or a desktop application, which may be provided by a communications platform or may be a dedicated application. In some examples, individual user computing devices associated with system 100 may have an instance or versioned instance of communications application 140, which may be downloaded from an application store, accessible via the Internet, or executable by processor 132 to perform the operations described herein. That is, communications application 140 may be an access point that allows user computing device 104 to interact with server 102 to access and / or use communications services available through the communications platform. In at least one example, communications application 140 may facilitate the exchange of data between various other user computing devices, for example, via server 102. In at least one example, communications 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).
[0053] Communications application 140 may include various functional components, and in at least one example, application 140 includes a channel manager 143. In some examples, channel manager 143 may perform one or more operations that allow members to perform various channel-related functions, such as viewing or sorting a channel list, browsing channels associated with a workspace, and creating new channels with member-specified characteristics (e.g., name, purpose, affiliations, public or private, etc.).
[0054] A non-limiting example of a user interface 144 is shown in FIG. 1. The user interface 144 may present information associated with a user account (e.g., UserAB, as indicated by user profile indicator 145). As shown in FIG. 1, the user interface 144 can present data associated with one or more channels and, in some examples, one or more workspaces. That is, in some examples, the user interface 144 can allow a user to access multiple workspaces. In some examples, the user interface 144 can include a first section 146 (which may be, for example, a portion, pane, or other partitioned unit of the user interface 144) that includes user interface elements associated with workspaces with which the user (e.g., the user's account) is associated. FIG. 1 shows two user interface elements: a first user interface element 147a representing a first workspace and a second user interface element 147b representing a second workspace. As mentioned 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 may be prompted to provide credentials to authenticate with the corresponding workspace. Although two user interface elements 147a and 147b are shown, any number of user interface elements may be presented via first section 146, which may be associated with one or more domains.
[0055] In some examples, user interface 144 may include a second section 148 (which may be, for example, a portion, pane, or other partitioned unit of user interface 144) that includes user interface elements that represent data associated with workspaces to which the user (e.g., the user's account) is associated. In some examples, the user interface elements presented via second section 148 may represent a virtual space that the user can access through a particular workspace or multiple workspaces. In some examples, second section 148 may include user interface elements that allow the user to take additional actions with respect to the virtual space. For example, by selecting one of the channel identifiers in section 148, the user may view (via user interface 144) content associated with the selected channel. In some examples, second section 148 may include a menu expansion indicator 152 that, when selected, causes a channel menu 154 to be presented. Additionally, channel menu 154 may present selectable links that, when selected by a user, facilitate corresponding functions such as controlling the list of channels in second section 148, creating a new channel, or browsing channels associated with the selected workspace (e.g., presenting all channels accessible to the user). Additional details associated with second area 148 and indicators are described below with reference to FIG. 2A.
[0056] In at least one example, user interface 144 may include a third section 150 (which may be, for example, a portion, pane, or other partitioned unit of user interface 144) that may be associated with a data feed (or “feed”) indicating messages posted to and / or actions taken on one or more channels and / or other virtual spaces for facilitating communication (e.g., virtual spaces associated with direct messaging, virtual spaces associated with events and / or actions, etc.) as described herein. In at least one example, data associated with third section 150 may include a list of channels that a user can access (e.g., when “Browse” is selected in menu 154). In at least one example, data associated with third section 150 may be associated with the same or different workspaces. That is, in some examples, third section 150 may present data associated with the same or different workspaces via a unified feed. In some examples, data may be organized and / or sortable by workspace, time (e.g., when associated data is posted or associated action is otherwise performed), type of action, channel, user, etc. In some examples, such data may be associated with an indication of which user (e.g., a member of a channel) posted the message and / or performed the action. In examples in which third section 150 presents data associated with multiple workspaces, at least some of the data may be associated with an indication of which workspace the data is associated with. Additional details associated with user interface 144 and third area 150 are described below with reference to FIG. 2A.
[0057] Although the techniques described herein are described as being performed by workspace management component 116, channel management component 118, and communication application 140, the techniques described herein may be performed by any other component or combination of components that may be associated with server 102, user computing device 104, or a combination thereof.
[0058] 2A , which illustrates additional details associated with a user interface 144 presenting data associated with multiple workspaces, as described above with reference to FIG. 1 . As described above, in at least one example, the user interface 144 may include a first region 146, or pane, that includes indicators (e.g., user interface elements or objects) of workspaces with which a user (e.g., the user's account) is associated. As shown in FIG. 2A , a user (e.g., UserAB) may be associated with three different workspaces. In some examples, the workspaces may be associated with the same organization (e.g., associated with the same organization identifier). In some examples, one or more of the workspaces may be associated with different organizations (e.g., associated with different organization identifiers). In some examples, one of the workspaces may be associated with a user from a single organization (e.g., associated with the same organization identifier), and another of the workspaces may be associated with a user from two or more different organizations (e.g., associated with different organization identifiers).
[0059] In at least one example, each workspace may be associated with a different indicator 200, 202, and 204 presented via first area 146. In at least one example, a user account for a user (e.g., UserAB) may be associated with a group identifier corresponding to each of the workspaces (e.g., determined by user data 124 and / or workspace data 128). Thus, a user account for a user may be associated with each of the workspaces. A first indicator 200 may represent a first workspace, a second indicator 202 may represent a second workspace, and a third indicator 204 may represent a third workspace.
[0060] In some examples, a user can navigate between workspaces by activating a control associated with each of indicators 200, 202, and 204 without having to log out of one workspace and log in to each other workspace. Non-limiting examples of such indicators, or any indicator described herein, may include an icon, symbol, link, tab, or other user interface element or object. In some examples, such indicators may be associated with an actuation mechanism that allows a user to select the indicator and transition to another workspace. In some examples, the visual indicator may indicate which workspace the user is currently interacting with and / or which workspace the user most recently interacted with. For example, second indicator 202 may be surrounded by a thicker line than first indicator 200 and third indicator 204, thereby indicating which workspace the user is currently interacting with and / or which workspace the user most recently interacted with. In some examples, indicators 200, 202, and 204 may be associated with another indicator that indicates that the corresponding workspace has been updated. An example is shown with respect to third indicator 204.
[0061] 2A shows three indicators 200, 202, and 204, a user may be associated with any number of workspaces. In some examples, indicators associated with all workspaces with which the user is associated may be presented via first area 146. In some examples, some of the indicators associated with all workspaces with which the user is associated may be presented via first area 146, and the user may interact with user interface 144 to view additional or alternative indicators. In examples where fewer than all workspaces are represented via user interface 144, the indicators may be arranged alphabetically, by most recent interaction, based on most frequent interaction, or in some other order.
[0062] In some examples, the first region 146 may not be included in the user interface 144, and such information may be integrated into the user interface 144 through additional or alternative mechanisms.
[0063] In some examples, the user interface 144 may include a second region 148, or pane, that includes indicators (e.g., user interface elements or objects) that represent virtual spaces associated with workspaces with which the user (e.g., the user's account) is associated. In at least one example, the second region 148 may include one or more subsections or subpanes that may represent different virtual spaces. For example, the first subsection 206 may include an indicator that represents a virtual space that may aggregate data associated with multiple communication channels and / or workspaces. In at least one example, each virtual space may be associated with an indicator in the first subsection 206. In some examples, the indicators may be associated with an actuation mechanism that, when actuated, causes the application 140 to present data associated with the corresponding virtual space via the third region 150. In at least one example, a virtual space may be associated with all unread data associated with each of the workspaces with which the user is associated. That is, in some examples, if a user requests access to a virtual space associated with "unread," all data that has not been read (e.g., not viewed) by the user may be presented, for example, in a third area 150 in the feed. In such examples, different types of events and / or actions that may be associated with different communication channels and / or virtual spaces may be presented via the same feed. In some examples, such data may be organized and / or sortable by workspace, time, type of action, communication channel, user, etc. In some examples, such data may be associated with an indication of which users (e.g., members of a communication channel) posted messages and / or performed actions.
[0064] In some examples, each virtual space may be associated with the same type of event and / or action. For example, a "thread" may be associated with messages, files, etc. posted within a thread for a message posted to a communication channel, and a "mention and reaction" (e.g., "M&R") may be associated with a message or thread in which a user (e.g., UserAB) is mentioned (e.g., via a tag) or in which another user 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 may be associated with different communication channels and / or virtual spaces may be presented via the same feed. With respect to an "unread" virtual space, data associated with such a virtual space may be organized and / or sortable by workspace, time, type of action, communication channel, user, etc.
[0065] In at least one example, the second region 148 of the user interface 144 may include a second subsection 208, or subpane, that includes indicators representing communication channels. In some examples, the communication channels may include public channels, private channels, shared channels (e.g., between groups or organizations), single workspace channels, cross-workspace channels, combinations of the foregoing, etc. In some examples, the represented communication channels may be associated with a single workspace. In some examples, the represented communication channels may be associated with different workspaces (e.g., cross-workspace). In at least one example, when a communication channel is cross-workspace (e.g., associated with different workspaces), a user may be associated with both workspaces or only one workspace. In some examples, the represented communication channels may be associated with a combination of communication channels associated with a single workspace and communication channels associated with different workspaces.
[0066] In some examples, second subsection 208 may depict all communication channels or a subset of all communication channels that the user has permission to access (e.g., as determined by permission data 126). In such examples, the communication channels may be arranged alphabetically based on most recent interaction, based on frequency of interaction, based on type of communication channel (e.g., public, private, shared, cross-workspace, etc.), based on workspace, in a user-specified section, etc. In some examples, second subsection 208 may depict all communication channels or a subset of all communication channels of which the user is a member, and the user may interact with user interface 144 to browse or view other communication channels of which the user is not a member but which are not currently displayed in second subsection 208. In some examples, different types of communication channels (e.g., public, private, shared, cross-workspace, etc.) may be in different sections of second subsection 208 or may have their own sub-areas or sub-panes within user interface 144. In some examples, communication channels associated with different workspaces may be in different sections of second subsection 208 or may have their own areas or panes within user interface 144.
[0067] In some examples, the indicator may be associated with a graphical element that visually distinguishes the type of communication channel. For example, Channel B is associated with a square visual element rather than a circle visual element. As a non-limiting example, and for purposes of this discussion, a square visual element may indicate that the user is not a current member of Channel B, while a circle visual element may indicate that the user is a current member of Channels A, D, and N. In some examples, additional or alternative graphical elements may be used to distinguish between public communication channels, private communication channels, shared communication channels, communication channels associated with different workspaces, etc. In other examples, communication channels in which the user is not a current member may not be displayed in the second subsection 208 of the user interface 144. In such examples, the user may navigate to a different interface (not shown in FIG. 2A , an example of which is shown in FIG. 2B ) to browse additional channels that are accessible to the user but in which the user is not currently a member.
[0068] In addition to second subsection 208, second area 148 may include a third subsection 210 or subpane that may include indicators representing communications with an individual user or multiple designated users (e.g., on behalf of all or a portion of the members of an organization). Such communications may be referred to as "direct messages." That is, third subsection 210 or subpane may include indicators representing a virtual space associated with private messages between one or more users.
[0069] As mentioned above, in at least one example, user interface 144 may include a third region 150 or pane associated with a feed showing messages posted to communication channels and / or other virtual spaces (e.g., virtual spaces associated with direct message communications, virtual spaces associated with events and / or actions, etc.) and / or actions taken thereon to facilitate communication. As mentioned above, in at least one example, data associated with third region 150 may be associated with the same or different workspaces. That is, in some examples, third region 150 may present data associated with the same or different workspaces via a unified feed. In some examples, data may be organized and / or sortable by workspace, time, type of action, communication channel, user, etc. In some examples, such data may be associated with an indication of which user posted the message and / or performed the action. In examples in which third region 150 presents data associated with multiple workspaces, at least some of the data may be associated with an indication of which workspace the data is associated with.
[0070] For example, in FIG. 2A , a user (e.g., UserAB) can interact with user interface 144 to view data associated with the virtual space corresponding to “mentions and reactions.” In FIG. 2A , the data associated with the virtual space may be associated with different communication channels and different workspaces. As shown, the data is organized by communication channel (e.g., #ChannelD and #ChannelK). However, as described above, the data may be organized and / or sortable by workspace, time, type of action, user, etc. As shown, another user (e.g., UserM) mentions user (e.g., UserAB) in a message represented by indicator 212 (e.g., user interface element, object, etc.) associated with a communication channel (e.g., #ChannelD). User (e.g., UserAB) also posts a message represented by indicator 214 (e.g., user interface element, object, etc.) in the same communication channel. One or more other users have reacted with an emoji to the message represented by indicator 214. Thus, indicators associated with both messages may be presented in third area 150. Because the data is organized by communication channel, indicators associated with both messages are presented together. In at least one example, a communication channel (e.g., #ChannelD) may be associated with a second workspace (e.g., associated with second indicator 202). In some examples, a user is currently interacting with (or recently interacted with) the second workspace, and therefore neither indicator 212 nor 214 is associated with a workspace indicator (e.g., second indicator 202).
[0071] As shown, another user (e.g., User L) mentions the user (e.g., UserAB) in a message represented by an indicator 216 (e.g., a user interface element or object) associated with a communication channel (e.g., #ChannelK). As such, indicator 216 may be presented in third region 150. Because the data is organized by communication channel, indicator 216 may be presented in a different position within the feed than the other indicators 212 and 214. In at least one example, the communication channel (e.g., #ChannelK) may 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) a second workspace, indicator 216 may include an indicator (e.g., third indicator 204) indicating that it is associated with the third workspace.
[0072] For purposes of this description, a “message” may refer to any electronically generated digital object provided by a user using a user computing device 104 and configured to be displayed within a communication channel and / or other virtual space for facilitating communication (e.g., a virtual space associated with direct messaging, etc.) as described herein. A message may include any text, image, video, audio, or combination thereof provided by a user (using a user computing device). For example, a user may provide a message including text along with images and video as message content within a message. In such an example, the text, image, and video constitute the message. Each message sent or posted to a communication channel of a communication platform may include metadata including a sending user identifier, a message identifier, message content, a group identifier, a communication channel identifier, etc. In at least one example, each of the aforementioned identifiers may include ASCII (American Standard Code for Information Interchange) text, a pointer, a memory address, etc.
[0073] In some examples, users can comment on messages in "threads." A thread can be a message associated with another message that is not posted to a communication channel but is maintained within an object associated with the original message. Messages and / or threads can be associated with files, emojis, apps, etc.
[0074] A communication channel or other virtual space may be associated with data and / or content other than messages or data and / or content associated with messages. For example, non-limiting examples of additional data that may be presented via third area 150 of user interface 144 include members added to and / or removed from a communication channel, files (e.g., attachments) uploaded to and / or removed from a communication channel, applications added to and / or removed from a communication channel, posts added to and / or removed from a communication channel (data that may be collaboratively edited in near real time by one or members of a communication channel), descriptions added to, modified, and / or removed from a communication channel, modifications to characteristics of a communication channel, etc.
[0075] In some examples, the third area 150 may include a feed associated with a single communication channel. In such examples, data related to the communication channel may be presented via the feed. In at least one example, the data associated with the communication channel may be viewable to at least some users of a group of users associated with the same group identifier. In some examples, for members of a communication channel, the content of the communication channel (e.g., messaging communications) may be displayed to each member of the communication channel. For example, a common set of group-based messaging communications may be displayed to each member of the communication channel such that the content of the communication channel (e.g., messaging communications) does not vary for each member of the communication channel. In some examples, the data associated with the communication channel may appear differently to different users (e.g., based on personal settings, group membership, etc.).
[0076] In at least one example, the format of an individual communication channel or virtual space may appear differently to different users. In some examples, the format of an individual communication channel or virtual space may appear differently based on the workspace with which the user is currently interacting or has most recently interacted. In some examples, the format of an individual communication channel or virtual space may appear differently to different users (e.g., based on personal settings, group membership, etc.).
[0077] In at least one example, the user interface 144 can include a search mechanism 218, where a user can enter search terms and the server 102 can perform a search associated with the communications platform. In some examples, a search can be performed across each workspace with which the user is associated, or the search can be limited to a particular workspace based on user specifications.
[0078] User interface 144 is a non-limiting example of a user interface that may be presented (e.g., by application 140) via user computing device 104. In some examples, application 140 may receive data from workspace management component 116 and / or channel management component 118, and application 140 may generate and present user interface 144 based on the data. In other examples, application 140 may 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 may present user interface 144 based on the instructions. Additional or alternative data may be presented via the user interface, and additional or alternative configurations may be envisioned.
[0079] Additional details associated with the user interface 144 and communications platform are described with reference to FIG. 2B, which depicts, in some non-limiting examples, a system 200 including user computing devices 104a, 104b, and 104c (e.g., as described with reference to FIG. 1) connected by a network 106. Additionally, user computing devices 104a, 104b, and 104c are associated with respective user interfaces 222a, 222b, and 222c that are associated with respective user accounts. For example, user computing device 104a is associated with “UserAB” (as indicated by user account indicator 224a), user computing device 104b is associated with “UserCD” (as indicated by user account indicator 224b), and user computing device 104c is associated with “UserAdmin” (as indicated by user account indicator 224c). In one example, UserAB, UserCD, and UserAdmin are all members of the same “Workspace A.” Additionally, user interfaces 222a, 222b, and 222c all present a channel browser interface in sections 226a, 226b, and 226c (respectively), such as in response to a request from a user to browse channels accessible to the user. For example, a channel browser interface may be presented in response to selection of channel browser indicator 228a, 228b, or 228c (or in response to selecting "Browse" in menu 154 of FIG. 1).
[0080] In examples of the present disclosure, the channel browser interface may include various tools configured to perform various functions. For example, the channel browser interface in section 226a presents a list of channels 230 that a user account has access to view, can subscribe to (e.g., without an invitation), and / or can contribute content to. Additionally, the channel browser interface may include a search function 232 that allows a user to search for channels included in the channel list. Additionally, the channel browser interface may include a sort interface tool 234 for sorting the channel list (e.g., by most recent, alphabetical order, etc.) and / or a filter interface tool 236 for filtering the channel list (e.g., by public channel type, private channel type, shared status, etc.). The channel browser interfaces in sections 226b and 226c may include similar features.
[0081] According to aspects of the present disclosure, members associated with the same workspace (e.g., Workspace A in FIG. 2B ) may be able to have different levels of access to different channels, such as based on granted / denied permissions and / or private or public designations associated with the channels. For example, in some instances, a user account that subscribes to a channel (e.g., a public channel or a private channel) may have permission to view content associated with the channel and post content to the channel. Additionally, in some examples, a member of a private channel (who subscribes to the private channel) may have permission to change settings associated with the private channel (e.g., change the channel from a private channel to a public channel). In some examples, a member of a private channel may not have permission to change a private channel to a public channel.
[0082] In some examples, a user account designated as an administrator may have different privileges, such as based on permission settings associated with a workspace and / or specified by the workspace owner or an organization associated with the workspace. For example, in some instances, an administrator may have limited access to private channels. In some examples, an administrator may have privileges to access limited information associated with a private channel (e.g., member list, channel description, etc.), but not privileges to view content posted to the private channel. In some examples, an administrator may have privileges to change settings associated with a private channel (e.g., change a private channel to a public channel), regardless of whether the administrator can view the content of the private channel. In some examples, an administrator may not be able to discover a private channel, such as when searching or browsing through a channel browser interface. In some examples, through searching or browsing, an administrator may be able to discover limited information associated with a private channel (e.g., the name associated with the private channel, but not other details related to the private channel). In some examples, an administrator may be able to make administrative changes to channels (e.g., all channels associated with a workspace), but a private channel may not be discoverable to the administrator user account unless the administrator user account subscribes to the private channel. In another example, an administrator user account may have the authority to access at least a portion of the content associated with the private channel and to make administrative changes associated with the private channel.
[0083] As an illustrative example, referring to FIG. 2B , user account “UserAdmin” represented in user interface 222c may have permission to make changes to all channels, even private channels that are not discoverable by UserAB and / or UserCD (but do not necessarily need to discover or view the content of private channels). For example, UserAB may have permission to access (e.g., discover when searching or browsing, contribute to, etc.) “Channel-D,” represented by channel indicator 238 in user interface 222a. Additionally, Channel-D may be a private channel, as represented by private channel indicator 240. Information related to Channel-D and depicted in user interface 222a includes subscribed indicator 242, indicating that UserAB is subscribed to and has access to Channel D. Based on UserAB'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 may be discoverable by UserAB, such as by using search function 232. In some examples, User AB may have the authority 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 may not have the authority to make some administrative changes to Channel-D.
[0084] Continuing with the example of FIG. 2B , in the example, other user accounts associated with Workspace A may not be able to access Channel D, which is private. For example, list 244 (in user interface 222b) associated with User CD does not include information associated with Channel D (e.g., an A-to-Z listing skips from Channel-C to Channel-E). Additionally, User CD may not be able to discover (e.g., by search or otherwise) information associated with Channel D, and as described above, access restrictions may be implemented based on permissions associated with the user account, channel metadata tags, channel index, etc. In another example, User Admin may have permission to make administrative changes to Channel D listed in a channel browser associated with user interface 222c, but in some cases, permission (for User Admin) to view content or engage in other activities with respect to Channel D may be limited. In another example, User CD may have access to private “Channel-C,” and User Admin may make administrative changes to Channel-C. However, Channel-C may not be accessible or discoverable by User AB. In some examples, an administrative user account may have permission to change a channel from a private channel to a public channel but lack permission to discover the private channel (e.g., via searching or browsing), and thus the communications platform may provide the administrative user account with a secure dashboard for making such changes and / or the administrative user account may have other database access to perform such changes.
[0085] In some instances, it may be desirable to change a channel from a private designation to a public designation. For example, a channel may have been mistakenly designated as a private channel. Alternatively, in some cases, changing circumstances (e.g., time, organizational perspectives on what should be private and what should be shared, etc.) may prompt a change from private to public. Absent examples of the present disclosure, changing a channel designation from private to public may be difficult, and in some cases impossible. Among other things, the inability to change from a private channel to a public channel may block users from accessing important information that would otherwise be discoverable. Additionally, this potential limitation may contribute to inefficient use of resources (e.g., time, computing resources, etc.) used to search for information blocked from discovery / access. Furthermore, this limitation on changing designations may increase duplicated effort and resource consumption due to content being copied from a private channel to a more publicly accessible space. In contrast to conventional solutions, examples of the present disclosure include techniques for changing a channel from a private setting / designation to a public setting / designation.
[0086] Referring to FIG. 3 , a user interface flow 300 is depicted that, in some examples, may be navigated by a user interacting with a link associated with the user interface (e.g., an interaction represented by a hand icon in FIG. 3 ). For example, user interface 302 includes a section 304 that presents information associated with a channel (e.g., Channel-C). Content associated with the channel may be presented in response to a user selecting a channel from a channel list, 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 interface 310 a and / or 310 b. That is, in some examples, selecting the “Channel-C” text and / or the drop-down “V” indicator may navigate to a channel settings user interface, such as settings interface 310 a / 310 b (collectively, settings interface 310). The settings interface 310 may include a pop-up interface (e.g., may be presented as an overlay in front of the user interface 302), and in some examples, the settings interface 310 may replace the content of the portion 304 presented in association with the channel.
[0087] In examples of the present disclosure, settings interface 310 may include various tabs or panes for viewing various information associated with a channel. For example, settings interface 310 may include a members tab 311 that, when selected, presents a searchable list of members associated with (e.g., subscribed to) the channel. For example, in FIG. 3 , settings interface 310a presents information associated with members tab 311, including three members subscribed to Channel-C, which information is also reflected in subscribed members indicator 312 of user interface 302. Additionally, settings interface 310 may include settings tab 313 that, when selected, includes various fields or channel details (as depicted by user interface 310b) that may be edited by a user account.
[0088] In some examples, editable settings may depend on the access privileges associated with the user account. For example, in some cases, settings that can be edited by non-administrators and / or non-owners may be limited or restricted compared to settings editable by administrators and / or owners. Referring to settings interface 310b, an administrator (e.g., as indicated by indicator 204c) may be able to edit the channel name, user permissions, and / or private / public designation associated with the channel. Additionally, non-administrator members who have subscribed to the channel (e.g., users CD, EF, and GH, as indicated by subscribed member indicator 312 and listed in settings interface 310a) may have more limited privileges to edit different settings (e.g., the channel name, but not the private designation). In some examples, both administrators and subscribed non-administrators may be able to edit private settings.
[0089] Enforcement of editing permissions may be performed in various manners. In some examples, a user may submit a request to change a private channel to a public channel. As such, a determination may be made as to whether the user submitting the request has permission to change the channel from private to public. In some examples, the settings interface 310b may be adjusted based on the 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 may be adjusted to not include interface elements for submitting such a change request, and / or such interface elements may be locked against user interaction. On the other hand, if the user has permission to change a private channel to a public channel, the settings interface 310b may reflect such modification options using appropriate user interface elements to indicate that such a change is possible.
[0090] In some examples, settings interface 310b may include a selectable affordance 314 associated with the private designation that, when selected, can change the channel from a private channel to a public channel. Additionally, selection of affordance 314 (e.g., thereby changing the affordance from “on” to “off”) may render additional user interface elements, such as those associated with user interface 316. In some examples, user interface 316 may include a confirmation indicator 318 that, when selected, can confirm the change from private to public. Additionally, in some examples, user interface 316 may include a privacy settings button 320 that, when selected, invokes user interface 322 to configure additional settings associated with the private / public designation. For example, when changing a channel from private to public, it may be desirable to specify that information associated with the channel remain private. In some examples, information may be sorted based on date, such that information associated with a channel before a specified date remains private, and information associated with a channel after a specified date becomes public. In some examples, information may be categorized based on content type (e.g., attachment, video, audio, image, etc.), such that information categorized as a particular type remains private and information not categorized as a particular type becomes public. In some examples, information may be categorized based on the user account 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 one or more designated user accounts becomes public.
[0091] In some examples, portions of data associated with a private channel may be excluded from the public channel, e.g., via options presented in user interface 322. The techniques of this disclosure may maintain the private nature of portions of data by applying one or more various techniques. For example, in some instances, portions of data designated to remain private may still be associated with the public channel and accessible only to authorized user accounts (e.g., due to a flag or other metadata associated with the portion of data and usable to selectively restrict access). In other examples, portions of data designated to remain private may be branched from the public data. In that case, the branched private data may be archived. And / or, in some examples, both the branched private data and the public data may exist as separate channels going forward.
[0092] In at least some examples, changing the designation from private to public may have various implications in a communications platform. For example, in one example, the change from private to public may initiate an approval workflow in which members who subscribed to the channel when it was private may have an opportunity to influence the change to a public channel. In one example, the approval workflow may include an approval request for each subscribed member to either approve or oppose the change to public. In some examples, the approval workflow may allow a member to specify whether they want any content associated with that member to remain private (e.g., a member may approve the conversion of a channel to public on the condition that content associated with (e.g., posted by) that member remains private).
[0093] In at least some examples, a request to change a channel from private to public may include verifying whether the member submitting the request has the authority to make the change. For example, permissions associated with the user account and / or the channel may be referenced to determine whether the user account is authorized to make the change. In some examples, the permissions may be based on roles associated with the user account and the channel. For example, for each channel, one or more roles may be assigned in association with the channel. Example roles may include channel creator, channel owner, channel or workspace administrator, workspace owner, etc. In some examples, the authority to change a private channel to a public channel is reserved for user accounts controlled by users presumed to have the necessary organizational knowledge appropriate to determine whether to make the change from private to public.
[0094] In at least some examples, changing a channel from private to public may affect the permissions associated with the channel. That is, in some instances, a private channel may include a first set of permissions that specify actions that are permissible by a given user account, and when changed to a public channel, the public channel may include a second set of permissions that are less restrictive than the first set of permissions (e.g., the second set of permissions allows more user accounts to take more actions with respect to the channel).
[0095] In some examples, the change from private to public may affect how data is processed on the back end, such as by server 102. For example, a flag or other metadata indicating whether data (e.g., a channel or data related to a channel) is private or public may be updated to reflect the public nature. The flag may be used to assess discoverability, accessibility, joinability, etc., among other things. In some examples, a search index associated with the channel may be updated to indicate that the channel is public, and the updated search index may be used to determine whether the channel is discoverable by a user account (e.g., when the user account is searching and / or browsing).
[0096] As described, channels may be shared between different workspaces or other user groups. In examples of the present disclosure, a channel may be changed from private to public with respect to one workspace, but remain private with respect to another workspace. Thus, a first organization may be able to share information that was private with users of the first organization with reduced concern that users of a second organization may also have access to it (e.g., based on a unilateral action by the first organization changing the channel to public).
[0097] 4-5, exemplary processes 400 and 500 for changing a private channel to a public channel are shown. In some instances, some or all of processes 400 and 500 may be performed by one or more components in system 100 or one or more components described with respect to FIGS. 1, 2A, 2B, and / or 3. However, processes 400 and 500 are not limited to being performed by components within system 100, and components within system 100 are not limited to performing processes 400 and 500. Additionally, example user interfaces are also provided in Figures 4 and 5 to help illustrate the elements, and processes 400 and 500 are not limited to the manner in which they are shown in the user interfaces.
[0098] Referring to FIG. 4 , in at least some examples, at operation 402, process 400 includes receiving, in association with a private channel associated with two or more users of a communications platform, a request to convert the private channel to a public channel. 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 authorized to access the private channel associated with the workspace. For example, FIG. 4 includes user interfaces 404, 410, and 416 associated with Private Channel-C and may present information similar to the elements of operation 402. For example, user interface 404 includes information associated with Private Channel-C, where the private nature or designation is indicated by private channel icon 406. Additionally, member tab 408 of user interface 404 identifies three users who are subscribed to Private Channel-C (e.g., excluding other unsubscribed members in the same workspace) and who can discover Private Channel-C and view / post content. In an illustrative example, user interface 410 includes settings presented under a settings tab 412. In an example, the settings may include a private setting 414 (e.g., a selectable affordance) that can provide or influence a discoverability setting. That is, the specification of the privacy setting 414 can determine which user accounts can discover Channel-C (e.g., when searching or browsing channels associated with a workspace). As described above, when the privacy setting 414 is turned on, the private Channel-C may be discoverable only by members of the channel (e.g., UserCD, UserEF, and UserGH who are subscribed to the channel).For example, even though UserAB is a member of the same workspace as UserCD, UserEF, and UserGH, UserAB may not be able to discover private Channel-C (e.g., when searching or browsing channels associated with the workspace). In a further example, user interface 416 includes additional information that may be presented when private setting 414 is toggled (e.g., selected) to change 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 selecting confirmation interface element 418 may represent a request to convert Channel-C from private to public.
[0099] In at least some examples, at operation 420, process 400 includes, based at least in part on receiving a request to convert the private channel to a public channel, modifying a first discoverability setting associated with the private channel, where, based at least in part on the modifying, 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 private setting 422 that 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 selecting confirmation interface element 418 may represent a request to convert Channel-C from private to public. Additionally, the “off” designation or state may represent a modified discoverability setting (e.g., modified from an “on” state). Additionally, FIG. 4 includes user interface 424 including a channel browser depicting a list of channels discoverable by User-AB. The list of discoverable channels includes Channel-C (identified by channel identifier 426), which is now discoverable by UserAB even though UserAB is not subscribed to Channel-C (e.g., there is no "subscribed" indicator associated with Channel-C channel identifier 426, in contrast to the "subscribed" indicator 428 associated with Channel A). The discoverability of Channel-C associated with UserAB may be controlled by various techniques implemented when Channel-C is converted from private to public, such as updated tags associated with Channel-C and / or channel search indexes.
[0100] 5, in at least some examples, process 500 includes, at operation 502, rendering a configurable channel setting (e.g., an affordance) configured to change a channel from a private channel to a public channel based on a permission setting associated with a user account. For example, in FIG. 5, user interface 504 may be presented in association with a user account, such as an administrator user account and / or a user account of one of the three members of Channel-C (e.g., subscribed to Channel-C). Additionally, based on a determination that the user account is associated with the permission to change Channel-C from a private channel to a public channel, configurable channel setting 506 (e.g., an affordance) may be presented, and configurable channel setting 506 may be configured to change Channel-C from a private channel to a public channel.
[0101] In some examples, at operation 508, process 500 includes receiving a request to change the channel to a public channel based on an interaction with a configurable channel setting (e.g., an interaction with an affordance). For example, a hand icon 510 indicates a selection of the configurable channel setting 506, which may cause the user interface 504 to transition 512 to another user interface 514 that provides additional information associated with the request. For example, the user interface 514 may indicate that the configurable channel setting 506 has been selected via the modified configurable channel setting 516, which may represent a request to change Channel-C from a private channel to a public channel. Additionally, the user interface 514 may include a confirmation interface element 518 that, when selected, submits a request to change Channel-C from a private channel to a public channel.
[0102] In an example, at operation 520, process 500 includes updating data associated with the channel from first data to second data and based on the request, where the first data indicates that the channel comprises a private channel and the second data indicates that the channel comprises a public channel. For example, a tag and / or channel search index (e.g., as maintained by server 102) associated with Channel-C may be changed from first data indicating that Channel-C is private to second data indicating that Channel-C is a public channel.
[0103] In some examples, process 500 may include receiving a query having a scope that includes the channel from a user account that is not subscribed to the channel, at operation 522. For example, FIG. 5 depicts a user interface 524 associated with user account UserAB, which includes a user account that is not subscribed to Channel-C. Via user interface 524, a query may be submitted (e.g., via search and / or browse) with a scope that includes Workspace A (e.g., any channel that UserAB can access within Workspace A).
[0104] Process 500 includes presenting (or surfacing) an indication to the user account for the channel based on the second data and in response to the query at operation 526. For example, in section 528 including the channel browser interface, an indication 530 for Channel-C is presented based on information returned for user account UserAB in response to the search.
[0105] Example clauses A: A method, at least partially implemented by one or more computing devices of a communications platform, comprising: receiving, in association with a private channel associated with two or more users of the communications platform, a request to convert the private channel to a public channel, wherein the private channel is associated with a first discoverability setting such that the private channel is not discoverable by users of a workspace other than the two or more users associated with the private channel; and modifying, at least in part, the first discoverability setting associated with the private channel, wherein, based at least in part on receiving the request to convert the private channel to a public channel, the public channel is associated with a second discoverability setting such that the public channel is discoverable by any users associated with the workspace.
[0106] B: The method of paragraph A, further including: receiving a request from a particular user to convert a private channel to a public channel; 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 a determination that the particular user is associated with a permission or role that enables the particular user to modify the first discoverability setting.
[0107] C: The method of either paragraph A or B, 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.
[0108] D: The method of any of paragraphs A to C, wherein the public channel is discoverable via at least one of a search query or a channel browse query based on a second discoverability setting.
[0109] E: The method of any of paragraphs A-D, wherein the private channel is associated with a first permission set that is different from a second permission set associated with the public channel, and the first permission set is more restrictive than the second permission set.
[0110] F: The method of any of paragraphs A-E, further comprising receiving an indication to exclude a portion of the data associated with the private channel from the public channel, wherein the portion of the data associated with the private channel is excluded from the public channel.
[0111] G: The method of any of paragraphs A-F, further comprising receiving an indication to exclude a portion of data associated with the private channel 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.
[0112] H: A system for implementing at least a portion of a communications platform, the system including: 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 associated with two or more users of the communications platform, a request to convert the private channel to a public channel, the private channel being associated with a first discoverability setting such that the private channel is not discoverable by users of a 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 a public channel, modifying the first discoverability setting associated with the private channel, based at least in part on the modifying, the public channel being associated with a second discoverability setting such that the public channel is discoverable by any users associated with the workspace.
[0113] I: The system described in paragraph H, wherein the instructions, when executed, further cause the system to: receive a request from a particular user to convert a private channel to a 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 a determination that the particular user is associated with a permission or role that enables the particular user to modify the first discoverability setting.
[0114] J: The system of either paragraph H or I, wherein the private channel is not discoverable via a search query or a channel browse query based at least in part on a first discoverability setting, and the public channel is discoverable via at least one of a search query or a channel browse query based on a second discoverability setting.
[0115] K: The system described in any of paragraphs H-J, wherein the private channel is associated with a first permission set that is different from a second permission set associated with the public channel, and the first permission set is more restrictive than the second permission set.
[0116] L: The system of any of paragraphs H-K, wherein the instructions, when executed, further cause the system to receive an indication to exclude a portion of data associated with the private channel from the public channel, and the portion of data associated with the private channel is excluded from the public channel.
[0117] M: The system described in any of paragraphs H-L, wherein the instruction, when executed, further causes the system to receive an indication to exclude a portion of data associated with the private channel from the public channel, the portion of data being included in the public channel when viewed by two or more users associated with the private channel, and the portion of data being excluded from the public channel when viewed by other users associated with the public channel.
[0118] 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 associated with two or more users of a communications platform, a request to convert the private channel to a public channel, 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 a public channel, modify the first discoverability setting associated with the private channel, wherein, based at least in part on the modifying, the public channel is associated with a second discoverability setting such that the public channel is discoverable by any users associated with the workspace.
[0119] O: The one or more non-transitory computer-readable media described in paragraph N, wherein the instructions, when executed, further cause the one or more processors to: receive a request from the particular user to convert the private channel to a public channel; determine whether the particular user is associated with a permission or role that allows the particular user to modify the first discoverability setting; and modify the first discoverability setting based at least in part on a determination that the particular user is associated with a permission or role that allows the particular user to modify the first discoverability setting.
[0120] P: The one or more non-transitory computer-readable media of either paragraph N or O, 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.
[0121] Q: One or more non-transitory computer-readable media described in any of paragraphs N-P, wherein the public channel is discoverable via at least one of a search query or a channel browse query based on a second discoverability setting.
[0122] R: One or more non-transitory computer-readable media of any of paragraphs N-Q, wherein the private channel is associated with a first permission set that is different from a second permission set associated with the public channel, the first permission set being more restrictive than the second permission set.
[0123] S: The one or more non-transitory computer-readable media of any of paragraphs N-R, wherein the instructions, when executed, further cause the one or more processors to receive an indication to exclude a portion of data associated with the private channel from the public channel, and the portion of data associated with the private channel is excluded from the public channel.
[0124] T: The one or more non-transitory computer-readable media described in any of paragraphs N-S, wherein the instructions, when executed, further cause the one or more processors to receive an indication to exclude a portion of data associated with the private channel from the public channel, the portion of data being included in the public channel when viewed by two or more users associated with the private channel, and the portion of data being excluded from the public channel when viewed by other users associated with the public channel.
[0125] U: The one or more non-transitory computer-readable media of any of paragraphs N-T, wherein the instructions, when executed, cause the one or more processors to further render an affordance on a user interface associated with the private channel based at least in part on the user being associated with the private channel, and the request to convert the private channel to a public channel is received based on the user's interaction with the affordance.
[0126] Although the example clauses above are described with respect to one particular implementation, it should be understood that in the context of this document, the content of the example clauses may be implemented via a method, device, system, computer-readable medium, and / or another implementation. Additionally, any of Examples A-U may be implemented alone or in combination with any other one or more of Examples A-U.
[0127] summary One or more examples of the technology described herein have been described, and various modifications, additions, permutations and equivalents thereof are within the scope of the technology described herein.
[0128] In describing examples, reference is made to the accompanying drawings, which form a part of the specification and which show, by way of illustration, specific examples of the claimed subject matter. It is understood that other examples may be used and that changes or modifications, such as structural changes, may be made. Such examples, changes, or modifications do not necessarily depart from the intended scope of the claimed subject matter. While steps herein may be presented in a particular order, in some cases the order may be changed so that certain inputs are provided at different times or in a different order without changing the functionality of the systems and methods described. Disclosed procedures may be performed in a different order. Additionally, the various computations herein need not be performed in the order disclosed; other examples using alternative orders of computations may be readily implemented. In addition to changing the order, computations may be decomposed into subcomputations that have the same result.
Claims
1. 1. A method implemented at least in part by one or more computing devices of a communications platform, comprising: receiving, in association with a private channel associated with two or more users of the communications platform, a request to convert the private channel to a public channel, the private channel being associated with a first discoverability setting such that the private channel is not discoverable by users of a workspace 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, initiating an approval workflow that provides the two or more users with at least one of a first option to approve or disapprove of the conversion of the private channel to the public channel or a second option to identify content in the private channel that is not viewable by the user of the workspace; receiving the request to convert the private channel to the public channel and modifying the first discoverability setting associated with the private channel based at least in part on the approval workflow, wherein based at least in part on modifying 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 workspace.
2. receiving the request from a particular user to convert the private channel to the public channel; determining whether the particular user is associated with a privilege or role that allows the particular user to modify the first discoverability setting; 2. The method of claim 1, further comprising: modifying the first discoverability setting based at least in part on a determination 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 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.
4. The method of claim 1 , wherein the public channel is discoverable via at least one of a search query or a channel browse query based on the second discoverability setting.
5. preventing the users of the workspace from viewing, in the public channel, the second content posted in the private channel prior to conversion from the private channel to the public channel, such that the second content is only viewable by the two or more users; 2. The method of claim 1, further comprising: displaying third content posted to the public channel after being converted from the private channel to the public channel to the two or more users and users of the workspace.
6. 10. The method of claim 1, further comprising receiving an indication to exclude a portion of data associated with the private channel from the public channel, wherein the portion of data associated with the private channel is excluded from the public channel.
7. receiving an indication to exclude a portion of data associated with the private channel from the public channel; the portion of data is included in the public channel when viewed by the two or more users associated with the private channel; The method of claim 1 , wherein the portion of the data is excluded from the public channel when viewed by other users associated with the public channel.
8. 1. A system for implementing at least a portion of a communications platform, comprising: one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed, cause the system to perform the method of any one of claims 1 to 7.
9. One or more non-transitory computer-readable media storing instructions that, when executed, cause one or more processors to perform the method of any one of claims 1 to 7.
Citation Information
Patent Citations
Call system
JP2013009131A
Group-based communication system and apparatus configured to manage channel title associated with group-based communication channel
JP2021043956A
Dynamic profile adjustment in group-based communication systems
JP2023521527A
Dynamic Channel Conversion In Group-Based Communication Systems
US20210243234A1
Dynamic profile reconciliation in group-based communication systems
WO2021154650A1