拡張ポイントを使用して画面ポップをカスタマイズします

注意:この記事は、Salesforce向けGenesys Cloudに適用されます。

拡張ポイントを使用して、Salesforce用Genesys Cloudの画面ポップの動作をカスタマイズできます。拡張ポイントはSalesforce Apexプログラミング言語を使用します。

注意:この記事は、Salesforceに精通している開発者を対象とした高度なカスタマイズのトピックです。

前提条件

  • [拡張ポイント設定] セクションを含む管理パッケージのバージョン。詳細については、以下を参照してください。 拡張ポイントを構成する.

Salesforceで、 purecloud.CTIExtension.ScreenPopインターフェース。Apexクラスをグローバルとして定義し、統合でコードを呼び出します。

purecloud.CTIExtension.ScreenPop インターフェイス

メソッドの署名が含まれ、Salesforce用Genesys Cloudのスクリーンポップ機能をカスタマイズするために定義できます。

使用法

メソッドの署名を purecloud.CTIExtension.ScreenPop インターフェイスを使用して、画面のポップ機能がどのように機能するかを定義します。

onScreenPop-Methode

画面ポップ ロジックを駆動するために使用されます。

このメソッドは、インバウンドアラートのやり取りのために呼び出されます。 オンスクリーンポップ は、アラートのやり取りごとにエージェントごとに1回だけ呼び出されます。このメソッドは、デフォルトの画面ポップ動作を変更するデータを返すことができます。

Apexコードが例外をトリガーする場合、統合はデフォルトの画面ポップ動作を実行します。値が返されない場合、統合は画面のポップ動作を抑制します。

入力プロパティ

以下のプロパティは、メソッドに渡されるJSONデータに含まれます。

データ・タイプ 説明 メモ
searchValue 文字列 Suchwert. 値の例: 電子メールアドレス(チャットおよび電子メールのやり取り用)、電話番号(音声およびSMSのやり取り用)。
インタラクション オブジェクト インタラクション データを表すデータ オブジェクト。

出力プロパティ

重要: から返されたJSONデータでは、以下のプロパティの1つのみを使用します オンスクリーンポップ メソッド。
データ・タイプ 説明 メモ
URL 文字列 Salesforce内のページのURL。 標準のSalesforceページ、Visualforceページ、またはArchitectフローからデータが事前入力された新しいレコードページを指定できます。
searchValue 文字列 Salesforceレコードで検索される値。

ケース番号、電話番号、連絡先名、その他の項目を指定できます。

詳細については、の「ソフトフォンレイアウト設定」セクションを参照してください。 Salesforce用Genesys Cloudの画面ポップ.

defaultScreenPop ブール値 デフォルトの画面ポップ(真)を実行するか、デフォルトの画面ポップ(偽)を実行しません。

詳細については、の「デフォルトの画面ポップ動作」セクションを参照してください。 Salesforce用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 Cloudの拡張ポイント.

統合の詳細については、以下を参照してください。Salesforce向けGenesys Cloudについて.