Why Your UI Matters
Open CTI Method Parity
Other Voice Solutions
Customize Functionality
Previous Versions
The way you implement Open CTI depends on your org’s user interface. There are separate Open CTI APIs for Salesforce Classic and Lightning Experience.
Open CTI is in maintenance mode and is scheduled for retirement in February 2028. No new features or enhancements are being added to Open CTI. Effective immediately, Open CTI is deprecated and unavailable for newly created Agentforce Service orgs. To ensure long-term compatibility and access to the latest innovations, we recommend transitioning your development efforts to Salesforce Voice. For more information, see this Knowledge Article, learning map, and developer migration guide.
Important
You can’t swap the two Open CTI APIs in custom JavaScript code because they behave and function differently. Make sure that you think about where you want to implement your CTI system before you begin developing.
Note
You connect to the API differently.
/support/api/66.0/interaction.js
/support/api/66.0/lightning/opencti_min.js
The input syntax for methods is different.
Input example:
1sampleMethod(VAR1,VAR2…)Input example:
1sampleMethod({
2 arg1 : VALUE1,
3 arg2 : VALUE2,
4 ...
5})The two APIs provide similar methods, but a few methods behave differently. The input and output for methods can be different.
Remember that the APIs can’t be swapped. If your users plan to switch between user interfaces, make sure that they understand that the CTI system might behave or function differently depending on what user interface they’re working in.
To make calls in Lightning Experience, complete the following.
reqSalesforceCompatibilityMode item must be set to Lightning or Classic_and_Lightning.Open CTI for Lightning Experience works only in Lightning apps—it doesn’t work in Salesforce Classic apps. Even though you can view Salesforce Classic apps in Lightning Experience, those apps are still Classic apps under-the-covers. To check if your app is a Lightning app, use the App Manager in Setup.
If you want your Open CTI implementation to work in Lightning Experience and in a console in Salesforce Classic, develop a unique implementation that uses both Open CTI for Salesforce Classic and Lightning Experience.