Collaboration hub for a group-based communication system

Computer-readable media, methods, and systems for generating a collaboration hub for display within a graphical user interface of a group-based communication system. The collaboration hub comprises a list of recommended active users, a list of recommended active synchronous multimedia collaboration sessions, and a feed of recommended asynchronous collaboration threads such that relevant activity within the group-based communication system is viewable and accessible to users of the group-based communication system.

RELATED APPLICATIONS

This application shares certain common subject matter with U.S. Non-Provisional patent application Ser. No. 17/064,344 filed Oct. 6, 2020 entitled “AMBIENT, AD HOC, MULTIMEDIA COLLABORATION IN A GROUP-BASED COMMUNICATION SYSTEM”, U.S. Non-Provisional patent application Ser. No. 17/064,161, filed Oct. 6, 2020 and entitled SNIPPET(S) OF CONTENT ASSOCIATED WITH A COMMUNICATION PLATFORM, and U.S. Non-Provisional patent application Ser. No. 17/320,620, filed May 14, 2021 and entitled ASYNCHRONOUS COLLABORATION IN A COMMUNICATION PLATFORM. The above-identified applications are herein incorporated by reference in their entirety.

TECHNICAL FIELD

Embodiments of the invention generally relate to multimedia communication, and more particularly, to a virtual multimedia collaboration content hub for a group-based communication system.

Traditionally, non-in-person collaboration has been divided into asynchronous communication (such as emails and group-based messaging), where a recipient may view a message minutes, days, or months after the sender sends it, and synchronous communication (such as phone calls and video meetings) which occur in real time but must be scheduled in advance. None of these formats can replicate the kind of serendipitous conversations that happen naturally in physical offices. Further, there is currently no way for users to view content relating to multimedia collaboration for both asynchronous communications and synchronous communications in one place.

SUMMARY

Embodiments of the invention solve the above-mentioned problems by providing computer-readable media, systems, and methods for generating a collaboration hub for display within a graphical user interface of a group-based communication system. The collaboration hub comprises information relating to recommended active users, recommended active synchronous multimedia collaboration sessions, and recommended asynchronous multimedia collaboration threads.

A first embodiment of the invention is directed to one or more computer-readable media storing computer-executable instructions that, when executed by a processor, perform a method of generating virtual content associated with a group-based communication system, the method comprising generating a collaboration hub for display in a graphical user interface of the group-based communication system, the collaboration hub comprising a list of recommended active users, a plurality of actuatable controls corresponding to respective users of the list of recommended active users, wherein the plurality of actuatable controls are configured to initiate at least one of a text-based communication session or a multimedia communication session with the respective user, a list of recommended active synchronous multimedia collaboration sessions, and a feed of recommended asynchronous multimedia collaboration sessions.

A second embodiment of the invention is directed to a method for generating virtual content associated with a group-based communication system, the method comprising generating a collaboration hub for display in a graphical user interface of the group-based communication system, the collaboration hub comprising a list of recommended active users, a plurality of actuatable controls corresponding to respective users of the list of recommended active users, wherein the plurality of actuatable controls are configured to initiate at least one of a text-based communication session or a multimedia communication session with the respective user, a list of recommended active synchronous multimedia collaboration sessions, and a feed of recommended asynchronous multimedia collaboration sessions.

A third embodiment of the invention is directed to a system for generating virtual content associated with a group-based communication system, the system comprising a data store storing information associated with the group-based communication system, a processor programmed to generate a collaboration hub for display in a graphical user interface of the group-based communication system, the collaboration hub comprising a list of recommended active users, a plurality of actuatable controls corresponding to respective users of the list of recommended active users, wherein the plurality of actuatable controls are configured to initiate at least one of a text-based communication session or a multimedia communication session with the respective user, a list of recommended active synchronous multimedia collaboration sessions, and a feed of recommended asynchronous multimedia collaboration sessions.

Additional embodiments of the invention are directed to generating a session preview for display within a graphical user interface of a group-based communication system. The session preview indicates information for the session including at least one of the number of users in the session, user activity within the session, and a set of actuatable controls relating to the session.

Further embodiments of the invention are directed to a method for initiating a synchronous multimedia collaboration session within a group-based communication system. The multimedia collaboration session is generated and additional users are invited to the multimedia collaboration session using a session invitation interface generated for display within a graphical user interface associated with the group-based communication system.

DETAILED DESCRIPTION

FIG. 1Aillustrates an exemplary hardware platform for certain embodiments of the invention. Computer102can be a desktop computer, a laptop computer, a server computer, a mobile device such as a smartphone or tablet, or any other form factor of general- or special-purpose computing device. Depicted with computer102are several components, for illustrative purposes. In some embodiments, certain components may be arranged differently or absent. Additional components may also be present. Included in computer102is system bus104, whereby other components of computer102can communicate with each other. In certain embodiments, there may be multiple busses, or components may communicate with each other directly. Connected to system bus104is central processing unit (CPU)106. Also attached to system bus104are one or more random-access memory (RAM) modules108. Also attached to system bus104is graphics card110. In some embodiments, graphics card104may not be a physically separate card, but rather may be integrated into the motherboard or the CPU106. In some embodiments, graphics card110has a separate graphics-processing unit (GPU)112, which can be used for graphics processing or for general purpose computing (GPGPU). Also on graphics card110is GPU memory114. Connected (directly or indirectly) to graphics card110is display116for user interaction. In some embodiments, no display is present, while in others it is integrated into computer102. Similarly, peripherals such as keyboard118and mouse120are connected to system bus104. Like display116, these peripherals may be integrated into computer102or absent. In some embodiments, additional peripherals such as a microphone or video camera may also be present and connected to system104. In some embodiments, such peripherals may be detachable connected to computer102via a wired or wireless connection. In other embodiments, such as a tablet or smartphone, these peripherals are integrated into computer102. Also connected to system bus104is local storage122, which may be any form of computer-readable media, and may be internally installed in computer102or externally and removably attached.

Finally, network interface card (NIC)124is also attached to system bus104and allows computer102to communicate over a network such as network126. NIC124can be any form of network interface known in the art, such as Ethernet, ATM, fiber, BLUETOOTH, or Wi-Fi (i.e., the IEEE 802.11 family of standards). NIC124connects computer102to local network126, which may also include one or more other computers, such as computer128, and network storage, such as data store130. Generally, a data store such as data store130may be any repository from which information can be stored and retrieved as needed. Examples of data stores include relational or object-oriented databases, spreadsheets, file systems, flat files, directory services such as LDAP and Active Directory, or email storage systems. A data store may be accessible via a complex API (such as, for example, Structured Query Language), a simple API providing only read, write and seek operations, or any level of complexity in between. Some data stores may additionally provide management functions for data sets stored therein such as backup or versioning. Data stores can be local to a single computer such as computer128, accessible on a local network such as local network126, or remotely accessible over Internet132. Local network126is in turn connected to Internet132, which connects many networks such as local network126, remote network134or directly attached computers such as computer136. In some embodiments, computer102can itself be directly connected to Internet132.

FIG. 1Billustrates elements of a system150for carrying out embodiments of the invention. System150includes any number of client devices such as client device152, client device154, and client device156associated with user158, user160, and user162respectively. Although system150is depicted with one client device per user, an individual user may connect to the group-based communication system using multiple client devices, either concurrently or sequentially. Similarly, in some embodiments, multiple users may share (concurrently or sequentially) a single client device to access the group-based communication system. As depicted inFIG. 1B, client devices may be any form of computing device discussed above with respect toFIG. 1A. In particular, a user may access the group-based communication system using a desktop, a laptop, or a mobile device. The group-based communication system may be accessible via dedicated software of the client device or via the web browser of the client device. In some embodiments, channel administrators can access administrative functionality via any client device. In other embodiments, administrative functions can only be accessed from a limited subset of client devices (for example, only via client device152). In some embodiments, the group-based communication system is a channel-based messaging platform.

The group-based communication system is hosted by group-based communication system server164. Group-based communication system server164may be a dedicated server, a shared server, a virtual machine instance in a cloud computing environment, or any other form of computing device discussed above with respect toFIG. 1A. Although a single group-based communication system server164is depicted, embodiments with multiple such group-based communication system servers are also contemplated so as to provide scale, redundancy and/or isolation between different instances of the group-based communication system. For example, a software development company may not wish to have its group-based communications system hosted on the same server as a competitor's group-based communication system for security reasons. Server164is communicatively coupled to client devices152,154, and156via network166. Network166may be a local area network (LAN), wide-area network (WAN), virtual private network (VPN) or the Internet. Broadly speaking, any type of network for providing communication between the various components of system150is contemplated. Group-based communication system server164may provide web server functionality to enable web-based clients and non-web server functionality to enable clients using a dedicated app. Alternatively, both web-based clients and dedicated-app clients might both use a single web server, or the web server might be a gateway providing web-based access to the dedicated-app server. Other techniques for enabling communication among various types of client application are also contemplated.

Group-based communication system data store168is communicatively connected to group-based communication system server164. As depicted, group-based communication system data store168is directly connected to group-based communication system server164; however, any form of communicative connection (for example, network-attached storage (NAS), a network file system (NFS), or cloud-based storage) can be employed. Broadly speaking, group-based communication system data store168stores all of the durable information used by group-based communication system server164. For example, group-based communication system data store168may store all of the messages with their associated channels, documents and images uploaded to particular channels, channel membership information, and/or user information. In some embodiments, collaboration sessions may be archived and stored on the group-based communication system data store168for subsequent retrieval. As previously discussed, multiple group-based communication system servers may be present in system150. In such embodiments, each group-based communication system server may have its own copy of group-based communication system data store168. Alternatively, multiple group-based communication system servers may share a single network-attached group-based communication system data store. Alternatively or in addition, in any of these embodiments, data may be sharded across multiple group-based communication system data stores.

Real-time media server170is also communicatively coupled to group-based communication system server164and client devices152,154and156. Real-time media server manages the multimedia aspects of real-time multimedia collaboration sessions among users of the group-based communication system as described in additional detail below. The term “multimedia” is used in this specification for brevity; however, it should be understood that the term used herein contemplates audio-only streams, video-only streams, audio/video streams, or any other combination of one or more media streams.

As depicted, the communication between real-time media server is via network166. In some embodiments, however, the real-time nature of collaboration sessions may be better served by connecting via a different network for part or all of the communicative coupling. For example, a particular client device may normally connect to group-based communication system server164via a cellular data connection but switch to a WiFi connection when a multimedia collaboration session begins to accommodate an additional demand for bandwidth. In some embodiments, client devices may communicate multimedia collaboration data with each other via real-time media server170using a hub-and-spoke configuration. In other embodiments, client devices may communicate with each other directly using a peer-to-peer or supernode architecture. In still other embodiments, client devices on the same network may communicate with each other using multicast network protocols such as IP multicast. In yet other embodiments, media communication between the client devices may be via an edge-based scaling content distribution network.

FIG. 2Aillustrates an exemplary user interface200A including a collaboration hub202and a sidebar pane204. In some such embodiments, the user interface200A may be a graphical user interface (GUI) associated with the group-based communication system. Further, the user interface200A may be generated for display on one of client devices152,154, or156to an instant user operating one of said client devices. The collaboration hub202may comprise at least one of a list of recommended active synchronous multimedia collaboration sessions206, a list of recommended active users208, and a feed of asynchronous multimedia collaboration sessions or meetings comprising multimedia or video threads210. The synchronous multimedia collaboration sessions, in some embodiments, include synchronous forms of multimedia communication such as video chat, audio chat, screen sharing, co-working, and other forms of synchronous communication between two or more users. Alternatively, the asynchronous multimedia collaboration sessions or meetings include asynchronous forms of communication such as posted videos and text-based message communications that are viewable asynchronously. Additional details associated with asynchronous forms of communication such as video messages are described in U.S. patent application Ser. No. 17/064,161, filed on Oct. 6, 2020, the entire contents of which are incorporated by reference herein. In some examples, video replies to an asynchronous collaboration session can be threaded together to create a video thread and/or feed as described in U.S. patent application Ser. No. 17/320,620, filed May 14, 2020, the entire contents of which are incorporated by reference herein.

The list of synchronous multimedia collaboration sessions206may include one or more active collaboration sessions selected for recommendation on the collaboration hub202. For example, the collaboration sessions may be selected from a plurality of collaboration sessions displayed in the user interface200A because they are currently active while the collaboration hub202is being viewed by the instant user. Further, the collaboration sessions may be selected based in part on user interaction with the sessions or some association of the instant user with the sessions. For example, the recommended collaboration sessions may be displayed in the collaboration hub202based in part on the instant user being a member of a respective collaboration session or invited to a respective collaboration session. Recommended collaboration sessions may be displayed based on the instant user's association with other users who are part of active collaboration sessions. In some examples, the collaboration hub202may display collaboration sessions based on a user's organization, attributes of the user's profile, topics and projects the user may be associated with, projects associated with the user, channels a user is associated with, and other factors.

The list of recommended active, synchronous multimedia collaboration sessions206may further comprise an actuatable join session button212for joining each respective session of the listed recommended sessions. In some embodiments, the join session button212may be an actuatable link to join the respective multimedia collaboration session. For example, the join session button212may be selected from within the user interface200A, by clicking or tapping the button212. Once the join session button212is actuated, the instant user may be added to the multimedia collaboration session associated with the join session button212. In some embodiments, the list of recommended active multimedia collaboration sessions206further includes additional information for each respective session. For example, the list206may include at least one of an indication of the users in the session, an indication of the number of users in the session, and an indication of a group-based communication channel associated with the session, as shown. In some embodiments, the list of active sessions may include an actuatable control to create a new session, causing a newly created session to be added to the list of active sessions. Alternatively or in addition, where the collaboration session includes a video component (such as video of one or more users, screen sharing or co-working), a thumbnail depicting the video component may be depicted. In some embodiments, this thumbnail may be static. In other embodiments it may be fully dynamic or an animated series of thumbnails to reduce bandwidth consumption. Additionally, the name of the session, a topic for the session, the amount of time the session has been active, number of participants in the session, and other session related information may be included on the collaboration hub202. In some embodiments, each multimedia collaboration session may be associated with a channel of the group-based communication system. In some embodiments, a synchronous multimedia collaboration session may be associated with users who are part of a group message or a direct message that is not associated with a channel. In some embodiments, a session preview248is depicted for some or all of the active sessions as shown inFIG. 2C. In some embodiments, the synchronous collaboration session comprises a session topic238indicating a topic for the session. The session topic238may be an arbitrary user defined topic or selected from a pre-populated list of topics (for example, a list of commonly used topics may be provided for user convenience). A user may add an arbitrary topic for the session by typing in a topic entry field. In some embodiments, the preview comprises a screen share preview which may include a notification indicating that a screen share is occurring and an indication of which user is screen sharing.

In some embodiments, a user may only join a single active, synchronous collaboration session at any one time. Therefore, joining a second active, synchronous collaboration will cause the user to leave the first active, synchronous collaboration session. In some embodiments, a user may be part of multiple active, synchronous collaboration sessions.

In some embodiments, the list of recommended active users208may include a plurality of group-based communication system users recommended based on at least one of user activity, user interaction, or other user information. For example, the list of recommended active users208may be selected from a plurality of users based on an active status of the users within the group-based communication system, historic, recent, or frequent user interaction such as users communicating within the group-based communication channel, or some similarity between users such as determining that a user shares common membership in channels with another user. The list of recommended active users208may include user information for each respective user. For example, the user's status information214may be depicted on the collaboration hub202, as shown. The status information may include one or more of an indication that the user is active within the group-based communication system, an indication that the user is currently in a collaboration session, an indication that the user is in a scheduled meeting, an indication that the user is on vacation, an indication that the user is working remotely, or an indication that the user is home sick. In some embodiments, the status indication includes presence information, such as whether a user is active, idle, or offline. It should be understood that additional types of status information are contemplated for some embodiments.

In some embodiments, the list of recommended active users208further comprises a plurality of actuatable buttons216corresponding to respective listed active users. For example, the actuatable buttons216, when selected, may be configured to initiate at least one of a text-based communication session or a multimedia communication session. In some embodiments, each listed active user may appear along with two respective actuatable buttons216, as shown, a first button for initiating a synchronous multimedia collaboration session and a second button for initiating a text-based communication session. In some embodiments, a user may initiate an asynchronous meeting by clicking on the second button and starting an asynchronous video thread. In some embodiments, initiating the text-based communication session may include redirecting the user interface200A of the group-based communication system to a direct (person-to-person) message channel shared with the listed recommended user associated with the respective actuatable button.

In some embodiments, one or more recommended asynchronous multimedia collaboration sessions or meetings are displayed in an asynchronous meeting section210. In some embodiments, an asynchronous multimedia collaboration session is an asynchronous meeting where a topic is posted in a message at the beginning of a meeting thread and participants of the meeting may reply by posting a message or a video response. In some embodiments, the replies are aggregated in a video thread corresponding to the meeting. In some embodiments, a preview of a subset of video replies may be shown in the asynchronous collaboration session or thread. In some embodiments, each asynchronous collaboration session displayed in the collaboration hub is interactable, where a user may post a reply directly to an asynchronous collaboration session or view video replies to a particular asynchronous collaboration session. In some embodiments, clicking on a video thread causes the entire thread associated with the asynchronous meeting to be opened in a separate threads pane. In some embodiments, a user may interact with each posted message in the threads pane. In some embodiments, a preview for each of the asynchronous collaboration sessions may be generated for display on the collaboration hub202including one or more asynchronous playable videos218, a reply button220, a text-based communication button222, and an add user button224. The asynchronous playable videos218may be videos shared by other users within the thread of the asynchronous collaboration session. In some embodiments, selecting a preview for an asynchronous collaboration session may show the complete thread in greater detail or a partial view of the thread showing the latest posts in a new pane. In some embodiments, each collaboration session may be associated with a channel of the group-based communication system. For example, an asynchronous multimedia collaboration session may be hosted within an announcements channel of the group-based communication system, as shown. Accordingly, the channel name may be displayed along with the thread of the asynchronous collaboration session.

A reply button220may be included with each asynchronous collaboration session or a subset of asynchronous collaboration sessions, allowing users to record or otherwise post a multimedia or textual communication reply to an asynchronous collaboration session. For example, when a user actuates the reply button220by clicking on or tapping the button, a user may initiate recording a video reply which may be added to the thread associated with an asynchronous collaboration session. Additionally, a text-based communication button222may be included for each asynchronous collaboration session allowing users to create a text-message communication to be shared within the respective thread. In some embodiments, the add user button224, may be displayed with an asynchronous meeting to allow users to be added to the asynchronous multimedia collaboration session. For example, a user may click on or tap the add user button224, which causes an “add user” modal to be generated for display on the user interface200A. The “add user” modal may include a plurality of users for selection to be added to the collaboration session, based on a user directory or a set of recommended users for the session. In some embodiments, any user who is associated with a channel, direct message, or group message with which an asynchronous collaboration session is associated with may post a reply. In some embodiments, adding a user to an asynchronous meeting mentions the added user specifically in the body of the meeting message. In some embodiments, mentioning a user will cause a notification or alert to be sent to the mentioned user that there is an asynchronous collaboration session. In some embodiments, adding a user enables the added user to reply to the asynchronous collaboration meeting, even if the user previously did not have permission to view.

The sidebar pane204comprises a channels section280which lists a plurality of channels of the group-based communication system and a direct message section282listing a plurality of direct messages with other users in the group-based communication system. In some embodiments, group messages between multiple users may also be listed in the direct messages section. In some embodiments, only channels to which the user has access (or only channels of which the user is a member) are included. The channels may include any combination of direct message channels, public channels, and private channels. Further, in some embodiments, if a channel is associated with an active synchronous multimedia collaboration session, a session indicator226may be included adjacent to the channel name indicating that a session is currently being hosted on the channel. Additionally, the session indicator226may show the number of users currently joined within the session, as shown.

FIG. 2Billustrates a user interface200B for a channel228with an active, synchronous multimedia collaboration session prior to a user joining the session. The user interface200B includes the sidebar pane204including a channel228with session indicator226showing the number of participants within the session. Additionally, the sidebar pane204may show a selected channel228with the channel name highlighted, outlined, displayed in a different color or font, or otherwise indicated in some way to indicate that the particular channel is currently selected and opened within the group-based communication system. In addition to the sidebar pane204, the user interface200B comprises a channel communication pane230. The channel communication pane230includes a plurality of communications shared within the selected channel. For example, a plurality of messages232may be posted in the channel by channel members. The user interface200B may further comprise a communication input field234for sharing messages, attachments, and other communications within the channel.

In some embodiments, if the selected channel includes a currently active, synchronous collaboration session, a session preview236may be generated for display on the user interface200B. In some embodiments, the session preview236is generated when the synchronous collaboration session indicator226is clicked on from the sidebar pane204. In some embodiments, the active session indicator may be displayed in the channel header, and clicking on the active session indicator causes the session preview236to be displayed. The session preview236may comprise an indication of the session topic238, an indication of one or more users240within the session, an indication of the audio status242for each of the one or more users240, a join button244, and/or a join muted button246. The audio status242may indicate whether the respective user is muted, unmuted, or talking within the multimedia collaboration session. In some embodiments, each indication240of a user within the session is a static image, such as a profile picture or a username. In other embodiments, each indication is a video thumbnail from a live video feed of the user. In still other embodiments, some users are indicated by a static image, while other users are indicated by a video thumbnail. Accordingly, the session preview236allows users to see if a multimedia collaboration session is currently ongoing in the channel, as well as which users are in the multimedia collaboration session and the audio status of each user in the session before joining the session. The join button244is an actuatable button that, when clicked or tapped, automatically joins the user to the multimedia collaboration session. Similarly, the join muted button246allows users to join sessions with their microphone muted. In some embodiments, it may be desirable to include the join muted button246such that users can join sessions quietly without disrupting the flow of the session. Further, users may wish to join a session just to listen to other users and not to actively communicate within the session.

In some embodiments, the session preview236may be displayed as a popover window covering a portion of the channel communication pane230. Additionally, in some embodiments, the session preview236is movable such that the user can drag the session preview236to adjust the positioning within the user interface200B. Further, in some embodiments, the session preview236automatically scales along with the overall size of the user interface200B such that the session preview236never covers the communication input field234. For example, if a user reduces the window size of the user interface200B by clicking and dragging the edge of the window of the user interface200B, the size of the session preview236will be automatically adjusted based on the window size change of the user interface200B. In some such embodiments, it may be desirable to automatically adjust the size of the session preview236such that the communication input field234is always visible and the user can still input message communications while simultaneously viewing the session preview236. Further still, in some embodiments, the user can adjust the size of the session preview236manually. In some embodiments, the session preview248is displayed at the bottom of the sidebar pane204on the user interface200B, as illustrated inFIG. 2C. In some embodiments, the session preview pane may be freely moveable within the user interface by the user.

FIG. 2Cillustrates a user interface200C for an active synchronous multimedia collaboration session after the session has been joined by the user. Accordingly, the session preview236may be compressed into a compressed session preview248. In some embodiments, session preview248may be depicted in the list of active sessions in the collaboration hub202depicted inFIG. 2A. In other embodiments, as discussed in additional detail below, session preview248appears in the sidebar pane204of the user interface200C as the user navigates the group-based communication system. In such embodiments, the compressed session preview248comprises a subset of the information from the session preview236described above. For example, the compressed session preview248includes the session topic238. In some embodiments, the compressed session preview248further comprises a current speaker indication250indicating the user that is currently speaking within the session (where the current speaker indication250is analogous to corresponding user identifier indication in240), a mute button252operable to mute the microphone of the instant user within the session, a share screen button254operable to share the instant user's screen within the session, an add user button256for adding additional users to the session, and an exit button258. In some embodiments, the exit button258is operable to close the compressed session preview248. Alternatively, in some embodiments, the exit button258exits the session such that the instant user is removed from the session.

In some embodiments, a synchronous collaborative session includes additional affordances to add multimedia to the session such as video, audio, collaboration tools such as a whiteboard or a board, third party applications plugin, source code editor, document editor, web browser, spreadsheet, presentation software, game, photo or video editing software, command line terminal, or file browser and/or other co-working tools are also contemplated. For example, users in a synchronous multimedia collaboration session may use any of text, video, audio, file attachments, and other forms of media to communicate. In some embodiments, multiple forms of media may be synchronously streamed at the same time. For example, a user may speak in a video call while posting a text-based message or an image on a whiteboard associated with the session. In some embodiments, the whiteboard including text and image content is visible to each user of the synchronous multimedia collaboration session such that users can freely collaborate in real-time using various forms of media simultaneously.

In one example of the user interfaces200B and200C, a first user posts a message in a discussion channel on the group-based communication system including a meeting agenda for a scheduled meeting which will be carried out using a synchronous multimedia collaboration session. The first user initiates the multimedia collaboration within the discussion channel and sets a session topic for the initiated session “10 AM Meeting,” which appears on the session preview236. Additionally, the session preview236displays the users within the session and their microphone status.

For users within the discussion channel who have not yet joined the session, join button244and join muted button246may additionally appear on the session preview236allowing said users to join the session. For example, a fifth user is a member of the discussion channel and selects the join button244to join the session. In response to the fifth user joining the session, the session preview236may be compressed into the compressed session preview248, as shown inFIG. 2C. Accordingly, the fifth user is able to view who is talking within the session, as well as other session related information. The fifth user may traverse the graphical user interface to view another channel while simultaneously viewing the compressed session preview in a sidebar of the graphical user interface, as shown inFIG. 2C. Accordingly, the fifth user may use the communication input field234to draft a text message to interact with users in an announcements channel while still joined to the session in the discussion channel.

Additionally, user interface200C comprises the selected channel indication228and session indicator226indicating the active session. Further, the user interface200C includes the channel communication pane230. In some embodiments, users are able to navigate the group-based communication system while participating in a multimedia collaboration session. For example, as depicted, the instant user may view an “announcements” channel as the selected channel while participating in a session hosted on the “discussion” channel. It should be understood that the “discussion” and “announcements” channels are only examples of group-based communication channels and that any number of channels may be included with any variety of channel names for various applications of embodiments of the invention.

In some embodiments, as illustrated inFIG. 2C, an asynchronous multimedia collaboration session260may be hosted within a channel of the group-based communication system, as shown. In other embodiments, the asynchronous multimedia collaboration session260may be initiated from a direct message or a multi-person direct message of the group-based communication system. Here, the multimedia collaboration session may include one or more video and text message communications replies that are posted in the corresponding thread, as shown. Alternatively or in addition, a representation of this thread may be depicted in the “Collaboration Hub” ofFIG. 2A. For example, a user may post a playable video within the channel to initiate or reply to the multimedia collaboration session. Additionally, the channel communication pane230may include a text reply to the playable video218and a video reply. In some embodiments, the text reply to the playable video218may be generated in response to a user clicking on the text-based communication button222adjacent to the original playable video218posted in the channel. Similarly, the video reply may be generated in response to a user clicking on the reply button220. For example, the video reply may comprise video data recorded in response to a user clicking the reply button220.

The asynchronous multimedia collaboration session thread260may appear in the channel communication pane230, as shown. In some embodiments, the asynchronous multimedia collaboration session thread260comprises a session topic262including a user-selected description of the thread260, which in some embodiments is a video thread, as shown. Additionally, the asynchronous multimedia collaboration session thread260comprises a reply indication264which indicates the number of replies in the thread, as shown. The replies may comprise either of video replies or text replies. In some embodiments, a thread expansion button266is included that, when selected by a user, expands the thread by displaying the replies within the thread in an expanded thread pane270, as shown. Accordingly, the expanded thread pane270includes a first playable video272, a second playable video274, and a third playable video276. In some embodiments, the first playable video272is the original playable video218of the thread and the second and third playable videos274,276are subsequently posted video replies. It should be understood that additional forms of media content are contemplated to be posted in the thread such as, audio-only media, text media, and file attachments.

In some embodiments, a thread input field278is included below the expanded thread pane270. The thread input field278allows the user to input replies to the thread260directly. In some embodiments, the thread input field278is similar to the communication input field234and allows the user to generate and edit a text message communication as well as add multimedia file attachments.

As demonstrated in the above described example, the collaboration hub202, as shown inFIG. 2A, provides users with a unique experience by recommending relevant forms of collaboration based on user activity within the group-based communication system. Accordingly, users are able to quickly view and access synchronous multimedia collaboration sessions, asynchronous multimedia collaboration threads, and communications with individual users from a single interface. Further, the collaboration hub202includes previews and additional information informing users of various details within the group-based communication system, such as, what users are currently active, what the active users are doing, and the number of users in each actively occurring session. In some embodiments, the collaboration hub202may additionally notify users of the participants in each session. Additionally, embodiments of the invention provide users with the ability to freely multitask within the group-based communication system. For example, users can post messages or videos and comment on threads in one channel while actively attending a synchronous multimedia collaboration session in another channel. Accordingly, the productivity of the users in the group-based communication system is enhanced by offering such a variety of synchronous and asynchronous forms of communication and collaboration options.

FIG. 3illustrates an asynchronous session interface300for recording and generating a playable video for an asynchronous multimedia collaboration session within the group-based communication system. The asynchronous session interface300may be generated for display on a screen of one of client devices152,154, or156. In some embodiments, the asynchronous session interface300may be displayed to a user after the user has actuated a control to post a video in an asynchronous multimedia collaboration session In some embodiments, the asynchronous session interface300is displayed in response to a user initiating an asynchronous multimedia collaboration session within the group-based communication system or after a user has selected the reply button220.

In one example, the recording user has just finished recording the playable video which includes a video clip of the recording user speaking in reply to a previous video or other content posted in the asynchronous multimedia collaboration session. Accordingly, in some embodiments, a preview of the playable video may be generated for display in the background of the asynchronous session interface300. Alternatively, in another example, the asynchronous session interface300may be displayed while the recording user is actively recording the playable video, such that a live stream of the video data is displayed on the asynchronous session interface300.

The asynchronous session interface300comprises a topic notification302notifying the recording user to set a topic for the playable video, as shown. In some embodiments, the topic notification302is generated after the recording has finished. Additionally, a topic input field304may be included for the recording user to type or input a topic for the recorded video. In some embodiments, the topic input field304may comprise a text input field allowing the user to type a user defined topic for the recorded video. It should be understood that, in some embodiments, the topic input field304further allows image inputs or emojis to be added to the topic. Accordingly, embodiments are contemplated where a user-defined topic comprising both an emoji and a text description is generated using the topic input field304.

In some embodiments, the asynchronous session interface300further includes a plurality of topic recommendations306, as shown. The topic recommendations306include example topics which the recording user can select as the topic for the recorded video. In some embodiments, the topic recommendations306are generated based at least in part on previous video topics added by the user or other users within the group-based communication system. For example, in some embodiments, the plurality of topics306comprises topics which the recording user has used for previous playable videos. Alternatively or additionally, the plurality of topic recommendations306may comprise one or more default topics for the user to choose. In some embodiments, when the user selects one of the plurality of topic recommendations306, the selected topic is automatically generated in the topic input field304for the user to accept the topic or further edit the topic using the topic input field304, for example, by adding text or changing the topic emoji.

In some embodiments, the asynchronous session interface300further comprises a plurality of actuatable video controls including a record video button308, a share screen button310, and an upload video button312. In some embodiments, the record video button308, when actuated, may toggle to become stop recording button or a pause recording button (not shown). In some embodiments, the video controls308,310, and312are only included on the asynchronous session interface300while the recording user is recording a video, such that the video controls are not displayed or are changed after the video recording is finished. In such cases, the stop video button that replaces record video button308may be selected to stop recording of the video. In some embodiments, the stop video button additionally completes recording of the video. The share screen button310, when selected by the user, switches the video recording from recording video data from the user's camera or webcam to recording video data from the screen of the user's device. In some embodiments, the screen share button310causes the entire screen of the user's device to be recorded. Alternatively, the user may be allowed to select a portion of the screen to be recorded including a portion relating to a specific application running on the user's device.

The upload video button312, when selected, uploads a previously recorded video to the group-based communication system. In some embodiments, the upload video button312automatically posts a previously recorded video as a playable video in the asynchronous multimedia collaboration session. For example, the playable video218as shown inFIG. 2C. In some embodiments, additional video controls are included, for example, a pause video button may be included for temporarily pausing recording of the video such that the user can continue recording later on by pressing a record button. Additionally, in some embodiments, after the video has been recorded a play video button may be included on the asynchronous session interface300such that the recording user can review the recorded video before uploading.

In one example, the asynchronous session interface300is generated for display on a user device of a first user in response to the first user selecting the reply button220from a previously posted video in the asynchronous multimedia collaboration session. The first user may then operate the asynchronous session interface300to initiate recording of a video reply. Accordingly, the video control options are generated for display while the video is being recorded. Here, video and audio data are recorded from the first user's webcam and microphone respectively. The first user may then select the share screen button310to begin recording video data from the first user's screen. For example, the first user may screen share to discuss a specific document or content from another application during the video.

FIG. 4illustrates a method400for generating the collaboration hub within the group-based communication system. In some embodiments, the collaboration hub may be generated on a user-specific basis such that each user of the group-based communication system receives a unique collaboration hub based at least in part on the user's preferences, activity, and associated information within the group-based communication system. For example, the content displayed on the collaboration hub of a first user may be different than the content displayed on the collaboration hub of a second user.

At step402, a list of recommended active users is determined. In some embodiments, the list of recommended active users may be selected from a plurality of users based at least in part on user activity within the group-based communication system. In some embodiments, users may be recommended based on the frequency of interaction between users. For example, if a first user frequently communicates with a second user within the group-based communication system via any of direct messages, public channels, and private channels, the second user may appear on the list of recommended active users on the first user's collaboration hub. In some embodiments, this may further depend on the status of the second user (for example, whether the second user is currently active within the group-based communication system). Additionally, in some embodiments, users may be recommended based at least in part on associated information within the group-based communication system, such as whether two users have similar channel memberships within the group-based communication system. For example, if a first user and a second user are both members in a first channel and a second channel then the second user may be recommended on the first user's collaboration hub based on this association.

At step404, a list of recommended active synchronous multimedia collaboration sessions is determined. In some embodiments, the recommended multimedia collaboration sessions may be selected from a plurality of multimedia collaboration sessions within the group-based communication system. Here, the multimedia collaboration sessions may be recommended based on multiple factors including, for example, whether the session is currently active, whether the user has previously been invited to the session or previously joined the session, if the session is hosted on a channel of which the user is a member, and other session-related information.

At step406, a list of recommended asynchronous multimedia collaboration threads is determined. In some embodiments, the recommended multimedia collaboration threads are selected from a plurality of multimedia collaboration threads within the group-based communication system. In some such embodiments, the multimedia collaboration threads may be selected based on a plurality of factors including, for example, whether the user has been referenced within the thread, whether the user has previously posted a communication in the thread, when the most recent communication was posted within the thread, if the thread is hosted on a channel of which the user is a member, and other thread-related information. In some embodiments, it may be desirable to remove threads from consideration for being recommended after the threads have not been used for an extended duration of time. For example, if no new content has been posted to a thread for over a month, then the thread may be excluded from the collaboration hub. However, it should be understood that the time threshold for recommending the thread may be any suitable period of time, such as (for example) two months, three months, or a year.

At step408, the collaboration hub202is generated for display in a graphical user interface of the group-based communication system. For example, the collaboration hub may be generated for display as a part of user interface200A, as shown inFIG. 2A. It should be understood, however, that in some embodiments, the appearance of the collaboration hub may be altered and that the collaboration hub202may be user-specific with unique content being displayed for each user. Furthermore, the presence and arrangement of the various components of collaboration hub202may vary between embodiments and between users for the same embodiment. In some embodiments, collaboration hub202comprises each of the list of recommended active users206, the list of recommended active synchronous multimedia collaboration sessions208, and the feed of recommended asynchronous multimedia collaboration threads210.

In some such embodiments, each of the lists206,208, and the feed210are displayed based on the significance of each item. For example, if it is determined that one of the recommended sessions is the most significant, then this session may be displayed at the top of the list of recommended active sessions206. Here, the significance of the items may be determined based on the same criteria used to determine the recommended items. For example, if a user is recommended for the list of recommended active users, then the significance of the user will be determined on these same factors. In one example, a first user may appear at the top of the list of recommended active users because the instant user has most recently and frequently communicated with the first user. Similarly, a second user who is communicated with less frequently will appear further down on the list of recommended active users208.

In some embodiments, the collaboration hub202further comprises actuatable controls214for each respective user on the list of recommended active users208that are configured to initiate at least one of a text-based communication session such as a direct message with the respective user or a multimedia communication session with the respective user. In some embodiments, the multimedia communication session may be carried out similarly to the synchronous multimedia collaboration session as described herein.

FIG. 5illustrates a method500for initiating a synchronous multimedia collaboration session within the group-based communication system. At step502, a user input is received to create a synchronous multimedia collaboration session. In some embodiments, the user input may be the user clicking a create session button or start session button (e.g., session join/initiate buttons226,212, and214) within collaboration hub202in the graphical user interface of the group-based communication system. In some embodiments, the user input may additionally be received by the user selecting a shortcut for creating a session. In some embodiments, a session creation shortcut may be included in individual channels such that users are able to initiate sessions without visiting collaboration hub202. Further, in some embodiments, the user input may be received from within a channel of the group-based communication system to associate a channel with the synchronous collaboration session. Alternatively, in some embodiments, the user may choose to associate a channel with the synchronous collaboration session once the session has been created. In some embodiments, a user may start a synchronous collaboration session with one or more users without being associated with any channel.

At step504, the synchronous multimedia collaboration session is initiated within the group-based communication system. Here, initiation of the session may comprise any of generating a session identifier for the session or other session information. At step506, session invitation user interface400is generated for display on the initiating user's user device. The session invitation user interface400comprises a graphical user interface suitable for selecting users to be invited to the initiated session. In some embodiments, the session invitation user interface400may recommend users to be invited based on user activity or other user associations as described herein.

At step508, a user input is received by the session invitation user interface400to invite one or more users to the session. Accordingly, the initiating user may select one or more users from the session invitation user interface400to be invited to the session. At step510, invitations are transmitted to the one or more selected users to invite the users to the session for synchronous multimedia collaboration. Accordingly, the users are able to interact and collaborate in real-time using various forms of media such as video and audio chat, live text communication, and screen sharing.

In some embodiments, the session provides a multimedia data stream to the users participating in the session. The multimedia data stream may comprise video data, audio data, or any combination thereof. For example, in some embodiments, users participating in the session may opt to share video data captured by a desktop webcam of the user's user device or a mobile phone camera, if the user is using a mobile phone to participate in the session. Additionally, users may choose not to share video data and communicate only through audio.

FIG. 6illustrates a method600for facilitating an asynchronous multimedia collaboration session within the group-based communication system. At step602, a user input is received. In some embodiments, the user input may be receiving multimedia content to be posted within the group-based communication system. For example, the user input may be a user posting a playable video within a channel of the group-based communication system. In some embodiments, in addition to the multimedia content an indication to start an asynchronous session is also received from the user. At step604, an asynchronous multimedia collaboration session is initiated within the group-based communication system. In some embodiments, a session topic is received for the asynchronous session, for example, as described above with respect toFIG. 3.

At step606, additional users are notified of the session. In some embodiments, only a select portion of users are notified. For example, embodiments are contemplated where only users who are associated with the asynchronous session are notified. In some embodiments, users may be referenced within the original post of the thread such that they are associated with the session and notified. Further, in some embodiments, users who are channel members where the original session communication was posted are notified. It should be understood that embodiments are contemplated where users who are not channel members may also be notified. For example, non-channel member users who are referenced within a post of the session thread may be notified and granted access to the session thread but not remaining content of the channel.

At step608, replies are received from the additional users, or in some cases, the original user. The replies may be any of video replies, text replies, audio-only replies, file attachments, or other forms of multimedia content posted after the original session content. At step610, an asynchronous thread270is generated for the asynchronous multimedia collaboration session comprising the originally posted communication and the replies. In some embodiments, the asynchronous thread270is generated for display as an expanded thread pane in a user interface such as shown inFIG. 2C. In some embodiments, only a preview portion of the thread is displayed in the channel, such as for example, the originally posted communication, and the thread is expanded based on a user actuating an expand button such as the thread expansion button266, as shown inFIG. 2C.

In some embodiments, asynchronous multimedia collaboration sessions may be desirable when asynchronous communication is required. For example, in some cases users may have scheduling conflicts such that synchronous real-time meetings are not possible. Accordingly, asynchronous multimedia collaboration sessions may be used to provide multimedia communication between users where users are able to interact on their own time without requiring other users to be constantly present.