- Requirements
- Understand the two Zoom connections
- Step 1: Open Zoom settings in MeetingHub
- Step 2: Create a Server-to-Server OAuth app in Zoom
- Step 3: Add the required Zoom scopes
- Step 4: Activate the Server-to-Server OAuth app
- Step 5: Save Server-to-Server OAuth credentials in MeetingHub
- Step 6: Renew and test the OAuth token
- Step 7: Create a Zoom Meeting SDK app
- Step 8: Save the Meeting SDK credentials
- Step 9: Test Zoom browser joining
- Step 10: Configure defaults only after the connection works
- Security recommendations
- Common mistakes
- Troubleshooting
- Frequently asked questions
- Related guides
MeetingHub uses two separate Zoom app connections. A Server-to-Server OAuth app lets WordPress manage Zoom account data such as users, meetings, webinars, recordings, reports, and registrants. A Meeting SDK app is used when visitors join a Zoom meeting through the browser experience.
Configure both connections if you want the complete Zoom workflow. If you only need to create and manage Zoom sessions, start with Server-to-Server OAuth. Do not share Zoom credentials in screenshots, support tickets, or public pages.
Requirements #
- MeetingHub installed and activated
- WordPress administrator access
- Access to the Zoom App Marketplace for the Zoom account
- Permission to create and activate account-level Zoom apps
- A Zoom account and host license suitable for the features you plan to use
- HTTPS enabled on the WordPress site
- MeetingHub Pro when using Pro-only MeetingHub features
Understand the two Zoom connections #
Server-to-Server OAuth #
This app provides account-level API access. MeetingHub exchanges the Account ID, Client ID, and Client Secret for an access token using Zoom’s account credentials flow.
MeetingHub uses this connection for features such as:
- Loading Zoom users and hosts
- Creating and updating meetings and webinars
- Deleting Zoom sessions
- Reading recordings
- Loading account, daily, participant, and registrant reports
Meeting SDK app #
This app provides the Client ID and Client Secret used by MeetingHub’s browser-based Zoom joining path. It is separate from Server-to-Server OAuth and does not replace the account-level API connection.
A successful Server-to-Server OAuth connection does not prove that browser joining is configured. Test the Meeting SDK path separately.
Step 1: Open Zoom settings in MeetingHub #
- Sign in to WordPress as an administrator.
- Go to MeetingHub > Settings.
- Open Zoom.
- Select the Connect tab.
The Connect tab contains Server to Server OAuth Credentials and App Credentials for the Meeting SDK.
[Image needed: WordPress admin page at MeetingHub > Settings > Zoom > Connect showing the Server to Server OAuth Credentials and App Credentials sections. Blur every Account ID, Client ID, Client Secret, token, email address, and private site URL.]
Step 2: Create a Server-to-Server OAuth app in Zoom #
- Open the Zoom App Marketplace in a separate browser tab.
- Sign in with an account that can manage apps for the Zoom account.
- Open the app development area.
- Create a Server-to-Server OAuth app.
- Enter the app information required by Zoom.
- Open the app’s credentials page.
Zoom provides three values that MeetingHub requires:
- Account ID
- Client ID
- Client Secret
[Image needed: Zoom App Marketplace Server-to-Server OAuth app credentials page showing the Account ID, Client ID, and Client Secret fields. Blur all credential values, account names, email addresses, and app identifiers.]
Step 3: Add the required Zoom scopes #
A scope is a permission granted to an app. Add the Zoom account-level scopes required for the features you intend to use, including the applicable meeting, webinar, user, recording, report, and registrant operations.
The supplied MeetingHub source calls several Zoom API areas, but it does not contain a single fixed scope list for every account and plan. Zoom can also change scope names and availability. Review the current endpoints enabled by your MeetingHub workflow and select the matching scopes in the Zoom Marketplace.
Use the smallest scope set that supports the features you actually need. If you do not use webinars or reports, do not grant unrelated permissions merely because they are available.
[Image needed: Zoom Server-to-Server OAuth app Scopes page showing the selected account-level scopes for the MeetingHub features being used. Blur the app name, account details, administrator identity, and any organization-specific information.]
Step 4: Activate the Server-to-Server OAuth app #
- Review the app information and selected scopes.
- Activate the app in the Zoom Marketplace.
- Confirm that the app is ready for account-level use.
- Keep the Zoom tab open until MeetingHub has been tested.
Saving credentials from a draft or inactive Zoom app can leave MeetingHub unable to request a token.
Step 5: Save Server-to-Server OAuth credentials in MeetingHub #
- Return to MeetingHub > Settings > Zoom > Connect.
- Paste the Zoom Account ID into OAuth Account ID.
- Paste the app Client ID into OAuth Client ID.
- Paste the app Client Secret into OAuth Client Secret.
- Select Save Changes.
[Image needed: MeetingHub Zoom Connect tab with all three Server-to-Server OAuth fields completed and the Save Changes button visible. Blur every credential value and any browser password-manager popup.]
MeetingHub can display Connected after the saved fields are present and match the stored values. In the inspected interface, that label is based on saved credential presence. It is not a complete live test of every Zoom endpoint or scope.
Step 6: Renew and test the OAuth token #
- Select Renew OAuth Token in the Server-to-Server OAuth section.
- Wait for the success or error notice.
- Open MeetingHub > Zoom Users.
- Confirm that users load from the connected Zoom account.
- Create a private Zoom test meeting in MeetingHub.
- Open Zoom and confirm that the meeting exists under the selected host.
The token renewal action is restricted to WordPress administrators in the inspected source. MeetingHub requests a new token from Zoom using the stored account credentials.
[Image needed: MeetingHub Zoom Connect tab immediately after Renew OAuth Token succeeds, followed by the Zoom Users screen with fictional users or blurred names and email addresses.]
If token renewal succeeds but a specific feature fails, check the scope and Zoom plan required by that feature. A meeting scope does not automatically provide recording, report, webinar, or registrant access.
Step 7: Create a Zoom Meeting SDK app #
- Return to the Zoom App Marketplace.
- Create a Meeting SDK app.
- Complete the app information required by Zoom.
- Return to MeetingHub’s Zoom Connect tab.
- Find Redirect URL for Zoom Meeting SDK.
- Select Copy URL.
- Paste that exact value into the matching redirect or allow-list field in the Zoom Meeting SDK app.
MeetingHub generates the displayed URL from the WordPress home URL and the /mhub-zoom-oauth/ path. Copy the value shown on your own site instead of typing it from memory. The protocol, domain, subdirectory, path, and trailing slash must match.
https://example.com/mhub-zoom-oauth/
[Image needed: MeetingHub Zoom Connect tab showing the Redirect URL for Zoom Meeting SDK and Copy URL control, beside the corresponding Zoom Meeting SDK app redirect or allow-list field. Blur the real domain if private and blur all app credentials.]
Step 8: Save the Meeting SDK credentials #
- Open the Meeting SDK app credentials in Zoom.
- Copy its Client ID.
- Copy its Client Secret.
- Return to MeetingHub’s App Credentials section.
- Paste the values into Client ID and Client Secret.
- Select Save Changes.
- Activate or publish the Meeting SDK app if Zoom requires that step for your app type.
[Image needed: MeetingHub App Credentials section with the Meeting SDK Client ID and Client Secret fields completed and the Connected label visible. Blur the complete credential values, Zoom app identifiers, and account information.]
As with Server-to-Server OAuth, the saved Connected label confirms that values are stored. Verify browser joining before relying on it for a live event.
Step 9: Test Zoom browser joining #
- Create a private Zoom test meeting in MeetingHub.
- Open its public MeetingHub page.
- Test the normal Zoom join action.
- Test the browser-based joining path provided by the Meeting SDK.
- Use a private browser window to test the attendee experience.
- Confirm that the meeting ID, passcode, display name, and SDK signature are accepted.
- Check the browser console if the embedded client does not load.
[Image needed: Private MeetingHub Zoom test page showing the browser joining action and the loaded Zoom Meeting SDK interface. Blur meeting IDs, passcodes, participant names, host information, signatures, and join URLs.]
API management and browser joining are separate tests. A meeting can be created successfully through Server-to-Server OAuth while the Meeting SDK still fails because of an incorrect redirect URL, inactive SDK app, invalid Client ID or Secret, or Zoom account restrictions.
Step 10: Configure defaults only after the connection works #
After both connections pass their tests, use the Zoom Configurations and Video Settings tabs to choose defaults for new meetings.
These settings include recurrence, timezone, registration, waiting room behavior, authentication, join before host, recording, host and participant video, webinar controls, and MeetingHub page layout. Read the dedicated creation and default-settings guides before enabling security-sensitive options.
Security recommendations #
- Never place Account IDs, Client IDs, Client Secrets, access tokens, start URLs, or SDK signatures in public documentation.
- Use a dedicated Zoom app for the production site.
- Grant only the scopes required by the enabled MeetingHub workflows.
- Restrict WordPress administrator access to trusted users.
- Rotate the affected secret immediately if it is exposed.
- Remove old credentials from staging sites and database copies.
- Retest token renewal and browser joining after rotating a secret.
- Review Zoom Marketplace app activity and account access regularly.
Common mistakes #
- Using credentials from the wrong Zoom app type
- Pasting the Meeting SDK Client ID into the OAuth Client ID field
- Leaving the Server-to-Server OAuth app inactive
- Missing scopes for users, webinars, recordings, reports, or registrants
- Typing the Meeting SDK redirect URL instead of copying the displayed value
- Changing the site domain or HTTPS configuration without updating the Zoom app
- Assuming the Connected label tests every Zoom API feature
- Testing only meeting creation and not testing browser joining
Troubleshooting #
Renew OAuth Token fails #
Check the Account ID, OAuth Client ID, and OAuth Client Secret. Confirm that the Server-to-Server OAuth app is activated and belongs to the expected Zoom account. Save corrected values before renewing the token again.
Zoom users do not load #
Confirm that token renewal succeeds and that the app has the required user-reading permission. Also confirm that the Zoom account contains users visible to the app owner.
Meetings work but recordings or reports fail #
The app may have meeting permissions without the recording or report permissions required by those endpoints. Check the matching Zoom scopes, account plan, host license, and data availability.
Browser joining does not load #
Check the Meeting SDK Client ID and Client Secret, the exact redirect or allow-list URL, app activation, HTTPS, and browser console errors. Do not replace the SDK credentials with the Server-to-Server OAuth credentials.
Zoom says the redirect URL does not match #
Copy the URL from MeetingHub again and compare the protocol, domain, subdirectory, path, and trailing slash with the value saved in the Zoom Meeting SDK app.
Webinars cannot be created #
Confirm that the selected Zoom host has a webinar entitlement and that the Server-to-Server OAuth app has the required webinar permissions.
The Connected label appears but a feature still fails #
The inspected settings interface marks the connection from saved credential presence. Use token renewal, Zoom Users, a private test meeting, and a browser joining test to verify the real connection.
Frequently asked questions #
Do I need both Zoom apps? #
Use Server-to-Server OAuth for Zoom account management. Add the Meeting SDK app when you need MeetingHub’s browser-based Zoom joining experience.
Can the same Client ID be used in both sections? #
No. The values come from different Zoom app types and serve different purposes.
Does MeetingHub add Zoom features to my plan? #
No. Webinar access, cloud recording, report availability, host capacity, and other provider features depend on the Zoom account and license.
Should I publish a test meeting? #
Use a private or non-public test workflow until token renewal, meeting creation, and browser joining all work correctly.
Related guides #
- How to Create a Zoom Meeting or Webinar in MeetingHub
- How to Display Zoom Meetings and Webinars with MeetingHub Shortcodes
- How to Manage Zoom Users in MeetingHub
- How to View Zoom Cloud Recordings in MeetingHub
- How to Use the Public Meeting Page in MeetingHub
- How to Configure Default Settings for MeetingHub Platforms
- MeetingHub Troubleshooting Guide