使用扩展点自定义屏幕弹出

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

您可以使用扩展点在适用于 Salesforce 的 Genesys Cloud 中自定义屏幕弹出行为。 扩展点使用 Salesforce Apex 编程语言。 

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

必备

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

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

purecloud.cti.Screenpop 界面

包含一个方法签名,您可以定义该签名来自定义 Genesys Cloud 适用于 Salesforce 的屏幕弹出功能。

使用

使用 purecloud.cti.ScreenPop 界面中的方法签名来定义屏幕弹出功能的工作方式。

onScreenPop 方法

用于驱动屏幕弹出逻辑。

此方法用于入站警报交互。 对于每次警报交互,每个代理仅调用一次 OnScreenPop 。 该方法可以返回更改默认屏幕弹出行为的数据。

如果 Apex 代码触发异常,则集成将执行默认的屏幕弹出行为。 如果未返回任何值,则集成将抑制屏幕弹出行为。

输入属性

传递给方法的 JSON 数据中包含以下属性。

姓名 数据类型 描述 注释
搜索值 字符串 搜索值。 示例值: 电子邮件地址(用于聊天和电子邮件互动)、电话号码(用于语音和短信互动)。
交互 对象 表示交互数据的数据对象。 有关详细信息,请参阅 精简对话信息中的数据对象格式

输出属性

重要提示: 在从 onScreenPop 方法返回的 JSON 数据中,仅使用以下属性之一。
姓名 数据类型 描述 注释
url 字符串 Salesforce 中页面的 URL。  可以是标准 Salesforce 页面、Visualforce 页面或包含来自架构师流程的预填充数据的新记录页面。
搜索值 字符串 在 Salesforce 记录中搜索的值。 

可以是案例编号、电话号码、联系人姓名或其他项目。 

有关更多信息,请参阅 Genesys Cloud 适用于 Salesforce 的 屏幕弹出窗口中的软件电话布局设置部分

默认 ScreenPop 布尔值 执行默认屏幕弹出 (true) 或不执行默认屏幕弹出 (false)。

有关更多信息,请参阅 Genesys Cloud 适用于 Salesforce 的 屏幕弹出窗口中的默认屏幕弹出行为部分

有关更多信息,请参阅 Genesys Cloud 中的 屏幕弹出窗口

示例

重要提示:
  • 将 Apex 类定义为全局类,以便集成可以调用代码。
  • 如果实现多个扩展点(或接口),请将它们全部放在同一个 Apex 文件中。
global class MyCTIExtensions implements purecloud.CTIExtension.ScreenPop {
    public String onScreenPop(String data) {
        // Example: Find a recent Case record by phone number. if not found, fall back to default screen pop behavior.
        Map<String, Object> screenPopData = (Map<String, Object>) JSON.deserializeUntyped(data);
        Map<String, Object> dataToReturn = new Map<String, Object>();
        String phoneNumber = (String) screenPopData.get('searchValue');
        if (String.isNotBlank(phoneNumber)) {
            List cases = [SELECT Id FROM Case WHERE ContactPhone =: phoneNumber ORDER BY LastModifiedDate DESC LIMIT 1];
            if (cases.size() > 0) {
                dataToReturn.put('url', cases.get(0).Id);
                return JSON.serialize(dataToReturn);
            }
        }
        dataToReturn.put('defaultScreenPop', true);
        return JSON.serialize(dataToReturn);
    }
}

有关更多信息,请参阅适用于 Salesforce 的 Genesys 云中的 扩展点

有关集成的更多信息,请参阅 关于适用于 Salesforce 的 Genesys Cloud