Zoom

Zoom is a cloud-based communications platform for video meetings, webinars, team chat, online collaboration, and recordings.

Data integration: Skyvia supports importing data to and from Zoom, exporting Zoom data to CSV files, replicating Zoom data to relational databases, and synchronizing Zoom data with other cloud apps and relational databases.

Backup: Skyvia Backup does not support Zoom.

Query: Skyvia Query supports Zoom.

Establishing Connection

The Zoom connector uses Server-to-Server authentication — you provide the credentials of a Server-to-Server app created in your Zoom account.

To create a connection to Zoom, provide the required credentials.

Getting Credentials for Server-to-Server Authentication

To obtain the Client ID, Client Secret, and Account ID, create a Server-to-Server app in your Zoom account:

  1. Open the Zoom App Marketplace and sign in. In the menu, click Developer.

    Zoom App Marketplace

  2. Open the Develop menu and click Build App.

    Zoom Marketplace Developer Console

  3. Create an app of the Server-to-Server OAuth type.

  4. Copy the Account ID, Client ID, and Client Secret from the App Credentials section.

  5. Open the Scopes tab, click + Add Scopes, and add all the scopes required for the objects you plan to work with.

    Zoom Scopes

You can find which scopes are required for a specific object in the Granular Scopes section of the Zoom API documentation.

Creating Server-to-Server Connection

To create a Server-to-Server connection to Zoom, perform the following steps:

Zoom Server-to-Server connection editor

  1. Select the Server-to-Server authentication type.
  2. Enter the Client ID, Client Secret, and Account ID.
  3. Click Create Connection.

Additional Connection Parameters

Account Plan

Select your Zoom account plan: Free, Pro, or Business+. Select Business+ for Business, Education, Enterprise, and Partner accounts. Depending on the selected plan, different Zoom API rate limits apply.

Split Tracking Fields

Select this checkbox to represent the tracking fields of the Meetings object as separate columns. Reading the tracking field metadata from Zoom requires administrative permissions.

Suppress Extended Requests

For some objects, the Zoom API returns only part of the fields when querying multiple records, and some objects expose binary content in the Content field. To read such fields and binary content, Skyvia performs additional requests for each record. This can decrease performance and significantly increase the number of API calls.

Select the Suppress Extended Requests checkbox to skip these additional requests. In this case, the affected fields and the Content binary field return empty values even if they have values in Zoom.

Disconnecting Zoom from Skyvia

If you don't want Skyvia to access your Zoom data anymore, remove the Skyvia app from your Zoom account and delete the Zoom connection and all the related objects on Skyvia.

Removing the Skyvia app from your Zoom account invalidates the access token stored in the OAuth 2.0 connection, so Skyvia can't connect to your Zoom data until you edit the connection and sign in again. Deleting the connection and all the related objects on Skyvia ensures that no traces of data are stored on Skyvia, for example, in error or success logs.

To remove the Skyvia app from your Zoom account, see the How to remove an app from Zoom App Marketplace article.

For a Server-to-Server connection, delete or disable the corresponding Server-to-Server app in the Zoom App Marketplace instead.

See our User Interface Basics to learn how to delete the connection and the related objects from Skyvia.

Connector Specifics

Supported Zoom API

The connector fully supports the following Zoom API areas: Clips, Whiteboard, and Tasks.

Skyvia partially supports the following objects:

  • Meetings: Supported except for Devices, H323 Devices, In-Meeting Features, Live Streaming, PAC, SIP Phone, and TSP.
  • Chat: Supported except for Legal Hold.
  • Scheduler: Supported except for Routing Forms.
  • Users: Supported except for Divisions.
  • Accounts: Dashboard, Roles, and Survey Management are supported.
  • Zoom Docs: Available through stored procedures.

The following API areas are not supported: Phone, Rooms, Mail, Calendar, Conference Room Connector, Chatbot, AI Companion, QSS, SCIM2, and Business Services.

Data availability depends on your Zoom account plan, enabled products, and the scopes granted to the app. Some objects and operations require administrative permissions or account-level scopes.

Object Peculiarities

MeetingRegistrants

After you create a registrant or when you list registrants, the Zoom API may not return all the fields of the MeetingRegistrants records.

WhiteboardCollaborators

When you add an external user (an email outside your Zoom account) to the WhiteboardCollaborators object, the Zoom API may behave unpredictably. We recommend adding only users within your Zoom account.

WhiteboardProjects

The WhiteboardProjects object may have a nested structure of projects and subprojects. When you query WhiteboardProjects directly, Skyvia reads the subprojects recursively and returns both root and nested projects. When WhiteboardProjects is used as a parent object for other objects, Skyvia reads only the root projects.

Chat Sessions and Messages

When reading the ChatSessions object, Skyvia uses a default start date of 2000-01-01, which allows reading chat data without splitting it into separate time intervals. To narrow the data and reduce the number of API calls, filter the ChatContactMessages, ChatExternalContactMessages, and ChatChannelMessages objects by the CreatedDate field.

Binary Content Fields

The following objects expose binary content in the Content field of the Binary type. Skyvia downloads this content with additional requests.

Object Description
RecordingFiles Cloud recording files. The FileName field already includes the file extension.
ChatEmojis Custom emoji files of Zoom Team Chat. Supported extensions are png, jpg, jpeg, and gif.
Clips Zoom Clips files.
TaskAttachments Zoom Tasks attachments. The FileName field already includes the file extension.

If the Suppress Extended Requests checkbox is selected, Skyvia doesn't download the binary content, and the Content field returns an empty value.

Nested Objects

The following Zoom objects store complex structured data in their fields:

Object Field
Users PhoneNumbers, LoginTypes, GroupIds, DivisionIds, ImGroupIds, CustomAttributes, LicenseInfoList
Roles Privileges, PrivilegeScopes
Meetings Occurrences, SettingsAdditionalDataCenterRegions, SettingsApprovedOrDeniedCountriesOrRegionsApprovedList, SettingsApprovedOrDeniedCountriesOrRegionsDeniedList, SettingsAuthenticationException, SettingsAutoAddRecordingToVideoManagementChannels, SettingsBreakoutRoomRooms, SettingsCustomKeys, SettingsGlobalDialInCountries, SettingsGlobalDialInNumbers, SettingsLanguageInterpretationInterpreters, SettingsSignLanguageInterpretationInterpreters, MeetingInvitees, SettingsResources, TrackingFields
MeetingRegistrants CustomQuestions
MeetingRegistrationQuestions Questions, CustomQuestions
MeetingInvitations SipLinks
MeetingPolls Questions
PastMeetingQA QuestionDetails
PastMeetingPolls QuestionDetails
Surveys, SurveyInstances SurveyQuestions
SurveyAnswers Questions
Webinars Occurrences, SettingsAdditionalDataCenterRegions, SettingsGlobalDialInCountries, SettingsGlobalDialInNumbers, SettingsLanguageInterpretationInterpreters, SettingsSignLanguageInterpretationInterpreters, TrackingFields
WebinarRegistrants, PastWebinarAbsentees CustomQuestions
WebinarRegistrationQuestions Questions, CustomQuestions
WebinarPolls, WebinarSurvey Questions
WebinarBranding VirtualBackgrounds, NameTags
PastWebinarQA, PastWebinarPolls QuestionDetails
Recordings RecordingFiles
RecordingRegistrants CustomQuestions
RecordingRegistrationQuestions Questions, CustomQuestions
ReportMeetingsHistory, ReportWebinarsHistory CustomFields, TrackingFields
ReportMeetings, ReportWebinars CustomKeys
ReportMeetingPolls, ReportMeetingQA, ReportWebinarPolls, ReportWebinarQA QuestionDetails
ReportMeetingSurveys, ReportWebinarSurveys SurveyAnswers
ChatContacts DirectNumbers, PhoneNumbers
ChatContactMessages, ChatExternalContactMessages, ChatChannelMessages Files, RichText, Reactions, AtItems, InteractiveCards
ChatContactScheduledMessages, ChatExternalContactScheduledMessages, ChatChannelScheduledMessages Files, RichText, AtItems
ChannelActivityLogs MembersMemberList
ReportChatSessions MemberEmails
Schedules AvailabilityRules, CustomFields, Segments, SegmentsRecurrenceSun, SegmentsRecurrenceMon, SegmentsRecurrenceTue, SegmentsRecurrenceWed, SegmentsRecurrenceThu, SegmentsRecurrenceFri, SegmentsRecurrenceSat
SchedulerAvailability SegmentsRecurrenceSun, SegmentsRecurrenceMon, SegmentsRecurrenceTue, SegmentsRecurrenceWed, SegmentsRecurrenceThu, SegmentsRecurrenceFri, SegmentsRecurrenceSat
SchedulerRoutingResponses QuestionsAndAnswers
SchedulerEvents Attendees, Guests, TrackingParams
ClipComments Mentions, ChildrenComments
WhiteboardProjects Collaborator
Tasks TasksAttachments, Assignees, Collaborators
TaskComments Content
PastMeetingMetrics CustomKeys, TrackingFields
PastWebinarMetrics CustomKeys
PastMeetingParticipantMetrics, PastWebinarParticipantMetrics InternalIpAddresses, AudioCall
PastMeetingParticipantQoSMetrics, PastWebinarParticipantQoSMetrics InternalIpAddresses, UserQos, IssueList

Reporting Objects and Date Ranges

Some Zoom report and metrics objects require a date range. Filter these objects by the Date field to reduce the number of API calls.

Incremental Replication and Synchronization

Skyvia supports Replication with Incremental Updates for the objects that have the CreatedDate or UpdatedDate field. For objects with only the CreatedDate field, Skyvia replicates only new records.

Incremental replication is also supported for several objects by special date and time fields: Recordings (by StartTime), RecordingFiles (by RecordingStart), PastMeetingParticipants (by JoinTime), ChatPinnedMessages (by PinnedTime), and the report objects (by Date). For the report objects, Skyvia additionally includes the data for one day before the last successful replication.

Synchronization is supported for the objects that support Replication with Incremental Updates and have both the INSERT and UPDATE operations.

Filtering Specifics

Skyvia supports the following native filters for Zoom:

Object Fields (Operators)
Users, UserCollaborationDevices, Groups, ContactGroups, Roles, Meetings, MeetingTemplates, Surveys, Webinars, ChatChannels, ChatSpaces, Schedules, SchedulerAvailability, SchedulerEvents, WhiteboardProjects, WhiteboardClassificationLabels Id (=)
GroupAdmins, GroupMembers, GroupChannels, ContactGroupMembers GroupId (=)
RoleMembers RoleId (=)
MeetingRegistrationQuestions, MeetingInvitations, PastMeetingInstances, PastMeetingQA, PastMeetingParticipants, PastMeetingPolls MeetingId (=)
MeetingRegistrants, MeetingPolls Id (=), MeetingId (=)
SurveyInstances, SurveyAnswers SurveyId (=)
WebinarRegistrationQuestions, WebinarPanelists, WebinarBranding, WebinarTrackingSources, WebinarSurvey, PastWebinarInstances, PastWebinarQA, PastWebinarParticipants, PastWebinarPolls, PastWebinarAbsentees WebinarId (=)
WebinarRegistrants, WebinarPolls Id (=), WebinarId (=)
Recordings, RecordingSettings, RecordingAnalyticsDetailsByView, RecordingAnalyticsDetailsByDownload, RecordingAnalyticsSummary, RecordingRegistrants, RecordingRegistrationQuestions SourceUuid (=)
Summaries Uuid (=), SummaryStartTime (=, <, <=, >, >=), CreatedDate (=, <, <=, >, >=)
ChatChannelMembers, ChannelMemberGroups, ChannelMentionGroups, ChatChannelScheduledMessages, ChatPinnedMessages, ChatChannelReminders ChannelId (=)
ChannelMentionGroupMembers MentionGroupId (=), ChannelId (=)
ChatContactScheduledMessages, ChatExternalContactScheduledMessages, ChatContactReminders, ChatExternalContactReminders MemberId (=)
ChatContactMessages, ChatExternalContactMessages Id (=), MemberId (=), CreatedDate (=, <, <=, >, >=)
ChatChannelMessages Id (=), ChannelId (=), CreatedDate (=, <, <=, >, >=)
ChatSpaceMembers SpaceId (=), Role (=), Status (=)
ChatSpaceChannels SpaceId (=)
ClipCollaborators, ClipComments ClipId (=)
Clips Id (=), Status (=), CreatedDate (=, <, <=, >, >=), UpdatedDate (=, <, <=, >, >=)
WhiteboardCollaborators WhiteboardId (=)
WhiteboardProjectCollaborators ProjectId (=)
Whiteboards Id (=), ProjectId (=), CreatedDate (=, <, <=, >, >=), UpdatedDate (=, <, <=, >, >=)
TaskAttachments, TaskComments, TaskCollaborators, TaskAssignees TaskId (=)
Tasks Id (=), Status (=), Starred (=), SourceType (=)
PastMeetingParticipantMetrics, PastMeetingParticipantQoSMetrics MeetingUuid (=)
PastWebinarParticipantMetrics, PastWebinarParticipantQoSMetrics WebinarUuid (=)
ReportMeetingParticipants, ReportMeetingPolls, ReportMeetingQA, ReportMeetingSurveys UserId (=), MeetingUuid (=)
ReportWebinarParticipants, ReportWebinarPolls, ReportWebinarQA, ReportWebinarSurveys UserId (=), WebinarUuid (=)
ReportMeetings, ReportWebinars UserId (=), Date (=, <, <=, >, >=)
ReportCloudRecordings, ReportMeetingsHistory, ReportWebinarsHistory, ReportOperationLogs, ReportRemoteSupportLogs, ReportActivityLogs, ReportChatSessions, ChannelActivityLogs, PastMeetingMetrics, PastWebinarMetrics, SatisfactionMetrics Date (=, <, <=, >, >=)

Natively, only the AND combination of conditions is supported. You can filter by other fields or operators, but it may increase the number of API calls.

Sorting and Bulk Operations

The Zoom API doesn't support native sorting or bulk operations.

DML Operations Support

Skyvia supports the following DML operations for Zoom objects:

Operation Object
INSERT, UPDATE, DELETE Groups, Roles, Meetings, MeetingPolls, Webinars, WebinarPolls, ChatChannels, ChannelMentionGroups, ChatContactMessages, ChatExternalContactMessages, ChatChannelMessages, ChatSpaces, Schedules, SchedulerAvailability, Whiteboards, WhiteboardProjects, WhiteboardClassificationLabels, Tasks
INSERT, DELETE GroupAdmins, GroupMembers, ContactGroupMembers, RoleMembers, MeetingRegistrants, WebinarRegistrants, WebinarPanelists, ChatChannelMembers, ChannelMemberGroups, ChannelMentionGroupMembers, ChatEmojis, ChatContactReminders, ChatExternalContactReminders, ChatChannelReminders, ChatSpaceMembers, Clips, WhiteboardCollaborators, WhiteboardProjectCollaborators, TaskComments, TaskCollaborators, TaskAssignees
UPDATE, DELETE Users, ContactGroups, SchedulerEvents
INSERT RecordingRegistrants
UPDATE MeetingRegistrationQuestions, WebinarRegistrationQuestions, RecordingSettings, RecordingRegistrationQuestions
DELETE UserAssistants, UserSchedulers, Summaries, Recordings, ChatContactScheduledMessages, ChatExternalContactScheduledMessages, ChatChannelScheduledMessages, ClipComments

After an INSERT, the Zoom API returns only the identifier of the created record for some objects. If you use the import Returning feature to obtain other fields of such records, Skyvia performs an additional request to read the full record, which increases API call usage.

Stored Procedures

Skyvia represents part of the supported Zoom features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.

DownloadChatFileById

Downloads a chat file by its identifier and returns its content.

call DownloadChatFileById(:FileId)

PARAMETER NAME DESCRIPTION
FileId Identifier of the chat file to download

DownloadChatFileByUrl

Downloads a chat file by its URL and returns its content.

call DownloadChatFileByUrl(:FileUrl)

PARAMETER NAME DESCRIPTION
FileUrl URL of the chat file to download

UploadChatFile

Uploads a file to Zoom Chat and returns its file Id.

call UploadChatFile(:FileName,:FileExtension,:Content)

PARAMETER NAME DESCRIPTION
FileName Name of the file
FileExtension Extension of the file
Content Binary content of the file

SendFileMessageToContact

Sends a file as a message to the specified contact and returns the message Id.

call SendFileMessageToContact(:UserId,:FileName,:FileExtension,:Content,:ReplyMainMessageId)

PARAMETER NAME DESCRIPTION
UserId Identifier of the contact to send the message to
FileName Name of the file
FileExtension Extension of the file
Content Binary content of the file
ReplyMainMessageId Optional. Identifier of the main message to reply to

SendFileMessageToChannel

Sends a file as a message to the specified channel and returns the message Id.

call SendFileMessageToChannel(:ChannelId,:FileName,:FileExtension,:Content,:ReplyMainMessageId)

PARAMETER NAME DESCRIPTION
ChannelId Identifier of the channel to send the message to
FileName Name of the file
FileExtension Extension of the file
Content Binary content of the file
ReplyMainMessageId Optional. Identifier of the main message to reply to

AddMessageBookmarkForContact

Adds a contact message to bookmarks.

call AddMessageBookmarkForContact(:MessageId,:ContactId)

PARAMETER NAME DESCRIPTION
MessageId Identifier of the message
ContactId Identifier of the contact

RemoveMessageBookmarkForContact

Removes a contact message from bookmarks.

call RemoveMessageBookmarkForContact(:MessageId,:ContactId)

PARAMETER NAME DESCRIPTION
MessageId Identifier of the message
ContactId Identifier of the contact

AddMessageBookmarkForChannel

Adds a channel message to bookmarks.

call AddMessageBookmarkForChannel(:MessageId,:ChannelId)

PARAMETER NAME DESCRIPTION
MessageId Identifier of the message
ChannelId Identifier of the channel

RemoveMessageBookmarkForChannel

Removes a channel message from bookmarks.

call RemoveMessageBookmarkForChannel(:MessageId,:ChannelId)

PARAMETER NAME DESCRIPTION
MessageId Identifier of the message
ChannelId Identifier of the channel

ImportWhiteboardFile

Imports a file as a Zoom Whiteboard. Returns task_id, whiteboard_id, status, file_name, and doc_name.

call ImportWhiteboardFile(:WhiteboardName,:ImportType,:FileName,:FileExtension,:Content,:ProjectId,:OwnerEmail)

PARAMETER NAME DESCRIPTION
WhiteboardName Name of the whiteboard to create
ImportType Source format. Possible values are Miro, Visio, and Mural
FileName Name of the file
FileExtension Extension of the file. Possible values are pdf and vsdx
Content Binary content of the file
ProjectId Optional. Identifier of the project to add the whiteboard to
OwnerEmail Optional. Email of the whiteboard owner

ExportWhiteboardFile

Exports a Zoom Whiteboard and returns its content. Returns task_id, status, and content.

call ExportWhiteboardFile(:WhiteboardId)

PARAMETER NAME DESCRIPTION
WhiteboardId Identifier of the whiteboard to export

AddWhiteboardsToProject

Adds one or more whiteboards to the specified project and returns the whiteboard_ids.

call AddWhiteboardsToProject(:ProjectId,:WhiteboardIds)

PARAMETER NAME DESCRIPTION
ProjectId Identifier of the project
WhiteboardIds A single whiteboard Id, for example "123", or an array of Ids, for example ["12","13"]

RemoveWhiteboardsFromProject

Removes one or more whiteboards from the specified project.

call RemoveWhiteboardsFromProject(:ProjectId,:WhiteboardIds)

PARAMETER NAME DESCRIPTION
ProjectId Identifier of the project
WhiteboardIds A single whiteboard Id, for example "123", or an array of Ids, for example ["12","13"]

CreateDocumentFromMarkdown

Creates a Zoom Document from markdown content. Returns file_id and file_link.

call CreateDocumentFromMarkdown(:FileName,:MarkdownContent,:ParentId)

PARAMETER NAME DESCRIPTION
FileName Name of the document
MarkdownContent Markdown content of the document
ParentId Optional. Identifier of the parent folder

ImportDocument

Imports a file as a Zoom Document. Returns import_id, file_id, file_type, and status.

call ImportDocument(:FileName,:Content,:FileUploadType,:ParentId)

PARAMETER NAME DESCRIPTION
FileName Name of the document
Content Binary content of the file
FileUploadType Type of the file. Possible values are docx, txt, markdown, csv, xlsx, notion_zip, and html
ParentId Optional. Identifier of the parent folder

ExportDocument

Exports a Zoom Document in the specified format. Returns export_id, status, and content.

call ExportDocument(:FileId,:ExportFormat)

PARAMETER NAME DESCRIPTION
FileId Identifier of the document to export
ExportFormat Export format. Possible values are docx, markdown, pdf, and csv

Troubleshooting

An object returns a permission, scope, or "not supported" error

If reading or writing an object fails with a permission, missing-scope, or unsupported-feature error, check the following:

  • The app has the scopes the object requires. You can find them in the Granular Scopes section of the Zoom API documentation. For a Server-to-Server connection, add the missing scopes on the Scopes tab of your app.
  • Your Zoom plan and products cover the object. Some objects need a higher plan or a separate product.
  • Your role has the required permissions. Some objects and fields are available only to account-level (admin) users.

Reading data is slow or uses too many API calls

The connector reads some objects across a date range or through a parent object, which can take many API calls. You can reduce them in a few ways:

  • Filter report and metrics objects by the Date field. See Filtering Specifics.
  • Select the Suppress Extended Requests checkbox if you don't need binary content or extended fields.
  • Set the Account Plan parameter to match your Zoom plan, because it controls the API rate limits the connector uses.

Some fields return empty values

If fields are empty even though they have values in Zoom, check whether the Suppress Extended Requests checkbox is selected. Clear it to read those fields and binary content.

If you can't resolve an issue, contact our support team.

Supported Actions

Skyvia supports all the common actions for Zoom.