# Zoom

Zoom makes video and web conferencing frictionless.

## Overview

The Zoom connector on Tray allows you to manage and update user information and content for the Zoom account. It enables managing operations at the personal as well as organizational level.
\*\*Note that the Zoom connector requires administrative-level permissions. \*\*

## API Information

The Zoom connector has the following Base URL: **<https://api.zoom.us/v2>**. More information can be found on their main [API documentation (v2)](https://marketplace.zoom.us/docs/api-reference/introduction) site. Details regarding their API limitations can be found [here](https://developers.zoom.us/docs/api/rest/rate-limits/).

## Authentication

Before you start using the Zoom connector, you will have to create the authentication.
To do so, with the Zoom connector step highlighted, in the properties panel on the right, click the 'Authenticate' tab and 'Add new authentication'.
![zoom-auth](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-488b790d_zoom-auth.png)

### Version 3.0+

**Note that if you are using your own OAuth application, that application must have the `user:read:admin` scope.**
The first page will ask you to name your authentication.
In the next step, it asks for your 'Client ID' and 'Client secret'.
![zoom-auth-credentials-2](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-83b3987c_zoom-auth-credentials-2.png)
To find the above-asked credentials, go to the [Zoom Marketplace](https://marketplace.zoom.us/) site. Click 'Manage' from the top right corner of the screen.
![zoom-auth-manage-3](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-dd561dee_zoom-auth-manage-3.png)
Select your app and then click the 'App Credentials' tab from the left panel.
Use the values for the 'Client ID' and 'Client secret' available on this page.
![zoom-auth-marketplace-credentialss-4](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-8a9aa3ea_zoom-auth-marketplace-credentialss-4.png)
Once done, click the 'Create authentication' button.

### Version 2.0 and earlier

The first page will ask you to name your authentication. In the next step, it asks to select the 'Environment' of your choice.
![zoom-auth-environment-5](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-09a0fcfa_zoom-auth-environment-5.png)
Once done, click the 'Create authentication' button. On doing so, you will be prompted to sign in to your Zoom account.
![zoom-auth-login-6](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-0e10b405_zoom-auth-login-6.png)

## Zoom trigger

If you wish your workflow to be kicked off by a particular action in Zoom, you can use the Zoom Trigger.
The Zoom trigger allows you to receive notifications and trigger workflows when given events occur associated with the selected trigger operation.

> **Warning:** **IMPORTANT!**: The zoom trigger **does not activate for Webinars, unless the user has an Enterprise Tier Account**. Lower tier accounts cannot use this trigger for Webinars.

### Trigger operation available:

* Webhook
  Instead of using a connector, choose Zoom as your trigger at the 'Create new workflow' section and wait to be redirected to your new workflow.
  ![select-zoom-trigger](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-b1e4ad1c_select-trigger-01.png)
  Use the instructions above to authenticate your trigger, and select from the options available the event you want your trigger to listen to, in order to set off the workflow itself:
  ![enable-workflow](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-2c348768_enable-workflow-01.png)

## Example 1 - List meetings

To use this operation, select the 'List meetings' operation in the input panel. Select the user ID from the drop down menu. You also have the option to select the meeting type to filter the meetings. Once you have provided the input fields as required click the 'Run workflow' button.
![list-meetings](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-77887c37_meetings.png)

## Example 2 - Get webinar report

To use this operation, select the 'Get webinar report' operation in the input panel. This operation allows you to retrieve a detail report for a specific webinar. Add the webinar ID that you would like to retrieve and click 'Run workflow' button. You can find a list of webinar IDs by using the 'List webinar operation'.
![get-webinar](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-f2c2b93a_webinar.png)

## Uninstalling the Tray Addon

Uninstalling the Tray addon will be done from your Zoom dashboard.
To do this first login to your [ Zoom Account](https://zoom.us/signin) and navigate to the [ Zoom App Marketplace](https://marketplace.zoom.us/) .
Click 'Manage' and select 'Installed Apps'. Find the Tray application and press the 'Uninstall' button.
![zoom-uninstall](https://tray.ai/documentation/images/connectors/service/zoom/26316fc2-f5d1c200_zoom-uninstall.png)

## Notes for Embedded customers

### Custom OAuth apps

You can create a custom OAuth app in order to [White-label](https://tray.ai/documentation/platform/embedded/advanced-features/whitelabelling/custom-oauth-apps) your authentications dialog in during your integrations.
Simply follow the steps outlined below:

### 1 - Log in to Zoom developer’s account and select ‘Build App’

From the **Zoom Marketplace**, click on the ‘Develop’ dropdown in the upper right, and select ‘Build App’.
![zoom oauth developer build app](https://tray.ai/documentation/images/connectors/service/zoom/2uJBlAdA5c3QqaKYFSO7Ta_image9.png)

### 2 - Select OAuth

Click ‘Create’ for OAuth app type:
![zoom app types create oauth](https://tray.ai/documentation/images/connectors/service/zoom/4BidrluufiE3egSxSKkKkV_image3.png)

### 3 - Enter App name and type

![zoom oauth app details](https://tray.ai/documentation/images/connectors/service/zoom/1CjbuTjjIfK5higy7Ukj3s_image7.png)
The ‘App Name’ is what your users will see when they authenticate into Zoom.
**Account-Level** apps affect all users within an organization’s Zoom account.
**User-Managed** apps are authenticated by individual users, and their impact is limited to the user.
On this page, you may also select whether to make the app visible on the Zoom marketplace.
When you are ready, click ‘Create’.

### 4 - Copy the Client ID & Secret

Copy the Client ID and Client Secret.
![Zoom oauth app creds](https://tray.ai/documentation/images/connectors/service/zoom/5y0o3xmG5ZJwF6Gdqay8Fk_image10.png)
Save them in a secure location; once you have finished configuring your OAuth app, you will enter these values into Tray in order to establish the connection.

### 5 - Add redirect URL

Further down the page, you will find ‘**Redirect URL for OAuth**’ and ‘**Add allow lists’**.
Enter the following URL in both of these fields: [****](https://auth.tray.io/oauth2/token)
![zoom oauth allow list](https://tray.ai/documentation/images/connectors/service/zoom/2mG9IuLotwc285eIS83iGG_image14.png)
If you need a [white-labelled solution](https://tray.ai/documentation/platform/embedded/advanced-features/whitelabelling/introduction), you should add second URL in the allow list: `<Your_org_name_here>.integration-authentication.com/oauth2/token`
Example: `acme.integration-authentication.com/oauth2/token`
Once done, Click ‘Continue’.

### 6 - Enter app info

This page allows you to enter various pieces of information that will be displayed to users who authenticate using this OAuth app, or search for it on the Zoom Marketplace (if you enabled Marketplace visibility).
![zoom oauth app info page](https://tray.ai/documentation/images/connectors/service/zoom/4l86wpNDSSQ7A5oG9CjFdl_image1.png)
Some of these fields are labeled ‘Optional’. All other fields are required. When you are ready, click ‘Continue’.

### 7 - (Optional) Copy secret token to subscribe to events

On the ‘Feature’ page, you can enable and add Event Subscriptions.
These are webhook listener events which can be used to trigger your Tray workflows in real time as a result of specific actions within Zoom (e.g. when a meeting starts or ends).
If your workflows do not trigger in this way, Event Subscriptions can remain disabled.

> **Info:** If you choose to enable Event Subscriptions, copy the ‘Secret Token’ and save it in a secure location.
> ![zoom secret token event subs](https://tray.ai/documentation/images/connectors/service/zoom/7JKLrGTIRBIeLJSPEA9TB0_image13.png)
> If Zoom gives you the option to copy a ‘Verification Token’, do not! This token is being deprecated.
> This token is required in order to validate Event HTTP requests within Tray.

### 8 - (optional) Add events

If you have enabled Event Subscriptions, enter your webhook URL in the ‘**Event notification endpoint URL**’ field.
![zoom event subscriptions](https://tray.ai/documentation/images/connectors/service/zoom/4L9VdsTvkr0rmjku5xNHrj_image6.png)
This URL can be found by right clicking the webhook trigger in your Tray workflow and selecting ‘[Copy public URL](https://tray.ai/documentation/connectors/trigger/webhook-trigger/#1---locate-the-public-url)’.
Click the ‘**Add Events**’ button to select the specific events you would like to be able to listen for.

> **Warning:** If you are an embedded customer and want to process events for your end users' accounts, you need to create a Webhook Proxy that can route events for all end users through a single workflow.
> Reach out to your customer success manager for implementation guidance.

When you are ready, click ‘Continue’.

### 9 - Add Scopes

On this page, you will select scopes for your app. Select ‘Add Scopes’
![image5](https://tray.ai/documentation/images/connectors/service/zoom/5j7qg7v3OKB1VX7WcQtWTn_image5.png)

You must select scopes which will allow your workflow to function. For instance, if your workflow reads information about a user’s meetings, you should select the scope labeled **‘View your meetings’** (described as `meeting:read` in Zoom’s API documentation).
![zoom oauth list of scopes](https://tray.ai/documentation/images/connectors/service/zoom/3TTI6VetpCybk1srSWCpfV_image8.png)
When you have finished adding scopes, click ‘Done’. Then, click ‘Continue’.

### 10 - Activate your App

![Activate zoom oauth app](https://tray.ai/documentation/images/connectors/service/zoom/3x8IDlv2nhWB0rc9lX6q7b_image2.png)
Click ‘Add’. If you are a Zoom admin within your organization’s account, authenticating on the next screen will complete this process.
If you are not an admin, you will be brought to a screen where you can click ‘Request Pre-Approval’ to ping your admin for review.

> **Info:** If you requested that it be added to the Zoom marketplace, this will require a formal review by Zoom. Otherwise, this only adds it for your organization’s usage.

### 11 - Add new auth in Tray

Click the blue ‘**New Authentication**’ button within the Auth tab of Tray’s Zoom connector. Then, name your authentication, choose the workspace to store it in, and click ‘**Next step**’.
![zoom new authentication tray workflow](https://tray.ai/documentation/images/connectors/service/zoom/1nS4wV7jXqh4s6B1cdox8N_image4.png)

### 12 - Add name and description of your auth app.

![use own oauth zoom](https://tray.ai/documentation/images/connectors/service/zoom/2E5ojnH72FzyPA3mkSAKMY_image12.png)
Click 'Use own OAuth app' and add the name and description of your auth app.
![add-oauth-app-name-and-description](https://tray.ai/documentation/images/connectors/service/zoom/2GnkyMf6cFo2O7zFxcypKk_add-oauth-app-name-and-description.png)

### 13 - Add the Client ID and Client Secret

Enter the details that you copied in step 4.
App Key -> Client ID
App Secret -> Client Secret
![Zoom oauth app key app secret tray](https://tray.ai/documentation/images/connectors/service/zoom/2AV4H6IZc9hZnSq2Tb29dk_image15.png)

> **Info:** If you enabled Event Subscriptions, enter your `Secret Token` that you copied in **step 7** in the ‘**Verification Token**’ field.
> Zoom requires this as an added layer of security.

### 14 - Finish authentication

Click on on `**Create auth app**` and login to zoom through the auth dialog popup You will see your own branding on the auth dialog.

### Scopes

Please be aware of the following points when dealing with scopes while using an Embedded account:

* **The scopes you use for your source / master workflow are the scopes that your end users will have when creating the auth**.
* You can also override scopes in the solution editor. This will allow you to specify that **only a subset of the scopes set in the master workflow are available to your End Users**. Please reach out to your Tray technical support if you wish to activate this feature.
  ![zoom override auth scopes](https://tray.ai/documentation/images/connectors/service/zoom/jUMSMcHpUguU9e1bwSCaf_zoom%20override%20auth%20scopes.png)
* When creating an OAuth app in the Zoom UI, you shouldn't set granular scopes. This way, you would have to create a custom OAuth app for every integration that you create for this service to enforce scope limitation.
  * A better way would be to use the standard method of **setting the scopes when you are creating an authentication in your source / master workflow for each Solution**. This way you can have **multiple integrations that use the same custom OAuth app** and control them within Tray.
