From ContactWorld version 2.4 in Salesforce, if If enabled for your account, you can configure ContactWorld to dynamically select a callback number. The dynamically selected callback number takes precedence for individual calls over both the callback number defined by your agent in ContactPad and your account's default callback number. For information on about callback numbers, see Callback numbers.
...
You can use this feature in various ways depending on how your Salesforce org is set up. To override callback numbers, you must create a custom Apex class that implements the NVMContactWorld.ISelectPresentedClid interface and defines the GetPresentedClid method. The GetPresentedClid method describes how ContactWorld can generate or locate the callback number. ContactWorld can then present this number as the callback number.
To create the custom class, you must be familiar familiarize yourself with creating Apex classes in Salesforce. For information on about creating Apex classes, see Salesforce help.
Note |
---|
title | Configure custom settings |
---|
|
When you have created your class, you must ensure that ContactWorld uses the class in Salesforce. For information about configuring the class that ContactWorld uses to select the presented CLID, see Configuring custom settings for optional ContactWorld features in Salesforce. You can create different Apex classes to define callback behaviors for different departments and users. Define the required class for specific profiles or users in hierachical custom settings. |
...
Expand |
---|
|
Section |
---|
Column |
---|
| In our first example, the presented callback number is stored in and retrieved from a custom field, called ClickToDialPresentedClid, on an Account object. Firstly we created an Account object field called ClickToDialPresentedClid. For information on about creating custom fields, see Salesforce help. |
Column |
---|
|
|
|
Secondly, we created a new Apex class called SelectPresentedClidForContactByAccount : Code Block |
---|
| global class SelectPresentedClidForContactByAccount implements NVMContactWorld.ISelectPresentedClid{
// The clickToDialResult parameter contains the response string from the Salesforce ClickToDial event.
// Salesforce passes the clickToDialResult parameter to us:
// for example '{number: "07890123456", objectId: "0032000001FTGSo", object: "Contact"}'
// Find more information at: https://www.salesforce.com/us/developer/docs/api_cti/Content/sforce_api_cti_onclicktodial.htm
global String GetPresentedClid(String clickToDialResult){
Map<String,Object> clickToDialResultMap = (Map<String,Object>)JSON.deserializeUntyped(clickToDialResult);
String contactId = (String)clickToDialResultMap.get('objectId');
Contact c = [SELECT Id, AccountId FROM Contact WHERE Id = :contactId];
Account a = [SELECT Id, ClickToDialPresentedClid__c FROM Account WHERE Id = :c.AccountId];
String presentedClid = a.ClickToDialPresentedClid__c;
return presentedClid;
}
} |
When an agent clicks to dial a number in a contact record, ContactWorld runs our GetPresentedClid method in the SelectPresentedClidForContactByAccount class, which implements the ISelectPresentedClid interface. The GetPresentedClid method performs the following tasks: - receives the details (
clickToDialResult ) of the Click to dial event - uses the
objectId from clickToDialResult to identify the contact record from which the agent initiated the call - locates the record for the account to which the contact belongs
- returns the number from the custom field (
ClickToDialPresentedClid__c ) on the account record
ContactWorld uses the returned number as the callback number. The number appears both in ContactPad and on handset of the person that the agent has clicked to dial. |
...