Collaborate Mode

The goal of the Collaborate mode for Zoom apps is to elevate the current screen-sharing model to be interactive from an end-user perspective by leveraging Zoom Apps.

Collaborate mode enables Zoom App users to instantly collaborate with other meeting participants by seamlessly bringing them together within the same app. The experience is progressively enhanced, depending on the role and permissions available to the participants. When participants cannot join Collaborate mode due to account restrictions, the experience gracefully degrades to a screen-share of the initiator's app view.

For games, developers can choose to rename the CTA and associated copy to "Play Together" by toggling the "Play Together" mode in the app build flow.

Getting started with Collaborate mode

Enable Collaborate mode in the app build flow by toggling on Collaborate mode under Features. This change requires resubmission for app review. Additionally, the app may want to use following APIs and Events when building a collaborative experience:

  • getRunningContext()
  • startCollaborate()
  • endCollaborate()
  • leaveCollaborate()
  • joinCollaborate()
  • onCollaborateChange

For more information, see Zoom Apps SDK Reference.

Best practices

Your app may have an experience that necessitates collaborators be in a shared state, page or object within the app. As an example, the shared state can be an object that is a page in a document. Keeping collaborators on this page, while personalizing permissions for each individual participant may help facilitate a seamless collaborative experience in the meeting.

To facilitate this:

  1. When a user initiates Collaborate mode, leverage onCollaborateChange to retrieve the Collaborate UUID.
  2. When participants join Collaborate mode, the Collaborate UUID is included in the context header. You can use the Collaborate UUID to fetch the state from your app backend and render within your app.

Examples of shared objects

  • A slide-sharing application that allows users to navigate between slides, but always displays the presenter's active slide visibly for all collaborators.
  • A document editor that keeps all participants within the same document and highlights the author's current position.
  • A game that sends participants into an active gaming session as the focus for the "Play Together" experience.

Scenarios to consider

  • Before initiating Collaborate mode, a user may have opened the app and navigated to a page, state or object. In this scenario, the app may need to open that particular state for the other collaborators, including collaborators who may join the meeting at a later point.
  • After initiating Collaborate mode, a user may navigate within the app, and the app may want to keep all collaborators on the same shared page, state or object.
  • Users may need to change to a different page, state or object for themselves and for other collaborators. The app will need to design for and facilitate this.
  • Participants who join the meeting after Collaborate mode was invoked will see a prompt to join if there is a Collaborate session in progress. The application may need to land these new participants on the same shared page, state or object.

Permissions

When working with shared pages, states or objects within an app, access permissions need to be managed and facilitated by apps in a user-friendly way.

When screen-sharing on Zoom, users trust other meeting participants enough to allow them to view their screen. Similarly, users initiating Collaborate mode trust other meeting participants enough to collaborate using a Zoom App. Users may expect other meeting participants to be able to instantly and seamlessly collaborate with the app, and this could include a particular page, state or object within the app.

Further, users may join meeting as unauthenticated users, not signed into Zoom. To allow them to participate, the app needs to support Guest Mode. Guest mode allows such users to instantly open the app, and progressively enhance the experience with permissions, authentication and OAuth.

Therefore, for apps that have shared objects, it is recommended that the app allows access to all collaborators in a seamless manner. The app can use app context header to get the verified meeting id or collaboration id and use it to securely identify users within the same meeting.

Depending on the app's design and permissions model, the app may want to:

  • Use "everyone with the link" model and associate the link to the meeting id. Further, the app may choose to tokenize this link to be valid for that meeting only, and expire when the meeting ends.
  • Add a new permission level for "everyone within the meeting" that ends access when the meeting ends.
  • Grant permission to each collaborator automatically.
  • Automatically prompt the person who initiates Collaborate mode to choose permissions at the beginning of the collaboration or when new participants join.

Design Resources

To facilitate your app design and development, we provide design resources on Zoom Community on Figma that describe and illustrate Collaborate mode concepts and screen flows. You can use them to mock up and work through your app designs prior to building your app.