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

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

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

メモ:   この高度なカスタマイズの記事は、Salesforceに精通している開発者を対象としています。

前提条件

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

Salesforceで、を実装するApexクラスを使用して単一のApexファイルを作成します。 purecloud.CTIExtension.ScreenPop インターフェース。 Apexクラスをグローバルとして定義し、統合でコードを呼び出します。

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

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

利用先

でメソッドシグネチャを使用する purecloud.CTIExtension.ScreenPop スクリーンポップ機能がどのように機能するかを定義するためのインターフェイス。

onScreenPopメソッド

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

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

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

入力プロパティ

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

名前 データ・タイプ 説明 メモ  
検索値 文字列  検索値。 値の例: 電子メールアドレス(チャットおよび電子メールのやり取り用)、電話番号(音声およびSMSのやり取り用)。
インタラクション オブジェクト インタラクション データを表すデータ オブジェクト。 詳細については、のデータオブジェクト形式を参照してください。 凝縮された会話情報

出力プロパティ

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

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

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

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

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