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

You need a paid Zoom plan with cloud recording available, and admin access to the Zoom App Marketplace for your account. Zoom's free tier does not offer cloud recording, so there is no recording for Pedagio to collect. You do not have to switch recording on for each class — Pedagio asks Zoom to record to the cloud when it creates the meeting.

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.

  1. 1
    Sign in at marketplace.zoom.us and choose Develop → Build App.
  2. 2
    Pick 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.
  3. 3
    On the App Credentials screen you will see an Account ID, Client ID and Client 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.

ScopeWhy it is needed
meeting:write:meeting:adminCreate the meeting when you schedule a session

Searching for it in Zoom

Zoom's scope search matches on the description rather than the scope string, so pasting 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.

  1. 1
    In 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.
  2. 2
    Back in your Zoom app, open Feature → Event Subscriptions and add a subscription. Paste the URL as the Event notification endpoint URL.
  3. 3
    Subscribe to exactly two events: meeting.ended and recording.completed.
  4. 4
    Find 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.
  5. 5
    Paste it into the Webhook Secret Token field in Pedagio and save it before you click Validate in Zoom.
  6. 6
    Now click Validate in Zoom, then Save. Zoom will not let you save the subscription until validation passes.

Save the secret in Pedagio first

Zoom's validation check is signed with that secret. If Pedagio does not have it yet, validation fails and it is easy to conclude the URL is wrong when it is not. If you hit this, save the secret and click Validate again.

Leave the optional authentication methods off

The event subscription screen offers several authentication options — Basic Authentication, Token Authentication, Custom Header and Zoom's HMAC header. These are extra layers you may add, and Pedagio needs none of them. Leave all of them unselected. They are not the Secret Token, and turning one on will not help validation succeed.

Step 4 — Add your credentials to Pedagio

  1. 1
    In the same Zoom Meeting Licenses section, paste the Account ID, Client ID and Client Secretfrom Step 1. The label is for your own reference — use the host's name if you plan to add more than one.
  2. 2
    Activate the app in Zoom (Activation → Activate). An app left in draft will reject Pedagio's requests.

Running parallel classes

One Zoom licence hosts one meeting at a time. Add a licence for each concurrent class you need to run — Pedagio claims a free one when a session starts and releases it when the meeting ends. If every licence is busy, the next session cannot start, so match the number of licences to how many classes overlap at your busiest hour.

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 seeUsual cause
Nothing arrives at allThe 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 arriveThe webhook is missing recording.completed, or validation was never completed. Recheck Step 3.
Worked before, stopped suddenlyThe Client Secret was rotated in Zoom, or the app was deactivated. Paste the new secret into Pedagio.
Session never startsEvery licence is already hosting a meeting, or the app is still in draft.
Zoom will not validate the URLThe 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

Connecting Zoom gets recordings into Pedagio; it does not keep them there. Zoom clears cloud recordings after about 30 days on most plans, and Pedagio holds only a link unless you have secure hosting connected. If students revise from recordings months later, read Live session recordings before your first batch.