Webhooks are automated notifications sent to an app when a subscribed event occurs. In the Zoom Marketplace, you can add Event Subscriptions to your apps and receive notifications from Zoom Webhooks.
Webhooks can be understood as a notification sent from one app to another (from the provider to consumer app). Rather than the consumer app sending repeated requests for data to the provider app, the provider sends the consumer app a notification anytime it changes. This provides an efficient way to transmit data in real time, rather than waiting for an app to send and receive data requests through the API.
The Zoom Marketplace allows developers to create Webhook-only apps. These apps cannot make requests for data from Zoom. They can only receive data updates. If your app does not require you to take actions which create, update or delete data in your Zoom account or on behalf of your Users, Webhook-only apps can be a powerful way to automatically receive data from the Zoom platform.
Event Subscriptions are chosen as an app feature to select which data Zoom Webhooks should send as notifications. Event Subscriptions are only able to return all data from a Webhook. Apps cannot selectively request data from a Webhook.
Event Notification Endpoint URL
To use Webhooks, your app must have a public Event notification endpoint URL where Zoom can send (deliver) requests to, typically created using a backend API. Although the endpoint URL must be public, this URL can be secured to only receive data from the Zoom platform.
If you are creating a Chatbot app, Event Subscriptions can be used to receive Webhook data directly in the Zoom Client Chat interface. You can configure your app to receive Chat command notifications targeted to your bot. You will then be able to interact with the user via the Chat interface of the Zoom Client.
If you choose to use Event Subscriptions or Chat Subscriptions in your app, the necessary Scopes will be automatically selected for you. As you choose from additional Scopes, you will see all required scopes to reflect your previously chosen Event or Chat Subscriptions. If you remove an Event or Chat Subscription, any Scopes required only for that feature will automatically be deselected. If you have manually selected a scope that another function also uses, that scope will remain selected even if you remove the feature which requires it.
App Events return Deauthorization notifications for User-managed apps when a User uninstalls or deauthorizes your application. This webhook provides data on each user, their data retention choices, and a unique signature for each event. The header of this POST response will contain your app’s verification token. You can compare the verification token received in that header to that of your app.
Prerequisite: To receive deauthorization notifications, you must have provided a valid deauthorization endpoint URL for your app.
Meeting Events allow your app to stay synchronized with Meeting scheduling, registration, participation, and status. Meeting scheduling events notify when a Meeting has been created, deleted, updated or ended by a user. Meeting registration events notify on any new, approved and canceled participant. Meeting participation events notify when a Participant has joined or left a Meeting. When a Meeting starts, in-meeting events notify when a Participant is waiting for a Host, when Sharing has started or ended, or when any Meeting Alerts occur.
Recording Events allow your app to monitor the status of a recording and receive the recorded files. These events can keep your app updated on a recording’s Registration as well as in-meeting events to notify when a recording has been started, stopped, resumed and deleted. Once a recording has been completed, Recorded Events can notify your app and send transcript information as well as direct URLs to play or download the recorded file.
User Events are used primarily by User-managed apps to notify each time the status of an individual new or existing User has changed. These events return data on the status of each User, including when a User has been created, updated or deleted, when their settings have been updated, and their activation status. User events can be leveraged to automatically update your User base when there is a change, rather than requesting each individual User’s information through API requests.
Webinar Events are used to notify your app on the scheduling and registration of an individual Webinar as well as managed events during the Webinar. Webinar scheduling events notify when a Webinar has been created, deleted, updated or ended by a Host. Webinar registration events notify on any new, approved, or canceled Registrant (also referred to as Participant). When a Webinar starts, in-webinar events notify when a Participant has joined or left, when Sharing has started or ended, or when any Webinar Alerts occur.
Zoom Room Events
Zoom Room Events are used to notify your app on any issues that arise in individual Zoom Rooms. They can be used to monitor the status of each Zoom Room by notifying your app when any Alerts occur.
Account Events are used by Master Accounts to manage Sub Accounts. This webhook notifies when the status of an individual Sub Account changes, allowing Master Account apps to stay synchronized. They notify when an Account (an individual Sub Account) is created, disassociated, updated, or has its settings changed. Changes to Sub Account settings include their In-Meeting permissions and preferences, email notifications, integration choices, and Zoom Room configuration.
Webhook Logs provide a list of all webhook calls made in the last seven days generated by a Webhook-Only app. They can be viewed in our Marketplace by navigating to Manage > Call Logs > Webhook Logs. If you have previously developed Webhook-only apps using our legacy developer.zoom.us site, the most recent 100 webhook call logs within the last seven days for those migrated apps will be displayed under the Legacy Webhook Call Logs tab.
The first place to look for help is on our Developer Forum, where Zoom Marketplace Developers can ask questions for public answers.
If you can’t find the answer in the Developer Forum or your request requires sensitive information to be relayed, please email us at firstname.lastname@example.org.