拡張ポイントを使用して、インタラクションログの保存をカスタマイズします。

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

拡張機能ポイントを使用して、Genesys Cloud for Salesforceでインタラクションログの保存をカスタマイズできます。 拡張ポイントはSalesforce Apexプログラミング言語を使用します。

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

前提条件

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

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

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

メソッドの署名が含まれ、Salesforce用Genesys Cloudでログの保存をカスタマイズするために定義できます。

利用先

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

onSaveLogメソッド

インタラクションログ情報の保存に使用します。

このメソッドは、特定のインタラクションまたはユーザーイベントで、統合がインタラクションログの変更を検出するたびに呼び出されます。 メソッドは、タスクレコードの未保存のインタラクションログデータを受信します。

メソッドがデータを正常に保存したら、レコードのIDを返します。 メソッドがデータを保存しない場合は、空の文字列を返します。

 メモ:   onSaveLog メソッドは null 値を返すことをサポートしていません。

入力プロパティ

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

名前 データ・タイプ 説明 メモ  
イベント名 文字列  トリガーされた状態を表します 保存ログ 値: interactionChanged、interactionDisconnected、interactionChangedAfterDisconnect、interactionACWCompleted、interactionRemoved、openCallLog、appDisconnected。
インタラクション オブジェクト インタラクションの状態を表します。 詳細については、のデータオブジェクト形式を参照してください。 凝縮された会話情報
コールログ オブジェクト Salesforceで定義されたアクティビティフィールドの変更された値との相互作用ログデータ。 変更された統合ログの一部のみを提供します。

出力パラメータ

名前 データ・タイプ 説明 メモ  
{戻り値} 文字列  保存または更新されたインタラクション ログの ID。  

詳細については、以下を参照してください。 インタラクションログ および インタラクションログの表示と編集.

重要。  
  • Apexクラスをグローバルとして定義し、統合でコードを呼び出します。
  • 複数の拡張ポイント(またはインタフェース)を実装する場合は、それらをすべて同じApexファイルに配置します。
global class MyCTIExtensions implements purecloud.CTIExtension.SaveLog {
    public String onSaveLog(String data) {
        // Example: Save interaction log as Task record after interaction is disconnected.
        Map<String, Object> saveLogData = (Map<String, Object>) JSON.deserializeUntyped(data);
        Map<String, Object> interaction = ( Map<String, Object>) saveLogData.get('interaction');
        Map<String, Object> callLog = ( Map<String, Object>) saveLogData.get('callLog');
        Boolean isDisconnected = (Boolean) interaction.get('isDisconnected');
        String callLogId = '';
        if (isDisconnected) {
            Task t = (Task) JSON.deserialize(JSON.serialize(callLog), Task.class);
            upsert t;
            callLogId = t.Id;
        }
        return callLogId; 
    }
}

詳細については、以下を参照してください。 Salesforce用Genesys Cloudの拡張ポイント.

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