Salesforce Classic

xCALLY Shuttle provides a seamless CTI integration with Salesforce, customer relationship management (CRM) system. The integration works on Salesforce Enterprice, Ultimated or Performance.

The Classic integration automatically creates a Case for each call; the Case will be opened and shown to the Agent on a new TAB.

The guide contains these sections:


Connected App

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)

- 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:
https://help.salesforce.com/apex/HTViewHelpDoc?id=connected_app_create.htm

 

Important configurations and hints

The integration between xCally Shuttle and Salesforce works on Salesforce Enterprice, Ultimated or Performance.

Please follow carefully this steps:
1. the Agent First Name+spacing+Last Name in the Salesforce profile must correspond exactly to the Agent Name in the xCally Shuttle Agent profile, like shown in the image below.

In this case the Administrator set:
- John Doe as Agent Name, in his xCally Shuttle Account;
- John as Agent First Name and Doe as Agent Last Name, in his Salesforce account.

Be careful to use the correct spacing while typing these fields!

If you use the xCALLY phone bar, you just need to create the Agents, being careful to fill in with the Name same as your Salesforce Agent First Name and Last Name, as described in the previous page. Do not touch the Caller-ID SIP created field (it will be automatically generated with the right value to make the integration working).

The Agent must be logged also into the xCally Shuttle web interface.

If you use external IP phones, or experimental WebRTC, you just need to create the Agents, being careful to fill in with the Name same as your Salesforce Agent First Name and Last Name, as described before. Afterwards, just link the Agent to the SIP username related to your external IP phone.
The Caller-ID SIP field and the entire SIP related account, can be modified later on without any impact. The Agent must be logged also into the xCally Shuttle web interface.

2. The Caller-ID name, in the xCally Shuttle SIP General Settings (related to the Shuttle Agent), must be the same of the Agent name specified in the Salesforce personal information.

3. 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 Fields
2. Select Type

3. Select View Field Accessibility

4. 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


4. You should use one of this recommended browsers and enable popups:

Windows

  • Chrome v36.0.1985.125m (NOT HTTPS)
  • Chromium v34.0.1831.0
  • Safari v5.1.7
  • Opera 23.0.1522.60 (in HTTPS, at the first access, you have to enable the loading of the unsafe script)

Mac

  • Chrome 35.0.1916.153
  • Chromium 28.0.1496.0
  • Safari 7.0.5 (activate pop-up preferences)
  • Opera 23.0.1522.60

Linux

  • Chrome 36.0.1985.125 (no HTTPS)
  • Chromium 34.0.1847.116
  • Opera 12.16 build 1860
 

Check carefully to have enabled popups!

If you use Chrome/Chromium and Opera, you have to enable the popups, providing the xCally Shuttle Address.
Chrome/Chromium: https://support.google.com/chrome/answer/95472?hl=en
Opera: Settings > Site Preferences - Exceptions - Pop-up Section where you can add the IP address

How it works*

*from version 2.4.26

Create a new Integration

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!


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 Case 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 fields

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 Salesforce 
  • 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:
xCally_Queue__c


The result

Windows phone bar

The Agent will receive the call through the xCALLY Phone Bar, which warns him with a pop-up showing the caller number and the queue. The Integration will create for him, on Salesforce, a new Case containing all the call information.

External IP Phone

The Agent will receive the call through his External IP Phone; on the xCALLY web interface it will appear a pop-up showing the Salesforce Integration Notification. The Integration will create for him, on Salesforce, a new Case containing all the call information.

Experimental WebRTC

The Agent will receive the call through the WebRTC interface, which warns him with two pop-ups showing the caller name, number and the queue and the Salesforce Integration Notification. The Integration will create for him, on Salesforce, a new Case containing all the call information, as shown below.

The Integration creates a new Case on the Salesforce platform every time a call comes in one of the triggered Queues, according to your Trigger strategy.

The Case page contains useful information, like the Caller’s Name, the Caller’s Number and the data of the Agent who managed the call and on which Queue.

If you have enabled the Lead Research, in the Settings, the Integration seeks the number of the caller in the Leads and in the Contacts. If the search has no result, a new Lead will be created.
When the Integration finds the Lead/Contact associated to the number of the caller, it automatically populates the Task with the Lead/Contact data.


Troubleshooting


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 First Name and Last Name in the Salesforce profile corresponds exactly to the Agent Name in the xCally Shuttle Agent profile.

xCally Shuttle Agent Name: Emily Brown
Salesforce Agent First Name: Emily
Salesforce Agent Last Name: Brown

  • Be sure that you are using one of the recommended browsers and that you have enabled popups. 

  • Be sure that the agent is also correctly logged into the xCally Shuttle web interface.

  • 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).