# Zoom

Pipedream provides a serverless programming platform for building event-driven workflows that integrate apps. Pipedream comes with pre-built actions for interacting with the Zoom API, and allows you to listen for Zoom events in your account and trigger code when they happen.

Pipedream is fully programmable - you can write any Node.js code to control your workflows - but also fully-managed: Pipedream runs your code, so you don't have to manage any infrastructure and can focus on your workflow's logic.

# Overview

Pipedream workflows allow you to run any Node.js code that connects to the Zoom API. Just create a new workflow, then add pre-built Zoom actions (create a meeting, send a chat message, etc.) or write your own Node code. These workflows can be triggered by HTTP requests, timers, email, or on any app-based event (new tweets, a Github PR, Zoom events, etc).

How Pipedream works

Pipedream event sources expose real-time event streams for any Zoom event - just connect your Zoom account, and get an event stream. Event sources can trigger workflows, running custom code each time an event occurs in Zoom. For example, to run a workflow each time a meeting ends, you can create a Meeting Ended source. This source emits an event as soon as a meeting ends in your account, which can trigger a workflow that pulls participant stats, emails those participants a survey, or anything else you'd like.

How Zoom Event sources work

You can also subscribe to a private SSE stream that lets you listen for these events in your own application, in real time. This allows you to use Pipedream to host the event source, which can trigger existing code in your own infrastructure (vs. a Pipedream workflow).

Listen for an SSE event in your own app

# Zoom vs. Zoom Admin app

Zoom users can be classified into two groups: non-admins and admins. Admins have account-level permissions that users do not, and Zoom has corresponding admin-level scopes that aren't relevant for normal users. Therefore, Pipedream exposes two apps — Zoom and Zoom Admin — to serve the two groups.

Zoom and Zoom Admin apps

In the Zoom Marketplace, these apps are named Pipedream, and Pipedream for Zoom Admins, respectively.

Non-admins have permissions to manage standard Zoom resources in their account: meetings, webinars, recordings, and more. If you're a non-admin, you'll want to use the Zoom app.

Zoom admins have permissions to manage account-level resources, like users and reports. They can also manage webinars and meetings across their organization. If you're an admin and need to manage these resources via API, you'll want to use the Zoom Admin app.

The Zoom API docs on permissions provide detailed information on these permissions and their associated OAuth scopes.

# Connecting to Zoom from Pipedream

  1. First, sign up for Pipedream at https://pipedream.com.
  2. Visit https://pipedream.com/accounts.
  3. Click the button labeled Click Here to Connect an App.
  4. Search for "Zoom" and select either Zoom or Zoom Admin (see the differences above):
Zoom and Zoom Admin apps in Connect an App Modal

This will open up a new window prompting you to authorize Pipedream's access to your Zoom account. Once you authorize access, you should see your Zoom account listed among your apps.

  1. Create a new workflow, add a new step, search for "Zoom" or "Zoom Admin". Once you've selected either app, you can choose to either "Run Node.js code" or select one of the pre-built actions for performing common API operations.
  2. At this stage, you'll be asked to link the Zoom account you connected above, authorizing the request to the Zoom API with your credentials:
Connect Zoom Account

# Zoom Event Sources

Pipedream event sources expose real-time event streams for any Zoom event - just connect your Zoom account, and get an event stream.

Event sources can trigger workflows, running custom code each time an event occurs in Zoom. For example, to run a workflow each time a meeting ends, you can create a Meeting Ended source. This source emits an event as soon as a meeting ends in your account, which can trigger a workflow that pulls participant stats, emails those participants a survey, or anything else you'd like.

There are two categoies of Zoom event sources:

  • Event-specific sources listen for a specific Zoom event (Meeting Created, Recording Completed, etc). Event-specific sources exist only for the most common Zoom events, but you can request another source here.
  • The Custom Events source allows you to listen for any event from Zoom, and even lets you listen for multiple events at the same time. For example, if you want to run a workflow on both Meeting Started and Webinar Started events, you can create a custom source that listens for them both, and use that event source as your workflow's trigger.

# Creating a Zoom event source

  1. Visit https://pipedream.com/sources.
  2. Click the Create Source button.
  3. In the Select an App dropdown, select either Zoom or Zoom Admin (see the difference above).
  4. In the Select a Source dropdown, you can either choose from the list of sources tied to a specific event (Meeting Created, Recording Completed, etc.), or create an event source that listens for any Zoom event by selecting the Zoom Custom Events or Zoom Admin Custom Events source.
List of Zoom event sources

# Event-specific sources

You can create event sources tied to common Zoom events, like Meeting Created and Recording Completed, by selecting one of the corresponding event sources. These event sources are built to process specific events, and emit data in a format that makes sense for the event type.

For example, the Recording Completed source lets you filter on options specific to recordings:

Recording Completed Source

and it emits each recording file as its own event - that is, if you're listening for video, audio, and chat recordings, this source will emit up to 3 events for each meeting: one for each file type.

You can find the source code for each of these event sources in the PipedreamHQ/pipedream Github repo:

If you can't find the source you're looking for, you can use the Zoom Custom Events source to listen for any events from Zoom. You can also request another source here, or develop your own Zoom source and open up a pull request in the PipedreamHQ/pipedream Github repo to add that source to the Pipedream platform for anyone to use.

# Zoom Custom Events source

The Zoom Custom Events or Zoom Admin Custom Events source allows you to listen for any event from Zoom, and even lets you listen for multiple events at the same time.

For example, if you want to run a workflow on both Meeting Started and Webinar Started events, you can create a custom source that listens for them both, and use that event source as your workflow's trigger. Just create the Zoom Custom Events source and select meeting.started and webinar.started from the list of events in the Zoom Events dropdown:

Zoom Events dropdown

# List of Custom Events

Below, you'll find a full list of the events that you can listen for, with links to the corresponding Zoom docs. Some events are also only available for either the Zoom or Zoom Admin apps, which is indicated by the Zoom and Zoom Admin columns.

Event Description Zoom Zoom Admin
account.created New Sub Account created
account.updated An Account or a Sub Account's profile is updated
account.settings_updated An account or a Sub Account’s settings are updated
account.disassociated Sub Account Disassociated from a Master Account
meeting.alert Meeting service issue encountered
meeting.created Meeting created in my Zoom account
meeting.created.by_me Meeting created by me
meeting.created.for_me Meeting created where I'm the host
meeting.updated Meeting updated
meeting.deleted Meeting deleted in my Zoom account
meeting.deleted.by_me Meeting deleted by me
meeting.deleted.for_me Meeting deleted where I was the host
meeting.started Meeting started
meeting.ended Meeting ended
meeting.registration_created User registered for meeting
meeting.registration_approved Meeting registration approved
meeting.registration_cancelled Meeting registration cancelled
meeting.registration_denied Meeting registration denied
meeting.sharing_started A host or attendee shared their screen
meeting.sharing_started.host A host shared their screen
meeting.sharing_started.participant An attendee shared their screen
meeting.sharing_ended A host or attendee stopped sharing their screen
meeting.sharing_ended.host A host stopped sharing their screen
meeting.sharing_ended.participant An attendee stopped sharing their screen
meeting.participant_jbh_joined Attendee joined meeting before host
meeting.participant_jbh_waiting Attendee waiting for host to join meeting
meeting.participant_joined Host or attendee joined meeting
meeting.participant_joined_waiting_room Participant joined waiting room
meeting.participant_admitted Participant was admitted to meeting from waiting room
meeting.participant_put_in_waiting_room Participant placed in waiting room from meeting
meeting.participant_left_waiting_room Participant left waiting room, or was removed
recording.started Recording started
recording.paused Recording paused
recording.resumed Recording resumed
recording.stopped Recording stopped
recording.completed Recording completed
recording.renamed Recording renamed
recording.renamed.by_me Recording renamed by me
recording.renamed Recording renamed for an event where I was the host
recording.trashed Recording trashed
recording.trashed.by_me Recording trashed by me
recording.trashed.for_me Recording trashed for an event where I was the host
recording.deleted Recording deleted
recording.deleted.by_me Recording deleted by me
recording.deleted.for_me Recording deleted for an event where I was the host
recording.recovered Recording recovered
recording.recovered Recording recovered by me
recording.recovered Recording recovered for an event where I was the host
recording.transcript_completed Recording transcript completed
recording.registration_completed User registered for an on-demand recording
recording.registration_approved User approved to view recording
recording.registration_denied User denied access to cloud recording
user.created User created
user.invitation_accepted User accepted account invitation
user.updated User profile updated
user.settings_updated User settings updated
user.activated User activated
user.deactivated User deactivated
user.disassociated User disassociated
user.deleted User deleted
user.signed_in User signed in
user.signed_out User signed out
webinar.created Webinar created in my account
webinar.created.by_me Webinar created by me
webinar.created.for_me Webinar created where I'm the host
webinar.updated Webinar updated
webinar.deleted Webinar deleted in my account
webinar.deleted.by_me Webinar deleted by me
webinar.deleted Webinar deleted where I'm the host
webinar.started Webinar started
webinar.ended Webinar ended
webinar.alert Webinar service issue encountered
webinar.sharing_started A host or attendee shared their screen
webinar.sharing_started.host A host shared their screen
webinar.sharing_started.participant An attendee shared their screen
webinar.sharing_ended A host or attendee stopped sharing their screen
webinar.registration_created User registered for webinar
webinar.registration_approved Webinar registration approved
webinar.registration_cancelled Webinar registration cancelled
webinar.registration_denied Webinar registration denied
webinar.participant_joined Host or attendee joined webinar
webinar.participant_left Host or attendee left webinar

# Example workflows

You can copy any of the workflows below by clicking Copy in the top-right corner of the workflow. This will create a copy of the workflow in your account, where you can connect your Zoom account.

# Common Issues

If you encounter any issues connecting to Zoom with Pipedream, please reach out to our Support team.

# My Zoom event source isn't receiving events

It's likely that you need to re-authorize Pipedream's access to your Zoom account to start receiving events. Here's how to do that:

  1. Visit https://pipedream.com/sources
  2. Select your event source, and click on the Configuration tab.
  3. Press unlink next to your connected Zoom account, then press the Connect Zoom button.
  4. When your list of connected Zoom accounts appears, click New. This will prompt you to authorize Pipedream's access to your Zoom account again, creating a new auth grant.
  5. This should renew the link between your Zoom account and Pipedream. Try triggering your Zoom event again.

# Removing Pipedream's access to your Zoom account

You can revoke Pipedream's access to your Zoom account by visiting your list of installed apps in Zoom.

As soon as you do, any Pipedream workflows that connect to Zoom will immediately fail to work.

You can delete any Zoom connected accounts in your list of Pipedream Accounts, as well.

# Usage

Please see the section on Connecting to Zoom from Pipedream to create a Pipedream workflow that connects to the Zoom API.

Pipedream's Zoom app requests all Zoom user-managed App Scopes.

Pipedream's Zoom Admin app requests all Zoom account-level App Scopes.

Still have questions?

Please reach out if this doc didn't answer your question. We're happy to help!