Connecting n8n with zoom to get survey

Hi everyone,

I’m currently trying to integrate Zoom with n8n in order to retrieve webinar survey results via the Zoom API, but I’m running into issues and I’m not entirely sure which settings in Zoom are required for this to work.

Here’s what I have done so far:

  1. Zoom App Creation

    • I created a Zoom app in the Zoom App Marketplace.

    • I’ve tried both Server-to-Server OAuth and User-managed OAuth setups.

    • I have my Client ID and Client Secret from the Zoom app credentials page.

  2. Scopes

    • I know that to access webinar survey reports, I likely need the report:read:admin scope.

    • However, when I try to add this scope in my Zoom app (User-managed OAuth), it doesn’t appear in the list when searching. I suspect it might be tied to the app type or account-level permissions.

    • I’m not entirely sure if my app type supports these scopes, or if I need admin approval or a different Zoom plan for them to show up.

  3. n8n Setup

    • I created a credential in n8n for my Zoom app using OAuth2 authentication.

    • I added the OAuth Redirect URL from n8n into my Zoom app’s settings and also placed it in the allow list.

    • The OAuth connection in n8n successfully opens the Zoom authorization window, but sometimes after clicking “Allow” nothing happens (no token is returned).

  1. Custom API Call

    • In n8n, I set up a Zoom > Custom API Call node, and also tried an HTTP Request node to call:

      GET https://api.zoom.us/v2/report/webinars/{webinarId}/survey

    • I replaced {webinarId} with my actual webinar ID.

    • The request returns Authorization failed – Invalid access token.

  2. Testing in Make.com

    • I also tested the integration in Make.com with similar results – the call to the survey endpoint fails with an authentication error, even though the connection seems authorized.

My questions:

  • For retrieving webinar survey data, which app type should I be using in Zoom – Server-to-Server OAuth, User-managed OAuth, or something else?

  • Which scopes are required exactly, and how can I make sure they appear when adding them in Zoom’s developer portal?

  • Do I need to publish my Zoom app or request admin approval to be able to call the /report/webinars/{webinarId}/survey endpoint?

  • In n8n, after successfully authorizing OAuth2, do I need to handle token exchange/refresh manually for Zoom, or should the credentials node handle that automatically?

  • Where do I get my access token? I have client ID and client Secret but not sure where to finde my token.

Any guidance on the exact Zoom settings and n8n configuration would be really appreciated.

Thanks in advance!

Here’s an importable n8n workflow JSON that:

  • Gets a Zoom Server-to-Server OAuth access token
  • Uses it to call GET /v2/report/webinars/{webinarId}/survey

After import, edit the two placeholders: YOUR_ACCOUNT_ID and YOUR_WEBINAR_ID. Then open the Get Zoom Access Token node and attach your HTTP Basic Auth credential (Client ID as user, Client Secret as password).

  • The token node returns { access_token, token_type, expires_in }; the next node reads {{$json["access_token"]}} automatically.
  • Make sure the webinar has ended (report endpoints populate post-event).
  • If you prefer to keep IDs out of node params, add a Set node before “Get Zoom Access Token” and store account_id/webinar_id, then reference them with expressions.
2 Likes

Thank you so much! It is solved

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.