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:
-
Open the Zoom App Marketplace and sign in. In the menu, click Developer.

-
Open the Develop menu and click Build App.

-
Create an app of the Server-to-Server OAuth type.
-
Copy the Account ID, Client ID, and Client Secret from the App Credentials section.
-
Open the Scopes tab, click + Add Scopes, and add all the scopes required for the objects you plan to work with.

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:

- Select the Server-to-Server authentication type.
- Enter the Client ID, Client Secret, and Account ID.
- 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
ANDcombination 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.