Zoom
Communication Server-to-server OAuth appCreate and manage Zoom meetings, users and recordings from any Windmill script, flow or app.
Set up in 3 steps
Create a server-to-server OAuth app
In the Zoom App Marketplace, create a Server-to-Server OAuth app, add the scopes your scripts need, and activate it. Its credentials page shows the account id, client id and secret.
Add the resource in Windmill
Open Resources, add a resource of type zoom, and fill accountId, oauthClientId and oauthClientSecret. webhookSecretToken is only needed if a flow verifies incoming Zoom webhooks.
Run your first script
Fork any script below and read before writing anything.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
Update Webinar
List Webinar Participants Report
Get Meeting Details
Get Webinar Details
Delete User
Add Webinar Registrant
Create Meeting
List Past Meeting Participants
Update Meeting
List Channels
Send Chat Message
List Past Webinar Q&A
Create User
View User
Add Meeting Registrant
Resource type
The shape of the credential every script on this page expects.
zoom
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| accountId | string | Yes | |
| oauthClientId | string | Yes | |
| oauthClientSecret | string | Yes | |
| webhookSecretToken | string | No |
Questions
Why three fields and not a token?
The scripts exchange them for a short-lived token on each run, so nothing expires in the resource.
A call fails on a missing scope
Scopes live on the app, not the token. Add it in the Marketplace and reactivate the app — the credentials stay the same.
Are my credentials stored on the hub?
Never. They live only in your own Windmill workspace, encrypted at rest.