Skip to main content

Zoom

Overview

Connect your clinic’s Zoom account to automatically create Zoom meetings for Remote appointments, show “Join Zoom” buttons in Basis, and (optionally) ingest Zoom cloud recording transcripts into client notes.

  • Supported environments: Development and Production (separate redirect URLs)
  • App type: OAuth 2.0 (User-managed)
  • Data stored: Zoom access/refresh tokens, meeting join URL, optional transcript text in client notes

Prerequisites

  • You are a Clinic Admin in Basis
  • A Zoom user account with permission to create meetings
  • For transcripts: Zoom Cloud Recording enabled and “Audio Transcript” enabled in Zoom settings; your Zoom plan must support these features

Adding the App (Installation)

  1. In Basis, go to Settings → Integrations → Zoom → Connect.
  2. You’ll be redirected to Zoom. Sign in and approve requested permissions.
  3. You’ll be returned to Basis and see Zoom marked as “Connected.”
  4. Optional: Verify connection by booking a Remote service and confirming a Zoom “Join” button shows on the event.

Environment-specific notes

Ensure you connect in the environment you intend to use.

Troubleshooting install

  • If the consent page shows the wrong domain, you’re in the wrong environment; switch to the correct Basis URL and try again.
  • If approval succeeds but Basis still shows “Not connected,” refresh and try again. If it persists, disconnect and reconnect.

Usage

Create Zoom meetings for Remote appointments

Use-case: When you book an appointment for a service marked as Remote, Basis creates a Zoom meeting automatically.

Prerequisites:

  • Zoom is connected (Settings → Integrations → Zoom)
  • The service has Remote enabled (toggle) or is scheduled at a Remote location

Behavior:

  • A Zoom join link is saved on the appointment and displayed as a “Join Zoom” button in Basis Flow and Basis Hybrid.
  • The ICS calendar attachment includes the Zoom invitation details.
  • We attempt to enable cloud recording automatically; if Zoom rejects it (e.g., plan or admin policy), the meeting is still created without auto-recording.

Join Zoom from Basis

Use-case: Quickly join the Zoom meeting from event details.

Prerequisites: Appointment has a Zoom join URL (created at booking time with Zoom connected).

Behavior: A “Join Zoom” button appears in the event’s details page/modal.

Cloud recording and transcripts (optional)

Use-case: Save post-call transcripts directly into client notes.

Prerequisites:

  • Zoom Cloud Recording enabled
  • Audio Transcript enabled in Zoom recording settings
  • Adequate Zoom plan and account policies allowing cloud recording

Behavior:

  • After Zoom finishes processing the recording, Basis receives a webhook and pulls the transcript into the appointment’s client notes.
  • If cloud recording/transcripts are disabled or not available, transcripts will not be ingested.

Fathom transcripts (optional)

Use-case: If you prefer Fathom, transcripts can be ingested into client notes similarly to Zoom.

Prerequisites: Connect Fathom (if supported in your account).

Behavior: Fathom transcript is attached to the associated appointment’s notes.

Removing the App (Uninstall / Disconnect)

Disconnect from Basis

  1. Go to Settings → Integrations → Zoom → Disconnect.
  2. Basis immediately deletes your Zoom access/refresh tokens and marks Zoom as disconnected.

Uninstall from Zoom

  1. Sign in at zoom.us.
  2. Navigate to Manage → Installed Apps.
  3. Find the Basis integration and click Uninstall.
  4. Confirm de-authorization.

Implications of de-authorization:

  • Tokens are deleted in Basis upon Zoom’s “App Deauthorized” event.
  • Existing appointments keep their previously saved Zoom links and notes to preserve clinical records.
  • Transcripts already saved remain in client notes. Admins can manually remove notes if needed, or contact support for data removal requests.

Data handling

  • Tokens are stored encrypted at rest and deleted on disconnect or de-authorization.
  • Appointment metadata (e.g., Zoom join URL) and notes are standard clinical records and retained per your retention policy unless you delete them.

Troubleshooting

Cannot connect (authorization page loops or fails)

  • Ensure you’re using the correct environment (Dev vs Prod).
  • Verify your Zoom user can approve marketplace apps per account policy.

400 error when creating meetings

  • Ensure the Zoom user can create meetings.
  • If cloud recording is disabled by policy/plan, the meeting still creates but without auto-recording. Check that your plan supports it if you need transcripts.

No “Join Zoom” button

  • Confirm the service is Remote and Zoom was connected at the time of booking.
  • Only new bookings created after connecting will have Zoom links.

Transcripts not appearing

  • Ensure Zoom Cloud Recording and Audio Transcript are enabled.
  • Allow processing time after the meeting ends.
  • Confirm webhooks are configured and reachable; contact support if unsure.

Environment mismatch

  • If your authorize/redirect URL differs from the Basis URL you’re using, switch to the matching environment and reconnect.

Permissions (Scopes) and Webhooks

Permissions requested

  • meeting:write — create Zoom meetings for the connected user
  • recording:read — read cloud recording metadata and download transcript files for the connected user

Webhooks used

  • app.deauthorized — clears tokens immediately upon uninstall
  • recording.completed — triggers transcript ingestion into client notes

Note: Exact scope names may appear slightly different in Zoom’s UI over time; the purpose remains as above.

Security and Privacy

  • OAuth tokens are stored in Firestore encrypted at rest and deleted on disconnect or de-authorization.
  • Basis reads only what is necessary to create meetings and import transcripts.
  • Transcripts, if enabled, are stored in client notes as part of the clinical record.

Support

Email: support@basishealth.io

Please include: clinic ID, appointment ID, user email, and timestamp of the issue.