Zoom Phone CTI Guide
Zoom Phone CTI Guide
Zoom Phone Integration
Velaro integrates with Zoom Phone in two independent pieces, set up separately:
- Inbound screen pop (base, live today) — works as soon as your site's phone numbers are configured via a webhook (Settings → Admin → Voice → Zoom Phone); no Zoom login required on Velaro's side.
- In-call control — hold, resume, end (live today, paid add-on) — requires connecting a Zoom account via OAuth (same Voice admin page, separate "Call control" panel) AND the "Zoom Phone Call Control" entitlement on your plan. Once both are set up, agents see real hold/resume/end controls in the Velaro workspace for an in-progress Zoom Phone call.
- Call transfer — not yet available; the real Zoom command name for it hasn't been confirmed against a live call. Hold/resume/end are available in the meantime.
- Click-to-dial (live today) — every phone number shown on the Call Activity report (Reports → Call Activity) is a clickable
tel:link for Zoom Phone calls, when your site has the Zoom Phone screen pop entitlement. Clicking it hands off to your OS/browser's default calling handler — this is a real phone number launch, but Velaro cannot confirm it opens specifically in the Zoom Phone desktop app rather than another registered calling handler (Windows/macOS dialer, Teams, etc.); that depends on what's registered as the defaulttel:handler on the agent's machine. Zoom Phone still has no server-side API to originate a call, so thistel:hand-off — not an API call — is the only real mechanism. Azoomphonecall:URI scheme was considered but is not used here because Zoom Phone's desktop client registering that scheme could not be confirmed. - Call log sync to CRM — not automatic. Zoom Phone's own call log is readable through the connected account, but nothing writes it into your CRM automatically today.
See the Telephony & CTI Overview guide for how screen pop, call logging, and IVR hand-off work across all Velaro phone integrations — this guide covers Zoom Phone-specific setup only. Zoom Contact Center is a separate Zoom product with its own section below — don't assume connecting one connects the other.
Licensing model: screen pop is bundled with the base voice-channel entitlement for each Zoom product (no separate charge, no usage cap — it's a lookup against your CRM, not a metered resource). Call control (hold/resume/end) is licensed per Velaro plan as the "Zoom Phone Call Control" add-on, not per call or per minute — once a site has the add-on, every agent seat on that site gets it, the same way Velaro licenses its other paid add-ons. There is no Contact Center call-control add-on today because no Contact Center call-control feature exists yet (see below).
Requirements
| Requirement | Details |
|---|---|
| Zoom Phone license | An active Zoom Phone number assigned to each agent using screen pop |
| Zoom Phone Call Control add-on | Required on your Velaro plan for hold/resume/end — screen pop works without it |
| Zoom account connection | An admin connects a Zoom account via OAuth for call control — see Setup below |
Setup
Screen pop (base)
Go to Settings → Admin → Voice, select Zoom Phone, and follow the Setup tab's steps (Event Subscription webhook URL + secret in Zoom's Marketplace app, then map each agent's Zoom User ID). This is all screen pop needs.
Call control (hold/resume/end)
On the same Voice admin page, once Zoom Phone is the active provider, a separate "Call control" panel appears with a Connect Zoom Phone for call control button. Click it, sign in to Zoom, and authorize Velaro. The panel then shows Connected as {your Zoom email}. This connection is independent of the webhook screen-pop setup — losing/reconnecting one doesn't affect the other.
Screen Pop on Inbound Calls
When a call arrives on an agent's Zoom Phone number, Velaro reuses the SAME screen-pop mechanism every other CTI voice integration uses (NetSuite, HubSpot, Salesforce, and more) — no Zoom-specific screen-pop code exists or is needed:
1. Zoom sends Velaro a call event for the number that was dialed.
2. Every screen-pop provider enabled for your site is checked in parallel for a match on the caller's number.
3. The first match surfaces in the Velaro agent sidebar — before the agent answers, in real time.
If the agent's browser tab is in the background, Velaro also sends a push notification so the incoming call isn't missed.
Taking a call changes your Velaro status. The moment a Zoom Phone call connects, Velaro automatically marks the agent On Call — this can affect chat routing while the call is active, and reverts automatically when the call ends, goes unanswered, or goes to voicemail. An agent already handling a chat can still be offered a call (governed by a separate "available for calls while in chat" setting), but once a call actually connects, the On Call status change happens regardless.
If no CRM match is found, the sidebar displays the raw caller ID and a search box for manual lookup.
In-Call Agent Controls
Once a Zoom Phone call is active and both the Call Control add-on and the Zoom account connection (above) are set up, the agent's Velaro workspace can hold, resume, and end the call directly — real actions against Zoom's own call-control API, not simulated. Call transfer is not available yet — Zoom's real command name for it hasn't been confirmed against a live call.
Without the Call Control add-on or without a connected Zoom account, calls stay screen-pop-only: Velaro shows the caller's context but cannot touch the call itself, same as before.
Use Cases
Inbound sales calls — Agents see the caller's CRM record, deal stage, and last activity before answering. No hold time for lookups.
Support queues — Agents see open tickets and previous conversations immediately. Customers do not need to repeat themselves.
CRM activity history — combine Zoom Phone screen pop with your CRM's own call-logging if the CRM integration supports it independently of Zoom.
Zoom Contact Center Integration
Zoom Contact Center (ZCC) is a different Zoom product from Zoom Phone — a separate CCaaS platform with its own webhook events, its own agent-mapping table, and its own connection setup in Velaro. Connecting Zoom Phone does not connect Zoom Contact Center, and vice versa.
- Inbound screen pop (base, live today) — works the same way as Zoom Phone's: configure the ZCC webhook (Settings → Admin → Voice → Zoom Contact Center), map each agent, and Velaro's screen pop fires on
contact_center.task_reservation_*events through the same shared CRM-lookup engine every other integration uses. No Zoom OAuth login required for this. - In-call control (hold, resume, end, transfer) — not available. No call-control code exists for Zoom Contact Center today, unlike Zoom Phone above.
- Click-to-dial — not available in Velaro today. Unlike Zoom Phone, Zoom Contact Center's own API does support server-side outbound call origination — this is a real gap Velaro could close, not a Zoom API limitation, if there's customer demand for it.
- Call log sync to CRM — not automatic, same as Zoom Phone.
If a site needs in-call control today, Zoom Phone (with the Call Control add-on) is the only Zoom product that provides it — Zoom Contact Center is screen-pop-only for now.
Troubleshooting
| Symptom | What to check |
|---|---|
| "Connected as..." doesn't survive a page reload | The OAuth connection didn't save correctly. Disconnect and reconnect via the Voice admin page's Call Control panel. |
| Screen pop does not appear | Confirm the agent's Zoom Phone number is correctly assigned in Velaro's voice configuration and their Zoom User ID is mapped. Check the Activity log for auth errors. |
| Hold/resume/end buttons missing during a call | Confirm the Zoom Phone Call Control add-on is enabled on your plan AND a Zoom account is connected (Call Control panel) — both are required, separately from base screen pop. |
| Transfer button missing or disabled | Expected — call transfer is not available yet on Zoom Phone. Use hold/resume/end and your Zoom client for transfers in the meantime. |
| Connection keeps needing to be redone | Zoom access tokens refresh automatically in the background. If reconnecting repeatedly, contact Velaro support — this usually means a Zoom-side app credential needs to be re-checked. |
Contact Velaro support at support@velaro.com if any of the above doesn't resolve the issue.
Was this article helpful?