Skip to content

Zoom Marketplace Publish Checklist

Use this checklist to publish the ConnectGain Zoom app that captures cloud recordings and sends them over API.

Full Zoom-only walkthrough (every Marketplace task): ZOOM_MARKETPLACE_ALL_STEPS.md

1) Zoom app setup (Marketplace)

  1. Go to Zoom Marketplace > Develop > Build App.
  2. Create an OAuth app (User-managed recommended for SaaS installs).
  3. Set OAuth Redirect URL(s):
  4. Production: https://<your-domain>/scheduling/integrations/zoom/callback
  5. Local/dev if needed.
  6. Add scopes (minimum):
  7. meeting:write
  8. meeting:write:admin
  9. meeting:read
  10. recording:read
  11. user:read
  12. Configure Event Subscriptions:
  13. Endpoint URL: https://<SUPABASE_PROJECT_REF>.supabase.co/functions/v1/zoom-webhook
  14. Event: recording.completed
  15. Secret Token: generate in Zoom and save for backend env.

2) Supabase env configuration

Set these env vars for edge functions:

  • ZOOM_CLIENT_ID
  • ZOOM_CLIENT_SECRET
  • ZOOM_WEBHOOK_SECRET (must match Zoom Event Subscription secret token)

3) Deploy backend changes

  1. Deploy edge functions:
  2. zoom-oauth-url
  3. zoom-oauth-callback
  4. zoom-create-meeting
  5. zoom-webhook
  6. webhook-dispatcher
  7. Run migrations, including:
  8. 20260317193000_create_zoom_recordings_bucket.sql

4) ConnectGain webhook settings

  1. Open webhook settings in ConnectGain.
  2. Create/edit webhook and subscribe to:
  3. zoom.recording.completed
  4. Save customer API endpoint and optional secret/header settings.

5) End-to-end test before submission

  1. Install app through OAuth connect flow.
  2. Create a Zoom meeting from ConnectGain.
  3. Record the meeting to cloud and stop recording.
  4. Confirm Zoom sends recording.completed and edge function accepts signature.
  5. Confirm recording file appears in storage bucket zoom-recordings.
  6. Confirm outbound webhook delivery with event type zoom.recording.completed.

6) Zoom submission requirements

Before clicking Submit for Review in Zoom:

  • App name, short/long description complete.
  • Privacy Policy URL and Terms URL are public and accurate.
  • Support contact email/URL is valid.
  • Requested scopes are justified by app behavior.
  • Demo/test credentials and instructions are ready if requested.

After approval, publish as:

  • Public (listed in Marketplace), or
  • Unlisted (installable only via direct link).