Working with Open CTI

You can use Open CTI to increase agent efficiency, configure your softphone, and complete many more tasks.

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.

To enable your contact center users to take advantage of the latest phone channel innovations, Salesforce recommends that you modernize your experience by moving to Salesforce Voice. Salesforce Voice offers many of the Open CTI features that you love and more. Unlike Open CTI, Salesforce Voice is natively integrated with Omni-Channel and Command Center for Service, providing a seamless experience for contact center reps and supervisors across all digital channels. See Get to Know Salesforce Voice.

With Open CTI, you can:

  • Set the height or width of a softphone
  • Enable or disable click-to-dial
  • Return a call center definition file’s settings
  • Determine if a user is in the Salesforce console
  • Show or hide a softphone in the Salesforce console
  • Return information about a page
  • Execute an Apex method from an Apex class that’s exposed in Salesforce
  • Save or update an object in Salesforce
  • Search keywords in Salesforce and screen pop any matching records as defined in a softphone layout

Before developing an Open CTI implementation, learn how to connect to Open CTI and review the best practices.

  • Connect to Open CTI
    The first portion of any JavaScript code that uses the Open CTI must make the toolkit available to the JavaScript code. The syntax for this is different depending on whether you are embedding JavaScript in a Visualforce page or a page developed using any web technologies and served from a third-party domain.
  • Open CTI Demo Adapter
    We’ve put together a demo adapter package that lets you test drive Open CTI for Lightning Experience. The package provides a demo softphone that highlights and demonstrates the main features of Open CTI for Lightning Experience without even connecting to a phone system.
  • Open CTI and Security
    We recommend that all Open CTI implementations use HTTPS in the reqAdapterUrl element in their call center definition file. Using HTTPS ensures that traffic between your telephony server and Salesforce is encrypted.
  • Asynchronous Calls with
    Open CTI lets you issue asynchronous calls. Asynchronous calls allow the client-side process to continue instead of waiting for a callback from the server.
  • Sample HTML Page Using Open CTI
    Each implementation of Open CTI can look different. This example shows you how to add CTI functionality to the Salesforce user interface using an HTML page.
  • Sample Code for Using Lightning Message Service with Open CTI
    You can use the Lightning Message Service API to communicate with an Open CTI softphone. This example displays three buttons that subscribe, publish, and remove a message channel servicedev1_SampleMC__c.
  • Work with Canvas
    To integrate Open CTI with external applications that require authentication methods, such as signed requests or OAuth 2.0 protocols, Salesforce recommends that you use Canvas.
  • Work with the Console APIs for Open CTI
    There are console-specific methods that you can use to interact with Open CTI. Use the Salesforce Console Integration Toolkit JavaScript APIs to interact with Salesforce Classic console apps.
  • Best Practices
    When working with Open CTI, keep the following best practices in mind.