CTI Integration with Salesforce

CTI Integration with Salesforce

The traditional process of outbound sales revolves around a sales executive interactive with a potential customer via phone. No matter how many emails you exchange or attractive proposals and presentations you send, ultimately it is the one-on-one phone conversations which does the trick and clinches for you a deal. It is a time tested, fool-proof and an effective process. However to make the process more efficient we have invented software tools and to cut international calling costs we have taken our calling processes to internet-based systems.

So technically companies have two separate systems- one to track, analyze and record the sales process called the customer relationship management(CRM) system and the other called the computer telephony integration (CTI) system, to make actual calls.

Salesforce is the most used lead-tracking and analysis system that is employed by companies ranging from startups to multi-billion dollar enterprises. But now imagine a salesforce system that not only helps you track the leads but actually allows you to make telephonic calls from within the same system. It is possible and it has been catching fire, ever since the inception of this idea about two to three years ago.

Integrating CTI systems with salesforce is the bane of product developers worldwide and till now there is no easy plug-and-play system to accomplish it. It requires some understanding of both CTI and Salesforce, and some coding around it

In common practice there are two ways to integrate Salesforce with CTI systems.

  • CTI integration using Open CTI tools
  • CTI integration using telephony service provider APIs

CTI integration using Open CTI tools is a more wide spread method but there are still some systems which use the older second method.

CTI integration Using Open CTI tools

Salesforce Open CTI is a open source CTI integration tool develped by Salesforce.com themselves. The toolkit, also known as Salesforce CRM Call Center, allows you to integrate third-party CTI systems. The main attraction of the system is that you don’t have to download CTI service provider specific adapters, which were mainly desktop softwares and thus deprived the users of cloud architecture. Open CTI on the other hand is browser-based i.e. used browsers as clients for CTI interface- thus giving developers freedom to use cloud architectures.

Salesforce Integration with CTI
The Salesforce CTI Tool allows salesforce developers to

  • Build and integrate CTI systems with all versions of Salesforce without the use of third party adapters
  • Provide a base to create customizable softphones integrated in the salesforce console itself.
  • Provide an integrated CTI systems which is cross-platform compatible and cross-browser compatible.

To use this process, you should have a basic familiarity with:

  • CTI adapters
  • JavaScript, Html, CSS, and JAVA
  • Visualforce APIs and Salesforce APIs
  • The Salesforce console
  • Salesforce CRM Call Center or Salesforce Open APIs

For the process of computer telephony calling from salesforce itself, here are the components that we use

  • Salesforce.com Open CTI API
  • Custom Salesforce Softphone built using Open CTI
  • Custom built Asynchronous Javascript Asterisk Manager (AJAM) connector deployed on server

The process of dialling, establishing and monitoring the call is very simple. Whenever a Salesforce user initiates a call through Salesforce the AJAM connector dials it to CTI service provider’s Asterisk component. The service provider’s asterisk component dials the end user and then tells the AJAM component to officially establish the call which allows the component to perform additional operations like recording or transferring or monitoring. The AJAM connector program also help in fetching contact lists and Caller ID data.

Integrating CTI with Salesforce
This process is then scaled for multiple servers and multiple callers with support for both inbound and outbound calling.

CTI integration using telephony service provider APIs

In mid 2000s when Salesforce was still in its major development phase, there were very few ways you can push notifications to browser. Most of these ways were also not real-time with significant lags both because of slow internet networks and inefficient browser communications. With call centers, especially international call centers, this network lag became significant with data lag going to 10s of seconds.

Because of these technology limitations desktop based telephony adapters were utilized that connected the agent computer directly with telephony service provider making the system work on CTI-to-Desktop model instead of CTI-To-Salesforce-To-Browser model thus reducing the lag between. Though queries with Salesforce still experienced the network lag.

But this now the thing of the past.

With advancement in internet networks and browser based communication, this desktop adapter based solution is more or less an obsolete method. But before the launch of Open CTI it was the only method so there are a lot of systems out there which are based on it. This method uses components such as

  • CTI telephony service provider’s integration adapters
  • some custom apex classes
  • Visualforce classes
  • and Salesforce.com CTI adapters.

This system is setup in such a way that whenever a user calls from the softphone of Salesforce console, through the telephone service provider’s adapter, the call will first hit the telephony provider server. The control of the call will then go to a JAVA gateway interface adapter which are in most cases built using Asterisk technology, hence the name AGI adapter (Asterisk gateway interface). This adapter is what calls salesforce.com’s CTI adapter and certifies that a call has been established so that salesforce can start the timer and display other information like call duration, number etc. It also indicates to Salesforce that they can start few stuff during call processes like recording the call.

CTI Integration with Salesforce
Now throughout the process, every step and every information that goes to Salesforce goes through the telephone service provider’s adapter which is based on desktop. Also whenever any new version of Salesforce is launched the adapter became incompatible and the telephony company took long time to upgrade their connectors.

Because of these problems this method was dropped by Salesforce and developers alike. Nobody uses this method anymore.

You would need to use coding experts

As you may have noticed, every component in the process requires some level of coding. The JAVA gateway connector program, Salesforce Softphone interface, even the salesforce.com Open CTI implementation requires lots of custom development. We would highly advise you to take Salesforce experts in the loop. Obviously Algoworks technologies has been integrating CTI systems with Salesforce and in fact some of our the very first projects were around CTI integration with Salesforce. That’s all for now!

The following two tabs change content below.
Pratyush Kumar

Pratyush Kumar

Co-Founder & Director at Algoworks, Open-Source | Salesforce | ECM
Pratyush is Co-Founder and Director at Algoworks. He is responsible for managing, growing open source technologies team and has spearheaded more than 200 projects in Salesforce CRM alone. He provides consulting and advisory to clients looking for services relating to CRM(Customer Relationship Management) and ECM(Enterprise Content Management). In the past, Pratyush has held consulting roles with various global technology leaders, such as Globallogic & HCL in India. He holds an Engineering graduate degree from Indian Institute of Technology, Roorkee.
Pratyush Kumar

Latest posts by Pratyush Kumar (see all)

Pratyush KumarCTI Integration with Salesforce
  • Gabriel Teles

    Its possible use this with license Salesforce Partners Users?

    • muditsingh5000

      Yep

    • AlgoworksTech

      CTI integration is possible in Enterprise, Unlimited, and Performance Salesforce editions. With professional Edition you may have to pay for Web API integration.