カスタム CRM

カスタム CRM ソリューションを使用すると、CCAI Platform との標準統合ではない CRM を使用している場合でも、Contact Center AI Platform(CCAI Platform)ポータルを利用できます。カスタム CRM 構成は、自社製 CRM や標準以外の CRM を使用する場合に機能します。

エージェントは通話とチャットを処理し、スーパーバイザーは CCAI プラットフォーム ポータルを使用してレポートをモニタリングして取得できます。通話またはチャット セッションに関するすべての詳細は、セッション メタデータ ファイルに保存されます。このファイルには、セッション情報、転送、対応時間、参加者、診断情報など、20 以上のデータポイントが含まれます。セッション メタデータ ファイルは、解析して、セッション後の分析とトラッキングに使用できます。

セッション メタデータと消費者がアップロードしたメディア ファイルは外部ストレージ サービスに push され、エージェントはセッション中に消費者がアップロードしたメディア ファイルをエージェント アダプタで直接確認できます。

カスタム CRM ソリューションは、次のコンポーネントを組み合わせて実装されます。一部のコンポーネントは、構成に適用される場合と適用されない場合があります。

  • 通話セッションとチャット セッションごとにセッション メタデータ ファイルを生成する

  • メタデータとメディア ファイルを外部ストレージ サービスに push する

  • 汎用 API 統合

  • カスタム ルックアップ URL

  • メールによる CRM レコードの更新

  • エージェント アダプターからのアカウントまたはケースの検索

前提条件

カスタム CRM 機能を使用するには、まず外部ストレージを設定する必要があります。詳しくは、カスタム CRM ソリューション用の外部ストレージを参照してください。

セッション メタデータ

セッション メタデータ ファイルには、セッションに関する詳細情報が含まれています。このメールは、セッションが完了してから 15 分後に送信されます。詳細については、セッション メタデータ ファイルをご覧ください。

カスタム CRM のインタラクションと統合の方法

汎用 API カスタム URL
アカウントの検索 ○ ○
ケースの検索 ○
ケースの更新 ○ いいえ

汎用 API

汎用 API 統合メソッドを使用すると、カスタム CRM の API を使用して CCAI Platform との双方向接続を確立できます。このシームレスな方法は、すぐに利用できる CRM 統合エクスペリエンスと同じように感じられます。エージェントは、通話セッションまたはチャット セッションの CRM レコードを作成するためにアクションを実行する必要はありません。また、独自の API 構成に応じて、これにより、シームレスなレコード検索とレコード更新が可能になります。

カスタム URL

カスタムリンク オプションを使用すると、エージェントはセッションごとに作成されたカスタムリンクを使用して CRM を操作できます。標準の CRM 統合や汎用 API エクスペリエンスとは異なり、エージェントは CRM レコードを作成するためのアクションを実行する必要があります。場合によっては、セッションのカスタムリンクを使用してタブを起動するだけで済むこともあれば、エージェントが手動でレコードを作成する必要があることもあります。

カスタム ルックアップ URL の詳細と構成

URL の基本的な機能は CRM 検索を実行することですが、CRM によっては、カスタム URL のコンテンツに基づいてより複雑なプロセスをトリガーできます。カスタム CRM の URL は、セッション情報を含む変数で構成でき、セッション中にエージェント アダプタからアクセスできます。URL にアクセスすると、カスタム CRM がトリガーされ、検索が実行されます。この CRM ルックアップにより、エージェントはアクティブな通話またはチャット セッションで「チケット ポップ」を利用できます。カスタムリンクのプロセスは、カスタム CRM がこのリンクを処理し、必要に応じて変更または書き換える機能にのみ依存します。

外部に保存されているセッション メタデータ、通話録音、その他のファイルは、記載されているメール更新方法も利用しない限り、CRM レコードに関連付けられません。

この構成では、エージェントは CCAI Platform ポータルにログインし、別のタブで CRM にログインします。通話とチャットは CCAI Platform タブで処理され、チケットの詳細は CRM タブでアクセスされます。

この構成を機能させるには、次の条件を満たす必要があります。

  • エージェントはブラウザで CRM にログインしている必要があります

  • エージェントはブラウザで CCAI プラットフォーム ポータルにログインしている必要があります

  • カスタム検索 URL は事前に構成されている必要があります

  • 関連する CRM レコードを表示するには、CRM でカスタム URL を処理する必要があります。

カスタム ルックアップ URL の動作

  • CCAI Platform は、空でないパラメータのみを URL に含めます。

  • CCAI Platform は、セッションが終了すると、ANI/UID/メールアドレスを含む生成された URL を CCAI Platform データベースに保存しません。

カスタム検索 URL の構成

固有識別子、CRM の機能、動作が異なるため、IVR/PSTN/SMS セッション用とウェブおよびモバイル SDK セッション用の 2 つの異なる URL を作成する必要があります。IVR/PSTN/SMS セッションでは固有識別子として ANI が使用されますが、ウェブ SDK とモバイル SDK では CUID とメールアドレスが使用される可能性があります。

次の変数を使用して、ルックアップ URL を構成できます。

変数 値
{CUSTOMER_PHONE_NUMBER} エンドユーザーの電話番号
{ANI} エンドユーザーの電話番号。下位互換性のために保持されています。
{CUID} カスタム ユーザー ID
{EMAIL} エンドユーザーのメールアドレス
{MENU_PATH} キューのメニューパス全体。
例: 「Orders/Order confirmation/Order info」
{MENU_ID} メニュー ID
{CHANNEL}

セッション チャネル。値は次のいずれかです。

  • チャット
  • voice_call
{TYPE}

セッションのタイプ。

通話の可能な値:

  • Incoming_Call_(app)
  • Scheduled_Call_(app)
  • Incoming_Call_(web)
  • Scheduled_Call_(web)
  • Outbound_Call
  • Outbound_Call_(api)
  • Incoming_Call_(api)
  • IVR_Call
  • IVR_Call_(app)
  • ボイスメール

チャットに指定できる値は次のとおりです。

  • モバイル
  • ウェブ
  • SMS
{SUPPORT_PHONE_NUMBER} エンドユーザーが電話をかけるサポート センターの電話番号。
{OUTBOUND_NUMBER} エージェントが発信(# など適宜文脈に応じて)に使用する電話番号。
{SESSION_ID}

セッション ID。値は次のいずれかです。

  • コール ID
  • チャット ID
  • メール ID
{CUSTOM_AGENT_ID} user オブジェクトの省略可能なエージェント ID フィールド。エージェント ID は、セッションが確立され、エージェントが割り当てられるまで取得できません。このため、この変数が定義されるまでの時間を確保できるように、通話またはチャットのレコード作成を遅らせるようにインスタンスを構成します。通話またはチャットの記録の作成を遅らせるには、[設定] > [オペレーション管理] > [CRM 記録作成の詳細] で設定します。詳細については、CRM レコード作成の詳細をご覧ください。

CCAI Platform ポータルの構成

  1. 管理者ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。

  2. [設定] > [開発者向け設定] に移動します。

  3. [CRM] セクションで、[カスタム CRM] を選択します。

  4. [CRM 検索] で、カスタム URL を入力します。

  5. CRM リクエストで使用する電話番号の形式を選択します。

  6. [変更を保存] をクリックします。

  7. まだ構成していない場合は、外部ストレージ サービスを構成します。詳しくは、外部ストレージをご覧ください。

メールによる CRM レコードの更新

カスタム検索 URL などの構成では、セッションが完了したら、セッションのメタデータを CRM で更新する必要があります。この機能を使用すると、CCAI Platform はメールを使用してセッション データを自動的に送信できます。セッションが終了してから約 15 分後に、構成された場所にメールが送信され、メールの内容を使用して CRM のレコードが更新されます。この機能は、グローバルに構成することも、キューごとに構成することもできます。メールが受信されると、CRM はセッションの新しい CRM レコードを更新または作成するように構成されている場合があります。

詳細情報を送信

  • no-reply@ccaiplatform.com から送信

  • 以下が含まれます:

    • Subject line

    • JSON 構文のセッション メタデータを含む本文

    • チャットの文字起こし(該当する場合)を含む TXT 形式の添付ファイル

  • CCAI プラットフォームは、セッション終了後 15 分間待機してからメールを送信します。

  • メールは、正常に終了したセッションに対してのみ送信されます。失敗したセッションや放棄されたセッションでは送信されません。

グローバル構成

  1. 管理者ロールが割り当てられているアカウントを使用して CCAI Platform ポータルにログインします。

  2. [設定] > [開発者向け設定] に移動します。

  3. [CRM] セクションで、[カスタム CRM] が選択されていることを確認します。

  4. [セッションの結果をメールで送信する] を有効にします。

  5. メールの送信先となるメールアドレスを入力します。

  6. [変更を保存] をクリックします。

キューごとの構成

  1. 管理者ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。

  2. [設定] > [キュー] に移動し、サブキューを選択します。

  3. [セッションの結果をメールで送信する] を有効にします。

  4. メールの送信先となるメールアドレスを入力します。

    メール設定の表示

  5. [Save Custom CRM setting] をクリックします。

設定の継承とオーバーライド

設定 動作
Global = 無効
Queue = 無効
すべてのキューに送信しないでください。
グローバル = 有効でない
キュー = 有効
キューの設定(オン/オフの状態)は、グローバル設定をオーバーライドします。
メールは、指定されたキューから、キュー設定で定義されたメールアドレスに送信されます。
グローバル = 有効
キュー = 有効でない
キューの設定(メールアドレス、オン/オフの状態)は、グローバル設定を継承します。
メールは、特定のキューからグローバル設定で定義されたメールアドレスに送信されます。
グローバル = 有効
キュー = 有効
キュー設定(メールアドレス)はグローバル設定よりも優先されます。
メールは、指定されたキューからキュー設定で定義されたメールアドレスに送信されます。
メールアドレスが空の場合、メールは送信されません。

エージェントのエクスペリエンス

CRM レコードの検索

  1. エージェント ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。

  2. 通話またはチャットのアダプターを開きます。

  3. [新しいブラウザ ウィンドウで開く] ボタンを使用して、ルックアップをトリガーします。

  4. [リンクをコピー] ボタンを使用して、ルックアップ URL をクリップボードにコピーします。

エージェントの表示

カスタム CRM ソリューションの外部ストレージ

カスタム ソリューション用の外部ストレージを使用すると、外部ストレージ サービスを使用して、CCAI Platform セッション メタデータ、通話録音、チャットの文字起こし、消費者がアップロードしたメディア ファイルを保存、取得できます。ファイルは CRM の外部に保存されます。

外部ストレージを構成するには、以下が必要です。

  • 構成とテスト用に管理者ロールとエージェント ロールが割り当てられた有効な CCAI Platform アカウント

  • 外部ストレージ サービス

フォルダ構造

次のフォルダ構造が、外部ストレージの フォルダパスに整理されます。

  • ujet-chat-transcripts

  • ujet-media

  • ujet-metadata

  • ujet-voice-recordings

  • ujet-voicemails

ファイル形式と命名規則

次のファイル形式を外部ストレージ サービスにプッシュできます。ファイルは転送中に HTTPS を使用して暗号化されます。

ファイル 名前
通話の録音 - call-{id}.mp3
- call-{id}.wav
メディア ファイル - call-{id}-photo-{photo-id}.jpg
- call-{id}-video-{video-id}.mp4
- chat-{id}-photo-{photo-id}.jpg
- chat-{id}-video-{video-id}.mp4
チャットの文字起こし - chat-{id}.txt
セッション メタデータ - call-{id}.json
- chat-{id}.json

エージェントとスーパーバイザーのエクスペリエンス

通話またはチャット セッション中に、スマート アクションを使用してユーザーがアップロードした写真や動画がエージェント アダプタに表示されます。

カスタム URL CRM インタラクションとセッション メタデータ ファイルのメール更新方法を組み合わせて使用している場合、エージェントとスーパーバイザーは外部サーバーを使用してセッション情報にアクセスできます。

外部ストレージ サービスの構成

外部ストレージを構成する手順は次のとおりです。

  1. 管理者ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。

  2. [設定] > [開発者向け設定] に移動します。

  3. [Developer Settings] ページで、[External Storage] セクションに移動します。

  4. 切り替えスイッチを [オン] に切り替えて、CRM サーバー外での情報の保存を有効にし、保存するファイルの種類を選択します。

  5. [サーバーの設定] セクションで、ストレージ タイプを選択し、設定手順を完了します。SFTP サーバー、Google Cloud バケット。

SFTP サーバー

  1. SFTP のホスト(URL または IP アドレス)を入力します。

  2. [ポート] 番号を入力します。

  3. SFTP のログイン ユーザー ID を入力します。

  4. SFTP サーバーで認証にパスワードが必要な場合は、[パスワード] フィールドに入力します。

  5. SFTP サーバーで認証に秘密鍵が必要な場合は、[SSH 秘密鍵] チェックボックスをオンにします。

  6. SSH の秘密鍵を入力(コピーして貼り付け)します。

  7. 秘密鍵のパスフレーズを入力します。セッション情報を SFTP サーバーの特定のフォルダに保存する場合は、[フォルダパス] チェックボックスをオンにして、SFTP フォルダパスを入力します。

  8. [変更を保存] をクリックします。

Cloud Storage

  1. 宛先の Google Cloud バケット名を入力します。

  2. Google Cloud クライアント ID を入力します。

  3. Google Cloud クライアント シークレットを入力します。

  4. セッション情報を Google Cloud バケット内の特定のフォルダに保存する必要がある場合は、[フォルダパス] チェックボックスをオンにして、Google Cloud フォルダパスを入力します。

  5. [Link & Save] をクリックします。

外部ストレージ構成をテストする

既存の標準インテグレーションを使用する CRM の場合:

  1. CRM にログインします。

  2. エージェント ロールが割り当てられた CCAI Platform の認証情報を使用して、CRM 内の CCAI Platform にログインします。

  3. 電話をかけるか、チャットを開始します。セッションに関連付けられている CRM レコードが表示されます。

  4. セッションが終了すると、文字起こしファイルが数秒以内にアップロードされます。

  5. 外部サーバーのストレージ フォルダに直接移動し、ファイルが利用可能であることを確認します。

CRM へのセッション ファイルの送信

外部ストレージが有効になっている場合、CRM ストレージと外部ストレージの URL のデベロッパー設定により、セッション ファイルを送信し、エージェント アダプタでファイルを表示するために使用するソースを決定できます。

これらの設定を表示するには、[設定] > [デベロッパー設定] > [外部ストレージ] で外部ストレージを有効にする必要があります。[CRM サーバー外での情報ストレージを有効にする] を [オン] に切り替えます。

CRM ストレージ

  1. [設定] > [開発者向け設定] > [外部ストレージ] > [CRM ストレージ] に移動します。

  2. [セッション ファイルも CRM に送信する] チェックボックスをオンにして、通話録音やチャットの文字起こしなどのセッション ファイルを CRM と構成済みの外部ストレージに送信します。

  3. [変更を保存] をクリックします。

チェックボックスがオンになっている場合、録音は CRM と外部ストレージの両方に保存されます。

外部ストレージの URL

外部ストレージ URL は次の 2 つの場所で使用されます。

  • エージェント アダプタ。

  • レポート: レポートと、[設定]、[通話]、[完了] などのメニューにメディア URL を表示します。

  1. [設定] > [デベロッパー設定] > [外部ストレージ] > [外部ストレージ URL] に移動します。

  2. ソースの CRM URL または外部ストレージ URL を選択して、エージェント アダプタにファイルを表示します。

  3. [変更を保存] をクリックします。

CRM ストレージ

  • CRM ストレージのチェックボックスがオフの場合、録音は外部ストレージにのみ保存され、CRM へのリンクが使用されます。

  • チェックボックスがオンになっている場合、録音は CRM と外部ストレージの両方に保存されます。

外部ストレージの URL

この URL は次の 2 か所で使用されます。

  • 1 つは CCAI プラットフォーム アダプタのメディアを表示しています。外部ストレージまたは CRM。

  • もう 1 つはレポートにあります。メディア URL は、レポートのほか、[設定]、[通話]、[完了] などのメニューに表示されます。

CCAI プラットフォーム ポータルにカスタム CRM を表示する

カスタム CRM 統合を独自のカスタムビルド CRM で使用する場合は、CCAI Platform ポータル内の専用ページに CRM を読み込むことができます。有効にすると、CCAI Platform ポータルの [CRM] タブが読み込まれ、カスタムビルドの CRM ページが表示されます。この設定は、[Developer Settings] > [CRM] で行えます。

この機能により、エージェントは CCAI Platform の通話アダプタとチャット アダプタを使用してリアルタイム サポート セッションを処理しながら、カスタム CRM で作業できます。これには、自動的にポップアップ表示されるアカウントとレコードの詳細、モバイルアプリまたはユーザーから渡されたセッション固有のファイルとデータの確認が含まれます。これらはすべて CCAI Platform ポータルを使用して行われます。

カスタム CRM ページを設定する

カスタム CRM ページを設定する手順は次のとおりです。

  1. CCAI Platform ポータルで、[設定> 開発者向け設定] をクリックします。[設定] メニューが表示されない場合は、 [メニュー] をクリックします。

  2. [CRM] ペインで、[カスタム CRM] をクリックします。

  3. [CCAI プラットフォーム ポータルに CRM を表示する] 切り替えボタンをクリックしてオンにします。

  4. [表示 URL] にカスタム CRM ページの URL を入力し、[保存] をクリックします。

カスタム URL の画面ポップを開く

システムで連絡先が見つからない場合にカスタム URL 画面ポップを表示するには、[Open Custom URL] を使用します。一時的なアカウント ID を使用して CRM レコードを作成し、キューレベルの構成に基づいてパラメータを含むカスタムリンクをトリガーします。

キューごとに画面ポップを有効にする

  1. [設定] > [キュー] > [IVR] に移動し、編集するキューをクリックします。

  2. パネルの [カスタム URL を開く] に移動します。

  3. URL を入力して、画面ポップを表示します。

URL に変数パラメータ {ACCOUNT_ID} と {PHONE_NUMBER} を含めます。

例を示します。

  1. [保存] をクリックします。

カスタム CRM の汎用 API 統合

一般的な API 統合方法では、CRM の API を使用して CCAI Platform との双方向接続を確立できます。このシームレスな方法は、すぐに利用できる CRM 統合エクスペリエンスと同じように感じられます。

エージェントは、通話セッションまたはチャット セッションの CRM レコードを作成するために、何もする必要はありません。独自の API 構成に応じて、シームレスなレコード検索とレコード更新が可能になります。

用語

用語

説明

アカウント

CRM の Account/Contact/Customer/Lead エンティティを参照するために使用されます。CRM では、このエンティティに別の名前が付けられている場合があります。

アカウントにはレコードが含まれます。

記録

CRM のケース/チケット/会話/インシデント エンティティを指すために使用されます。CRM では、このエンティティに別の名前が付けられている場合があります。

レコードはアカウントに属します。

コメント

CRM のコメント/メモ エンティティを参照するために使用されます。CRM では、このエンティティに別の名前が付けられている場合があります。

コメントはレコードに属します。

API 設定

このセクションでは、カスタム CRM API 設定に固有の設定について説明します。

認証方法

CCAI Platform は、CRM の 3 つの認証方法をサポートしています。

  • 基本認証: ユーザー名とパスワードを含む認証情報を構成します。

  • カスタム ヘッダー: カスタム ヘッダーの Key-Value ペア([フィールド キー] と [フィールド値])を構成します。必要な数のペアを入力します。

  • OAuth: CCAI Platform は、業界標準の承認プロトコルである OAuth 2.0 をサポートしています。[リダイレクト URL を認可 URL とトークン URL の一部として含める] オプションを有効にする必要がある場合は、OAuth 情報を指定します。

    次の値を構成します。

    • 認証 URL(必須)

    • トークン URL(必須)

    • クライアント ID(必須)

    • クライアント シークレット(必須)

    • 範囲

    • 状態

    • アクセスタイプ

電話番号の形式

CRM リクエストで使用する電話番号の形式を選択します。

  • 自動: 作成: +1 222 333 4444、検索: *222*333*4444

  • E.164: +12223334444

  • 米国のローカル: 2223334444

  • 米国のローカル標準: (111) 222-3333

  • 米国以外: +1 222 333 4444

API リクエストのタイムアウト

プルダウンを使用して、API リクエストのタイムアウトを 1 ~ 10 秒に構成します。このタイムアウトは、構成するすべてのエンドポイントに適用されます。

CRM 検索 URL

エージェントが現在のアカウントとレコードを指すために使用するルックアップ URL を指定します。

ブラウザでアカウント ページまたはレコード ページを開いている場合は、CRM に表示されている検索 URL を入力します。

ウェブ SDK とモバイル SDK で CRM 検索 URL を使用することもできます。エージェント アダプタに表示する CRM アカウントとレコードの情報を検索するように SDK を構成できます。CRM 検索 URL の完全なリストについては、リクエスト URL パラメータをご覧ください。

アカウント検索 URL

{ACCOUNT_ID} 変数を使用して、実際のアカウント ID を挿入します。

例:

https://www.example.com/contact/{ACCOUNT_ID}

レコード検索 URL

{RECORD_ID} 変数を使用して、実際のレコード ID を挿入します。

例:

https://www.example.com/record/{RECORD_ID}

API エンドポイント

これは、Generic API の最も重要な構成です。

  1. エージェントがアカウントを検索できるようにするには、[アカウントを検索] エンドポイントと [アカウントを作成] エンドポイントを構成する必要があります。

  2. さらに、[レコードを検索] エンドポイントと [レコードを作成] エンドポイントを設定して、エージェントがレコードの検索や作成を行えるようにすることもできます。これには、前のステップのアカウント設定が必要です。

  3. 最後に、[Update a record]、[Upload a file]、[Comment] のエンドポイントを入力すると、レコードの更新が有効になります。これには、前の手順のレコード設定が必要です。

エンドポイントの構成

以下の設定を構成します。

  1. リクエスト URL: API エンドポイント URL。

  2. POST、GET、PUT、PATCH からリクエスト メソッドを選択します。

  3. リクエストのパラメータを指定します。CCAI Platform で定義された変数を使用して、必要な情報を渡すことができます(次の表をご覧ください)。また、パラメータの値として書式なしテキストや数値を入力することもできます。パラメータは必要な数だけ追加できます。

  4. エンドポイントが POST/PUT/PATCH の場合、CCAI Platform はリクエストの構築方法をより細かく制御できます。[プロパティ] または [コンテナ] から [リクエスト データの形式] を選択します。リクエスト JSON の形式を指定します。

    • Property のインスタンスです。これは、CCAI Platform がパラメータからリクエスト本文をビルドするときに、リクエスト オブジェクトが基本的なプロパティ マップであることを示します。

    • コンテナ。これは、送信されるリクエスト オブジェクト データが構造内にネストされる必要があることを示します。[マップ] または [配列] から [コンテナ タイプ] を選択します。[コンテナ名] を入力します。パラメータからリクエスト本文を作成するときに、親オブジェクト名として使用されます。

      • 例: マップ: { container_name : { ...parameters } }

      • 例: 配列: {container_name : [ { ...parameters } ] }

  5. [レスポンス データのロケーション] を入力します。これは、JSON レスポンス内のターゲット レスポンス オブジェクトを見つけるために使用されます。

リクエスト URL パラメータ

パラメータ 変数 コメント
エージェント ID {AGENT_ID} 内部エージェント ID。
エージェントのカスタム ID {AGENT_CUSTOM_ID} ユーザーのプロフィールからのオプション フィールド。
エージェントのメールアドレス {AGENT_EMAIL} 回答したエージェントのメールアドレス(該当する場合)。
エンドユーザーの名前 {NAME}
エンドユーザーの名 {FIRST_NAME} 出典: Name
エンドユーザーの姓 {LAST_NAME} Name から取得されます。指定されていない場合はデフォルトで -- になります。
外部 ID {UJET_ID} CCAI プラットフォームのエンドユーザー ID
メール {EMAIL}
通話タイプ/セッション タイプ {SESSION_TYPE}
エンドユーザーの電話番号 {PHONE_NUMBER} 設定の選択肢を使用してフォーマット
コール ID {Call_ID} CCAI プラットフォームの通話 ID。
チャット ID {Chat_ID} CCAI プラットフォームのチャット ID。
言語 {LANG}
カスタム UID {CUSTOM_USER_ID} モバイルの場合: メール本文の左側。たとえば、test.user3@test.co の test.user3
アカウント ID {ACCOUNT_ID} Find/Create contact エンドポイントの呼び出しによって検出されます。
レコード ID {RECORD_ID} Find/Create record エンドポイントを呼び出して取得します。
セッション ID {SESSION_ID} CCAI プラットフォーム セッション ID
メニューパス {MENU_PATH}
発信電話番号 {OUTBOUND_PHONE_NUMBER} 設定の選択を使用してフォーマット
キュー名 {QUEUE_NAME}
キュー ID {QUEUE_ID} 内部キュー ID。
SDK の名前 {SDK_NAME} Web SDK または Mobile SDK で示されているエンドユーザー名。
SDK のメールアドレス {SDK_EMAIL} Web SDK または Mobile SDK で指定されたエンドユーザーのメールアドレス。
SDK Phone {SDK_PHONE} Web SDK または Mobile SDK で指定されたエンドユーザーの電話番号。
SDK 識別子 {SDK_IDENTIFIER} ウェブまたはモバイル SDK のエンドユーザーまたはアカウントを識別します。このプロパティに個人情報(PII)を含めないでください。アカウントを作成する場合、この識別子はリクエストで必須です。
SmartAction セッション ID {SMART_ACTION_SESSION_ID}
SmartAction: verification (近日提供予定)
SmartAction: テキスト入力 (近日提供予定)
評価 {RATING} ユーザーが残した場合にのみ利用可能
フィードバック メッセージ {FEEDBACK} ユーザーが残した場合にのみ利用可能
通話時間 {CALL_DURATION} mm:ss 形式
保留時間 {HOLD_TIME} mm:ss 形式
待機時間 {WAIT_TIME} mm:ss 形式
通話後の作業時間 (近日提供予定)
デバイスの種類 {DEVICE_TYPE}
切断者 {DISCONNECTED_BY}
チャネル {CHANNEL}
レコードの件名 {TICKET_SUBJECT} レコードのタイトルとして使用
レコードの説明 {TICKET_DESCRIPTION}
レコードの説明の HTML {TICKET_DESCRIPTION_HTML} 説明と同じですが、HTML 形式になっています
コメントの本文 {COMMENT_BODY} コメントを追加する状況(評価の保存、通話/チャットの終了、通話/チャットの開始)でのみ使用できます。
ファイルデータ {FILE_DATA} アップロード ファイル エンドポイントでのみ使用できますが、マルチパート フォームの base64 またはデータが含まれています。

リクエスト URL パラメータ関数

動的 CCAI Platform 変数をサポートする関数が提供されています。これらの関数は、エンドポイント設定の [Request Parameter] セクションでのみ使用できます。

関数から作成される結果の値は文字列になります。関数から値が返されない場合、実行前にリクエストのパラメータ リストからパラメータが削除されます。

関数 関数の構文 説明
デフォルト値 =DEFAULT_VALUE(val1, val2) 値は、null または空でない限り val1 を使用し、デフォルトで val2 に戻ります。
連結 Or =CONCAT_OR(val1, val2, val3) 複数の値を or で連結したものです。例: 'val1 or val2 or val3'
連結 And =CONCAT_AND(val1, val2, val3) and を使用した複数の値の連結。例: 'val1 and val2 and val3'

例

以下に、リクエスト URL パラメータ関数の使用例をいくつか示します。

デフォルト

次の例では、Create a Record Endpoint で DEFAULT_VALUE を使用しています。エージェント設定のキーと値は、エージェントのメールアドレスが空の場合にフォールバックできるように、デフォルトの関数を使用します。エージェントのメールアドレスがレコードの作成時に空欄になる理由はいくつかあります。たとえば、割り当てられたエージェントが着信に応答する前にお客様が IVR 通話を終了した場合や、チャットの場合、エージェントが応答する前にレコードが作成されます。このようにして、必須パラメータは、後で更新されるまで安全な値にデフォルト設定されるか、通話が放棄された場合に設定される可能性があります。

フィールドを編集

連結

次の例では、Find an Account by Query エンドポイントで CONCAT_OR を使用しています。この例は Zoho CRM に固有のものですが、CONCAT_OR の使用方法を示しています。CONCAT_AND は同じルールに従いますが、or ではなく and で値を接続します。実行時にエンドポイントに存在する値と、リクエスト パラメータとして渡される結果の値については、次のケースをご覧ください。

キーが存在する 結果の値
ACCOUNT_ID (Id:equals:<uuid>)
ACCOUNT_ID、EMAIL (Id:equals:<uuid>) または (Email:equals:kim@example)
PHONE_NUMBER、EMAIL (Phone:equals:+12223334444) または (Email:equals:kim@example)

API アカウント

API アカウント エンドポイントは、CRM のアカウントとの統合をサポートしています。

400 エラーを返すエンドポイントへの呼び出しは再試行されます。他のエラーを返す呼び出しは再試行されません。再試行は 1 週間継続され、指数関数的に減少します。API フローの詳細については、カスタム CRM 汎用 API: フローをご覧ください。

クエリ エンドポイントでアカウントを検索する(旧称: アカウント エンドポイントを検索する)

このエンドポイントは、電話番号、メールアドレス、または内部 CRM ID でアカウントを検索するために使用されます。これは、アカウントの検索に使用されるデフォルトのエンドポイントです。

レスポンスの例:

{
  "id": 123,
  "name": "Kim",
  "phone": "11234567890",
  "email": "Kim@agents.co"
}

ID エンドポイントでアカウントを検索する

このエンドポイントは、ID でアカウントを検索するために使用されます。通常、この ID は URL の一部になります。URL の検証では、URL が ID で形成されていない場合、このエンドポイントは使用されません。これは REST 標準に準拠します。ルックアップが失敗して 404 が返された場合は、クエリによる検索が次に実行されます。

レスポンスの例:

{
  "id": 123,
  "name": "Kim",
  "phone": "11234567890",
  "email": "Kim@agents.co"
}

アカウント エンドポイントを作成する

このエンドポイントは、アカウントが見つからなかった場合にアカウントを作成するために使用されます。ほとんどの CRM では、レコードをアカウントに関連付ける必要があります。統合されたフローを作成するため、すべての CRM にこの要件を適用します。

API レコード

API レコード エンドポイントを使用すると、CRM のレコードまたはケースと統合できます。

クエリでレコードを検索する(旧称: レコード エンドポイントを検索する)

このエンドポイントは、条件でレコードを検索するために使用されます。通常、これはアカウントに関連付けられたレコードを見つけるために使用されます。CCAI Platform が既存のレコードを再利用するように構成されている場合は、見つかったレコードが使用されます。これは、レコードの検索に使用されるデフォルトのエンドポイントです。

レスポンスの例:

{
  "id": 456,
  "subject": "Record title",
  "status": "open", // enumerated status open/closed, or 1,2,3
  "contactId": 123, // contact attached to ticket
  "phone": "11234567890", // contact phone
}

レコード エンドポイントを作成する

このエンドポイントは、レコードの作成に使用されます。レコードを検索リクエストでレコードが見つからない場合、または既存のレコードを再利用しないように CCAI Platform が構成されている場合は、新しいレコードが作成されます。

リクエストの例:

{
  "id": 123,
  "subject": "Record title", 
  "description": "A longer description of the record, can be formatted in html",
  "phone": "11234567890", // can be saved in multiple formats
  "contactId": 123,
  "sourceType": "PHONE", // PHONE/CHAT
  "menu": "queue1",
  "direction": "outgoing",
  "rating": 5, // 1-5 scale
  "feedback": "the agent was great!" // description of rating
}

レコード エンドポイントを更新する

このエンドポイントは、レコードを更新するために使用されます。レコードのタイトルと説明を更新します。このエンドポイントは、必要に応じて、CCAI Platform イベント(CSAT 評価の保存、通話またはチャットの終了イベント、選択されたキュー、ユーザーの確認など)に従ってレコードを更新することもできます。

ファイル エンドポイントをアップロードする

このエンドポイントは、添付ファイルをアップロードするために使用されます。

アップロード エンドポイントの [タイプ] を選択します。

  • Base64 エンコード形式

  • マルチパート フォーム

添付するファイルを選択する

  • 通話の録音

  • チャットの文字起こし

  • ボイスメール

  • Google フォト

  • 動画

  • セッション メタデータ ファイル

[ID] と [Attachment URL] から [Attachment Type] を選択します。レスポンス JSON の形式を指定します。

  • ID

  • 添付ファイル ID。添付ファイルの ID の JSON レスポンスでパラメータの場所を入力します。これは、{ATTACHMENT_ID} としてアタッチメント ビルダー URL で使用できます。

  • Attachment Builder の URL。ファイル添付ファイルをダウンロードするための URL を入力します。RECORD_ID と ATTACHMENT_ID は使用可能な変数です。

    例: https://www.example.com/Accounts/{RECORD_ID}/Attachments/{ATTACHMENT_ID}

  • 添付ファイルの URL

    ファイル ダウンロード URL の JSON レスポンスでパラメータの場所を入力します。

ファイルがアップロードされたときに CCAI Platform がレコードにコメントを残すようにするには、[CRM にコメントを追加する] レコード チェックボックスをオンにします。これらのコメントには、Comment エンドポイントのテキスト形式の設定が適用されます。

次の例は、POST/PUT/PATCH を使用したマルチパート フォームの例です。

{
  "file": <file data>
  "id": 123, // optional, this can also just be part of the URL;
             // for example https://example-customer.com/upload/record/{RECORD_ID}
}

レスポンスの例:

例 A: ダウンロード URL が存在する

{
  "id": 123,
  "url": "https://some-hosted-url.com"
}

例 B

この場合、ダウンロード URL は存在しませんが、この ID を使用するダウンロード添付ファイル エンドポイントがあります。例: https://www.customer-api.com/record/{RECORD_ID}/Attachments/{ATTACHMENT_ID}

{
  "id": 123
}
コメント エンドポイント

このエンドポイントは、レコードにコメントを追加するために使用されます。エンドポイントが構成されている場合、CCAI Platform プラットフォームは、次のイベントを含むレコードにコメントを追加します。

  • 通話またはチャットの開始

  • 通話またはチャットの終了

  • CSAT 評価とコメント

  • カスタムデータ パッケージ

  • コメントを転送する

  • 処分コードとメモ

  • アンケートの質問と回答

コメントの [Text Format] を選択します。[テキストを HTML に変換] チェックボックスがオンになっている場合、テキストは HTML 形式になります。それ以外の場合は、書式なしテキストになります。

リクエストの例(POST/PUT/PATCH):

{
  "comment": "Some text",
 // string can also be formatted on ujet side as html
  "id": 123,
 // optional, this can also just be part of the URL;
 // for example https://example-customer.com/comment/record/{RECORD_ID}
}

カスタム CRM 汎用 API: フロー

このセクションでは、カスタム CRM 汎用 API フローのフローチャートを示します。

基本的なフローチャート

基本的なフローチャート

アカウントの検索または作成のフロー

アカウントの検索または作成のフロー

レコードの検索または作成のフロー

レコードの検索または作成のフロー

通話またはチャット後のアクション フロー

通話またはチャット後のアクション フロー

レコードの更新フロー

レコード更新フロー

コメントフロー

コメントフロー

ファイルのアップロード フロー

ファイルをアップロードするフロー

エージェント アダプタ

カスタム CRM は、アダプター(UI ウィジェット)を CRM システムに統合するための汎用的なメソッドを提供します。CRM システムは、アダプタがシステム内で有効化され、トリガーされる方法を処理できる必要があります。

ユーザー インターフェース アダプターを統合するには、通常、CRM ソフトウェアまたはアプリケーションが必要です。この機能は、Salesforce、Kustomer、Zendesk などのいくつかの CRM ソフトウェアですでに提供されています。

iFrame

エージェント アダプタは、iFrame タグを使用して CRM やその他のツールにシームレスに統合できます。HTML iframe タグの詳細については、HTML iframe タグをご覧ください。

ただし、CRM はアダプタをユーザーに表示する方法を処理する必要があります。たとえば、アダプタの表示と非表示を切り替えるための UI ボタンを備えている場合があります。さらに、アダプタをドラッグ可能に設計して、エージェントが都合のよいように画面上で位置を変更できるようにすることもできます。次の例は、URL の形式を示しています。

通話アダプター: https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom

チャット アダプター: https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom

iFrame テンプレート

通話アダプター: html <iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom" allow="microphone; camera; geolocation" width="290" height="600"></iframe>

チャット アダプター: html <iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom" allow="microphone; camera; geolocation" width="450" height="590"></iframe>

アダプターを埋め込む際は、次の点に注意してください。

  • allow 属性は必須です。通話アダプターは WebRTC を使用するため、microphone が必要です。画面共有と位置情報認識機能には camera と geolocation が必要です。権限が iframe に委任されていない場合、ブラウザは権限をサイレントにブロックし、エージェントは通話を受けられません。

  • iframe ごとに 1 つのアダプタを埋め込みます。各アダプタは独自のリアルタイム接続を維持するため、通話アダプタとチャット アダプタは 2 つの別々の iframe であり、イベントを個別に投稿します。

  • アダプタは、親ウィンドウが別のオリジンにあるという事実によって、埋め込まれていることを検出します。CCAI Platform テナント ドメインではなく、独自のドメインからホストページを配信します。

URL パラメータ

URL パラメータを使用すると、インタラクションの種類(通話またはチャット)、インタラクションのソース(カスタム)、その他の関連する詳細など、追加情報をソフトウェアに提供できます。

テナント CRM 設定がリストにない場合、[From] パラメータは常に [Custom] に設定する必要があります。

型

  • 電話
  • チャット

差出人

  • カスタム(テナントの CRM 設定と一致する必要があります)。リストにない CRM の場合は、常に custom にする必要があります。CRM の設定がない場合は、このパラメータをスキップできます。

エージェント アダプタのイベント

エージェント アダプタは、CRM システムによってフックできるイベントを投稿し、CRM への更新を処理します。そのため、CRM は親ウィンドウからの投稿をリッスンし、投稿データを読み取る必要があります。データに基づいて、特定のセッション ID のチケットタブを開くなどのアクションをトリガーできます。

通話アダプターとチャット アダプターの両方に、CRM 機能を強化するために利用できる特定のイベントがあります。

通話アダプター

  • 新しい通話
  • コンシューマーが参加しました
  • 通話の編集を開始しました
  • 通話の編集が終了しました
  • 通話を終了

チャット アダプター

  • 新しいチャット
  • Active Chat(アクティブなチャット)
  • チャットのインバウンド メッセージ
  • チャットの送信メッセージ
  • フォームを送信しました
  • フォームの入力が完了しました
  • チャットを終了
  • チャットを閉じた

両方のアダプター

  • エージェントのログイン
  • 画面共有セッションが開始されました
  • 画面共有セッションのリモート コントロールが変更されました
  • 画面共有セッションのデバイス全体が変更されました
  • 画面共有セッションが終了しました
  • 転送
  • Party added
  • エージェントがセッションに接続する
  • エージェントのログアウト
  • Agent Assist を追加しました
  • 仮想タスク アシスタントが参加しました
  • Virtual Task Assistant が終了しました
  • 仮想タスク支援(機能)のセッション変数を受信しました
  • CRM レコードのポップアップ
  • サードパーティのページを開く

メッセージの形式

すべてのアダプタ iframe から直接の親ウィンドウ(window.parent)に、ブラウザの window.postMessage() API を使用してイベントが送信されます。親ウィンドウは、MessageEvent としてイベントを受け取ります。

このメッセージには次の特徴があります。

  • event.data はオブジェクトではなく JSON 文字列です。読み取る前に、必ず JSON.parse(event.data) を呼び出してください。ページ上の他のスクリプトも JSON 以外のペイロードで postMessage() を使用する可能性があるため、解析を try/catch でラップします。

  • 解析されたオブジェクトには、次の 2 つの最上位キーがあります。

    {
      "type": "<event type>",
      "data": { ... }
    }
    

    type は、イベントタイプに記載されている文字列のいずれかです。data には、イベントのデータで説明されているイベント フィールドが格納されます。イベント固有のフィールドはすべて data 内にあり、最上位にはありません。

  • 空のフィールドは省略されます。アダプタは、投稿する前に、値が null、undefined、または空の文字列である data のフィールドを削除します。すべてのフィールドが欠落している可能性があるものとして扱い、null 値を持つキーが存在することに依存しないでください。

  • アダプターはターゲット オリジン * で投稿するため、メッセージは iframe を埋め込んでいるページに配信されます。アダプターは、イベントを受信できるユーザーを制限しません。リスナーは、event.origin をテナントのホスト(https://tenant.loc.ccaiplatform.com など)と照合し、他のオリジンからのメッセージを無視する必要があります。これにより、同じページの別の iframe がアダプタ イベントをスプーフィングできなくなります。

  • type 値では大文字と小文字が区別され、大文字と小文字が統一されていません。ほとんどは Title_Case(New_Call、End_Chat)です。小文字(call_redaction_started、call_redaction_ended、agent_assist_added)または camelCase(openThirdPartyPage)のものもあります。このドキュメントの文字列と正確に比較してください。

  • イベントは、アダプタが埋め込まれている間(親ウィンドウが別のウィンドウである間)のみ投稿されます。アダプターが最上位ページとして開かれている場合、何も投稿されません。

次の例は、これらのルールを適用する最小限のリスナーを示しています。

// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'

window.addEventListener('message', (event) => {
  if (event.origin !== ADAPTER_ORIGIN) {
    return
  }

  let message
  try {
    message = JSON.parse(event.data)
  } catch (e) {
    // Not an agent adapter event; another script on the page posted it.
    return
  }

  const { type, data = {} } = message
  switch (type) {
    case 'New_Call':
      // data.call_id, data.agent_id, data.queue_id, ...
      break
    case 'New_Chat':
      // data.chat_id, data.agent_id, data.queue_id, ...
      break
    case 'CRM_Record_Pop':
      // data.recordUrl
      break
    default:
      // Ignore event types you don't handle; new types may be added over time.
      break
  }
}, false)

エージェント アダプタへのメッセージ

通信は主に一方向(アダプタからホスト)ですが、ホストページは postMessage() を使用して、通話アダプタに一連のコマンドを送信できます。これらのメッセージは、次のスキーマを持つプレーン オブジェクト(JSON 文字列ではない)です。

iframe.contentWindow.postMessage({
  channel: '<channel name>',
  eventType: '<event type>'
}, ADAPTER_ORIGIN)

api:redaction チャンネルでは、次のコマンドがサポートされています。これらは、ホストページから通話の秘匿化のために録音を一時停止および再開するために使用されます。

eventType 説明
start_call_redaction アクティブな通話の録音を一時停止して、編集を開始します。
stop_call_redaction アクティブな通話の録音を再開して、秘匿化を停止します。

次の点にご注意ください。

  • コマンドは、テナントで通話の編集が有効になっていて、通話がアクティブな場合にのみ実行されます。それ以外の場合、アダプタはメッセージが無視されたことをログに記録し、何も行いません。

  • アダプターがコマンドを処理すると、一致する call_redaction_started または call_redaction_ended イベントがホストに返送されるため、録音状態が実際に変更されたことを確認できます。

  • iframe が移動された場合にコマンドが別のページに配信されないように、* ではなく、テナントのオリジンを postMessage() の 2 番目の引数として常に渡します。

  • redact_call:start イベントタイプと redact_call:stop イベントタイプを使用する以前の crm:authority チャネルは、下位互換性のためにカスタム CRM アダプタで引き続き受け入れられますが、新しい統合では api:redaction を使用する必要があります。

詳細については、通話の秘匿化をご覧ください。

イベントのデータ

  • call_id: IVR(音声自動応答)を使用した音声着信の識別子。

  • chat_id: メッセージング インバウンド コール(ウェブまたはモバイルチャット)の識別子。

  • cobrowse_session_id: 画面共有セッションの識別子。画面共有セッションは、通話セッションまたはチャット セッションで開始できます。

  • session_type: セッションのタイプ(音声、チャット、メッセージなど)。

  • va_data_parameters: キューで構成され、仮想エージェントに送信されるすべての変数。これは、バーチャル エージェントが関与するイベントにのみ必要です。省略可。

  • session_variable: ペイロードで CCAI プラットフォームに送信される仮想エージェントのすべての変数。省略可。

  • custom_sip_headers: これにより、受信 SIP 通話のカスタム SIP ヘッダーが POST イベントログに表示されます。カスタム SIP ヘッダーを使用する場合にのみ必要です。省略可。

  • custom_data_secured: サーバーからの署名付きカスタム データが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの署名なしのカスタム データが含まれます。詳細については、Chat の署名なしカスタムデータをご覧ください。省略可。

エージェント ID

  • agent_id: エージェントの識別子。
  • from_agent_id: あるエージェントから別のエージェントに通話やチャットを転送する際に、転送元エージェントを示すために使用されます。
  • to_agent_id: 通話やチャットをあるエージェントから別のエージェントに転送する際に、転送先のエージェントを示すために使用されます。
  • agent_custom_id: ユーザー プロファイルに入力されている場合は、ユーザー プロファイルの代理店 ID。省略可。
  • from_agent_custom_id: 通話またはチャットをあるエージェントから別のエージェントに転送するときに、転送元のエージェントを示すために使用されます。
  • to_agent_custom_id: 通話やチャットをエージェント間で転送する際に、転送先のエージェントを示すために使用されます。
  • agent_email: エージェントのメールアドレス。
  • from_agent_email: あるエージェントから別のエージェントに通話やチャットを転送する際に、転送元エージェントを示すために使用されます。
  • to_agent_email: 通話やチャットをエージェント間で転送する際に、転送先のエージェントを示すために使用されます。

仮想エージェント ID

  • virtual_agent_id: 特定の仮想エージェントに割り当てられた ID 番号。

キュー ID

  • queue_id: これは CCAI プラットフォーム キューの識別子であり、通話がキューから発信された場合にのみ存在します。
  • from_queue_id: 通話またはチャットをあるキューから別のキューにルーティングするときに、元のキューを示すために使用されます。
  • to_queue_id: 通話やチャットをあるキューから別のキューに転送する際に、転送先のキューを示すために使用されます。
  • queue_path: これは CCAI Platform キューのパスです。通話がキューから発信された場合にのみ存在します。
  • from_queue_path: 通話またはチャットをあるキューから別のキューにルーティングするときに、元のキューを示すために使用されます。
  • to_queue_path: 通話またはチャットをあるキューから別のキューにルーティングするときに、転送先のキューを示すために使用されます。

Campaign ID

  • campaign_id: CCAI Platform のキャンペーン ID。通話タイプがキャンペーン通話の場合にのみ含まれます。
  • campaign_name: CCAI プラットフォーム キャンペーンの名前。これらは、呼び出しタイプがキャンペーン呼び出しの場合にのみ含まれます。

メッセージ

  • message: 新しいコンシューマー メッセージが受信されたことを示すイベントと、メッセージの内容。

セッション タイプ

  • session_type: CCAI プラットフォーム セッション タイプ。
  • cobrowse_session_remote_control: リクエストされたリモート コントロールの画面共有セッションのステータスを示します。値: off、requested、rejected、on。
  • cobrowse_session_full_device: デバイス全体の画面共有セッションのステータスを示します。値: off、requested、rejected、on。

参加者

  • type: 参加者のタイプ - end_user、agent(/api/v1/calls または /api/v1/chats レスポンスの participants.type から)。

  • cobrowse_session_requested_by: 画面共有セッションを開始したユーザーを示します。指定可能な値は agent、end_user です。

  • cobrowse_session_ended_by: 画面共有セッションを終了したユーザーを示します。指定可能な値は agent、end_user、api です。

  • end_user_id: /api/v1/calls または /api/v1/chats レスポンスの participants.end_user_id。このフィールドは、type: end_user の場合にのみ存在します。

インタラクション / セッションの種類

通話タイプ

  • 音声着信: 標準の PSTN 通話。
  • 音声インバウンド(モバイルを使用した IVR): モバイル SDK から発信されたフォールバック PSTN 通話。
  • 音声インバウンド(モバイル): モバイル SDK をインストールしたユーザーが発信した通話。
  • 音声コールバック(ウェブ): ウェブ SDK から開始されます。
  • 音声インバウンド(API): API を使用して開始されました。
  • 音声スケジュール設定(モバイル): インストール済みのモバイル SDK を使用してスケジュール設定。
  • 音声スケジュール(ウェブ): インストール済みのウェブ SDK を使用してスケジュール設定された通話。
  • 音声発信: エージェントが番号をダイヤルして開始します。
  • 音声アウトバウンド(API): API を使用して開始。
  • 音声キャンペーン: アウトバウンド ダイヤラー(キャンペーン)を使用して開始されます。

チャットの種類

  • メッセージ(WhatsApp): WhatsApp を使用して開始されました。
  • メッセージング インバウンド(SMS)
  • Messaging Outbound(SMS)
  • メッセージング アウトバウンド(API を使用した SMS)
  • メッセージ(ウェブ): インストール済みのウェブ SDK を使用して開始されます。
  • メッセージ(モバイル): インストール済みのモバイル SDK を使用して開始されます。

通話またはチャットの種類

  • 画面共有セッション: 通話中またはチャット中にエージェントまたはエンドユーザーが開始します。

イベントタイプ

エージェント アダプタによって投稿されるイベントタイプは次のとおりです。type 列は、メッセージの type フィールドに表示される、大文字と小文字を区別する正確な文字列です。

イベント type アダプタ
エージェントのログイン Agent_Login 両方
新しい通話 New_Call 電話
Consumer joined Consumer_Joined 電話
通話を終了する End_Call 電話
通話の秘匿化を開始しました call_redaction_started 電話
通話の編集が終了しました call_redaction_ended 電話
チャットを新規作成 New_Chat チャット
チャットを終了する End_Chat チャット
アクティブなチャット Active_Chat チャット
Chat の受信メッセージ Chat_Inbound_Message チャット
Chat の送信メッセージ Chat_Outbound_Message チャット
フォームが送信されました Form_Sent チャット
フォームの記入完了 Form_Completed チャット
拒否されたチャット Dismissed_Chat チャット
画面共有セッションが開始されました Cobrowse_Session_Started 両方
画面共有セッションのリモート コントロールが変更されました Cobrowse_Session_Remote_Control_Changed 両方
画面共有セッションのデバイス全体が変更されました Cobrowse_Session_Full_Device_Changed 両方
画面共有セッションが終了しました Cobrowse_Session_Ended 両方
転送 Transfer_Call、Transfer_Chat 両方
パーティーを追加しました Party_Added 両方
エージェントがセッションに接続する Agent_Joined_Call、Agent_Joined_Chat 両方
エージェントのログアウト Agent_Logout 両方
Agent Assist を追加しました agent_assist_added 両方
Virtual Task Assistant が参加しました Task_VA_Joined 両方
仮想タスク アシスタントが終了しました Task_VA_Left 両方
Virtual Task Assistant セッション変数を受信しました Task_VA_Variables_Received 両方
CRM レコードのポップアップ CRM_Record_Pop 両方
サードパーティのページを開く openThirdPartyPage 電話

リスナーは、認識できない type 値を無視する必要があります。新しいイベントタイプは時間の経過とともに追加できます。また、アダプタは、この契約に含まれていない他の CCAI Platform サーフェス(CCAI Platform エージェント デスクトップ内でホストされている場合など)を対象とするメッセージも投稿します。

エージェントのログイン

エージェント ログイン イベントは、エージェントがアダプターにログインしたときに発生します。

Agent_Login イベントの例を次に示します。

{
  "type": "Agent_Login",
    "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • agent_id: エージェントの識別子

  • 省略可: agent_custom_id: エージェントのプロフィールに入力されている場合、エージェントのカスタム識別子。

  • agent_email: エージェントのアカウントに関連付けられたメールアドレス。

新しい通話

エージェントが通話に応答すると、新しい通話イベントが発生します。このイベントには、通話の開始日時、通話を処理したエージェント、通話の発信元などの情報が含まれます。

New_Call イベントの例を次に示します。

{
  "type": "New_Call",
  "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "call_id": 103646,
    "session_type": "Voice Campaign (UJET)"
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • agent_id: エージェント ID

  • agent_custom_id: エージェントのカスタム ID(エージェントのプロファイルに入力されている場合)。省略可。

  • agent_email: エージェントのアカウントに関連付けられたメールアドレス

  • queue_id: 呼び出し元のキューの識別子。このフィールドは、通話がキューから発信された場合に含まれます。省略可。

  • queue_path: 呼び出し元のキューのパス。このフィールドは、通話がキューから発信された場合に表示されます。省略可。

  • campaign_id: キャンペーンの ID。このフィールドはキャンペーン呼び出しに含まれます。省略可。

  • campaign_name: キャンペーンの名前。このフィールドはキャンペーン呼び出しに含まれます。省略可。

  • call_id: コール ID

  • session_type: セッション タイプ

  • virtual_agent_id: 仮想エージェントの識別子。このフィールドは、仮想エージェントに関連するイベントに含まれます。省略可。

  • va_data_parameters: 仮想エージェントに送信するためにキューで構成された変数。このフィールドは、バーチャル エージェントに関連するイベントに含まれます。省略可。

  • session_variable: コンタクト センター AI プラットフォームに送信される仮想エージェントのすべての変数。省略可。

  • custom_sip_headers: 受信 SIP 通話のカスタム Session Initiation Protocol(SIP)ヘッダーが POST イベントログに表示されるようにします。このフィールドは、カスタム SIP ヘッダーが使用されている場合に含まれます。省略可。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページ からの未署名のカスタムデータが含まれます。詳細については、Chat の署名なしカスタムデータをご覧ください。省略可。

コンシューマーが参加しました

コンシューマー参加イベントは、コンシューマーのレコードが解決され、リスト キャンペーン マネージャー(LCM)キーが含まれている場合に、キャンペーン(アウトバウンド ダイヤラー)呼び出しで発生します。これにより、ホストページは、通話データの残りの部分が到着する前に、独自のシステムでダイヤルされた連絡先を検索できます。このイベントは、連絡先に LCM キーがあるキャンペーン通話に対してのみ投稿されます。

Consumer_Joined イベントの例を次に示します。

{
  "type": "Consumer_Joined",
  "data": {
    "lcmKey": "acqueon:12345",
    "custom_sip_headers": {
      "X-Account-Id": "A-100"
    },
    "va_data_parameters": {
      "param1": "one"
    },
    "session_variable": {
      "key_one": "value"
    }
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • lcmKey: ダイヤルされた連絡先のリスト キャンペーン マネージャー キー

  • custom_sip_headers: 通話のカスタム SIP ヘッダー。このフィールドは、カスタム SIP ヘッダーが使用されている場合に含められます。省略可。

  • va_data_parameters: 仮想エージェントに送信するキューで構成された変数。省略可。

  • session_variable: コンタクト センター AI プラットフォームに送信される仮想エージェントの変数。省略可。

通話の秘匿化を開始しました

通話の編集が開始され、録音されていない場合に、通話の編集が開始されたイベントが発生します。イベントデータは、通話を処理したエージェントの ID と通話 ID で構成されます。

このイベントの type は小文字の call_redaction_started です。

  • agent_id: 通話に対応したエージェントの ID
  • call_id: コールの ID

通話の編集開始イベントの例を次に示します。

{
  "type": "call_redaction_started",
  "data": {
    "agent_id": 2896,
    "call_id": 97939
  }
}

通話の秘匿化が停止しました

通話の秘匿化停止イベントは、通話の秘匿化が終了し、録音が再開されたときに発生します。このイベントは、通話に対応したエージェントの ID と call ID で構成されます。

このイベントの type は小文字の call_redaction_ended です。

  • agent_id: 通話に対応したエージェントの ID
  • call_id: コールの ID

通話の秘匿化停止イベントデータの例を次に示します。

{
  "type": "call_redaction_ended",
  "data": {
    "agent_id": 2896,
    "call_id": 97939
  }
}

通話を終了

通話終了イベントは、通話が終了したときに発生します。このイベントには、通話が終了した日時、通話を処理したエージェント、通話の発信元などの情報が含まれます。

End_Call イベントの例を次に示します。

{
  "type": "End_Call",
  "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "call_id": 103646,
    "session_type": "Voice Campaign (UJET)"
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • agent_id: エージェント ID

  • agent_custom_id: エージェントのカスタム ID(エージェントのプロファイルに入力されている場合)。省略可。

  • agent_email: エージェントのアカウントに関連付けられたメールアドレス

  • queue_id: 呼び出し元のキューの識別子。このフィールドは、通話がキューから発信された場合に含まれます。省略可。

  • queue_path: 呼び出し元のキューのパス。このフィールドは、通話がキューから発信された場合に表示されます。省略可。

  • campaign_id: キャンペーンの ID。このフィールドはキャンペーン呼び出しに含まれます。省略可。

  • campaign_name: キャンペーンの名前。このフィールドはキャンペーン呼び出しに含まれます。省略可。

  • call_id: コール ID

  • session_type: セッション タイプ

  • virtual_agent_id: 仮想エージェントの識別子。このフィールドは、バーチャル エージェントが関与するイベントに含まれます。省略可。

  • va_data_parameters: 仮想エージェントに送信するためにキューで構成された変数。このフィールドは、バーチャル エージェントに関連するイベントに含まれます。省略可。

  • session_variable: コンタクト センター AI プラットフォームに送信される仮想エージェントのすべての変数。省略可。

  • custom_sip_headers: 受信 SIP 通話のカスタム Session Initiation Protocol(SIP)ヘッダーが POST イベントログに表示されるようにします。このフィールドは、カスタム SIP ヘッダーが使用されている場合に含まれます。省略可。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの未署名のカスタムデータが含まれます。詳細については、Chat の署名なし顧客データ(省略可)をご覧ください。省略可。

新しいチャット

エージェントがチャット セッションを担当すると、新しいチャット イベントが発生します。このイベントは、チャットが開始された日時を示し、チャットを処理したエージェントやチャットの開始元などの情報が含まれます。

New_chat イベントの例を次に示します。

{
  "type": "New_Chat",
  "data": {
    "chat_id": 73522,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel"
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • chat_id: チャット ID

  • session_type: セッション タイプ

  • agent_id: エージェント ID

  • agent_custom_id: エージェントのプロファイルに入力された場合のエージェントのカスタム識別子。省略可。

  • agent_email: エージェントのアカウントに関連付けられたメールアドレス。

  • queue_id: 呼び出し元のキューの識別子。このフィールドは、通話がキューから発信された場合に含まれます。省略可。

  • queue_path: 呼び出し元のキューのパス。このフィールドは、通話がキューから発信された場合に含まれます。省略可。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの未署名のカスタムデータが含まれます。詳細については、Chat の署名なしカスタムデータ(省略可)をご覧ください。省略可。

チャットを終了

チャット セッションが終了すると、チャット終了イベントが発生します。このイベントは、チャットが終了した日時を示し、チャットを処理したエージェント、チャットの開始場所などの情報が含まれます。

End_Chat イベントの例を次に示します。

{
  "type": "End_Chat",
  "data": {
    "chat_id": 73522,
    "session_type": "Messaging Inbound (Web Chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": null,
    "queue_path": null,
    "agent_custom_id": null
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • chat_id: チャット ID。

  • session_type: セッション タイプ。

  • agent_id: エージェントの識別子。

  • agent_custom_id: エージェントのプロファイルに入力された場合のエージェントのカスタム識別子。省略可。

  • agent_email: エージェントのアカウントに関連付けられたメールアドレス。

  • queue_id: 通話の発信元キューの識別子。このフィールドは、通話がキューから発信された場合に表示されます。省略可。

  • queue_path: 呼び出し元のキューのパス。このフィールドは、通話がキューから発信された場合に表示されます。省略可。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの署名なしのカスタムデータが含まれます。詳細については、Chat の署名なしカスタムデータ(省略可)をご覧ください。省略可。

アクティブなチャット

アクティブなチャット イベントは、エージェントがチャット アダプタのチャットタブに切り替えたときに発生します。

Active_Chat イベントの例を次に示します。

{
  "type": "Active_Chat",
  "data": {
    "chat_id": 73521,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel"
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • chat_id: チャット ID

  • session_type: セッション タイプ

  • agent_id: エージェントの識別子

  • agent_custom_id: エージェントのカスタム ID(エージェントのプロファイルに入力されている場合)。省略可。

  • agent_email: エージェントのアカウントに関連付けられたメールアドレス。

  • queue_id: 通話の発信元キューの識別子。このフィールドは、通話がキューから発信された場合に表示されます。省略可。

  • queue_path: 呼び出し元のキューのパス。このフィールドは、通話がキューから発信された場合に表示されます。省略可。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの署名されていないカスタムデータが含まれます。詳細については、Chat の署名なし顧客データ(省略可)をご覧ください。省略可。

チャットのインバウンド メッセージ

チャット受信メッセージ イベントは、新しい顧客メッセージが受信されたことを示します。メッセージの内容が含まれます。

チャットのインバウンド メッセージ イベントでは、次のフィールドのデータが報告されます。

  • chat_id: チャット セッションを識別します

  • session_type: 作成されるセッションのタイプ(ウェブチャット経由のメッセージング インバウンドなど)を示します

  • agent_id: チャット セッションを処理するエージェントを識別します。

  • agent_custom_id: このフィールドは、エージェントのプロファイルにカスタム ID が含まれている場合にのみ存在します。省略可。

  • agent_email: チャット セッションを処理するエージェントのメールアドレス。このフィールドは、チャットがキューから開始された場合にのみ含まれます。省略可。

  • queue_id: チャット セッションの送信元キューの ID。このフィールドは、チャットがキューから発信された場合にのみ含まれます。

  • queue_path: チャット セッションの開始元となったキューのパス。このフィールドは、チャットがキューから開始された場合にのみ含まれます。

  • message: : 新しいコンシューマー メッセージが受信されたことを示すイベントと、 メッセージの内容

  • custom_data_secured: 保護された SDK カスタムデータの送信を許可します。省略可。

  • custom_data_not_secured: 保護されていない SDK カスタムデータの送信を許可します。省略可。

Chat_Inbound_Message イベントの例を次に示します。

{
  "type": "Chat_Inbound_Message",
  "data": {
    "chat_id": 73522,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel",
    "message" : "Can you help me with my order tracking number?"
  }
}

チャットの送信メッセージ

チャット アウトバウンド メッセージ イベントは、新しいお客様のメッセージを受信したときに発生します。メッセージの内容が含まれます。

チャット アウトバウンド メッセージ イベントでは、次のフィールドのデータがレポートされます。

  • chat_id: チャット セッションを識別します

  • session_type: 作成されるセッションのタイプ(ウェブチャット経由のメッセージング インバウンドなど)を示します

  • agent_id: チャット セッションを処理するエージェントを識別します。

  • agent_custom_id: このフィールドは、エージェントのプロファイルにカスタム ID がある場合にのみ含まれます。省略可。

  • agent_email: チャット セッションを処理するエージェントのメールアドレス。このフィールドは、チャットがキューから発信された場合にのみ含まれます。省略可。

  • queue_id: チャット セッションの発生元であるキューの ID。このフィールドは、チャットがキューから発信された場合にのみ含まれます。

  • queue_path: チャット セッションの送信元となったキューのパス。このフィールドは、チャットがキューから発信された場合にのみ含まれます。

  • message: 新しいユーザー メッセージを受信したことを示すイベントとメッセージ コンテンツ

  • custom_data_secured: 保護された SDK カスタムデータの送信を許可します。省略可。

  • custom_data_not_secured: 保護されていない SDK カスタムデータの送信を許可します。省略可。

Chat_Outbound_Message イベントの例を次に示します。

{
  "type": "Chat_Outbound_Message",
  "data": {
    "chat_id": 73522,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel",
    "message" : "Please give me a moment to look up your account information"
  }
}

フォームを送信しました

フォーム送信イベントは、チャット セッション中にフォームが消費者に送信されたときに発生します。どちらのイベントも、チャットが対応するシステム メッセージを受信したときに、チャット アダプタによって投稿されます。

Form_Sent イベントの例を次に示します。

{
  "type": "Form_Sent",
  "data": {
    "chat_id": 73522,
    "session_type": "Messaging Inbound (Web Chat)",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "end_user_id": 5512,
    "form_external_id": "payment-details",
    "form_name": "Payment details",
    "form_type": "secure",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Kim",
    "queue_language_id": "en",
    "timestamp": 1727853575000
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • chat_id: チャット ID

  • session_type: セッション タイプ

  • agent_id: エージェントの識別子

  • agent_custom_id: エージェントのカスタム ID(エージェントのプロファイルに入力されている場合)。省略可。

  • agent_email: エージェントのアカウントに関連付けられたメールアドレス

  • end_user_id: チャットのコンシューマーの識別子。省略可。

  • form_external_id: 送信されたフォームの外部識別子。省略可。

  • form_name: 送信されたフォームの名前。省略可。

  • form_type: 送信されたフォームのタイプ。省略可。

  • queue_id: チャットの送信元キューの識別子。このフィールドは、チャットがキューから開始された場合に表示されます。省略可。

  • queue_path: チャットの送信元キューのパス。このフィールドは、チャットがキューから開始された場合に含まれます。省略可。

  • queue_language_id: キューの言語。省略可。

  • timestamp: イベントが投稿された時刻(Unix エポックからのミリ秒数)

  • va_data_parameters: キューで構成され、バーチャル エージェントに送信される変数。省略可。

  • session_variable: 仮想エージェントから Contact Center AI Platform に送信されるすべての変数。省略可。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの署名なしのカスタムデータが含まれます。詳細については、Chat の署名なし顧客データをご覧ください。省略可。

フォームの入力が完了しました

フォーム完了イベントは、チャット セッション中に送信されたフォームをユーザーが送信したときに発生します。イベントデータには、フォーム送信イベントと同じフィールドが含まれます。

Form_Completed イベントの例を次に示します。

{
  "type": "Form_Completed",
  "data": {
    "chat_id": 73522,
    "session_type": "Messaging Inbound (Web Chat)",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "end_user_id": 5512,
    "form_external_id": "payment-details",
    "form_name": "Payment details",
    "form_type": "secure",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Kim",
    "queue_language_id": "en",
    "timestamp": 1727853601000
  }
}

閉じられたチャット

チャットの終了イベントは、エージェントがチャット アダプタのチャットタブを閉じたときに発生します。

Dismissed_Chat イベントの例を次に示します。

{
  "type":"Dismissed_Chat",
  "data":{"chat_id":73522,
    "session_type":"Messaging Inbound (Web Chat)",
    "agent_id":1,
    "agent_email":"ariel@example.com"
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • chat_id: チャット ID

  • session_type: セッション タイプ

  • agent_id: エージェントの識別子

  • agent_custom_id: エージェントのカスタム ID(エージェントのプロファイルに入力されている場合)。省略可。

  • agent_email: エージェントのアカウントに関連付けられたメールアドレス

  • queue_id: 呼び出し元のキューの識別子。このフィールドは、通話がキューから発信された場合に含まれます。省略可。

  • queue_path: 通話の発信元のキューのパス。このフィールドは、通話がキューから発信された場合に含まれます。省略可。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの署名なしのカスタムデータが含まれます。詳細については、Chat の署名なし顧客データ(省略可)をご覧ください。省略可。

画面共有セッションが開始されました

画面共有セッションの開始イベントは、エージェントまたはエンドユーザーが画面共有セッションを開始したときに発生します。画面共有セッションは、通話中またはチャット中に開始できます。詳しくは、画面共有をご覧ください。

画面共有セッション開始イベントの JSON オブジェクトの例を次に示します。

{
  "type": "Cobrowse_Session_Started",
  "data": {
    "agent_id": 5,
    "chat_id": 791,
    "cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
    "cobrowse_session_requested_by": "agent",
    "cobrowse_session_remote_control": "off",
    "cobrowse_session_full_device": "off"
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • agent_id: エージェント ID。

  • call_id: IVR(音声自動応答)チャネルでの着信通話の識別子。このフィールドは、通話中に画面共有セッションが開始された場合に含まれます。

  • chat_id: ウェブまたはモバイル チャネルでのインバウンド チャットの識別子。このフィールドは、チャット中に画面共有セッションが開始された場合に含まれます。

  • cobrowse_session_id: 画面共有セッションの識別子。

  • cobrowse_session_requested_by: 画面共有セッションを開始したユーザーを示します。値は agent および end-user です。

  • cobrowse_session_remote_control: リモート コントロールの画面共有セッションのステータスを示します。値は on、rejected、requested、off です。

  • cobrowse_session_full_device: デバイス全体の画面共有セッションのステータスを示します。値は on、rejected、requested、off です。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの署名なしのカスタムデータが含まれます。詳細については、Chat の署名なし顧客データ(省略可)をご覧ください。省略可。

画面共有セッションのリモート コントロールが変更されました

リモート コントロールの画面共有セッションのステータスが変更されると、画面共有セッションのリモート コントロール変更イベントが発生します。このイベントは、リモート コントロールの画面共有セッションのステータスを示します。詳しくは、 画面共有をご覧ください。

Cobrowse_Session_Remote_Control_Changed イベントの JSON オブジェクトの例を次に示します。

{
  "type": "Cobrowse_Session_Remote_Control_Changed",
  "data": {
    "agent_id": 5,
    "chat_id": 791,
    "cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
    "cobrowse_session_remote_control": "requested"
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • agent_id: エージェントの識別子。

  • call_id: IVR(音声自動応答)チャネルでの着信通話の識別子。このフィールドは、通話中に画面共有セッションが開始された場合に含められます。

  • chat_id: ウェブまたはモバイル チャネルでのインバウンド チャットの識別子。このフィールドは、チャット中に画面共有セッションが開始された場合に含められます。

  • cobrowse_session_id: 画面共有セッションの識別子。

  • cobrowse_session_remote_control: リモート コントロールの画面共有セッションのステータスを示します。値は on、rejected、requested、off です。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの署名されていないカスタムデータが含まれます。詳細については、Chat の署名なし顧客データ(省略可)をご覧ください。省略可。

画面共有セッションのデバイス全体が変更されました

全デバイスの画面共有セッションのステータスが変更されると、Screen Share セッションの全デバイス変更イベントが発生します。このイベントは、デバイス全体の画面共有セッションのステータスを示します。詳しくは、画面共有をご覧ください。

Cobrowse_Session_Full_Device_Changed イベントの例を次に示します。

{
  "type": "Cobrowse_Session_Full_Device_Changed",
  "data": {
    "agent_id": 5,
    "cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
    "cobrowse_session_full_device": "rejected"
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • agent_id: エージェントの識別子。

  • call_id: IVR(音声自動応答)チャネルでの着信通話の識別子。このフィールドは、通話中に画面共有セッションが開始された場合に含められます。

  • chat_id: ウェブまたはモバイル チャネルでのインバウンド チャットの識別子。このフィールドは、チャット中に画面共有セッションが開始された場合に含まれます。

  • Cobrowse_session_id: 画面共有セッションの識別子。

  • Cobrowse_session_full_device: デバイス全体の画面共有セッションのステータスを示します。値は on、rejected、requested、off です。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの署名なしのカスタムデータが含まれます。詳細については、Chat の署名なしカスタムデータ(省略可)をご覧ください。省略可。

画面共有セッションが終了しました

画面共有セッションがエージェント、エンドユーザー、または API によって終了すると、画面共有セッション開始イベントが発生します。詳細については、画面共有を構成するをご覧ください。

Cobrowse_Session_Ended イベントの例を次に示します。

{
  "type": "Cobrowse_Session_Ended",
  "data": {
    "agent_id": 5,
    "cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
    "cobrowse_session_requested_by": "end_user",
    "cobrowse_session_ended_by": "agent",
    "cobrowse_session_remote_control": "on",
    "cobrowse_session_full_device": "rejected"
  }
}

イベントデータ フィールドの説明は次のとおりです。

  • agent_id: エージェントの識別子。

  • call_id: IVR(音声自動応答)チャネルでの着信通話の識別子。このフィールドは、通話中に画面共有セッションが開始された場合に含められます。

  • chat_id: ウェブまたはモバイル チャネルでのインバウンド チャットの識別子。このフィールドは、チャット中に画面共有セッションが開始された場合に含められます。

  • cobrowse_session_id: 画面共有セッションの識別子。

  • cobrowse_session_ended_by: 画面共有セッションを終了したユーザーを示します。値は agent、end-user、api です。

  • cobrowse_session_remote_control: リモート コントロールの画面共有セッションのステータスを示します。値は on、rejected、requested、off です。

  • cobrowse_session_full_device: デバイス全体の画面共有セッションのステータスを示します。値は on、rejected、requested、off です。

  • custom_data_secured: サーバーからの署名付きカスタムデータが含まれます。省略可。

  • custom_data_not_secured: ウェブページからの未署名のカスタムデータが含まれます。詳細については、Chat の署名なし顧客データ(省略可)をご覧ください。省略可。

転送

転送イベントは、通話またはチャットが転送されたときに発生します。引き継ぎ後の転送または引き継ぎなしの転送のいずれかを指します。

次のイベント フィールドは、転送イベントの一部です。

  • chat_id または call_id: 通話またはチャット セッションを識別します

  • session_type: 作成されるセッションのタイプ(ウェブチャット経由のメッセージング インバウンドなど)を示します。

  • campaign_id: キャンペーンの ID。このフィールドは、通話タイプがキャンペーン通話の場合にのみ存在します。省略可。

  • campaign_name: キャンペーンの名前。このフィールドは、通話タイプがキャンペーン通話の場合にのみ存在します。省略可。

  • from_agent_id: 通話またはチャットをあるエージェントから別のエージェントに転送するときに、転送元のエージェントを示すために使用されます。

  • from_agent_custom_id: エージェント間で通話やチャットを転送するときに、転送元のエージェントを示すために使用されます。省略可。

  • from_agent_email: 通話やチャットをエージェント間で転送する際に、転送元エージェントを示すために使用されます

  • to_agent_id: エージェント間で通話やチャットを転送する際に、転送先のエージェントを示すために使用されます。

  • to_agent_custom_id: 通話やチャットをエージェント間で転送する際に、転送先のエージェントを示すために使用されます。省略可。

  • to_agent_email: 通話またはチャットをあるエージェントから別のエージェントに転送するときに、転送先のエージェントを示すために使用されます。

  • from_queue_id: 通話またはチャットをあるキューから別のキューにルーティングするときに、元のキューを示すために使用されます。

  • from_queue_path: 通話またはチャットをあるキューから別のキューに転送するときに、転送元のキューを示すために使用します。

  • to_queue_id: 通話またはチャットをあるキューから別のキューに転送するときに、転送先のキューを示すために使用します。

  • to_queue_path: 通話またはチャットをあるキューから別のキューに転送する際に、転送先のキューを示すために使用します。

  • virtual_agent_id: 仮想エージェントに割り当てられた ID。省略可。

  • va_data_parameters: キューで構成されたすべての変数を仮想エージェントに送信します。これは、仮想エージェントが関与するイベントにのみ必要です。省略可。

  • (session_variable: ペイロードで CCAI Platform に送信される仮想エージェントのすべての変数。省略可。

  • custom_sip_headers: 受信 SIP 通話のカスタム SIP ヘッダーが POST イベントログに表示されるようにします。カスタム SIP ヘッダーを使用する場合にのみ必要です。省略可。

  • custom_data_secured: 保護された SDK カスタムデータの送信を許可します。省略可。

  • custom_data_not_secured: 保護されていない SDK カスタムデータの送信を許可します。省略可。

転送イベントの例を次に示します。

{
  "type": "Transfer_Chat",
  "data": {
    "chat_id": 103646,
    "session_type": "Messaging Inbound (SMS)",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "from_agent_id": 1,
    "from_agent_custom_id": "007",
    "from_agent_email": "Ira@example.com",
    "to_agent_id" : 5
    "to_agent_custom_id": "100"
    "to_agent_email" : "ariel@example.com"
    "from_queue_id": 8469,
    "from_queue_path": "Developers / Ariel",
    "to_queue_id" : 1234,
    "to_queue_path" : "Schemes / Auric"
  }
}

パーティーを追加しました

「パーティ追加」イベントとは、あらゆる転送を指します。通話またはチャットの転送が可能です。

パーティー追加イベントには次のデータが含まれます。

  • chat_id または call_id: 通話またはチャット セッションを識別します。

  • session_type: 作成されるセッションのタイプを示します(ウェブチャット経由のメッセージング インバウンドなど)。

  • agent_custom_id: このフィールドは、エージェントのプロファイルにカスタム ID が含まれている場合にのみ存在します。省略可。

  • agent_email: 通話またはチャット セッションを処理するエージェントのメールアドレス。

  • queue_id: チャット セッションの送信元キューの ID。このフィールドは、チャットがキューから発信された場合にのみ含まれます。省略可。

  • queue_path: チャット セッションの開始元となったキューのパス。このフィールドは、チャットがキューから開始された場合にのみ含まれます。省略可。

  • campaign_id: キャンペーンの ID。このフィールドは、通話タイプがキャンペーン通話の場合にのみ含まれます。省略可。

  • campaign_name: キャンペーンの名前。このフィールドは、呼び出しタイプがキャンペーン呼び出しの場合にのみ含まれます。省略可。

  • type: 参加者のタイプ(end_user、agent など)。このフィールドは、/api/v1/calls または /api/v1/chats レスポンスの participants.type の一部として返されます。

  • end_user_id: end_user_id。このフィールドは、/api/v1/calls または /api/v1/chats レスポンスの一部として返されます。このフィールドは、エンドユーザーの通話またはチャットがエージェントから別のエージェントに転送された場合にのみ、転送先のエージェントを示すために存在します。省略可。

  • virtual_agent_id: 仮想エージェントに割り当てられた識別子。省略可。

  • va_data_parameters: キューで構成されたすべての変数を仮想エージェントに送信します。これは、バーチャル エージェントが関与するイベントにのみ必要です。省略可。

  • session_variable: ペイロードで CCAI Platform に送信される仮想エージェントのすべての変数。省略可。

  • custom_sip_headers: これにより、受信 SIP 通話のカスタム SIP ヘッダーが POST イベントログに表示されます。カスタム SIP ヘッダーを使用する場合にのみ必要です。省略可。

  • custom_data_secured: 保護された SDK カスタムデータの送信を許可します。省略可。

  • custom_data_not_secured: 保護されていない SDK カスタムデータの送信を許可します。省略可。

Party_Added イベントの例を次に示します。

{
  "type": "Party_Added",
  "data": {
    "chat_id": 103646,
    "session_type": "Messaging Inbound (SMS)",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "ariel@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Ariel",
    "type" : "agent"
  }
}

エージェントがセッションに接続する

エージェントがセッションに接続すると、エージェントがセッションに接続されたイベントが発生します。イベントには 2 種類あります。タイプは、通話かチャットかによって決まります。

次のイベント フィールドは、エージェントがセッション イベントに接続する際の一部です。

  • agent_id: 通話またはチャット セッションを処理するエージェントを識別します。

  • agent_email: 通話またはチャット セッションを処理するエージェントのメールアドレス。

  • agent_custom_id: このフィールドは、エージェントのプロファイルにカスタム ID が含まれている場合にのみ存在します。省略可。

  • chat_id または call_id: 通話またはチャット セッションを識別します。

  • virtual_agent_id: 特定の仮想エージェントに割り当てられた ID。省略可。

  • campaign_id: キャンペーンの ID。このフィールドは、通話タイプがキャンペーン通話の場合にのみ含まれます。省略可。

  • campaign_name: キャンペーンの名前。このフィールドは、呼び出しタイプがキャンペーン呼び出しの場合にのみ含まれます。省略可。

  • queue_id: チャット セッションの送信元キューの ID。このフィールドは、チャットがキューから開始された場合にのみ含まれます。省略可。

  • queue_path: チャット セッションの開始元となったキューのパス。このフィールドは、チャットがキューから発信された場合にのみ含まれます。省略可。

  • session_type: 作成されるセッションのタイプを示します(ウェブチャット経由のメッセージング インバウンドなど)。

  • virtual_agent_id: 仮想エージェントに割り当てられた ID。省略可。

  • va_data_parameters: 仮想エージェントに送信するためにキューで構成されたすべての変数。これは、仮想エージェントが関与するイベントにのみ必要です。省略可。

  • session_variable: ペイロードで UJET に送信される仮想エージェントのすべての変数。省略可。

  • custom_sip_headers: これにより、受信 SIP 通話のカスタム SIP ヘッダーが POST イベントログに表示されます。カスタム SIP ヘッダーを使用する場合にのみ必要です。省略可。

  • custom_data_secured: 保護された SDK カスタムデータの送信を許可します。省略可。

  • custom_data_not_secured: 保護されていない SDK カスタムデータの送信を許可します。省略可。

Agent_Joined_Chat イベントデータの例を次に示します。

{
  "type": "Agent_Joined_Chat",
  "data": {
    "chat_id": 103646,
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "ariel@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Ariel",
    "session_type": "Messaging Inbound (SMS)",
  }
}

エージェントのログアウト

エージェント ログアウト イベントは、エージェントがエージェント アダプタからログアウトしたときに発生します。

次のイベント フィールドは Agent_Logout イベントの一部です。

  • agent_id: ログインしたエージェントの識別子

  • agent_email: エージェント アカウントに関連付けられているメールアドレス

  • agent_custom_id: エージェントのカスタム ID(エージェントのプロファイルに入力されている場合)。省略可。

Agent_Logout イベントの例を次に示します。

{
  "type": "Agent_Logout",
  "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "ariel@example.com",
  }
}

Agent Assist を追加しました

エージェントが通話またはチャット セッション中に Agent Assist を有効にすると、Agent Assist 追加イベントが発生します。

このイベントについては、次の点に注意してください。

  • このイベントの type は小文字の agent_assist_added です。

  • タイムスタンプ フィールドの名前は Timestamp(大文字の T)で、Unix エポックからの経過ミリ秒数です。

agent_assist_added イベントの例を次に示します。

{
  "type": "agent_assist_added",
  "data": {
    "conversation_id": "12345",
    "queue_id": 65,
    "agent_id": 1,
    "session_id": "78534G4RT4284",
    "queue_language_id": "en",
    "Timestamp": 1727853575000
  }
}

イベント フィールドは次のとおりです。

  • conversation_id: 会話識別子。このフィールドは、セッションで会話プロファイルが使用されている場合に含められます。省略可。

  • queue_id: キューの識別子。省略可。

  • agent_id: エージェントの識別子

  • session_id: セッション ID。省略可。

  • queue_language_id: キューの言語。省略可。

  • Timestamp: イベントが投稿された時刻(Unix エポックからのミリ秒数)

仮想タスク アシスタントが参加しました

仮想タスク アシスタント(VTA)が通話またはチャット セッションに参加すると、仮想タスク アシスタント参加イベントが発生します。

Task_VA_Joined イベントの例を次に示します。

{
  "type": "Task_VA_Joined",
  "data": {
    "chat_id": 103646,
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "virtual_agent_id": 1,
    "virtual_agent_name": "Order status assistant",
    "participant_id": 1,
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "queue_language_id": "en",
    "session_type": "Messaging Inbound (SMS)",
    "conversation_id": "12345",
    "session_id": "78534G4RT4284",
    "timestamp": 1727853575000,
    "data_parameters": {
      "param1": "one",
      "param2": "two"
    }
  }
}

イベント フィールドは次のとおりです。

  • call_id または chat_id: 通話またはチャットの識別子

  • campaign_id: キャンペーンの ID。このフィールドは、キャンペーンの呼び出しに含まれます。省略可。

  • campaign_name: キャンペーンの名前。このフィールドは、キャンペーンの呼び出しに含まれます。省略可。

  • virtual_agent_id: VTA の識別子

  • virtual_agent_name: CCAI Platform ポータルで構成された VTA の名前

  • participant_id: セッション内の VTA の参加者 ID

  • queue_id: セッションの送信元キューの識別子。省略可。

  • queue_path: セッションの送信元であるキューのパス。省略可。

  • queue_language_id: キューの言語。省略可。

  • session_type: セッション タイプ

  • conversation_id: 会話識別子。このフィールドは、セッションで会話プロファイルが使用されている場合に含まれます。省略可。

  • session_id: セッション ID。省略可。

  • timestamp: イベントが投稿された時刻(Unix エポックからのミリ秒数)

  • data_parameters: CCAI プラットフォーム ポータルで構成され、VTA に送信される変数。省略可。

仮想タスク アシスタントが退出しました

仮想タスク アシスタントの退出イベントは、VTA がセッションを退出したときに発生します。仮想タスク アシスタントが参加したイベントのフィールドに加えて、VTA セッションが終了した理由と、VTA がキャプチャしたセッション変数が含まれます。

Task_VA_Left イベントの例を次に示します。

{
  "type": "Task_VA_Left",
  "data": {
    "chat_id": 103646,
    "virtual_agent_id": 1,
    "virtual_agent_name": "Order status assistant",
    "participant_id": 1,
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "queue_language_id": "en",
    "session_type": "Messaging Inbound (SMS)",
    "conversation_id": "12345",
    "session_id": "78534G4RT4284",
    "timestamp": 1727853600000,
    "finish_reason": "Task VA completed",
    "data_parameters": {
      "param1": "one"
    },
    "captured_variables": [
      {
        "intent_name": null,
        "variables": {
          "order_number": "A-100"
        },
        "captured_at": "2024-11-15 16:46:31 UTC",
        "timestamp": 1727853590000
      }
    ]
  }
}

追加のイベント フィールドは次のとおりです。

  • finish_reason: VTA セッションが終了した理由

  • captured_variables: VTA によってキャプチャされたセッション変数。それぞれに、キャプチャしたインテントとキャプチャされた日時が含まれます。省略可。

Virtual Task Assistant セッション変数を受信しました

Virtual Task Assistant セッション変数の受信イベントは、セッション中に VTA がカスタム セッション変数ペイロードを送信するたびに発生します。このイベントには、finish_reason を除き、仮想タスク支援(機能)が退出したイベントと同じフィールドがあります。captured_variables には、これまでに受信した変数が保持されます。

Task_VA_Variables_Received イベントの例を次に示します。

{
  "type": "Task_VA_Variables_Received",
  "data": {
    "chat_id": 103646,
    "virtual_agent_id": 1,
    "virtual_agent_name": "Order status assistant",
    "participant_id": 1,
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "queue_language_id": "en",
    "session_type": "Messaging Inbound (SMS)",
    "conversation_id": "12345",
    "session_id": "78534G4RT4284",
    "timestamp": 1727853590000,
    "data_parameters": {
      "param1": "one"
    },
    "captured_variables": [
      {
        "intent_name": null,
        "variables": {
          "order_number": "A-100"
        },
        "captured_at": "2024-11-15 16:46:31 UTC",
        "timestamp": 1727853590000
      }
    ]
  }
}

仮想エージェントのカスタム セッション変数ペイロードで capture_type に event が含まれている変数のみが含まれ、invisible_to_adapter_events にリストされているキーは除外されます。

バックグラウンドの画面ポップ

画面ポップ機能を使用すると、エージェントはバックグラウンドで CRM 画面ポップを実行できます。つまり、エージェントが操作しなくても、エージェントの画面に顧客情報が表示されます。これにより、消費者のエクスペリエンスが向上し、エージェントの処理時間が短縮されます。

CRM レコードのポップアップ

イベント CRM_Record_Pop は、チケットをポップアップする必要があるときにトリガーされるサーバーサイド イベントです。このイベントには、CRM レコードの URL を含む recordUrl というパラメータが含まれています。埋め込みアダプタを使用している場合は、POST イベントをサブスクライブすることで、画面ポップアップを実行できます。

CRM_Record_Pop イベントの例を次に示します。

{
  "type": "CRM_Record_Pop",
  "data": {
    "recordUrl": "https://crm.example.com/tickets/4711"
  }
}

イベントには次の 1 つのフィールドがあります。

  • recordUrl: 表示する CRM レコードの URL

この目的を達成するために、次の例では、別のフレームまたはウィンドウから送信されたメッセージをリッスンするイベント リスナーを追加する方法を示します。このコード スニペットは、異なるフレームまたはウィンドウ間の通信を可能にし、受信したメッセージに基づいて iframe に表示されるコンテンツを動的に更新できるように設計されています。

// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'

// name is the html property of the iframe that shows the CRM record
const iframeTarget = document.querySelector('iframe[name="target_iframe_adapter"]')

// example usage of add event listener
// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
window.addEventListener('message', (e) => {
  // Only accept events posted by the agent adapter.
  if (e.origin !== ADAPTER_ORIGIN) {
    return
  }

  let message
  try {
    message = JSON.parse(e.data)
  } catch (err) {
    // Not an agent adapter event.
    return
  }

  const { type, data = {} } = message
  console.log('EventListener: ', type)

  switch (type) {
    case 'CRM_Record_Pop': {
      const recordUrl = data.recordUrl
      if (!recordUrl) {
        return
      }
      console.log(`Opening recordUrl in iframe ${iframeTarget.getAttribute('name')}`)

      // changing an iframe target to the record URL pop
      iframeTarget.src = recordUrl
      break
    }
    case 'New_Chat':
      console.log('Chat started...')
      // handling here for New_Chat events
      break
    case 'End_Chat':
      console.log('Chat ended...')
      // handling here for End_Chat events
      break
    default:
      // code handling for other types
      break
  }
}, false)

サードパーティのページを開く

openThirdPartyPage イベントは、コールにサードパーティ キー(キャンペーン コールのリスト キャンペーン マネージャー キーなど)が含まれており、アダプタが一致するサードパーティ ページを開こうとしているときに、コール アダプタによってポストされます。埋め込みアダプターを使用している場合は、このイベントに登録して、独自の UI でページを開くことができます。

openThirdPartyPage イベントの例を次に示します。

{
  "type": "openThirdPartyPage",
  "data": {
    "thirdPartyKey": "acqueon:12345",
    "callId": 103646
  }
}

イベント フィールドは次のとおりです。

  • thirdPartyKey: 通話に関連付けられたサードパーティの鍵

  • callId: コール ID