...
How do I customize the number that a customer sees on their handset when my agents call them using Click to dial?
When an agent uses Click to dial to make a call, Vonage Contact Center presents a number to the person they are calling. The person receiving the call can use this number to identify who the incoming call is from and optionally use the number to call the agent back another time. You have several different ways to customize the number that VCC presents. For more information 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 CW4SF can generate or locate the callback number. CW4SF can then present this number as the callback number.
To create the custom class, you must be familiar with creating Apex classes in Salesforce. For information on creating Apex classes, see Salesforce help.
NVMContactWorld.ISelectPresentedClid interface definition
global interface ISelectPresentedClid{
String GetPresentedClid(String clickToDialResult);
}
The clickToDialResult
contains the phone number that the agent clicked to dial, and the object ID and type of the Salesforce object from which the agent clicked. clickToDialResult
is in JSON string format, for example, {"number":"4155551212","objectId":"001x0000003DIGj","object":"Account"}
. You do not need to provide clickToDialResult
because Salesforce passes the value to the method for you when an agent initiates a Click to dial event.
GetPresentedClid
returns the callback number as a String object.
Note |
---|
When creating your new class, you must declare both the class and the method as global so that the CW4SF package can access the class and invoke the method. When you have created your class, you must ensure that CW4SF uses the class. For information on configuring this feature, see Configuring custom settings for optional features. |
CW4SF validates the value returned by the GetPresentedClid method according to the following rules:
- if a null value is returned, the Click to dial call continues and CW4SF uses the agent's default callback number, if set, or the account's default callback number
- if a non-null value is returned but the value is not configured as a callback number for the account, the agent receives an error message
- if a non-null value is returned and the value is configured as a callback number for the account, but that callback number is restricted from the agent, the agent receives an error message
- if a non-null value is returned and if the value is configured as a callback number for the account and that callback number is not restricted from the agent, the Click to dial call continues, and the value is used as the callback number for the call
Expand | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||
Secondly, we created a new Apex class called
When an agent clicks to dial a number in a contact record, CW4SF runs our
CW4SF 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. |
...
title | Example 2 |
---|
In our second example, the presented callback number is set according to whether the customer's telephone number is a mobile—or cell—number, a number with a London area code, or other number.
The Apex class that implements NVMContactWorld.SelectPresentedClidByPolicy
is called SelectPresentedClidForContactByAccount
:
Code Block | ||
---|---|---|
| ||
global class SelectPresentedClidByPolicy 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 customerNumber = (String)clickToDialResultMap.get('number');
//Account default
String presentedClid = '01234567890';
if (customerNumber.startsWith('07') || customerNumber.startsWith('+447')) {
//Mobile, or cell, numbers
presentedClid = '07123456789';
} else if (customerNumber.startsWith('0207') || customerNumber.startsWith('+44207')) {
//Basingstoke numbers
presentedClid = '02071234567';
}
return presentedClid;
}
} |
When an agent clicks to dial a number in a contact record, CW4SF runs the GetPresentedClid
method in the SelectPresentedClidByPolicy
. The GetPresentedClid
method performs the following tasks:
- receives the details (
clickToDialResult
) of the Click to dial event - uses the
number
fromclickToDialResult
to identify the customer's telephone number, which the agent clicked to dial - returns the appropriate number:
- if the customer's number is a mobile number, the method returns a mobile number
- if the customer's number has a London area code, the method returns a London area code
- if the customer's number is any other number, the method returns the default number (01234567890)
...
VCC provides three different methods of automating callback numbers with Click-to-dial:
- If enabled for your account, you can configure VCC to dynamically select a callback number based on the dialed number's prefix. This method does not require Apex code. For information about configuring VCC to dynamically select a callback number based on the dialed number's prefix, see Configuring prefix-based callback number selection.
- If enabled for your account, you can configure VCC to dynamically select a callback number based on the value in a field in the record that contains the clicked number. This method does not require Apex code. For information about configuring VCC to dynamically select a callback number based on a field's value, see Configuring field-based callback number selection.
- If enabled for your account, you can configure VCC to dynamically select a callback number using Apex. For information about using Apex to select the callback number, see Automating callback numbers for Click to dial using Apex.
The dynamically selected callback numbers take precedence for individual calls over both the callback number defined by your agent in ContactPad and your account's default callback number unless you have the feature "Allow agents to override auto-presented callback number" enabled.
Note |
---|
To use a callback number, that number must be configured and available for your account. To add a new callback number to use with your account, contact support. |
Note |
---|
If enabled for your account, when you set a default callback number for outbound calls in ContactPad, VCC presents this number instead of the dynamically selected callback number. For information about setting a default callback number, see Setting the default callback number in ContactPad. |
Panel | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|