CTI System
A CTI System in Salesforce is the full set of pieces that wire an organization's phone platform into Salesforce so agents can place, receive, and log calls without leaving the CRM.
Definition
A CTI System in Salesforce is the full set of pieces that wire an organization's phone platform into Salesforce so agents can place, receive, and log calls without leaving the CRM. It spans the telephony platform itself (an on-premises PBX, a cloud VoIP service, or Amazon Connect), the CTI Adapter or Connector that translates events between the phone and Salesforce, and the Salesforce Call Center record that registers the adapter and assigns users. People say "CTI System" when they mean the integration as a whole, not any single component.
The classic way to build one is Open CTI, a browser-based JavaScript API that connects a third-party phone system to a Salesforce Call Center. That framework still runs in production today, but it is in maintenance mode and scheduled for retirement on February 28, 2028. It is already unavailable for newly created Agentforce Service orgs. New telephony work should target Salesforce Voice (Service Cloud Voice), the first-party replacement.
Anatomy of a Salesforce CTI System
The four layers, from phone wire to record
A working CTI System stacks four layers. The phone platform layer carries the voice itself: an on-premises PBX, a cloud telephony service, or Amazon Connect behind Service Cloud Voice. The integration layer is the CTI Adapter (the JavaScript that runs in the softphone) or the CTI Connector (the AppExchange package that ships that adapter plus its configuration). The Salesforce configuration layer is the Call Center record, the user assignments, the softphone layouts, and the console apps where the softphone panel appears. The business logic layer is the Flows, Apex, and Lightning components that decide what happens when a call arrives or ends, such as a screen pop or a logged call. Each layer talks only to the ones next to it. The phone platform never touches a Salesforce record directly; it raises an event, the adapter catches it, and the configuration and logic layers turn that event into something an agent sees. When you reason about a CTI System this way, every symptom maps to a layer, which is the fastest path to a root cause.
Open CTI: the browser API that glues it together
Open CTI is the Salesforce framework most classic CTI Systems are built on. The official description is plain: it is a JavaScript API that lets you build and integrate third-party computer-telephony integration systems with Salesforce Call Center. Because it runs in the browser, the softphone works across Chrome, Firefox, Safari, and Edge on Mac, Windows, or Linux, with no desktop client to install on every agent's machine. One sharp gotcha lives here. There are separate Open CTI APIs for Salesforce Classic and for Lightning Experience, and you cannot swap one for the other in custom JavaScript. They behave differently, some methods exist in only one, and a few were renamed. An adapter written against the Classic API will not simply run in a Lightning console. This split is the single most common reason a CTI System that "worked before" breaks during a Classic-to-Lightning move, and it is worth confirming before any migration that your vendor ships a Lightning-ready adapter.
The Call Center record and user access
The Call Center is the Salesforce side of the System. It is a setup record created two ways: by importing a call center definition file (an XML file the adapter or connector provides) or by cloning an existing call center. Only users with the Manage Call Centers permission can import, view, edit, or delete one. The record alone is not enough. Salesforce users must be assigned to a call center record before they can use any Call Center feature, and a user belongs to exactly one call center at a time. Around the record sit the softphone layouts that control which fields show during a call and the console apps that host the softphone panel. Miss any of these and the System fails quietly: the adapter loads but no agent sees the softphone, or it screen pops to a record the agent has no permission to open. When a deployment "does nothing" after install, the assignment step and the layout are the first two things to check, before anyone touches the phone platform.
How a call actually flows through the stack
Trace an inbound call to see the layers cooperate. The phone platform receives the call and runs its routing logic to pick an agent. It then notifies the adapter, which calls an Open CTI method to screen pop the matching Contact, Lead, or Case using the caller ID. Salesforce opens that record, the softphone rings, and the agent answers. Outbound runs the other direction: the agent clicks a phone number in Salesforce, the adapter calls the phone platform's API to dial, the call connects, and when it ends the adapter writes a call log so the activity is captured against the right record. The whole exchange is bidirectional and event-driven. A failure in the middle is informative, not random. A screen pop that fires on a record the agent cannot view points at the configuration layer, not the phone platform. A call that connects but never logs points at the adapter or the business logic. Reading the flow tells you which layer to open first.
Open CTI is winding down: the retirement clock
The most important fact for anyone planning telephony work today is that Open CTI is no longer evolving. Salesforce has placed it in maintenance mode, meaning no new features or enhancements are being added, and set a retirement date of February 28, 2028. It is already deprecated and unavailable for newly created Agentforce Service orgs, so you cannot stand up a brand-new Open CTI System in a fresh org. Existing implementations keep running until the retirement date, and Salesforce commits to supporting each Open CTI version for at least three years from its first release, with a year of notice before any version's support ends. The practical reading is straightforward. If you run an Open CTI System, treat 2028 as a hard deadline and start the move now. If you are building new, do not start on Open CTI at all. Salesforce's stated recommendation is to transition development efforts to Salesforce Voice.
Service Cloud Voice, the first-party successor
Service Cloud Voice (often called Salesforce Voice) is the modern CTI System that Salesforce builds and sells as one product. Instead of stitching a third-party phone platform to a Call Center through Open CTI, Voice bundles the telephony, the adapter, the configuration, and the business logic together. Its default telephony engine is Amazon Connect: when you turn Voice on with Amazon Connect, Salesforce provisions an AWS account and an Amazon Connect instance for you, and Amazon Connect contact flows describe how each call is routed, transferred, and handled. Partner telephony options exist for organizations that keep a different carrier. The advantage over the classic stack is native integration. Voice is wired into Omni-Channel and the Service console out of the box, so voice sits beside chat, email, and messaging in the same agent workspace rather than in a bolted-on iframe. The trade-off is real and worth naming: licensing cost, plus the effort of migrating off an incumbent phone vendor. For most teams facing the 2028 deadline, that migration is the work that replaces the System they have today.
Running more than one CTI System at once
Some orgs operate more than one CTI System in parallel. A common pattern is one phone vendor for the contact center and a different one for sales reps, or two vendors living side by side during a migration. Salesforce supports multiple Call Centers in a single org, and because a user belongs to one call center at a time, moving a person from the old System to the new one is a Setup assignment change rather than a code deployment. That makes a phased cutover practical: shift a pilot team to Service Cloud Voice, watch the metrics, then move the rest in waves while the legacy Open CTI Call Center still serves everyone else. The complexity of multi-System operation is mostly organizational. You are tracking two sets of monitoring, two adapters, and two sets of agent training, not fighting a platform limit. Document which Call Center maps to which vendor and which users sit where, because an undocumented dual-System org is painful for whoever inherits it.
Register a Call Center for an Open CTI System
Registering the Salesforce Call Center is the configuration step that turns an installed adapter into a usable CTI System. These steps cover the standard Open CTI path; for new builds prefer Service Cloud Voice setup instead. You need the Manage Call Centers permission.
- Install the adapter or connector
Install the vendor's CTI Connector from AppExchange, or obtain the call center definition XML file the adapter provides. This delivers the JavaScript adapter and the configuration template Salesforce will register.
- Import or clone the call center
In Setup, open Call Centers. Click Import to load the definition file, or clone an existing call center and edit it. This creates the Call Center record that points Salesforce at the adapter.
- Assign users to the call center
Open the new call center record and add the agents who need phone access. A user must be assigned to a call center before any Call Center feature works, and each user belongs to one at a time.
- Set the softphone layout and console app
Configure a softphone layout to control which fields appear during a call, then make sure the softphone shows in the Lightning console app your agents use. Test an inbound and an outbound call end to end.
The XML file that describes the adapter to Salesforce. Imported on the Call Centers setup page to create the record.
Required to import, view, edit, or delete any call center. Grant it only to admins who own the telephony setup.
Controls the fields and related lists shown in the softphone during inbound and outbound calls, per call type.
The link between a Salesforce user and one call center. No assignment means no softphone, even with everything else configured.
- Classic and Lightning Open CTI adapters are not interchangeable. Confirm your vendor ships a Lightning-ready adapter before migrating off Salesforce Classic.
- A user assigned to no call center sees no softphone at all. This is the most common "nothing happens after install" cause.
- Open CTI is in maintenance mode and retires on February 28, 2028, and is already blocked for new Agentforce Service orgs. Do not start a new Open CTI System; use Service Cloud Voice.
- Screen pops can target a record the agent lacks permission to view. Align sharing and field-level security with the softphone layout.
Prefer this walkthrough as its own page? How to CTI System in Salesforce, step by step
Trust & references
Cross-checked against the following references.
Straight from the source - Salesforce's reference material on CTI System.
- Phone from a Call Center with Open CTISalesforce
- Manage Call CentersSalesforce
Hands-on resources to go deeper on CTI System.
About the Author
Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.
Test your knowledge
Q1. What does a Salesforce CTI System include as its components?
Q2. Why is thinking of a CTI System as a layered stack useful for troubleshooting?
Q3. Where does a CTI System issue commonly originate when something is broken?
Discussion
Loading discussion…