Screen shot 2012-08-15 at 6.49.08 PM
With the recent improvements to browsers, push technologies and HTML5, the salesforce.com team asked itself if there was a better alternative to our desktop CTI (Computer Telephony Integration). In addition, with the changing telephony landscape, we also needed to accommodate two types of CTI, one with the traditional on-premise solutions, the other with cloud telephony vendors.

A Very Different Approach to CTI

The solution is much like other integrations you see day-to-day on the web. Summer '12 introduced Open CTI which allows customers and partners to embed third party web apps directly into Salesforce. This is much like Zynga games on Facebook or Google maps in Yelp. The integration possibilities now look something like this.

Open CTI

Open CTI Architecture

As is shown in the figures above, softphones are presented as a part of salesforce.com. All communication between the telephony system and salesforce.com is localized to the browser as well. The implications of this new architecture are significant. With Open CTI customers and partners can –

  • Embed any call control that has a web-based front end directly into salesforce.com
  • Leverage an Open CTI API to
    • screen pop
    • enable, disable, hook into click-to-dial
    • save call logs
    • perform data dips into apex ( via exposed web services)
    • query call center configurations
    • and much more…
  • Use the same call control consistently across the standard salesforce app and the Service Cloud Console

What Does It Look Like…?    

An example of such a web-based softphone is shown below.

An Open CTI Call Control in the standard app

An Open CTI Call Control in the Service Cloud Console

The softphone shown above looks vastly different compared to the softphone generated by the CTI Toolkit. Since customers and partners own the entire call control stack in Open CTI, they have immense flexibility in the technologies and UI used to create it. The implications of this are many-

  • The Open CTI architecture is agnostic to browsers and platforms. An Open CTI solution can work across any HTML5 browser and Windows, Macs or Linux based machines
  • There is no desktop Toolkit, eliminating much of the pain points seen before
  • The cross domain nature of Open CTI allows softphones to be served from any domain, including Visualforce
  • Partners can maintain a single softphone codebase, leveraging the same across CRM and non CRM customers
  • Troubleshooting and maintenance is easier since the entire softphone is owned by the partner or customer

Some Considerations…

It is important to understand that Open CTI, in its essence, is a cross-domain JavaScript API library available in an iframe offered by salesforce for embedding third party applications. The source of this iframe is configurable.

We are often asked why we chose a JavaScript API. There are 2 reasons for this.

  • A web services/ REST based integration would require propagating telephony events from the CTI server to the salesforce.com data center and then finally to the agent's browser. The browser would need a JavaScript library to receive and parse these events. If this library is needed anyways, it made sense to expose it early to our customers
  • JavaScript and HTML5 are very standard web technologies making it easier to hire skilled developers

Another question is what options are available to vendors who do not have a web-based softphone? Salesforce.com is committed to maintaining the desktop CTI Toolkit versions 3 and 4 for the medium term. However, we strongly advise parts to migrate to the Open CTI architecture in the 18-24 month time frame, at the end of which we will end-of-life the desktop Toolkit. We are working closely with partners to ensure that all customers have a smooth transition.

You can install your own demo Open CTI adapter for a test drive. Download instructions are available here – Open CTI. You can find documentation on Open CTI here – Open CTI Developer's Guide .

In Summary

Open CTI offers an entirely new and empowering approach to CTI integrations with salesforce.com. Its ability to incorporate any web-based 3rd party application opens up a realm of possibilities for partners and customers. At the same time, its cloud based delivery significantly (and positively) impacts maintenance, innovation and robustness. In the future, we plan to extend the capabilities of Open CTI across channels, including Chat, further expanding the power of the feature. For any questions on Open CTI, please reach out to me at gvasudev@salesforce.com.

More on the salesforce.com desktop CTI integration can be found in the following sections.

A follow up… What is CTI and a Little History

The CTI (Computer Telephony Integration) Toolkit for salesforce.com was first released in 2006 as desktop software. It allows partners and customers to connect their telephony to salesforce.com. The integration of the Toolkit with a particular telephony platform is called an "adapter", for that platform. An example would be a Cisco CTI adapter.

081512_2218_OpenCTIMovi5

A typical CTI Integration

Softphone Capabilities

In an adapter, the toolkit matches information from incoming or outgoing calls to data in salesforce, and displays the same to the agent. The toolkit also

  • renders a call control tool in salesforce.com, allowing agents receive, transfer, end or hold calls
  • can save a call log when a call ends. The logs can then be reported on
  • enable phone fields in salesforce.com for click-to-dial
  • screen pops records based on call data

081512_2218_OpenCTIMovi6

The CTI Call Control (softphone) in salesforce.com

081512_2218_OpenCTIMovi7

The CTI Call Control (softphone) in the Service Cloud Console

 

The CTI Call Control (softphone)

Click-to-dial in

Note – the term softphone and call control are used interchangeably here. Strictly speaking, salesforce.com only provides call control. There are no voice capabilities in the Toolkit.

What happened to "No Software"?

CTI integrations bring huge productivity benefits since the agent now has the customer data and call control in the same place. However, the Toolkit has always been somewhat of a black sheep in the salesforce.com product family. Our DNA is the cloud. And yet, we have released and maintained a desktop CTI solution. The reason for this relates to the technology available when the product was first architected.

Back in 2006, there were few ways to push update notifications to browsers from a web server. An incoming call notification could not be easily communicated to an agent's salesforce.com browser windows. Of course, the browsers could continuously poll for updates. However, with international contact centers, networks lag became a significant issue. Receiving an email 10 seconds after it is sent is usually fine. Answering a phone call 10 seconds after the answer button is pressed is not.

With the limitations in technology, a desktop based solution was chosen, which would eliminate network lag by keeping all the communication between the browser and telephony local to the agent's machine. Queries with salesforce.com still incurred the network lag, but the softphone was now responsive during the querying and the agent could answer the call.

Desktop CTI Adapter Architecture

In addition to this high degree of responsiveness, customers also enjoyed a consistent call control interface no matter what the underlying telephony platform was. This ready-made, consistent interface made it easier for both partners and customer to adopt the Toolkit.

A side effect of this desktop solution is that it works only with Internet Explorer (the library used to communicate with the browser was IE specific). We have extended support to other browsers in later versions.

A desktop solution comes with all the challenges of non-cloud applications. The CTI adapter is

  • harder to deploy as a solution
  • sensitive to a customer's environment
  • slow to innovate with (resultant from the technologies used and the Toolkit model in which partners must re-compile before releasing to customers )

You can find more about the salesforce.com CTI Toolkit here – CTI Toolkit .