Skip to content
Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
ServiceBeginner

Open CTI

Open CTI is a browser-based JavaScript API that a third-party telephony vendor uses to embed a softphone inside Salesforce.

§ 01

Definition

Open CTI is a browser-based JavaScript API that a third-party telephony vendor uses to embed a softphone inside Salesforce. The softphone is wired to a Call Center record, and from there it can pop the matching record onto an agent's screen. It writes the call activity when the call ends. Click a phone number on a Contact and it dials.

It is also on its way out. Salesforce has put Open CTI into maintenance mode and marked it deprecated. Newly created Agentforce Service orgs cannot use it at all. Retirement lands on February 28, 2028, and implementations stop working after it.

The documented replacement is Salesforce Voice, which covers the same ground natively and routes calls through Omni-Channel without a vendor bridge. Open CTI still runs today, so orgs that depend on it have a working phone channel and a deadline, not an outage.

§ 02

In plain English

Your phone system and Salesforce are two separate programs that need to talk to each other. Open CTI is the agreed set of messages they are allowed to send, so when a call comes in, the right customer's page opens by itself. Salesforce is switching this messaging system off in early 2028 and has built a newer one to take its place.

§ 03

Worked example

scenario · real-world use

A regional insurance carrier runs a vendor softphone in the Service Console utility bar. A policyholder calls from +1-416-555-0142. The softphone hands that number to searchAndScreenPop(), Salesforce matches it against Contact.Phone, finds exactly one record, and opens it in the agent's tab before the agent finishes saying hello. When the call ends, the softphone calls saveLog() to write a Task with Subject set to Inbound Call, CallDurationInSeconds set to 214, and WhoId pointing at that Contact. None of that logic is Salesforce code. Every one of those calls originates in the vendor's JavaScript, which is why two Open CTI integrations from two vendors rarely behave the same way.

§ 04

How Open CTI works, and how long you have left

The JavaScript API surface

The API is a set of JavaScript functions the vendor's softphone calls. The main Lightning method list runs to 21, with two more groups underneath: Sales Engagement and Lightning Message Service. A handful carry most of the weight. screenPop() opens a record you already have the ID for. searchAndScreenPop() looks a phone number up first, then opens what it finds. saveLog() writes the call activity. Others manage the panel, like setSoftphonePanelVisibility() and setSoftphonePanelHeight(), or read configuration, like getCallCenterSettings() and getSoftphoneLayout(). Click-to-dial gets its own pair, enableClickToDial() and onClickToDial(). Salesforce supplies none of the softphone itself. The vendor writes the page, includes the Open CTI library, and decides which methods fire and when.

The Call Center record is the configuration half

Configuration lives in Setup under Call Centers. The vendor hands you an XML call center definition file. You import it, and the resulting Call Center record holds the softphone URL and adapter settings. Users are then assigned to that call center, and only assigned users see the softphone at all. Softphone layouts are the second piece. They control which call-related fields display, with separate arrangements for inbound, outbound, and internal calls, assigned by profile. At runtime the softphone is an item in the Lightning app utility bar, so it stays open as agents move between records. That Setup path has not changed. Worth stating plainly, given how much else about this feature has.

Deprecated now, dark on February 28, 2028

Salesforce has been unusually direct, and the wording matters more than the date. Most deprecation notices mean unsupported but still running. This one does not. The retirement article says implementations no longer function afterwards, which is a switch-off rather than a decline. The support policy underneath backs each version for a minimum of three years from its release. That reads like breathing room and is not: the retirement date overrides the arithmetic for every version at once. Maintenance mode covers the rest. No new features or enhancements are coming, so whatever your vendor is waiting on is not on the way.

Salesforce Voice is the named successor

The guide names exactly one replacement: Salesforce Voice, the product previously branded Service Cloud Voice. Which shape you get depends on who owns the telephony. Salesforce Voice with Amazon Connect bundles the carrier. Salesforce Voice with Partner Telephony keeps the provider you already pay for. The argument for either is that voice stops being a bolted-on panel. Calls route through Omni-Channel alongside chat, email, and cases, so supervisors watch one workload in Command Center for Service instead of two systems. Transcription lands in Salesforce where Agentforce can read it, not in a vendor portal. Whether parity is exact for your telephony vendor is a question for that vendor.

Screen-pop matching breaks on real phone data

The most common Open CTI defect in production is a pop that opens the wrong thing, or nothing. searchAndScreenPop() matches an inbound number against your phone fields, and genuine phone data resists that badly. One record stores +14165550142 while another stores (416) 555-0142, and neither matches the other. Extensions get appended to a main line. The nastier case is a shared head-office number on two hundred Contacts. A clean pop becomes a search results page the agent reads while the caller waits. Switchboard transfers are worse again, presenting an internal extension instead of the customer's number. Test against a copy of production data before go-live, not the two dozen sample Contacts in a fresh sandbox. The failure mode is quiet, and agents absorb it as normal.

Where the call data actually lands

What gets written depends on which era you are in. saveLog() typically creates a Task, which is adequate for activity history and thin for contact-center analytics. Salesforce Voice uses the Voice Call object instead. Duration, queue, and call resolution are fields on it, with recording and transcript records related. This shapes migration planning more than people expect. After cutover, call history exists in two structures, and any report that spans the boundary needs rebuilding rather than repointing. Decide early whether you are backfilling old Task-based logs or drawing a line at the cutover date. Most teams draw the line.

Building the migration plan

Start with an inventory, because Open CTI hides in more places than a quick audit suggests. Call center definition files, softphone layouts, the utility bar configuration in every Lightning app, click-to-dial listeners, and any Apex reached through runApex(). Then ask your telephony vendor what their Salesforce Voice path is and when it ships. That answer drives your timeline harder than the Salesforce date does. Work backwards from February 28, 2028, not forwards from today. Whatever runway that leaves has to absorb a contract renewal, a pilot, agent retraining, and a supervisor reporting rebuild. Those queue rather than overlap. Freeze new Open CTI work and spend the effort on the replacement.

§ 05

How organizations use Open CTI

Runs a vendor softphone on Open CTI today and is scoping a move to Salesforce Voice with Partner Telephony, with the pilot scheduled well ahead of the 2028 cutoff.

Uses Open CTI only for click-to-dial from Contact and Lead records, so the migration is small: swap the utility bar item and retire the call center definition.

Keeps Open CTI because its telephony contract runs into 2027, and has frozen all new development on the integration while it plans the replacement.

Was this entry helpful?
Help us write better definitions. Quick reactions or detailed edit suggestions.

About the Author

Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He writes and edits salesforcedictionary.com, published by KineticBit Inc., to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.

§

Test your knowledge

+5 pts / day

Q1. Salesforce has scheduled Open CTI for retirement. What happens on February 28, 2028?

Q2. Which product does the Open CTI documentation name as the replacement?

Q3. An inbound call arrives and the vendor softphone needs Salesforce to find the matching Contact by phone number and open it. Which Open CTI method does both in one call?

§

Discussion

Loading…

Loading discussion…