Outsourcing Consulting News
Salesforce Adapter for Salesforce Call Center distributor
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.
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
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
Changed status in Salesforce UI
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 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.
Click-to-dial - when a CTI Adapter is present, all phone numbers in Salesforce.com 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.
Screen pops on incoming calls - when a call arrives at soft phone, the CTI Adapter will initiate a search in Salesforce.com 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 Salesforce.com 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:
Call control from within the Salesforce.com web interface
The user can make calls, hold calls, transfer and conference without leaving Salesforce.com 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).
- Outgoing call
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