Note: As our world comes together to slow the spread of COVID-19 pandemic, the Zoom Support Center has continued to operate 24x7 globally to support you. Please see the updated Support Guidelines during these unprecedented times.




Archiving Meeting and Webinar data Follow

Overview

Zoom’s Meeting and Webinar Archiving solution will allow account administrators to set up an automated mechanism to collect and archive meeting data to a 3rd party platform of their choice and hence, satisfy FINRA and/ or other compliance requirements. Zoom’s approach to building this solution is platform-agnostic, allowing customers to archive to any 3rd party platform with a defined endpoint.

Unlike Cloud Recording, which saves video, audio, and chat/transcription files to the Zoom Cloud, the Archiving API collects webinar and meeting data/metadata necessary for certain compliance guidelines, as well as the audio, video, and chat files if set in the API call.

This article covers:

Prerequisites

  • Contact support to enable meeting archiving for your account
  • Need a 3rd party environment to send content for archiving (i.e. Zoom will not store the archiving content)
  • Need a marketplace application (could be newly built or used from existing applications)
  • Zoom desktop client
    • Windows: 5.4.0 or higher
    • macOS: 5.4.0 or higher
    • Linux: 5.4.0 or higher
  • Zoom mobile app
    • Android: 5.4.0 or higher
    • iOS: 5.4.0 or higher

Scope

This product only covers archiving content from Zoom Meetings and Zoom Webinars (i.e. content in Zoom Phone, Rooms, and other products will not be eligible for archiving through this solution).

Note: Currently, Breakout Rooms, Meeting Reactions, Closed Captioning, Q&A, and Zoom Rooms are not supported for archiving. 

Scope details for Zoom Meetings

Meetings with enhanced encryption will be supported for archiving but end-to-end encrypted meetings are not supported at the moment.

The following meeting information will be available to archive:

  • Meeting metadata (required) - This includes the topic, date, timezone, meeting duration, hostname, meeting ID, unique ID (UUID), and passcode.
  • In-meeting chat messages: The display name of the user, email address of the user (only if a user is signed in), tag to differentiate public vs. direct chat, message string, and timestamp.
  • Polling: Questions and answers, responder name for each answer, responder email address for each answer.
  • Audio/Video - Separate audio and video files.
  • Whiteboard and Annotation - Available as part of the video file.

Scope details for Zoom Webinars

The following webinar information will be available to archive:

  • Webinar metadata (required) - This includes the topic, date, timezone, meeting duration, hostname, meeting ID, unique ID (UUID), and passcode.
  • In-webinar chat messages - The display name of the user, email address of the user (only if signed in), and public chats (for attendees and panelists).
  • Audio/Video - Separate audio and video files.
  • Whiteboard and Annotation - Available as part of the video file.

Scope details for Zoom Meetings and Webinars

Only meetings and webinars hosted by users marked for compliance will be archived. This means, if these users joined as participants unless the host of the meeting/webinar is also marked for archiving, the user’s content will not be archived.

Note about platform dependency:

For users on the old client, the archiving agent will not be able to collect private in-meeting chat messages to and from that client. All other data can be collected. Additionally, users on an old client will not see an icon indicating that the meeting/ webinar is being archived. For these reasons, we recommend all users in the meeting to be on the Zoom client version 5.4.0 or higher.

Procedure for enablement

  1. Start a marketplace application and obtain an application ID.
    Note: Skip this step if you are using an existing application on the marketplace.
  2. Contact Zoom Support to:
    • Enable Meeting Archiving for your account to ensure archiving features can be used. To do this, contact Support, and request "Meeting and Webinar Archiving" to be enabled for your account. When making your request to enable the feature, you will also need to let Support know the storage time for archived data. By default, meeting and webinar archive data will be saved for 7 days before deletion but can be requested up to a duration of30 days.
    • Provide marketplace application ID to ensure your application can subscribe to webhook event notifications.
      Note: this is only required if you are building the application. The purpose of this step is to ensure that the API’s are not used by bad actors.
  3. Complete marketplace application with the API information provided.
    Note: Skip this step if you are using an existing application on the marketplace.
    • Input the endpoints of 3rd party system (i.e. if the 3rd party environment is based on an SMTP server, configure the server IP address and the domain email). We recommend trying with a test instance first and then migrate that to a production instance.
    • Enter the access details of the 3rd party archiving instance (i.e. for the SMTP server example, this would be credentialed for accessing the SMTP instance).
    • Set up a dashboard to track sending details of the content.
  4. Publish the marketplace application as private to your organization or public to all users.
    Note: If you are a 3rd party developer looking to expose this application for more customers to adopt, you can make the application public. If you are a Zoom customer building this application for your own use, you can make the application private to your organization. 

Overall flow

Zoom’s solution of Meeting Archiving has three key components:

  • Marketplace application - This is created by a developer (either the Zoom customer or a 3rd party developer) and is configured by the account administrator. The purpose of this application is to connect Zoom and the 3rd party archiving platform. In this application, customers are able to specify the content they need for archival purposes, users under the need for compliance archiving, and the configuration endpoint. If integration with a 3rd party platform exists on our marketplace, this can be used for archiving or admins can create an app following the API information shown later in this article. Once the archiving configuration is done, this application can also be used to display a basic dashboard that shows whether the archiving activity was successful from Zoom's side. This is useful for basic reconciliation efforts.
  • Archival agent - This component will be responsible for collecting and forwarding the content to the 3rd party endpoint, as defined in the marketplace application. With the current implementation, this agent is hosted within the Zoom servers and it can be considered like a bot participant joining the meeting. The agent’s presence is made clear in the client user interface with an archiving icon.  
    Note: Currently the VDI (Virtual Desktop Infrastructure) client and Zoom Rooms client will not display the archival icon.
  • 3rd party platform - This can be any vendor that has an open API ecosystem to ingest the meeting archiving content appropriately. This could be in-house solutions created by customers too. In short, as long as the platform has a public endpoint, it can be configured through the marketplace app.
    Note: This solution is generic in nature to ensure that a variety of 3rd party platforms can be considered for archiving use cases.

Relationship between these three components:

  1. Configure the marketplace application to connect with 3rd party platform.
    Note: Make sure that the application is subscribed to the recording.archive_files_completed webhook.
  2. Archival agent joins meetings and collects information per configuration.
  3. After the meeting ends, the archival agent notifies the marketplace application that archiving is complete.
  4. Marketplace application will retrieve the information to be archived.
  5. Marketplace application will send this content to the 3rd party platform (note: the file format for sending this information can be defined by the developer. The standard file formats from the Zoom platform can also be used - for example, in-meeting chat messages will be in .txt file and video file will be in .mp4).
  6. (Optional) Marketplace application updates its’ dashboard indicating the information has been sent to the 3rd party platform (only if a dashboard is created by the developer).
  7. 3rd party platform ingests this information and applies business logic to handle the data.
    Note: Zoom is not involved in this step.

API information

This section shows a brief description for the marketplace application developers (in this case, either the customer or the 3rd party archiving vendor themselves) should construct the meeting archiving application.

For this section, we will assume the developer already has the concept of Zoom marketplace application development. Please refer to this document for context about Zoom API and webhook subscriptions.

There are 3 required APIs that are specific to meeting archiving. Additionally, the developer can leverage other open Zoom API to add business logic or features to this application.

Note: these APIs are not published on our marketplace to ensure access is only provided for customers and developers who are intending to use these APIs for archiving intent only. Please contact Zoom support with your application ID so that we can allow access to this API.

Summary

  • For specifying the meeting/webinar archiving details, the application should call API: /v2/accounts/{accountId}/settings.
  • For polling information, the application should call API: /past_meetings/{meetingId}/polls.
  • For video, audio, and in-meeting chat, the application should call webhook event: recording.archive_files_completed.

Archiving content

  • /v2/accounts/{accountId}/settings - Call this API to get and set the meeting/webinar archiving details for the account. The “archiving_type” field will support the choice of archiving only meetings, only webinars, or meetings and webinars for the source of content to be archived. See the data model below:
    {
       "recording": {
           ...
           "archive":{
               "enable":"boolean",
               "settings":{
                   "chat_file":"boolean",
                   "audio_file":"boolean",
                   "video_file":"boolean"
      "archiving_type":"number" [0: meeting, 1: webinar, 2: meeting and webinar]
               }
           }
       }
    }
  • /past_meetings/{meetingId}/polls - Call the polling API to download the polling results.

Meeting metadata

  • recording.archive_files_completed - The marketplace application must be configured to subscribe to this event. This can be done when the application is set up through the marketplace portal user interface. The payload structure is shown below:
      "event": "string",
     "payload": {
       "account_id": "string",
       "object": {
         "id": "string",
         "uuid": "string",
         "host_id": "string",
         "topic": "string",
         "type": "integer",
         "start_time": "string",
         "timezone": "string",
         "duration": "integer",
         "share_url": "string",
         "total_size": "integer",
         "recording_count": "integer",
         "host_email": "string",
         "password": "string",
         "archive_files": [
           {
             "id": "string",
             "file_type": "string",
             "file_size": "number",
             "download_url": "string",
             "status": "string",
             "recording_type": "string"
           }
         ]
       }
     }
    }

User interface

The developer needs to provide a configuration web page in the marketplace application for the administrator to set up the endpoints, provide access credentials, specify the content marked for archiving, and define the scope (i.e. for specific user groups or all users). The video/ audio/ in-meeting chat files need to be submitted through the API and the other options should be stored by the application locally on the host service.

Configuration page

Note: This is required for setup and utilizing archiving features/API.

Developers can use this page to allow administrators on Zoom to specify the exact content to be archived for their account. The meeting metadata will be collected for all applications configured and it is good to make this clear on the configuration page. For the other options, it is recommended to provide a selection to the administrator so that the relevant information can be marked for archiving.

Note: Whiteboard drawings and annotations are available through the video file itself. If this is of importance, it could be pointed out through tooltips.

Dashboard page

Note: This is not required for setup, however, Zoom recommends that developers add a dashboard for data reconciliation purposes.

Once the webhook notification is received by the marketplace application, the application can store the meeting metadata and can show a data transfer status. This reflects the result of sending the content marked for archiving to the 3rd party platform. The meeting metadata and the status will be maintained by the marketplace application itself.

In order to create a dashboard, the developer will need to prepare a webpage in the marketplace application (not maintained by Zoom). On this web page, developers can display any content that they desire for a dashboard (i.e. a table showing a record of all meetings and data transfer status of ‘success’ or ‘fail’).

Disabling the Archiving feature

The Archiving API can be disabled, by removing the Marketplace app or custom app built within your Marketplace account. The Archiving feature can also be disabled account-wide, by contacting Support and requesting to have "Meeting and Webinar Archiving" disabled.