Zoom Integration

Version: 1.1 Last Updated: 2026-05-18


1. Overview

SalesSavant is an AI-powered sales coaching platform. The Zoom integration imports completed cloud recordings, transcripts, and participant data so managers and reps can review calls, get AI-generated coaching, and track performance across the team. It is built for sales organizations using Zoom Meetings (and Zoom Webinars for larger sales events) as their primary customer-call channel.


2. What We Access

All access is read-only. SalesSavant issues only HTTP GET requests to Zoom APIs.

  • User list — active users in your Zoom account, for team mapping and roster suggestions.
  • Group membership — Zoom groups and their members, to suggest SalesSavant team assignments.
  • Recording metadata — meeting ID, topic, start time, duration, host, file list.
  • Transcript files — text transcripts with speaker labels and timestamps, used for AI coaching analysis.
  • Participant reports — attendee names, emails, join/leave times, and host/attendee role for each recording.

3. What We Don't Do

  • We do not create, modify, schedule, start, stop, or delete any Zoom meeting, webinar, user, group, or recording.
  • We do not share your Zoom data with other SalesSavant customers. All data is scoped to your organization.
  • We do not use your Zoom data, transcripts, or recordings to train AI models — ours or anyone else's.
  • We do not access chat messages, private DMs, contacts, phone calls, or calendar events via Zoom APIs.

4. OAuth Scopes

SalesSavant requests 14 scopes, all read-only and at the admin level. Admin scopes are required because SalesSavant operates at the team/organization level: the admin who installs the app grants coaching access across all configured team members, not only their own user. Each scope corresponds to either a Zoom REST endpoint we call or a webhook event we subscribe to — see scope-justifications.md for the per-scope mapping.

Cloud Recording

  • cloud_recording:read:recording:admin — required to subscribe to the recording.completed webhook event, the primary real-time ingestion trigger.
  • cloud_recording:read:list_user_recordings:admin — discover each user's completed cloud recordings so calls can be imported for coaching.
  • cloud_recording:read:list_recording_files:admin — list the files attached to each recording (audio, video, transcript) to know what's available.
  • cloud_recording:read:meeting_transcript:admin — download transcripts for AI coaching analysis. This is the core of the product.

Meetings

  • meeting:read:meeting:admin — required to subscribe to the meeting.ended webhook event, which drives our recording-reconcile backstop that guarantees ingest even when recording.completed is delayed.
  • meeting:read:past_meeting:admin — fetch a completed meeting's metadata (title, duration, host, meeting type) to populate the call record.

Webinars

  • webinar:read:webinar:admin — required to subscribe to the webinar.ended webhook event, which drives the same recording-reconcile backstop for webinar-based sales sessions.

Reports

  • report:read:list_meeting_participants:admin — canonical participant data for past meetings (role, join/leave times) used on the call detail view.
  • report:read:list_webinar_participants:admin — companion participant report for webinar-based sales calls.
  • report:read:webinar:admin — Webinar Detail Report; the only Zoom endpoint that returns webinar metadata (title, duration, host) after the webinar has ended. Required because Zoom does not expose a GET /past_webinars/{id} analog to the meeting endpoint.

Users & Groups

  • user:read:user:admin — fetch GET /users/me once at OAuth callback to capture the Zoom account_id (used to route incoming recording.completed webhooks to the right team) and to look up individual users during participant matching.
  • user:read:list_users:admin — discover active users during onboarding to fan out recording backfill jobs and power roster suggestions.
  • group:read:list_groups:admin — read Zoom group definitions to suggest SalesSavant team mappings (e.g., group "EMEA Sales" → team "EMEA Sales").
  • group:read:list_members:admin — read group membership to place discovered users onto the correct SalesSavant team.

5. Adding the App

Before you start, you need:

  • A SalesSavant admin account
  • A Zoom account admin who can authorize a Marketplace app

Steps

  1. Sign in to SalesSavant at https://app.salessavant.ai. The fastest path is the Direct Landing URL: https://app.salessavant.ai/integrations/zoom/connect — if you're signed out, you're routed through sign-in and returned to the connect page automatically.
  2. From inside the app, you can also reach the same flow from Settings → Integrations in the sidebar and clicking the Zoom card's Connect Zoom button. [screenshot: settings-integrations-before-connect]
  3. You are redirected to Zoom's OAuth consent screen. Review the requested scopes and click Allow. [screenshot: zoom-oauth-consent]
  4. Zoom redirects you back to SalesSavant. The Zoom card now shows Active with the connected account email. [screenshot: settings-integrations-after-connect]

Troubleshooting

The OAuth redirect fails, or the Zoom card stays on "Not connected"

  • Refresh the Integrations page; the post-OAuth webhook can take a few seconds to deliver.
  • Confirm your Zoom user has admin permissions for OAuth app authorization. SalesSavant requests admin scopes, so a member-level Zoom user cannot authorize the install.
  • If a half-finished connection record exists, disconnect it from the Zoom card and reconnect.

The "Connect Zoom" button does nothing when clicked

  • Browser ad-blockers and privacy extensions can intercept the OAuth handoff. Try with extensions disabled or in a different browser.
  • Check that your SalesSavant account has the Integrations capability. If you don't see the Connect button at all, your role doesn't grant integration management — ask your SalesSavant org admin.

OAuth completes but no recordings appear

  • The first round of user discovery takes 30–60 seconds. The first backfill batch usually shows up within 5 minutes.
  • Only users who have been added to a SalesSavant team get their recordings imported. Add users in Settings → Team before expecting calls in Dashboard → Calls.
  • Confirm the connected Zoom account has cloud recording enabled and at least one completed cloud recording in the past 30 days.

For anything not covered here, see Support.


6. Usage

This section describes what the integration does once it is connected. Each feature lists its use case, what triggers it, and any prerequisites a customer needs to have in place.

6.1 Automatic call import

Use case: Bring every Zoom cloud recording into SalesSavant so sales managers and reps can review and coach on real customer calls without re-uploading anything.

When it runs:

  • Live: immediately when Zoom delivers a recording.completed webhook to SalesSavant.
  • Backfill: a one-time 30-day historical sweep, kicked off right after OAuth connection.
  • Reconciliation: a nightly safety-net job that re-fetches anything webhook delivery may have missed.

Prerequisites:

  • Cloud recording must be enabled on the host's Zoom account (Zoom Basic does not include cloud recording).
  • The Zoom host must be mapped to a SalesSavant team. Recordings from un-mapped hosts are discovered but not processed.
  • The recording must have a transcript. Zoom generates these automatically for cloud recordings; meetings recorded only locally are not eligible.

6.2 AI coaching analysis

Use case: Produce structured per-call feedback — strengths, weaknesses, missed opportunities, and concrete next steps — so reps can self-review and managers can focus 1:1 time on the highest-leverage moments.

When it runs: Automatically after a call's transcript becomes available, typically within 1–5 minutes of import.

Prerequisites:

  • Successful call import (see 6.1).
  • Active SalesSavant subscription. Coaching is the product's primary paid feature.
  • A scorecard configured for the team. SalesSavant ships default scorecards for common sales motions; managers can edit them in Settings → Scorecards.

6.3 Team mapping from Zoom groups

Use case: Reduce manual setup by suggesting SalesSavant team structures that mirror the customer's existing Zoom organization (for example, a Zoom group named "EMEA Sales" surfaces as a suggested SalesSavant team "EMEA Sales").

When it runs:

  • Initial: at OAuth connection.
  • Ongoing: nightly refresh; new groups and group-membership changes are detected within 24 hours.

Prerequisites:

  • Zoom Pro or higher. Zoom Groups is not available on the Basic plan.
  • At least one Zoom group with members. Empty groups are skipped.

6.4 Active user discovery ("Discovered People")

Use case: Help SalesSavant admins find the Zoom users who should become reps in SalesSavant without manually typing email addresses, and rank them by recent recording activity so the most active users surface first.

When it runs: Refreshed in the background after install and on each nightly reconciliation pass.

Prerequisites:

  • Zoom users must be in an Active state. Deactivated and pending users are filtered out.

6.5 Participant matching on call review

Use case: On the call detail page in SalesSavant, show who attended the call (host, internal reps, external participants) with role and join/leave times. This lets managers see who was on the line without watching the recording.

When it runs: Once per call, at import time, using Zoom's post-meeting participant report.

Prerequisites:

  • The meeting must have ended. Real-time participant data is not used.
  • Anonymous attendees (no Zoom sign-in, no name prompt) show as "Unknown" — this is a Zoom-side limitation, not a SalesSavant one.

7. Ongoing Operation

  • Live ingestion via webhooks. SalesSavant listens for Zoom's recording.completed webhook. When a new cloud recording finishes processing on Zoom's side, we fetch the metadata, participants, and transcript automatically — no polling, no user action.
  • Nightly reconciliation sync. As a reliability fallback, SalesSavant also runs a nightly reconciliation pass to catch anything missed by webhooks (e.g., delivery failures, outages, late-arriving recordings).

Both paths use the same read-only endpoints and the same scopes listed in Section 4.


8. Removing the App

To remove the SalesSavant app from your Zoom account, follow the standard Zoom Marketplace removal flow below.

Removal steps

  1. Log in to your Zoom account and navigate to the Zoom App Marketplace.
  2. Click Manage >> Added Apps or search for the "SalesSavant" app.
  3. Select the "SalesSavant" app.
  4. Click Remove.

Potential implications of removal

When you remove SalesSavant from your Zoom Marketplace:

  • Zoom sends SalesSavant an app_deauthorized event and SalesSavant immediately revokes the OAuth credentials, so no further Zoom API calls can be made on behalf of your account.
  • New Zoom recordings will stop being ingested into SalesSavant — no further AI coaching analysis is generated for new calls.
  • The recording.completed, meeting.ended, and webinar.ended webhook subscriptions for your account are torn down.
  • Already-imported call records, transcripts, coaching cards, and related data enter a 7-day grace period before permanent deletion (see next section).
  • If anyone in the same Zoom account re-authorizes within the 7-day grace window, deletion is cancelled and the connection is restored along with all preserved data.

How user data is handled after removal

For Marketplace removals, SalesSavant honors a 7-day grace period before permanently deleting your data, to protect against accidental uninstalls.

After 7 days with no re-authorization from your Zoom account, SalesSavant permanently deletes:

  • All recordings and transcripts from encrypted storage
  • All call records and associated entities (coaching cards, tasks, notes, confirmations, rep performance history)
  • All Zoom OAuth credentials (hard delete)
  • The vault connection record (soft delete with audit trail entry retained for compliance)

See the Privacy Policy for the full data-retention matrix.

Specific requirements

None beyond the standard Zoom Marketplace removal flow above. SalesSavant does not require any additional steps on your part (no support email, no manual ticket) — the deauthorization webhook handles teardown end-to-end.

Alternative: disconnect from within SalesSavant

You can also end the integration from inside SalesSavant if you prefer not to use the Marketplace flow:

  1. Go to Settings → Integrations.
  2. On the Zoom card, click Disconnect.
  3. The connection is revoked immediately and OAuth credentials are hard-deleted. Unlike the Marketplace removal flow above, this path retains already-imported call records, transcripts, and recordings by default — your organization owns that data and may still want to reference it. To purge already-imported data, request a full deletion via support@salessavant.ai.

9. Data Handling

Encryption

  • At rest: AES-256 via Supabase-managed storage for recordings and transcripts; AES-256-GCM at the application layer for OAuth credentials, with per-record PBKDF2-derived keys from master keys stored outside the database.
  • In transit: TLS 1.2 or higher for all connections between your browser, SalesSavant, Zoom APIs, and our sub-processors.

Retention

  • Recordings and transcripts: retained for the life of the customer's subscription, then deleted per the Privacy Policy schedule.
  • OAuth credentials: retained while the connection is active; hard-deleted on disconnect or after the 7-day grace period.
  • Audit events: retained for 2 years for security and compliance.

Full retention details are in the Privacy Policy.

Sub-processors

SalesSavant uses the following sub-processors to deliver the service:

  • Vercel — application hosting
  • Supabase — managed PostgreSQL and object storage
  • Clerk — authentication and user management
  • OpenAI — AI coaching model inference (zero data retention agreement)
  • Inngest — background job orchestration
  • Datadog — application logs and metrics
  • Sentry — error tracking (PII is redacted before storage)
  • PostHog — product analytics
  • Resend — transactional email delivery
  • Upstash — rate limiting (Redis)
  • Stripe — billing and payments

10. Security Posture

  • All customer data is scoped by organization ID; cross-tenant access is prevented at the database and API layers.
  • OAuth tokens are never logged. Transcripts are never sent to third parties except the AI sub-processor listed above.
  • Webhook signatures are verified on every inbound event.
  • Access to production systems is restricted to on-call engineers and requires MFA.

11. Support

  • Email: support@salessavant.ai
  • Help center: https://app.salessavant.ai/help
  • Response time: We aim to respond to support requests within one business day. Urgent production issues (integration outage, data access problems) are prioritized.

For privacy or data-subject requests, email privacy@salessavant.ai.


12. Version History

  • 1.1 — 2026-05-18 — Adding the App / Usage / Removing the App restructure to match Zoom Marketplace user-documentation checklist; added Troubleshooting subsection.
  • 1.0 — 2026-04-16 — Initial Marketplace launch.