CTI Integration using Open CTI DemoAdapter in Salesforce

Well I will not go into details why CTI is important or what are its important features. I will directly jump to its setup part, So if you have to prepare a quick demo for your client to make them understand how it works/look-like in Salesforce, then you are at the right stop..


  • CTI Integration Demo to simulate CTI calling browser itself
  • Agent should be able to search & call in Accounts & Contacts
  • Agent should be able to receive incoming calls ans record details page should open automatically


Steps to setup integration

Step1: Download/Install Open CTI package 

Lighgning Open CTI 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.

Download the package from: https://login.salesforce.com/packaging/installPackage.apexp?p0=04t41000000bSXh

Note: This package can be installed on: Enterprise, Performance, Unlimited, and Developer Editions.

Step 2: Add your user to Call Center

Go to Setup->Call Center, On the Demo Call Center Adapter page, click Manage Call Center Users and add any additional users that you want to use this demo adapter.

Step 3: Create Lightning Expierience App

  • From Setup, use the App Manager to create a new Lightning app that uses Console Navigation.
  • Optionally, you also choose to enable Service Setup.
  • Add the Open CTI Softphone to your utility bar.
  • Add the navigation items you want.
  • Assign the app to the user profiles you want to access the app.

Step 4: Choose your Layout

Its an optional step but we can select layout for incoming and outgoing calls. While incoming call,

  • you can select which Objects to search in,
  • what are the field details should come on softphone layout
  • which record detail page should pop up while call going on.

Step 5: Launch your App

After launching your app, phone layout should come like this

204 open cti demo adapter.png

If you don’t see the softphone in your app or the softphone doesn’t launch, verify the CTI adapter URL is correct. To edit the CTI Adapter URL:

  1. In your Salesforce org, go to Setup and enter Call Centers in the Quick Find box, then click Call Centers.
  2. Click Edit next to the Demo Call Center Adapter and make sure that the CTI Adapter URL points to the relative or absolute path of the Visualforce page called managedPage. For example, the following URLs are valid:
    • /apex/demoAdapterPage
    • /apex/namespace__demoAdapterPage (when using a managed package)
    • https://<myDomain>.my.salesforce.com/apex/demoAdapterPage (when using My Domain)
    • https://<namespace-dev-ed>.my.salesforce.com/apex/namespace_demoAdapterPage (when using a managed package and My Domain)
    If your Adapter URL doesn’t work, use the Chrome Inspector tool to troubleshoot the problem. You might see this error: “Blocked a frame with origin “https://<myDomain>.my.salesforce.com” from accessing a cross-origin fame.” This error lets you know that you need to use an absolute URL that starts with “https://<myDomain>.my.salesforce.com” instead of a relative one.

How to do the calling simulation ?

  • Log in with your Salesforce credentials, or click Log In.
  • To simulate an incoming call, click 204 open cti demo adapter phone icon.png in the softphone header. You can accept or decline the call, enter notes, transfer a call, and end a call.
  • To simulate an outbound call, click any number in Salesforce, type a number, or use the dialpad.
  • To update the target for the screen pop of the simulated incoming call, go to the Call Centers page in Setup and edit the demo adapter. Then update the Simulated Incoming Phone Number field.

Is it possible to do real calls with this Demo Adapter?

Want to make real calls with this demo adapter? We’ve made this super easy to do with Twilio. To integrate with Twilio, complete the following steps:

  1. Install the Twilio Salesforce Helper Library in your org.
    You’ll need the following information:
    • CTI Provider—The name of the internal Apex class that implements SoftphoneProviderHelper.SoftphoneProvider, and has the code implementing makeCall(), such as DummyProvider, TwilioProvider or your own provider implementation.
    • Provider Account—Provider account ID.
    • Provider Auth Token—Provider authorization token.
    • Provider Caller Number—The phone number from where the call originated. This is the From number. By default, this is 415-555-5555.
  2. In your Salesforce org, edit the Apex class SoftphoneProviderHelper. In the inner class TwilioProvider, uncomment the code related to Twilio.

After following above steps, you should be able to achieve working demo and it should like this.

Click here to see the demo


Do you find this post helpful ?

View Results

Loading ... Loading ...

For any queries, add your questions on Question/Answer page or in comment section. You can also connect to Technical Experts directly with Live Chat.

Hope it will help someone in need. #HappyLearning
Posted in Base Components, Configuration and tagged , .

Leave a Reply

2 Comment threads
0 Thread replies
Most reacted comment
Hottest comment thread
2 Comment authors
SF DevKavitha Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

newest oldest most voted
Notify of

nice article , it is very useful

SF Dev
SF Dev

First of all, I’d like to thank you for sharing the knowledge with us, I really appreciate that. Cheers!! I followed all the steps which you mentioned above and I am the receiving the call as well on my phone real-time but whenever I picked up the call the only thing I can hear is music because of below TwiML URL. Map params = new Map { ‘To’ => toNumber, ‘From’ => fromNumber, ‘Url’ => ‘https://demo.twilio.com/docs/voice.xml’ }; I would like to know how can I hear the real voice of the customer speaking on the other end!! What changes I… Read more »