拡張ポイントを使用して画面ポップをカスタマイズします
拡張ポイントを使用して、Salesforce用Genesys Cloudの画面ポップの動作をカスタマイズできます。 拡張ポイントはSalesforce Apexプログラミング言語を使用します。
前提条件
- [拡張ポイント設定] セクションを含む管理パッケージのバージョン。 詳細については、以下を参照してください。 拡張ポイントを構成する.
Salesforceで、を実装するApexクラスを使用して単一のApexファイルを作成します。 purecloud.CTIExtension.ScreenPop インターフェース。 Apexクラスをグローバルとして定義し、統合でコードを呼び出します。
purecloud.CTIExtension.ScreenPopインターフェース
メソッドの署名が含まれ、Salesforce用Genesys Cloudのスクリーンポップ機能をカスタマイズするために定義できます。
利用先
でメソッドシグネチャを使用する purecloud.CTIExtension.ScreenPop スクリーンポップ機能がどのように機能するかを定義するためのインターフェイス。
onScreenPopメソッド
画面ポップ ロジックを駆動するために使用されます。
このメソッドは、インバウンドアラートのやり取りのために呼び出されます。 オンスクリーンポップ は、アラートのやり取りごとにエージェントごとに1回だけ呼び出されます。 このメソッドは、デフォルトの画面ポップ動作を変更するデータを返すことができます。
Apexコードが例外をトリガーする場合、統合はデフォルトの画面ポップ動作を実行します。 値が返されない場合、統合は画面のポップ動作を抑制します。
入力プロパティ
以下のプロパティは、メソッドに渡されるJSONデータに含まれます。
名前 | データ・タイプ | 説明 | メモ |
---|---|---|---|
検索値 | 文字列 | 検索値。 | 値の例: 電子メールアドレス(チャットおよび電子メールのやり取り用)、電話番号(音声およびSMSのやり取り用)。 |
インタラクション | オブジェクト | インタラクション データを表すデータ オブジェクト。 | 詳細については、のデータオブジェクト形式を参照してください。 凝縮された会話情報。 |
出力プロパティ
名前 | データ・タイプ | 説明 | メモ |
---|---|---|---|
URL | 文字列 | Salesforce内のページのURL。 | 標準のSalesforceページ、Visualforceページ、またはArchitectフローからデータが事前入力された新しいレコードページを指定できます。 |
検索値 | 文字列 | Salesforceレコードで検索される値。 |
ケース番号、電話番号、連絡先名、その他の項目を指定できます。 詳細については、の「ソフトフォンレイアウト設定」セクションを参照してください。 Salesforce用Genesys Cloudの画面ポップ. |
デフォルト画面ポップ | ブール型 | デフォルトの画面ポップ(真)を実行するか、デフォルトの画面ポップ(偽)を実行しません。 |
詳細については、の「デフォルトの画面ポップ動作」セクションを参照してください。 Salesforce用Genesys Cloudの画面ポップ. |
詳細については、以下を参照してください。 Salesforce用Genesys Cloudの画面ポップ.
例
- Apexクラスをグローバルとして定義し、統合でコードを呼び出します。
- 複数の拡張ポイント(またはインタフェース)を実装する場合は、それらをすべて同じApexファイルに配置します。
グローバルクラスMyCTIExtensionsはpurecloud.CTIExtension.ScreenPop {を実装します
public String onScreenPop(String data){
// 例: 電話番号で最近のケースレコードを検索します。見つからない場合は、デフォルトの画面ポップ動作にフォールバックします。
地図<String, Object=""> screenPopData =(マップ<String, Object="">)JSON.deserializeUntyped(data);
地図<String, Object=""> dataToReturn =新しいマップ<String, Object="">();
String phoneNumber =(String)screenPopData.get( 'searchValue');
if(String.isNotBlank(phoneNumber)){
リスト ケース= [SELECT Id FROM Case WHERE ContactPhone =: phoneNumber ORDER BY LastModifiedDate DESC LIMIT 1];
if(cases.size()> 0){
dataToReturn.put( 'url'、cases.get(0).Id);
JSON.serialize(dataToReturn);を返します。
}
}
dataToReturn.put( 'defaultScreenPop'、true);
JSON.serialize(dataToReturn);を返します。
}
}
詳細については、以下を参照してください。 Salesforce用Genesys Cloudの拡張ポイント.
統合の詳細については、以下を参照してください。Salesforce向けGenesys Cloudについて.