Skip to content
Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Core CRMBeginner

Computer-Telephony Integration (CTI)

Computer-Telephony Integration (CTI) is the wiring between a phone system and Salesforce that lets a rep place, answer, and log calls without leaving Salesforce.

§ 01

Definition

Computer-Telephony Integration (CTI) is the wiring between a phone system and Salesforce that lets a rep place, answer, and log calls without leaving Salesforce. An inbound call opens the caller's record. The outcome writes itself to Salesforce, and outbound calls start from a phone number on screen instead of a keypad.

Salesforce delivers CTI two ways. Open CTI is the older browser JavaScript framework that third-party vendors build adapters against. Salesforce has put it in maintenance mode with a retirement date of 28 February 2028. It is already deprecated and unavailable in newly created Agentforce Service orgs. Salesforce Voice, called Service Cloud Voice until the Summer '26 rename, is the first-party stack Salesforce points new builds at.

That split defines CTI work in 2026. Existing adapters run until the date passes. New telephony projects should start on Salesforce Voice.

§ 02

In plain English

Imagine your phone and your customer notebook are two separate things, so every call means scribbling notes by hand. CTI staples them together. When the phone rings, the right page of the notebook flips open on its own. When you hang up, the call writes itself down.

§ 03

Worked example

scenario · real-world use

A national auto parts distributor runs 40 service reps on a third-party Open CTI adapter. A shop owner calls the warranty line from +1-312-555-0189. The adapter passes that number to Salesforce, which searches the objects the layout names: Contact.Phone, Contact.MobilePhone, and Lead.Phone. It finds one Contact, Ray Okonkwo, and pops his record into the console beside his open Case 00051764. The rep answers, settles the question, and hangs up. The adapter then calls saveLog, which writes a Task with Subject 'Call', TaskSubtype 'Call', CallType 'Inbound', CallDurationInSeconds 214, and WhoId pointing at Ray. Nobody typed a thing. The operations manager reports on those Task records for average handle time by queue.

§ 04

Inside a Salesforce CTI stack, and the 2028 deadline

The February 2028 retirement is the headline

Maintenance mode means the framework still runs and nothing new gets built on it. Salesforce has stamped an end date on Open CTI, 28 February 2028, and closed the door on Agentforce Service orgs created from here on. Create one of those orgs today and the framework is not there. Adapters installed today keep running until the date passes. So this is a planning problem, not an outage. If your telephony contract renews in 2027, treat that renewal as the moment to move, not the moment to re-sign for three more years.

The adapter, the iframe, and the Call Center record

A CTI vendor ships a small web app plus an XML call center definition file. That file uses three elements: callCenter, section, and item. It declares the adapter URL, the softphone dimensions, and an internal name. An admin imports it in Setup, then assigns users to the resulting Call Center record. Salesforce loads the vendor app in a sandboxed iframe and exposes a JavaScript API to it. Classic and Lightning Experience have separate Open CTI APIs, so an adapter built for one does not work in the other.

Screen pops and the matching rules

When a call arrives, the adapter hands Salesforce the caller ID to search on. The softphone layout decides what gets searched, per call type. Contacts, Leads, Accounts, and Person Accounts are the common default, and cases or a custom object can join the list. A layout that names no return fields comes back empty. One match opens the record, several open a results list, and zero matches can open a blank creation page. The failure mode is boring and relentless: 3125550189 on one record, (312) 555-0189 on another. Phone matching is not clever about formats. Cleaning your stored numbers buys more accuracy than any adapter setting will.

Click-to-dial on the outbound side

With an active adapter, phone fields across Salesforce render as clickable links. Clicking one hands the number to the adapter, which places the call. Three Open CTI methods govern this: enableClickToDial, disableClickToDial, and onClickToDial for registering a listener. The practical requirements are dull and easy to miss. The field must be of type Phone, not a Text field holding digits. The number must sit on a layout the rep can see. And the softphone must be loaded, because a console with no adapter renders that number as plain text.

Where the call ends up in the data model

Open CTI adapters generally call saveLog and write a Task with TaskSubtype set to Call, carrying duration, direction, and the related Contact or Case. Salesforce Voice instead writes a VoiceCall record, which holds transcripts and detail a Task was never designed to carry. This matters for reporting continuity. After a migration, old dials sit on Task and new ones sit on VoiceCall. Every report and handle-time metric built on the old object needs a second version. Build those before the cutover weekend, not after the first Monday of complaints.

Salesforce Voice is the named replacement

Salesforce Voice was Service Cloud Voice until Summer '26. Trailhead now labels the partner-telephony edition Partner Contact Center, so expect three names for one product. It runs on Amazon Connect or through a partner telephony provider. It also reaches things an adapter cannot: real-time transcription, native Omni-Channel routing of calls beside chat and cases, and supervisor visibility in one console. The tradeoff is real. You are adopting a Salesforce telephony stack rather than bolting Salesforce onto the phone system you already own. That is a procurement decision as much as a technical one.

§ 05

Register an existing CTI adapter in Setup

This is the Open CTI path. Use it when you inherit an org or add reps to an adapter that is already licensed. For a new project, start with Salesforce Voice instead.

  1. Get the definition file from your vendor

    Every Open CTI adapter ships an XML call center definition file. Download the version matching your adapter release and your org's UI, because Classic and Lightning use different Open CTI APIs.

  2. Import it under Call Centers

    From Setup, enter Call Centers in the Quick Find box, then select Call Centers. Click Import and upload the XML. Salesforce builds a Call Center record from the values in the file.

  3. Check the adapter URL and panel size

    Open the new Call Center record and edit it. Confirm the adapter URL points at your vendor tenant, not a demo endpoint. Set a softphone height and width your reps' screens can hold.

  4. Assign users

    From the Call Center record, click Manage Call Center Users, then Add More Users. Search for the reps and add them. A user in no call center sees no softphone.

  5. Add the softphone and place a live test call

    Confirm the console app's utility bar includes the softphone. Then dial in for real, watch for the screen pop, hang up, and check that the call logged.

Adapter URLremember

The vendor endpoint Salesforce loads inside the softphone iframe.

Softphone height and widthremember

The panel size in pixels, set per call center.

Softphone layoutsremember

Which objects get searched for screen pops, and which fields appear in the call log.

Gotchas
  • A malformed XML file fails on import with a vague error, so validate it before you upload.
  • A sandbox refresh does not repoint the adapter, so test calls can hit production phone numbers until you swap the URL.
  • A user belongs to one call center at a time, so moving reps between adapters means removing them first.

Prefer this walkthrough as its own page? How to Computer-Telephony Integration (CTI) in Salesforce, step by step

§ 06

How organizations use Computer-Telephony Integration (CTI)

Runs a licensed Open CTI adapter, with the move to Salesforce Voice booked against its 2027 telephony renewal. The retirement never becomes an emergency.

Uses click-to-dial from Lead and Contact records so reps log 80 dials a day without touching a keypad. Connect rate comes off the resulting Task records.

§

Trust & references

Official documentation

Straight from the source - Salesforce's reference material on Computer-Telephony Integration (CTI).

Keep learning

Hands-on resources to go deeper on Computer-Telephony Integration (CTI).

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. Which objects does Salesforce search when an inbound caller ID arrives?

Q2. An admin imports a call center definition file successfully, but reps still see no softphone. What is the most likely cause?

Q3. Salesforce Voice logs calls to which object, rather than the Task object that Open CTI adapters typically write to?

§

Discussion

Loading…

Loading discussion…