拡張ポイントを使用して画面ポップをカスタマイズします
拡張ポイントを使用して、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ファイルに配置します。
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について.