Integration Documentation
Last updated: April 18, 2026
OneThing CRM integrates with Zoom to let real estate agents schedule meetings, place phone calls, and auto-log call activity without leaving the CRM. The integration covers two Zoom products:
Both features are delivered through a single Zoom OAuth app. Each end-user (an agent or broker) authorizes OneThing with their own Zoom account. Authorization is revocable at any time.
zoomphonecall:// URI scheme with the target number pre-filled. The actual call is placed entirely by the Zoom client — OneThing does not intermediate voice traffic.call ended webhook and creates a Call Activity on the matched contact or lead, capturing direction, duration, timestamp, and counterpart number.voicemail received webhook. The CRM downloads the voicemail audio from Zoom, sends it to OpenAI's Whisper API for transcription, and stores the resulting transcript alongside the Call Activity.OneThing requests the minimum OAuth scopes needed to deliver the features above. Every scope has a specific purpose.
user:read:user — identify the connected Zoom user after OAuth (email, user id) so OneThing can link the Zoom account to the correct OneThing user.meeting:write:meeting — create scheduled Zoom meetings on the agent's behalf when the agent generates a meeting link from a CRM activity. We do not read existing meetings and we do not modify meetings created outside OneThing.phone:read:user — retrieve the agent's Zoom Phone user id and assigned phone number so the CRM can match inbound caller numbers to the correct agent.phone:read:list_call_logs — fetch the agent's recent Zoom Phone call history when they first connect, so the CRM can back-fill missing call activities.phone:read:list_recordings — list recordings linked to a call so the agent can select one to play in the CRM.phone:read:call_recording — stream a specific recording for playback inside the CRM call activity. We do not copy the recording to OneThing storage.phone:read:voicemail — download voicemail audio for Whisper transcription. Audio is processed and discarded after transcription completes; only the transcript is retained.phone:read:list_voicemails — list the agent's voicemails so the CRM can surface them in the call activity view.phone:write:user_call_command — issue call commands (end call, etc.) from the CRM when the adapter supports them. Not currently exercised — Zoom Phone outbound calls use the zoomphonecall:// URI handoff, so the Zoom client handles call control.OneThing does not request and does not use: meeting:read:meeting, recording:* (meeting-side recordings), phone:write:call_recording, phone:write:sms, or any scope granting access to another user's data.
Note: during pilot, OneThing's Zoom app is in unlisted mode. Your Zoom admin email must be added to our allow list before you can complete the consent screen. If you see “app not approved for your account,” contact support@1thing.ca and we'll add you within one business day.
You can disconnect Zoom at any time. Disconnecting revokes OneThing's access tokens on the Zoom side and deletes them from our database immediately. Webhook events for your account will stop being processed.
You can also revoke access directly in Zoom. Go to Zoom App Marketplace → Installed Apps, find OneThing CRM, and click Remove. OneThing detects the revocation on the next API call and clears the stale tokens from our database within 24 hours.
After disconnection, previously created Zoom meetings and previously logged call activities remain in your CRM for your records. They are your data; we do not delete them unless you explicitly request deletion.
The authoritative description of what OneThing stores, for how long, and with whom we share it lives in our Privacy Policy. A short summary for Zoom-specific data:
During the pilot phase, your Zoom admin email must be on OneThing's allow list. Email support@1thing.ca with the email address you use to sign in to Zoom. We'll add you within one business day.
This usually indicates a transient OAuth redirect issue. Retry once from Settings → Calendar. If it persists, try revoking OneThing in Zoom App Marketplace → Installed Apps and re-connecting from OneThing. If the error keeps happening, email support with the time of the attempt so we can check server logs.
The Zoom desktop app must be installed and running on the same machine as your browser. The zoomphonecall:// URI scheme only resolves if the Zoom client is installed. On iOS or Android, the mobile Zoom app must be installed.
Three things must be true: (1) your Zoom account must be connected in OneThing (Settings → Calendar shows Connected), (2) Zoom's webhook configuration must be validated on our side — the Zoom Marketplace app shows the event subscription as active, and (3) the inbound call must reach your personal Zoom Phone number (not a shared line). If (1) and (3) are fine, contact support — webhook validation issues are diagnosable from our server logs.
Transcription typically completes within two minutes of the voicemail being left. If more than 10 minutes have passed, contact support with the call time and the voicemail sender number. The most common cause is a transient OpenAI API error, which we retry automatically up to three times.
The fastest path is to uninstall OneThing from Zoom App Marketplace. Zoom revokes our tokens immediately on its side. OneThing detects the revocation on the next API call and clears stale tokens from our database. This is faster than disconnecting from within OneThing if you've lost access to your OneThing account.
Email support@1thing.ca for any question about the Zoom integration. We respond within four business hours, typically sooner. For data access, data deletion, or privacy requests specifically, email privacy@1thing.ca — we reply within 30 days as required by PIPEDA.