xCALLY Shuttle provides a seamless CTI integration with Salesforce, customer relationship management (CRM) system. The integration works on Salesforce Enterprice, Ultimated or Performance.
The integration automatically creates a Task for each call, according to the configured Queues and Triggers.
The Task is opened and shown to the Agent on the same TAB; the Agent can also manage calls using a phone embedded on the Salesforce interface.
The guide contains these sections:
In order to use the Integration you have to create, in Salesfoce, the xCally Shuttle Connected App, following the two steps below:
1. After the login, the Administrator has to go in the Setup section. In the menu, on the left, he has to click on Build -> Create -> Apps and then on the New button in the Connected Apps section.
2. Insert the following data into the New Connected App:
- Connected App Name: xCally Shuttle
- API Name: xCally_Shuttle
- Enable OAuth Settings: Enabled
- Callback URL: https://login.salesforce.com/services/oauth2/callback
- Selected OAuth Scopes:
- Access and manage your Chatter feed (chatter_api)
- Access and manage your data (api)
- Access custom permissions (custom_permissions)
- Access your basic information (id, profile, email, address, phone)
- Allow access to your unique identifier (openid)
- Full access (full)
- Perform requests on your behalf at any time (refresh_token, offline_access)
- Provide access to custom applications (visualforce)
- Provide access to your data via the Web (web)
Here you can find all the information about the Connected App creation:
Important configurations and hints
The integration between xCally Shuttle and Salesforce uses the new Shuttle Push Technology in order to speed the Task creation and agent pop-up.
In order to have it working properly please note that:
- the integration WORKS ONLY if the Agents are logged on the XCALLY Phone bar (minimum version required: 3.7). The Agents can manage calls through the XCALLY Phone bar or through the embedded phone on the Salesforce console. The login on the Shuttle Agent Web interface is optional.
the integration WORKS ONLY if you force Chrome to always load the script.
1. Go under "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" and select chrome.exe. Click with the right mouse button on it. Select Send to Desktop in order to create a shortcut.
2. Go to the Desktop and click with the right mouse button on the Chrome icon. Select Properties and, under the tab called Shortcut, edit theTarget field adding after the application path --allow-running-insecure-content
Target Field Sample: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-running-insecure-content
Please note that your Agents must launch the browser ONLY from the Chrome Desktop icon.
3. Verify that the point 2 has been correctly applied on your Chrome browser, launching the command chrome://version/strings.js on the Chrome nav bar. If everything is ok you will see the following screenshot (in particular the text highlighted). If you can't see the "--allow-running-insecure–content" string, please do again the step 2.
Turn off Content Sniffing Protection in Salesforce Setup -Security Controls -> Session Settings.
- we suggest you to use the same Agent name on XCALLY and Salesforce.
please check on Salesforce that the field Type of the Task is enabled, since it will be used to set the type of call.1. Go under Build -> Activities -> Task Fields2. Select Type3. Select View Field Accessibility4. Check if the Field Access is editable for the level of the user that you inserted in xCALLY Shuttle. If it is Hidden, please click on it.5. Set Field-Level Security as Visible
How it works*
*from version 2.4.26
Create a new Integration - Salesforce Admin
In order to set the integration on Salesforce you have to create a new Call Center and a new XCALLY Softphone application following the steps below.
XCALLY Call Center Adapter
XCALLY Softphone App
Create a new Integration - Shuttle Admin
To create a new Integration click on the button New Integration and fill the form with the following information:
You can choose a Name which represents the Integration and then fill the Username and Password fields, which require the same username and password of an Administrator Salesforce Account. Then compile the URI field with your Salesforce URL and the Integration Type, in this case selecting Salesforce from the dropdown menu.
IMPORTANT: the URI must end with /
e.g. https://login.salesforce.com/ -> CORRECT URI
https://login.salesforce.com -> WRONG URI, the integration won't work!
The Enable Lead Search means that the integration seeks the customer in the Leads, then in the Contacts. If it doesn't find anything on Salesforce, it creates a Lead. Finally the integration creates a Task, associating it to the Contact/Lead and the Agent.
The Embedded flag means that, by default, the created integration will be the Embedded one. If you would like to use the Salesforce Classic integration, please deselect it.
You also have to insert:
- the ClientID and Client Secret, that you can find in the SalesForce App Settings
- the Security Token, which is sent by email and must be reset every time you change the password in SalesForce.
After the creation of the Integration, you can edit parameters or remove it.
Create a Trigger
Now let’s focus on the Triggers Section: here you can set how the integration works by adding a new Trigger. To create it click on New Trigger and choose your integration strategy filling the form:
Through the Event field you can decide when the integration starts, so when the Salesforce Task page (dedicated to the actual call, which includes all the relevant fields of the caller) will be created:
- Ringing: when the phone is ringing, before the agent’s answer
- Up: when the agent picks up the call
- Hang up: when the agent hangs up the call
- Unmanaged call: when the caller has hang up before talking with an agent
You can also choose for which Queue the integration is valid. If you need to apply the Integration on more queues, you have to create one trigger for each queue.
Finally you have to select the Salesforce Integration.
After the creation of the Trigger you can edit parameters or remove it.
Custom Case Fields are typically used to gather more information about the support issue or product or service in Salesforce.
Using Shuttle you can now create a MAPPING between the Salesforce custom field key and the available field values.
In order to do it just enter in the Shuttle administration web interface -> Section Integrations and add your custom field mapping in the Custom Fields sub-section clicking on New Custom Field.
Fill the form with the requested information:
- Custom Field ID: insert here the Salesforce custom field name
- Prefix: String prefix
- Available Fields
- From: Caller
- Date: Enter Time Call
- To: Called
- Unique ID: Asterisk Unique ID Call
- Id: Caller ID Zendesk
- Recording Link: Link Recorded Call
Name: Caller Name
- SIP: Shuttle SIP
- Queue: Shuttle Queue
- Agent: Shuttle Agent
- Position: Queue’s Position
- Count: Queue’s Count
- Trunk: Shuttle Trunk
- Suffix: String Suffix
- Integration: Integration Name
The result is that in Salesforce your agents will get the Case pop-up with the custom fields auto-filled.
In this example the Custom Field ID is:
The Agents who uses the XCALLY Softphone console can manage calls directly from the embedded phone in the Salesforce interface, using also the click to call function.
Advanced Configuration for Outbound Calls
The integration works ONLY for Agents logged with the XCALLY Phonebar 3.7.
Outbound calls - show popup
A new Task, related to that Case (in general, to the Salesforce Object from which the call has been originated), is created by the integration (LogCall outbound parameter -> true) and shown to the Agent (Popup outbound parameter -> true).
Outbound calls - hide popup
A new Task, related to that Case (in general, to the Salesforce Object from which the call has been originated), is created by the integration (LogCall outbound parameter -> true) but not shown to the Agent (Popup outbound parameter -> false).
Here the parameters set on the Salesforce Call Center application:
On the Call center file you find the section Fields association where you can associate the Activity fields that will be populated after the call hangup.
In order to use this, you need to install the hangup manager script (hangup-manager.js).
For the standard Task Fields mapping, you have to use the Field Name value.
For the custom Activity Fields mapping, you have to use the API Name value.
See the images below.
The Integration doesn’t work? Check carefully the following steps:
- Be sure that you are using Salesforce Enterprice, Ultimated or Performance.
- Verify that the integration data you gave are correct. Check if:
- the username and password correspond to a valid Salesforce Admin Account
- the Salesforce URI is correct
- the ClientID, Client Secret and Security token are correct.
- The Agent is correctly associated to the Queue specified in the created Triggers.
- The Agent is correctly logged into the XCALLY Phone bar.
- When you create an agent on Salesforce, remember to check that he/her can see/edit the components used by the APIs (Contact, Case, Task, Lead).
- You have correctly forced Chrome to always load the script.
If you see on the browser the shield icon, it means that you have not configured it correctly:
How to debug the application
If you want to debug the application you have to open the Console developer (on Chrome, ctrl+shift+j to open it or Menu -> More tools -> Developer tools -> Console tab).
If the application is running correctly, you will see, under the Logs, something like in the image below; instead, if you see some error messages, please contact our team!