Zoom integration summary

Stitch’s Zoom integration replicates data using the Zoom REST API v2. Refer to the Schema section for a list of objects available for replication.

Zoom feature snapshot

A high-level look at Stitch's Zoom (v1) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Released on July 28, 2020

Supported by

Singer Community

Stitch plan

Standard

API availability

Not available

Singer GitHub repository

singer-io/tap-zoom

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Supported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Supported

Column selection

Supported

Select all

Supported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting Zoom

Zoom setup requirements

To set up Zoom in Stitch, you need:

  • A Zoom authentication app. You’ll need one of the following apps to connect your Zoom account to Stitch:

    • An OAuth app. Click here for more information on OAuth apps. If using a Zoom OAuth App to connect to Stitch, make sure that the following scopes are included in the app:
      • account:read:admin
      • meeting:read:admin
      • report:read:admin
      • user:read:admin
      • webinar:read:admin
    • A JSON Web Tokens (JWT) app. Click here for more information on JWT apps.

Step 1: Obtain your Zoom authentication app tokens

  1. Login to your Zoom account on the Zoom App Marketplace.
  2. Click Manage in the upper right corner of the page.
  3. Click on the OAuth or JWT app you’d like to use to connect to Stitch.
  4. If using a JWT app, copy the JWT. If using an OAuth app, copy the Client ID, Client Secret, and Refresh Token.
  5. Keep your token(s) readily available for the next step.

Step 2: Add Zoom as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Zoom icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Zoom” would create a schema called stitch_zoom in the destination. Note: Schema names cannot be changed after you save the integration.

  5. If connecting to Stitch with a Zoom OAuth app, paste the Client ID, Client Secret, and Refresh Token you obtained in Step 1 into their respective fields.
  6. If connecting to Stitch with a Zoom JWT app, paste the JWT you obtained in Step 1 into the JWT field.

Step 3: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Zoom integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 4: Set objects to replicate

The last step is to select the tables and columns you want to replicate. Learn about the available tables for this integration.

Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.

For Zoom integrations, you can select:

  1. Individual tables and columns

  2. All tables and columns

Click the tabs to view instructions for each selection method.

  1. In the integration’s Tables to Replicate tab, locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
  1. Click into the integration from the Stitch Dashboard page.
  2. Click the Tables to Replicate tab.

  3. In the list of tables, click the box next to the Table Names column.
  4. In the menu that displays, click Track all Tables and Fields:

    The Track all Tables and Fields menu in the Tables to Replicate tab

  5. Click the Finalize Your Selections button at the bottom of the page to save your data selections.

Initial and historical replication jobs

After you finish setting up Zoom, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Zoom table reference

Replication Method :

Full Table

Primary Key :

uuid

API endpoint :

Get meetings

The meetings table contains information about instant, scheduled, and recurring meetings in your Zoom account.

uuid
STRING

The meeting UUID.

Reference:

agenda
STRING

created_at
DATE-TIME

duration
INTEGER

encrypted_password
STRING

h323_password
STRING

host_id
STRING

id
INTEGER

join_url
STRING

meeting_id
STRING

The meeting ID.

Reference:

occurences
ARRAY

duration
INTEGER

occurence_id
STRING

start_time
DATE-TIME

status
STRING

meetings (table), occurences (attribute)

password
STRING

pmi
INTEGER

recurrence
OBJECT

end_date_time
DATE-TIME

end_times
INTEGER

monthly_day
INTEGER

monthly_week
INTEGER

monthly_week_day
INTEGER

repeat_interval
INTEGER

type
INTEGER

weekly_days
INTEGER

meetings (table), recurrence (attribute)

settings
OBJECT

alternative_hosts
STRING

approval_type
INTEGER

audio
STRING

authentication_domains
STRING

authentication_option
STRING

auto_recording
STRING

close_registration
BOOLEAN

cn_meeting
BOOLEAN

contact_email
BOOLEAN

contact_name
BOOLEAN

enforce_login
BOOLEAN

enforce_login_domains
STRING

global_dial_in_countries
ARRAY

value
STRING

meetings (table), global_dial_in_countries (attribute)

global_dial_in_numbers
ARRAY

city
STRING

country
STRING

country_name
STRING

number
STRING

type
STRING

meetings (table), global_dial_in_numbers (attribute)

host_video
BOOLEAN

in_meeting
BOOLEAN

join_before_host
BOOLEAN

meeting_authentication
BOOLEAN

mute_upon_entry
BOOLEAN

participant_video
BOOLEAN

registrants_confirmation_email
BOOLEAN

registrants_email_notification
BOOLEAN

registration_type
INTEGER

use_pmi
BOOLEAN

waiting_room
BOOLEAN

watermark
BOOLEAN

meetings (table), settings (attribute)

start_time
DATE-TIME

start_url
STRING

status
STRING

timezone
STRING

topic
STRING

tracking_fields
ARRAY

field
STRING

value
STRING

meetings (table), tracking_fields (attribute)

type
INTEGER


Replication Method :

Full Table

Primary Key :

meeting_uuid : file_name

API endpoint :

Get meeting files

The meeting_files table contains information about files shared during meetings in your Zoom account. Note:Zoom deletes these files 24 hours after completion of the meeting.

meeting_uuid
STRING

The meeting UUID.

Reference:

file_name
STRING

The name of the file.

download_url
STRING

file_size
INTEGER


Replication Method :

Full Table

Primary Key :

id : meeting_id

API endpoint :

Get meeting polls

The meeting_polls table contains information about the polls from your Zoom meetings.

id
STRING

The poll ID.

meeting_id
STRING

The meeting ID.

Reference:

questions
ARRAY

answers
ARRAY

value
STRING

meeting_polls (table), answers (attribute)

name
STRING

type
STRING

meeting_polls (table), questions (attribute)

status
STRING

title
STRING


meeting_poll_results

Replication Method :

Full Table

Primary Key :

email : meeting_uuid

API endpoint :

Get past meeting polls

The meeting_poll_results table contains information about the results of polls from your Zoom meetings.

Note: This data is available only if the host user’s role is Pro and the meeting was scheduled.

email
STRING

The email of the user who participated in the poll.

meeting_uuid
STRING

The meeting UUID.

Reference:

name
STRING

question_details
ARRAY

answer
STRING

question
STRING

meeting_poll_results (table), question_details (attribute)

meeting_questions

Replication Method :

Full Table

Primary Key :

meeting_id

API endpoint :

Get meeting questions

The meeting_questions table contains questions that users will see when registering for your Zoom meetings.

meeting_id
STRING

The meeting ID.

Reference:

custom_questions
ARRAY

answers
ARRAY

value
STRING

meeting_questions (table), answers (attribute)

required
BOOLEAN

title
STRING

type
STRING

meeting_questions (table), custom_questions (attribute)

questions
ARRAY

field_name
STRING

required
BOOLEAN

meeting_questions (table), questions (attribute)

meeting_registrants

Replication Method :

Full Table

Primary Key :

id : meeting_id

API endpoint :

Get meeting registrants

The meeting_registrants table contains the list of users who have registered for your Zoom meetings.

id
STRING

The registrant’s user ID.

meeting_id
STRING

The meeting ID.

Reference:

address
STRING

city
STRING

comments
STRING

county
STRING

create_time
DATE-TIME

custom_questions
ARRAY

title
STRING

value
STRING

meeting_registrants (table), custom_questions (attribute)

email
STRING

first_name
STRING

industry
STRING

job_title
STRING

join_url
STRING

last_name
STRING

no_of_employees
STRING

org
STRING

phone
STRING

purchasing_time_frame
STRING

role_in_purchase_process
STRING

state
STRING

status
STRING

zip
STRING


Replication Method :

Full Table

Primary Key :

uuid

API endpoint :

Get meeting reports

The report_meetings table contains detailed reports about past Zoom meetings.

uuid
STRING

The report UUID.

dept
INTEGER

duration
INTEGER

end_time
DATE-TIME

id
INTEGER

meeting_id
STRING

The meeting ID.

Reference:

participants_count
INTEGER

start_time
DATE-TIME

topic
STRING

total_minutes
INTEGER

tracking_fields
ARRAY

field
STRING

value
STRING

report_meetings (table), tracking_fields (attribute)

type
INTEGER

user_email
STRING

user_name
STRING


report_meeting_participants

Replication Method :

Full Table

Primary Key :

id : meeting_id

API endpoint :

Get meeting participants

The report_meeting_participants table contains information about your Zoom’s meeting participants.

Note: As per Zoom’s docs, a Zoom Pro plan or higher is required to retrieve this data.

id
STRING

The participant ID.

meeting_id
STRING

The meeting ID.

Reference:

duration
STRING

join_time
DATE-TIME

leave_time
DATE-TIME

name
STRING

user_email
STRING

user_id
STRING

The meeting participant’s user ID.

Reference:


Replication Method :

Full Table

Primary Key :

uuid

API endpoint :

Get webinar report

The report_webinars table contains information about past webinars in your Zoom account.

uuid
STRING

The webinar UUID.

Reference:

dept
INTEGER

duration
INTEGER

end_time
DATE-TIME

id
INTEGER

participants_count
INTEGER

start_time
DATE-TIME

topic
STRING

total_minutes
INTEGER

tracking_fields
ARRAY

field
STRING

value
STRING

report_webinars (table), tracking_fields (attribute)

type
INTEGER

user_email
STRING

user_name
STRING

webinar_id
STRING

Reference:


report_webinar_participants

Replication Method :

Full Table

Primary Key :

id : webinar_id

API endpoint :

Get webinar participants

The report_webinar_participants table contains information about your Zoom’s webinar participants.

Note: As per Zoom’s docs, a Pro plan or higher with with the webinar add-on enabled is required to retrieve this data.

id
STRING

The webinar participant ID.

webinar_id
STRING

The webinar ID.

Reference:

attentiveness_score
STRING

duration
STRING

join_time
DATE-TIME

leave_time
DATE-TIME

name
STRING

user_email
STRING

user_id
STRING

The webinar participant’s user ID.

Reference:


Replication Method :

Full Table

Primary Key :

id

API endpoint :

Get users

The users table contains user data from your Zoom account.

id
STRING

The user ID.

Reference:

created_at
DATE-TIME

dept
STRING

email
STRING

first_name
STRING

group_ids
ARRAY

value
STRING

users (table), group_ids (attribute)

im_group_ids
ARRAY

value
STRING

users (table), im_group_ids (attribute)

last_client_version
STRING

last_login_time
DATE-TIME

last_name
STRING

pmi
INTEGER

status
STRING

timezone
STRING

type
INTEGER

verified
INTEGER


Replication Method :

Full Table

Primary Key :

uuid

API endpoint :

Get webinars

The webinars table contains information bout webinars scheduled from your Zoom account.

Note: As per Zoom’s docs, the following requirements must be met to retrieve this data:

  • A Pro plan or higher with a webinar add-on
  • An authentication app with the webinar:read:admin and webinar:read scopes

uuid
STRING

The webinar UUID.

Reference:

agenda
STRING

created_at
DATE-TIME

duration
INTEGER

host_id
STRING

id
STRING

join_url
STRING

occurences
ARRAY

duration
INTEGER

occurence_id
STRING

start_time
DATE-TIME

status
STRING

webinars (table), occurences (attribute)

recurrence
OBJECT

end_date_time
DATE-TIME

end_times
INTEGER

monthly_day
INTEGER

monthly_week
INTEGER

monthly_week_day
INTEGER

repeat_interval
INTEGER

type
INTEGER

weekly_days
INTEGER

webinars (table), recurrence (attribute)

settings
OBJECT

allow_multiple_devices
BOOLEAN

alternative_hosts
STRING

approval_type
INTEGER

audio
STRING

authentication_domains
STRING

authentication_option
STRING

auto_recording
STRING

close_registration
BOOLEAN

contact_email
BOOLEAN

contact_name
BOOLEAN

enforce_login
BOOLEAN

enforce_login_domains
STRING

global_dial_in_countries
ARRAY

value
STRING

webinars (table), global_dial_in_countries (attribute)

hd_video
BOOLEAN

host_video
BOOLEAN

meeting_authentication
BOOLEAN

notify_registrants
BOOLEAN

on_demand
BOOLEAN

panelists_video
BOOLEAN

post_webinar_survey
BOOLEAN

practice_session
BOOLEAN

registrants_confirmation_email
BOOLEAN

registrants_email_notification
BOOLEAN

registrants_restrict_number
INTEGER

registration_type
INTEGER

show_share_button
BOOLEAN

survey_url
STRING

webinars (table), settings (attribute)

start_time
DATE-TIME

start_url
STRING

timezone
STRING

topic
STRING

tracking_fields
ARRAY

field
STRING

value
STRING

webinars (table), tracking_fields (attribute)

type
INTEGER


webinar_absentees

Replication Method :

Full Table

Primary Key :

id : webinar_uuid

API endpoint :

Get webinar absentees

The webinar_absentees table contains information about webinar absentees from your Zoom webinars.

id
STRING

The absentee ID.

webinar_uuid
STRING

The webinar UUID.

Reference:

address
STRING

city
STRING

comments
STRING

county
STRING

create_time
DATE-TIME

custom_questions
ARRAY

title
STRING

value
STRING

webinar_absentees (table), custom_questions (attribute)

email
STRING

first_name
STRING

industry
STRING

job_title
STRING

join_url
STRING

last_name
STRING

no_of_employees
STRING

org
STRING

phone
STRING

purchasing_time_frame
STRING

role_in_purchase_process
STRING

state
STRING

status
STRING

zip
STRING


Replication Method :

Full Table

Primary Key :

webinar_uuid : file_name

API endpoint :

Get webinar files

The webinar_files table contains information about files shared in-meeting in your Zoom account.

Note: Zoom deletes these files 24 hours after completion of the webinar.

webinar_uuid
STRING

The webinar UUID.

Reference:

file_name
STRING

The name of the file shared during the webinar.

download_url
STRING

file_size
INTEGER


webinar_panelists

Replication Method :

Full Table

Primary Key :

id : webinar_id

API endpoint :

Get webinar panelists

The webinar_panelists table contains information about your Zoom webinar panelists.

Note: As per Zoom’s docs, a Pro plan or higher with with the webinar add-on enabled is required to retrieve this data.


Replication Method :

Full Table

Primary Key :

id : webinar_id

API endpoint :

Get webinar polls

The webinar_polls table contains information about polls in your Zoom webinars.

id
STRING

The webinar poll ID.

webinar_id
STRING

The webinar ID.

Reference:

questions
ARRAY

answers
ARRAY

value
STRING

webinar_polls (table), answers (attribute)

name
STRING

type
STRING

webinar_polls (table), questions (attribute)

status
STRING

title
STRING


webinar_poll_results

Replication Method :

Full Table

Primary Key :

webinar_uuid : email

API endpoint :

Get webinar poll results

The webinar_poll_results data contains information about poll results from specific Zoom webinars.

Note: As per Zoom’s docs, the following requirements must be met to retrieve this data:

  • A Zoom webinar license
  • A Pro plan or higher
  • An authentication app with the webinar:read:admin and webinar:read scopes

webinar_uuid
STRING

The webinar UUID.

Reference:

email
STRING

The email used for the Zoom webinar.

name
STRING

question_details
ARRAY

answer
STRING

question
STRING

webinar_poll_results (table), question_details (attribute)

webinar_qna_results

Replication Method :

Full Table

Primary Key :

webinar_uuid : email

API endpoint :

Get webinar Q&A

The webinar_qna_results table contains information about about the questions and answers from specific Zoom webinars.

webinar_uuid
STRING

The webinar UUID.

Reference:

email
STRING

The email used for the webinar Q & A session.

name
STRING

question_details
ARRAY

answer
STRING

question
STRING

webinar_qna_results (table), question_details (attribute)

webinar_questions

Replication Method :

Full Table

Primary Key :

webinar_id

API endpoint :

Get webinar questions

The webinar_questions table contains information about your questions to be answered when registering for a Zoom webinar.

Note: As per Zoom’s docs, the following requirements must be met to retrieve this data:

  • A Pro plan or higher with a webinar add-on
  • An authentication app with the webinar:read:admin and webinar:read scopes

webinar_id
STRING

The webinar ID.

Reference:

custom_questions
ARRAY

answers
ARRAY

value
STRING

webinar_questions (table), answers (attribute)

required
BOOLEAN

title
STRING

type
STRING

webinar_questions (table), custom_questions (attribute)

questions
ARRAY

field_name
STRING

required
BOOLEAN

webinar_questions (table), questions (attribute)

webinar_registrants

Replication Method :

Full Table

Primary Key :

webinar_id : id

API endpoint :

Get webinar registrants

The webinar_registrants table contains information about the users registered for a webinar in your Zoom account. Only webinars where registration is required are included in this table.

Note: As per Zoom’s docs, the following requirements must be met to retrieve this data:

  • A Pro plan or higher with a webinar add-on
  • An authentication app with the webinar:read:admin and webinar:read scopes

webinar_id
STRING

The webinar ID.

Reference:

id
STRING

The registrant ID.

address
STRING

city
STRING

comments
STRING

county
STRING

create_time
DATE-TIME

custom_questions
ARRAY

title
STRING

value
STRING

webinar_registrants (table), custom_questions (attribute)

email
STRING

first_name
STRING

industry
STRING

job_title
STRING

join_url
STRING

last_name
STRING

no_of_employees
STRING

org
STRING

phone
STRING

purchasing_time_frame
STRING

role_in_purchase_process
STRING

state
STRING

status
STRING

zip
STRING


webinar_tracking_sources

Replication Method :

Full Table

Primary Key :

id : webinar_id

API endpoint :

Get webinar tracking sources

The webinar_tracking_sources lists all information about tracking sources in your Zoom account. Only webinars where registration is required will be included in this table.

Note: As per Zoom’s docs, the following requirements must be met to retrieve this data:

  • A Zoom webinar license
  • An authentication app with the webinar:read:admin and webinar:read scopes


Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.