使用扩展点自定义保存交互日志
您可以使用扩展点在 Genesys Cloud 中自定义保存交互日志。 扩展点使用 Salesforce Apex 编程语言。
必备
- 包含 “扩展点设置” 部分的托管软件包的版本。 有关详细信息,请参阅 配置扩展点。
在 Salesforce 中,使用实现 purecloud.ctiEx.savelog 接口的 Apex 类创建单个 Apex 文件。 将 Apex 类定义为全局类,以便集成可以调用代码。
purecloud.cti.savelog 接口
包含一个方法签名,您可以定义该签名来自定义 Genesys Cloud 中的 Salesforce 保存日志。
使用
使用 Purecloud.cti.savelog 接口中的方法签名来定义保存日志的工作方式。
onsaveLog 方法
用于保存交互日志信息。
只要集成在某些交互或用户事件中检测到交互日志中的更改,就会调用此方法。 该方法接收任务记录的未保存的交互日志数据。
如果该方法成功保存了数据,则返回记录的 ID。 如果该方法没有保存数据,则返回一个空字符串。
输入属性
传递给方法的 JSON 数据中包含以下属性。
姓名 | 数据类型 | 描述 | 注释 |
---|---|---|---|
活动名称 | 字符串 | 表示触发 O nsaveLog 的状态。 | 价值观: 交互已更改、交互已断开、断开连接后交互更改、交互已完成、交互已移除、OpenCallLog、AppDisconnect。 |
交互 | 对象 | 表示交互的状态。 | 有关详细信息,请参阅 精简对话信息中的数据对象格式。 |
呼叫日志 | 对象 | Salesforce 中定义的活动字段具有更改值的交互日志数据。 | 仅提供集成日志中已更改的部分内容。 |
输出参数
姓名 | 数据类型 | 描述 | 注释 |
---|---|---|---|
{返回值} | 字符串 | 已保存或更新的交互日志的 ID。 |
示例
- 将 Apex 类定义为全局类,以便集成可以调用代码。
- 如果实现多个扩展点(或接口),请将它们全部放在同一个 Apex 文件中。
global class MyCTIExtensions implements purecloud.CTIExtension.SaveLog {
public String onSaveLog(String data) {
// Example: Save interaction log as Task record after interaction is disconnected.
Map<String, Object> saveLogData = (Map<String, Object>) JSON.deserializeUntyped(data);
Map<String, Object> interaction = ( Map<String, Object>) saveLogData.get('interaction');
Map<String, Object> callLog = ( Map<String, Object>) saveLogData.get('callLog');
Boolean isDisconnected = (Boolean) interaction.get('isDisconnected');
String callLogId = '';
if (isDisconnected) {
Task t = (Task) JSON.deserialize(JSON.serialize(callLog), Task.class);
upsert t;
callLogId = t.Id;
}
return callLogId;
}
}
有关更多信息,请参阅适用于 Salesforce 的 Genesys 云中的 扩展点。
有关集成的更多信息,请参阅 关于适用于 Salesforce 的 Genesys Cloud。