Built on Open CTI, so there is nothing to package and no AppExchange review to wait for. You host a page; Salesforce frames it.
What you get
How it works
The Vobiz REST API is authenticated with your account Auth Token. Putting that in a browser would hand every agent full control of the account — numbers, billing, other people’s calls. So the browser never sees it:Both directions use a conference
The agent and the other party are put into a conference room rather than bridged directly. Inbound has to. A call cannot be delivered into a browser’s registered SIP endpoint, so there is no way to simply ring the panel. The caller waits in the room, and the panel joins it. Outbound does the same because it is the more reliable path for browser audio: the agent waits in the room and the destination is dialled into it, each leg established the way that leg works best.Two CDRs per call, one per leg, with matching durations. They are the two halves of one conversation — worth knowing when you read call records or reconcile billing.
What Salesforce gets back
Tasks are what Salesforce’s own call logging produces, so these appear in Activity History next to every other logged call.
Requirements
Setting it up
1
Stand up a calling backend
Implement the backend contract, reachable over HTTPS from Vobiz (for webhooks) and from the agent’s browser (with CORS configured for the panel’s origin).
2
Trust the host in Salesforce
Setup → Trusted URLs → New, with
frame-src ticked.3
Host the panel
Copy
app/ to any HTTPS host. Serving it from the calling backend is strongly recommended — Salesforce stores only a URL, so every extra hostname is another thing that goes stale independently, and same-origin means the panel’s calls to the backend involve no CORS preflight at all.4
Create the Call Center
Setup → Call Centers → Import the
call-center/call-center-definition.xml from the repository, then edit the record and set your own adapter URL with its parameters.5
Assign users and add the utility item
Manage Call Center Users → add yourself. Then Setup → App Manager → edit your Lightning app → Utility Items → add Open CTI Softphone.
6
Hard-refresh and open it
Press Ctrl+Shift+R, then click Phone in the utility bar. Salesforce caches the adapter URL, and a normal refresh keeps the old one.
Configuration
Salesforce provides no settings UI, so every setting travels on the adapter URL’s query string:Signing in
The panel opens in the Salesforce utility bar and offers two tabs. They differ only in how the agent is identified — once signed in, calling is identical.
The panel in the Salesforce utility bar, on the Vobiz account tab.
What SIP direct cannot do. Two features need account credentials: Enable inbound calls (changing number routing is account-level — inbound still works on a number already routed, you just cannot set it up here) and listing recordings (calls still record; the list is account-scoped). Everything else is identical.
Choose a caller ID
Calling from lists the numbers on the account. Carriers reject a call that presents no caller ID.
Selecting the outbound caller ID.
Making a call
Type a number in E.164 format, or click any phone number in Salesforce and the panel dials it for you.
A destination entered, with recording armed.
The panel deliberately does not serve recordings, because doing so would mean the calling backend could hand call audio to anyone able to reach it.
Inbound calls
Click Enable inbound calls once, on the Vobiz account tab. The panel confirms which number now rings it.
Inbound enabled - the panel names the number now routed to it.

An incoming call, with keyboard shortcuts.
Call setup speed
The browser has work to do before it can send a call: it takes the microphone, then gathers network candidates. Left alone that can take tens of seconds — and on an inbound call the caller is on hold for all of it. Two things keep it short. The offer is polled every second and the microphone is acquired while the banner is still ringing, so accepting does not stop to ask for one. And candidate gathering is capped at 2.5 seconds — the call is sent as soon as one usable candidate exists.Limitations
Worth knowing before you roll it out.- Two CDRs per call, one per leg — the thing to know when reconciling call records.
- A second caller while one is already ringing goes to voicemail. One offer per agent at a time; there is no queue.
- One agent per Call Center definition. More agents need more definitions.
- Browser calling only. No option to route calls to a mobile or desk phone.
- No hold, mute, transfer or conference between agents.
- Calls are logged as Tasks, not Salesforce Voice Call records — those require Service Cloud Voice.
- Recordings are not listed in the panel — play them back in the Vobiz Console.
- No omnichannel presence. The panel does not set agent availability.
Troubleshooting
Next steps
- ServiceNow integration → - the same softphone approach inside ITSM.
- HubSpot and Pipedrive - calls logged as CRM activities.
- SIP Endpoints → - create and manage the endpoint the panel registers as.
- Call Detail Records → - reading the two CDRs each call produces.