If enabled for your account, you can configure ContactWorld Vonage Contact Center 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 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, create a custom Apex class that implements the NVMContactWorldVCCCore.ISelectPresentedClid interface and defines the GetPresentedClid method. The GetPresentedClid method describes how ContactWorld VCC can generate or locate the callback number. ContactWorld VCC can then present this number as the callback number.
...
Note | ||
---|---|---|
| ||
When you have created your class, ensure that ContactWorld VCC uses the class in Salesforce. For information about configuring the class that ContactWorld VCC uses to select the presented CLID, see Configuring custom settings for optional ContactWorld Vonage Contact Center 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. |
NVMContactWorldVCCCore.
ISelectPresentedClid ISelectPresentedClid
interface definition
global interface ISelectPresentedClid{ StringPresentedClidResponse GetPresentedClid(String clickToDialResultclickToDialJson); }
The clickToDialResult
clickToDialJson
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
clickToDialJson
is in JSON string format, for example, {"number":"4155551212","objectId":"001x0000003DIGj","object":"Account"}
. You do not need to provide clickToDialResult
clickToDialJson
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.VCCCore.PresentedClidResult object.
Value | Data Type | Description |
---|---|---|
presentedClid | String | String containing the CLID to present. |
isError | Boolean | If true, indicates to Vonage that an error occurred in your custom code. |
errorMessage | String | If isError is true, this string should contain a useful error message. |
Constructors available on VCCCore.PresentedClidResult:
global PresentedClidResult (String presentedCLid)
global PresentedClidResult (Boolean isError, String errorMessage)
Note |
---|
When creating your new class, you must declare both the class and the method as global so that the ContactWorld VCC installation package can access the class and invoke the method. |
ContactWorld VCC validates the presentedClid value returned by the GetPresentedClid method according to the following rules:
- if a null or blank value is returned, the Click to dial call continues and ContactWorld VCC 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 and 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 | ||
---|---|---|
| ||
Section | Column | |
| ||
Column | ||
|
Code Block | ||
---|---|---|
| ||
global class SelectPresentedClidForContactByAccount implements NVMContactWorldVCCCore.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 StringVCCCore.PresetedClidResult GetPresentedClid(String clickToDialResultclickToDialJson){ Map<String,Object> clickToDialResultMap = (Map<String,Object>)JSON.deserializeUntyped(clickToDialResultclickToDialJson); 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 new VCCCore.PresentedClidRsult(presentedClid); } } |
When an agent clicks to dial a number in a contact record, ContactWorld VCC runs our GetPresentedClid
method in the SelectPresentedClidForContactByAccount
class, which implements the ISelectPresentedClid
interface. The GetPresentedClid
method performs the following tasks:
- receives the details (
clickToDialResult
clickToDialJson
) of the Click to dial event - uses the
objectId
fromclickToDialResult
clickToDialJson
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 VCC 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.
...
Expand | |||||
---|---|---|---|---|---|
| |||||
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
When an agent clicks to dial a number in a contact record, ContactWorld VCC runs the
ContactWorld VCC 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. |
...