Connecting Zoom
Connect your Zoom account once, and every live class you run through Pedagio starts automatically and files its own recording against the right batch.
What you get
Without this, you create Zoom meetings by hand, paste links into Pedagio, and upload recordings yourself after each class. Once connected, all of that happens on its own:
- Meetings are created when you schedule a session — no copying links.
- When a class ends, Pedagio knows, and frees the Zoom licence for the next teacher.
- The recording is attached to the group that ran the session, visible only to that batch.
- If you have secure hosting connected, the recording is transferred and encrypted automatically.
Before you start
Step 1 — Create a Server-to-Server OAuth app
This is the app Pedagio uses to create meetings on your behalf. It lives in your Zoom account and you can revoke it at any time.
- 1Sign in at marketplace.zoom.us and choose Develop → Build App.
- 2Pick Server-to-Server OAuthas the app type and give it a name such as “Pedagio”. It stays private to your account — there is no review or publishing step.
- 3On the App Credentials screen you will see an
Account ID,Client IDandClient Secret. Keep this tab open — you will paste all three into Pedagio shortly.
Step 2 — Add the scope
Pedagio needs exactly one permission. Under Scopes, click Add Scopes, choose Meeting in the left panel, and tick the one below.
| Scope | Why it is needed |
|---|---|
meeting:write:meeting:admin | Create the meeting when you schedule a session |
Searching for it in Zoom
meeting:write:meeting:admin into the search box finds nothing. Browse to Meeting and look for the entry described as creating a meeting for a user; the scope string is shown beneath it. Apps created before April 2024 show the oldermeeting:write:admininstead — that is the same permission under Zoom's previous naming, and it still works.You do not need a recording scope. Zoom sends the recording to Pedagio in the webhook along with a short-lived download token, so Pedagio never calls Zoom's recording API to fetch it. Adding more scopes than this grants access that is never used.
Step 3 — Add the webhook
This is the part that makes recordings automatic. Zoom notifies Pedagio when a class ends and again when the recording is ready. Without it, meetings still work — but nothing arrives on its own afterwards.
- 1In Pedagio, open Video & Audio Calling from your admin sidebar and find the Zoom Meeting Licenses section. Copy the webhook URL shown there. It ends in your tenant ID and is unique to you.
- 2Back in your Zoom app, open Feature → Event Subscriptions and add a subscription. Paste the URL as the Event notification endpoint URL.
- 3Subscribe to exactly two events:
meeting.endedandrecording.completed. - 4Find the Secret Token on the same Featurepage — it sits above the Event Subscriptions block, not inside it, and applies to the whole app rather than one subscription. You may need to click Show to reveal it.
- 5Paste it into the Webhook Secret Token field in Pedagio and save it before you click Validate in Zoom.
- 6Now click Validate in Zoom, then Save. Zoom will not let you save the subscription until validation passes.
Save the secret in Pedagio first
Leave the optional authentication methods off
Step 4 — Add your credentials to Pedagio
- 1In the same Zoom Meeting Licenses section, paste the
Account ID,Client IDandClient Secretfrom Step 1. The label is for your own reference — use the host's name if you plan to add more than one. - 2Activate the app in Zoom (Activation → Activate). An app left in draft will reject Pedagio's requests.
Running parallel classes
Checking it worked
Schedule a short test session from a group, join it, and end the meeting deliberately rather than letting it time out — Zoom only finalises a cloud recording once the meeting actually ends. Within a few minutes the recording should appear on that group's Recordings tab. Zoom's own processing takes a few minutes and is longer for a full-length class, so some delay is normal.
If a recording does not appear
| What you see | Usual cause |
|---|---|
| Nothing arrives at all | The Zoom plan does not include cloud recording, or the host stopped the recording during the class. Only cloud recordings reach Pedagio. |
| Meetings work, recordings never arrive | The webhook is missing recording.completed, or validation was never completed. Recheck Step 3. |
| Worked before, stopped suddenly | The Client Secret was rotated in Zoom, or the app was deactivated. Paste the new secret into Pedagio. |
| Session never starts | Every licence is already hosting a meeting, or the app is still in draft. |
| Zoom will not validate the URL | The Secret Token has not been saved in Pedagio yet. Save it first, then click Validate again — the URL itself is almost never the problem. |
| Recording shows “may expire” | It arrived, but you have no secure hosting connected — see Live session recordings. |
Zoom deletes recordings on its own schedule
