使用扩展点自定义保存交互日志

注意: 本文适用于适用于 Salesforce 的 Genesys 云。

您可以使用扩展点在 Genesys Cloud 中自定义保存交互日志。 扩展点使用 Salesforce Apex 编程语言。

注意: 这篇高级自定义文章面向熟悉 Salesforce 的开发人员。

必备

  • 包含 “扩展点设置” 部分的托管软件包的版本。 有关详细信息,请参阅 配置扩展点

在 Salesforce 中,使用实现 purecloud.ctiEx.savelog 接口的 Apex 类创建单个 Apex 文件。 将 Apex 类定义为全局类,以便集成可以调用代码。

purecloud.cti.savelog 接口

包含一个方法签名,您可以定义该签名来自定义 Genesys Cloud 中的 Salesforce 保存日志。

使用

使用 Purecloud.cti.savelog 接口中的方法签名来定义保存日志的工作方式。

onsaveLog 方法

用于保存交互日志信息。

只要集成在某些交互或用户事件中检测到交互日志中的更改,就会调用此方法。 该方法接收任务记录的未保存的交互日志数据。

如果该方法成功保存了数据,则返回记录的 ID。 如果该方法没有保存数据,则返回一个空字符串。

注意: onSaveLog 方法不支持返回空值。

输入属性

传递给方法的 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