Salesforce Adapter for Salesforce Call Center distributor

Outsourcing Consulting News

Salesforce Adapter for Salesforce Call Center distributor

The Customer

The customer is a small technology company, manufacturer of Voice-over-IP (VoIP) equipment. Products include IP phone switches, a wide variety of IP telephones including wireless IP phones and conference phones, and assorted IP Telephony peripherals.

Customer business need

Modern call centers need unified call flows and business processes for both call handling and business-transaction navigation. The customer needed integrate their Call Center solution with SalesForce CRM to provide softphone functionality so agents can place, receive, and transfer customer interactions with full, real-time access to Salesforce customer data.


The SalesForce Adapter is a system-tray application and a set of plug-ins for IE and Firefox browsers. Once the user has logged in Salesforce, plug-ins are initialized.

The plug-ins are responsible for communication between 2 sub-systems:

  • Web UI of Salesforce site
  • Module communicating with CTI server.

Salesforce Adapter

Basic workflow is as the following:

  • User runs SIP client (for instance X-Lite) and logs in or just switches on a phone.

  • User launches adapter which displays icon in system tray icon in system tray

  • User launches browser and logs into Salesforce.

  • Plug-in gets initialized.

  • Salesforce WEB UI prompts user to specify user name and password for authentication to CTI server. When credentials are entered, they are passed to the plug-in which attempts to connect and log in to CTI server reporting the results back to Salesforce UI. Basically the plug-in is a middle component which helps Salesforce UI and SCTA API communicate to each other.

  • After these steps user can manage calls from Salesforce call center WEB UI.

    The following sample illustrates what steps the system takes to make a call:

    Dial phone number using Salesforce UI
    Passing information to the plug-in
    CTI server handling the job, notification from CTI server(OriginatedEvent, DivertedEvent, DeliveredEvents, EstablishedEvents)
    Translation of CSTA events into Salesforce adapter events
    Established connection
    Changed status in Salesforce UI

Salesforce Adapter

Basic Features

  • Adapter tray menu
    Access to all necessary telephony functions is available from Salesforce WEB UI except for configuration details such as server address and port, and ClientID which is added to the options of the tray application.

  • Connection to CTI Server
    Connection to CTI server takes place when plug-in is initialized. There is an ability to re-connect to a different CTI server from adapter menu, which would request user credentials. Plug-in unloading ends the current connection.

  • Authentication
    Authentication pane in Salesforce WEB UI will look as shown on the screenshot above. Besides user name and password, the user will need to specify Monitor object MonitorObject (CSTA_MonitorStart). When logging out, the adapter will use CSTA_MonitorStop and CSTA_Logout methods.

  • Calls Processing

    • Outgoing call

      Click-to-dial - when a CTI Adapter is present, all phone numbers in become clickable links -- the user needs only click them to dial those numbers.
      When dialing a number, adapter will intercept the call and will use the appropriate CSTA API functions to actually establish the call. It will handle events from CTI server and pass them back to Salesforce WEB UI to indicate the call status.

    • Incoming call

      Screen pops on incoming calls - when a call arrives at soft phone, the CTI Adapter will initiate a search in based on the caller's phone number or on digits he may have entered via the IVR (the Interactive Voice Response system which might ask questions like "Please enter your account number"). If it finds a match, it will pop a page showing the contact or account record of the caller.
      Since the adapter is out of control over user accepting a call on a regular phone, handling of accept call function cannot be implemented in a reliable way. To handle this upon the incoming call ( DivertedEvent ), the user status will be updated and "Ringing" notification will be shown instead of Accept call button. Upon accepting a call ( EstablishedEvent ) a standard "On a call" interface will be shown:

      Salesforce Adapter

    • Call control from within the web interface

      The user can make calls, hold calls, transfer and conference without leaving and without touching his phone.
      The following standard functions for call management are available: HoldCall, RetrieveCall, TransferCall which can be mapped from Salesforce functions to CSTA API functions.

    • Automatic call logging

      When the user is on a call, he'll have the opportunity to take notes on that call, which will be automatically logged as an Activity and associated to objects that he has navigated to during the call (for instance, the caller's contact record, or a Case or Opportunity he created during the call).

  • Configuration tool
    Configuration tool is bundled to the installation; after install it will be available as an additional link in Windows Start menu. The tool loads server connection setting and client IDs from configuration file and provides means to edit / save this configuration, choose active server and client ID.


  • Saving money and increasing revenue,

  • Improved monitoring: agents can place, receive, and transfer customer interactions with full, real-time access to salesforce customer data. ensures agent compliance to business processes and increases agent productivity

  • Enhanced customer service: first call resolution can be enhanced using business rules and customer data residing in Salesforce to help ensure that customers quickly reach the right agent, the first time.

Technologies and Tools

  • SalesForce CRM
  • libraries - CTIAdapterLib (technologies: COM, ATL), CSTA (technologies: openssl, libxml, boost::thread)
  • languages - C/C++ (adapter), C# - .NET 2.0 (ConfigForm)
  • installer - Nullsoft Scriptable Install System

View All Projects

IT Consulting Services

We offer Outsourcing Practices in eight key verticals in the USA market, IT Solutions featuring state-of-the-art architectural and program management expertise, Financial Services, Healthcare and Insurance, Manufacturing & Logistics, Travel and Entertainment, Pharmaceuticals, Retail and Telecommunications.

Outsourcing Practices