Zoom 403 - AI Phone Call Summary / OAuth with Make.com

Hello guys,

I’m trying to get a phone call summary from Zoom with make.com
(Zoom Phone API)

I already set up the webhook getting the event with a general app, but I struggle with OAuth of Zoom. OAuth is set up and works, but I cannot get a token to make a GET request to the API…

I always get a 403 error, altough the scopes are set correct in the OAuth. Seems as I don’t understand something. Maybe someone figured it out?

Hey @krautpotato
Thanks for reaching out to us.
Can you point me to the app that you are using? Are you integrating with any of the apps that are published in the Zoom MarketplacE?

Hi! It sounds like you’re on the right track, but for accessing Zoom Phone call summaries (like AI-generated transcripts), you’ll need to create a Server-to-Server (S2S) OAuth app, not a general OAuth app.

Here’s what you need to do:

  1. Go to the Zoom App Marketplace and create a Server-to-Server OAuth app.
  2. After creating the app, configure it properly.
  3. Then go to the Scopes section.
  4. Under the “Phone” category, select all scopes related to AI summaries of calls — I’m attaching a screenshot to help illustrate what to select.

Once that’s done, you can use your Client ID and Client Secret from the S2S app to generate an access token and use it to make authorized GET requests to the Zoom Phone API.

Let me know if you need help generating the token or with API requests — happy to help.

Best regards,
Naeem Ahmed

Hey Naem,

how can I get the token? I will try out tomorrow but I think when I tried with S2S there seemed to be another issue :confused:

Hey! @krautpotato

Here’s the working code to get the token using a Server-to-Server (S2S) OAuth app:

static async getZoomAccessToken() {
    const payload = qs.stringify({
        grant_type: 'account_credentials',
        account_id: ZOOM_ACCOUNT_ID
    });

    const { data } = await axios.post('https://zoom.us/oauth/token', payload, {
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            Authorization: 'Basic ' + Buffer.from(`${ZOOM_CLIENT_ID}:${ZOOM_CLIENT_SECRET}`).toString('base64')
        }
    });

    return { data };
}

Let me know if you run into any issues.

— Naeem Ahmed

Note that there is currently issues with the phone:read:ai_call_summary:master scope for S2S OAuth.

More details here: