Zoom Integration Guide

This document serves as a comprehensive guide that outlines the steps required to integrate a Zoom tenant with the NetSpeek platform.


Prerequisites

Before beginning the integration, confirm the following:

  • Zoom Room systems are already enrolled in Zoom and connected to your organization.
  • You have adminstrative access to your Zoom tenant’s portal.
  • You have access to your NetSpeek tenant with permission to manage Integrations.

Enabling Server-to-Server OAuth Authentication for Zoom

Step 1: Enable API Control on Zoom Rooms

  1. Sign in to the Zoom web portal.
  2. Go to:
    Admin ➔ Room Management ➔ Zoom Rooms
  3. Locate the Zoom Room to integrate*.
  4. Click the Settings gear icon.
  5. Scroll to the Devices section and enable Control System API.

Note

The above example shows the Zoom Rooms Control System API being enabled for an individual room, and this configuration may be applicable to small-scale deployments, such as for a single Zoom Room being tested with NetSpeek integration before rolling out to more spaces.

To enable the Control System API, or any other Zoom Rooms capability, more quickly to a large number of rooms it is generally advisable to manage settings at an appropriate level of your Zoom hierarchy (such as a region, building, floor, or other) or to enable the setting at the account level. See Zoom’s documentation on this hierarchy here: https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0063345


Step 2: Create a Server-to-Server OAuth App in Zoom Marketplace

  1. Go to the Zoom App Marketplace.
  2. Sign in with the credentials of an administrator for your Zoom account/tenant.
  3. Select DevelopBuild App.
  4. Choose Server-to-Server OAuth and click Create.
  5. Give the integration (app) a name in the Zoom App MarketPlace, and enter data in sections of the following workflow pages such as developer contact information, company details, and most importantly the Scopes described in Step 3.

Step 3: Assign Required Scopes

To allow NetSpeek to effectively manage Zoom Rooms, devices, and meeting details, specific scopes must be enabled on the Zoom OAuth app. These scopes authorize the required read/write access to perform automation, diagnostics, room control, and reporting functionalities.

Assign the following scopes to the application (you may want to copy-paste the scope text below into the Add Scopes pop-up in the workflow):

Devices

ScopeDescription
device:read:zdm_device:masterRead device
device:read:zdm_device:adminRead device
device:read:list_zdm_devices:adminList devices
device:read:list_zdm_devices:masterList devices
device:read:list_groups:adminList groups
device:read:list_groups:masterList groups

Devices (H.323)

ScopeDescription
h323_device:read:list_devices:adminView H.323 devices
h323_device:update:device:adminUpdate or edit H.323 device
h323_device:delete:device:adminDelete H.323 device
h323_device:write:device:adminAdd new H.323 device

Meeting

ScopeDescription
meeting:read:past_meeting:adminView a past meeting
meeting:read:device:adminView a meeting’s device test result
meeting:read:list_past_instances:adminView past meeting instances
meeting:read:list_meetings:adminView a user’s meetings
meeting:read:invitation:adminView meeting invitation
meeting:read:participant:adminView participants
meeting:update:meeting:adminUpdate a meeting
meeting:delete:meeting:adminDelete a meeting
meeting:update:livestream_status:adminUpdate livestream status
meeting:write:meeting:adminCreate a meeting
meeting:update:status:adminUpdate meeting status
meeting:write:invite_links:adminCreate invite links

Room

ScopeDescription
zoom_rooms:read:list_rooms:adminView Zoom Rooms
zoom_rooms:read:list_devices:adminView Zoom Room devices
zoom_rooms:update:room_controls:adminUpdate room controls
zoom_rooms:update:room_control:adminUpdate specific control

Step 4: Retrieve and Store App Credentials

Copy the following information from your Zoom Server-to-Server OAuth app, to be provided to NetSpeek for communication with your Zoom account, and store it according to your organization’s policies:

  • Account ID
  • Client ID
  • Client Secret

Step 5: Configure Zoom in NetSpeek (Tenant Integration)

  1. In the NetSpeek portal, navigate to Tenant Management (settings cog icon)→ Integrations within your desired tenant (you may have access to multiple tenants / sub-tenants – if so, ensure you are configuring the integration in the proper place).
  2. Click “+ Add Integration”
  3. Enter an Integration Name (as an example format, Zoom – YourOrgName - YourTenantID).
  4. Set Integration Type = Zoom Integration
  5. (Optional) Enter an Integration description, with details other NetSpeek users may need to know.
  6. Set Integration State = Active.
  7. Choose an authentication mode – this guide describes the “Server to Server (your internal Zoom app)” method.
    • Enter the Account ID, Client ID, and Client Secret information recorded in the prior step.
  8. Click Create new integration / Update integration.
    • Note that this interface can test the availability of application scopes – save the configuration and re-open it to view the results and to see any missing scopes. (An image showing an example test result is below.)
Example configuration – required scopes shown but not tested yet
Use the “Test Connection” function to validate if any expected application scopes are missing

Step 6. Add Device to NetSpeek Room Canvas

  1. In the NetSpeek Console, navigate to Room Management
  2. Select the room you wish to add your Zoom Room system to
  3. Click Launch Room Canvas
  4. Click Add device to room
  5. Choose your desired device from the manufacturer → device model list.
  6. Configure the appropriate values, and in the “Integrations” section, select the previously created Zoom integration.
    • Use the “Room Name” from the Zoom tenant.

Note

As Zoom is a Unified Communications platform integration with NetSpeek, it is associated on the Canvas with hardware devices manufactured by other organizations, as shown in the example image above. Typically the device will have multiple integrations simultaneously – the hardware manufacturer’s integration method(s), and an additional integration for Zoom as the UC platform.


Verification

Once the relevant settings described above are configured, to validate the integration:

  • Select a Zoom Room device in the NetSpeek console, open the Device Actions Tab, and select an available device action. It is generally advisable to test by dispatching a non-intrusive command such as a Get Zoom Room Status.
  • On the device, observe the selected action occurring.

Note

Ensure the command used for verification testing is a Zoom Room command using the Zoom integration, and not a hardware command using the hardware vendor’s integration.

Support

If you run into any issues during onboarding or have questions, contact NetSpeek Support at support@netspeek.com.