カスタム 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} |
セッション チャネル。値は次のいずれかです。
|
{TYPE} |
セッションのタイプ。 通話の可能な値:
チャットに指定できる値は次のとおりです。
|
{SUPPORT_PHONE_NUMBER} |
エンドユーザーが電話をかけるサポート センターの電話番号。 |
{OUTBOUND_NUMBER} |
エージェントが発信(# など適宜文脈に応じて)に使用する電話番号。 |
{SESSION_ID} |
セッション ID。値は次のいずれかです。
|
{CUSTOM_AGENT_ID} |
user オブジェクトの省略可能なエージェント ID フィールド。エージェント ID は、セッションが確立され、エージェントが割り当てられるまで取得できません。このため、この変数が定義されるまでの時間を確保できるように、通話またはチャットのレコード作成を遅らせるようにインスタンスを構成します。通話またはチャットの記録の作成を遅らせるには、[設定] > [オペレーション管理] > [CRM 記録作成の詳細] で設定します。詳細については、CRM レコード作成の詳細をご覧ください。 |
CCAI Platform ポータルの構成
管理者ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。
[設定] > [開発者向け設定] に移動します。
[CRM] セクションで、[カスタム CRM] を選択します。
[CRM 検索] で、カスタム URL を入力します。
CRM リクエストで使用する電話番号の形式を選択します。
[変更を保存] をクリックします。
まだ構成していない場合は、外部ストレージ サービスを構成します。詳しくは、外部ストレージをご覧ください。
メールによる CRM レコードの更新
カスタム検索 URL などの構成では、セッションが完了したら、セッションのメタデータを CRM で更新する必要があります。この機能を使用すると、CCAI Platform はメールを使用してセッション データを自動的に送信できます。セッションが終了してから約 15 分後に、構成された場所にメールが送信され、メールの内容を使用して CRM のレコードが更新されます。この機能は、グローバルに構成することも、キューごとに構成することもできます。メールが受信されると、CRM はセッションの新しい CRM レコードを更新または作成するように構成されている場合があります。
詳細情報を送信
以下が含まれます:
Subject line
JSON 構文のセッション メタデータを含む本文
チャットの文字起こし(該当する場合)を含む TXT 形式の添付ファイル
CCAI プラットフォームは、セッション終了後 15 分間待機してからメールを送信します。
メールは、正常に終了したセッションに対してのみ送信されます。失敗したセッションや放棄されたセッションでは送信されません。
グローバル構成
管理者ロールが割り当てられているアカウントを使用して CCAI Platform ポータルにログインします。
[設定] > [開発者向け設定] に移動します。
[CRM] セクションで、[カスタム CRM] が選択されていることを確認します。
[セッションの結果をメールで送信する] を有効にします。
メールの送信先となるメールアドレスを入力します。
[変更を保存] をクリックします。
キューごとの構成
管理者ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。
[設定] > [キュー] に移動し、サブキューを選択します。
[セッションの結果をメールで送信する] を有効にします。
メールの送信先となるメールアドレスを入力します。

[Save Custom CRM setting] をクリックします。
設定の継承とオーバーライド
| 設定 | 動作 |
|---|---|
| Global = 無効 Queue = 無効 |
すべてのキューに送信しないでください。 |
| グローバル = 有効でない キュー = 有効 |
キューの設定(オン/オフの状態)は、グローバル設定をオーバーライドします。 メールは、指定されたキューから、キュー設定で定義されたメールアドレスに送信されます。 |
| グローバル = 有効 キュー = 有効でない |
キューの設定(メールアドレス、オン/オフの状態)は、グローバル設定を継承します。 メールは、特定のキューからグローバル設定で定義されたメールアドレスに送信されます。 |
| グローバル = 有効 キュー = 有効 |
キュー設定(メールアドレス)はグローバル設定よりも優先されます。 メールは、指定されたキューからキュー設定で定義されたメールアドレスに送信されます。 メールアドレスが空の場合、メールは送信されません。 |
エージェントのエクスペリエンス
CRM レコードの検索
エージェント ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。
通話またはチャットのアダプターを開きます。
[新しいブラウザ ウィンドウで開く] ボタンを使用して、ルックアップをトリガーします。
[リンクをコピー] ボタンを使用して、ルックアップ 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 インタラクションとセッション メタデータ ファイルのメール更新方法を組み合わせて使用している場合、エージェントとスーパーバイザーは外部サーバーを使用してセッション情報にアクセスできます。
外部ストレージ サービスの構成
外部ストレージを構成する手順は次のとおりです。
管理者ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。
[設定] > [開発者向け設定] に移動します。
[Developer Settings] ページで、[External Storage] セクションに移動します。
切り替えスイッチを [オン] に切り替えて、CRM サーバー外での情報の保存を有効にし、保存するファイルの種類を選択します。
[サーバーの設定] セクションで、ストレージ タイプを選択し、設定手順を完了します。SFTP サーバー、Google Cloud バケット。
SFTP サーバー
SFTP のホスト(URL または IP アドレス)を入力します。
[ポート] 番号を入力します。
SFTP のログイン ユーザー ID を入力します。
SFTP サーバーで認証にパスワードが必要な場合は、[パスワード] フィールドに入力します。
SFTP サーバーで認証に秘密鍵が必要な場合は、[SSH 秘密鍵] チェックボックスをオンにします。
SSH の秘密鍵を入力(コピーして貼り付け)します。
秘密鍵のパスフレーズを入力します。セッション情報を SFTP サーバーの特定のフォルダに保存する場合は、[フォルダパス] チェックボックスをオンにして、SFTP フォルダパスを入力します。
[変更を保存] をクリックします。
Cloud Storage
宛先の Google Cloud バケット名を入力します。
Google Cloud クライアント ID を入力します。
Google Cloud クライアント シークレットを入力します。
セッション情報を Google Cloud バケット内の特定のフォルダに保存する必要がある場合は、[フォルダパス] チェックボックスをオンにして、Google Cloud フォルダパスを入力します。
[Link & Save] をクリックします。
外部ストレージ構成をテストする
既存の標準インテグレーションを使用する CRM の場合:
CRM にログインします。
エージェント ロールが割り当てられた CCAI Platform の認証情報を使用して、CRM 内の CCAI Platform にログインします。
電話をかけるか、チャットを開始します。セッションに関連付けられている CRM レコードが表示されます。
セッションが終了すると、文字起こしファイルが数秒以内にアップロードされます。
外部サーバーのストレージ フォルダに直接移動し、ファイルが利用可能であることを確認します。
CRM へのセッション ファイルの送信
外部ストレージが有効になっている場合、CRM ストレージと外部ストレージの URL のデベロッパー設定により、セッション ファイルを送信し、エージェント アダプタでファイルを表示するために使用するソースを決定できます。
これらの設定を表示するには、[設定] > [デベロッパー設定] > [外部ストレージ] で外部ストレージを有効にする必要があります。[CRM サーバー外での情報ストレージを有効にする] を [オン] に切り替えます。
CRM ストレージ
[設定] > [開発者向け設定] > [外部ストレージ] > [CRM ストレージ] に移動します。
[セッション ファイルも CRM に送信する] チェックボックスをオンにして、通話録音やチャットの文字起こしなどのセッション ファイルを CRM と構成済みの外部ストレージに送信します。
[変更を保存] をクリックします。
チェックボックスがオンになっている場合、録音は CRM と外部ストレージの両方に保存されます。
外部ストレージの URL
外部ストレージ URL は次の 2 つの場所で使用されます。
エージェント アダプタ。
レポート: レポートと、[設定]、[通話]、[完了] などのメニューにメディア URL を表示します。
[設定] > [デベロッパー設定] > [外部ストレージ] > [外部ストレージ URL] に移動します。
ソースの CRM URL または外部ストレージ URL を選択して、エージェント アダプタにファイルを表示します。
[変更を保存] をクリックします。
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 ページを設定する手順は次のとおりです。
CCAI Platform ポータルで、[設定> 開発者向け設定] をクリックします。[設定] メニューが表示されない場合は、 [メニュー] をクリックします。
[CRM] ペインで、[カスタム CRM] をクリックします。
[CCAI プラットフォーム ポータルに CRM を表示する] 切り替えボタンをクリックしてオンにします。
[表示 URL] にカスタム CRM ページの URL を入力し、[保存] をクリックします。
カスタム URL の画面ポップを開く
システムで連絡先が見つからない場合にカスタム URL 画面ポップを表示するには、[Open Custom URL] を使用します。一時的なアカウント ID を使用して CRM レコードを作成し、キューレベルの構成に基づいてパラメータを含むカスタムリンクをトリガーします。
キューごとに画面ポップを有効にする
[設定] > [キュー] > [IVR] に移動し、編集するキューをクリックします。
パネルの [カスタム URL を開く] に移動します。
URL を入力して、画面ポップを表示します。
URL に変数パラメータ {ACCOUNT_ID} と {PHONE_NUMBER} を含めます。
例を示します。
- [保存] をクリックします。
カスタム 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 の最も重要な構成です。
エージェントがアカウントを検索できるようにするには、[アカウントを検索] エンドポイントと [アカウントを作成] エンドポイントを構成する必要があります。
さらに、[レコードを検索] エンドポイントと [レコードを作成] エンドポイントを設定して、エージェントがレコードの検索や作成を行えるようにすることもできます。これには、前のステップのアカウント設定が必要です。
最後に、[Update a record]、[Upload a file]、[Comment] のエンドポイントを入力すると、レコードの更新が有効になります。これには、前の手順のレコード設定が必要です。
エンドポイントの構成
以下の設定を構成します。
リクエスト URL: API エンドポイント URL。
POST、GET、PUT、PATCH からリクエスト メソッドを選択します。
リクエストのパラメータを指定します。CCAI Platform で定義された変数を使用して、必要な情報を渡すことができます(次の表をご覧ください)。また、パラメータの値として書式なしテキストや数値を入力することもできます。パラメータは必要な数だけ追加できます。
エンドポイントが POST/PUT/PATCH の場合、CCAI Platform はリクエストの構築方法をより細かく制御できます。[プロパティ] または [コンテナ] から [リクエスト データの形式] を選択します。リクエスト JSON の形式を指定します。
Property のインスタンスです。これは、CCAI Platform がパラメータからリクエスト本文をビルドするときに、リクエスト オブジェクトが基本的なプロパティ マップであることを示します。
コンテナ。これは、送信されるリクエスト オブジェクト データが構造内にネストされる必要があることを示します。[マップ] または [配列] から [コンテナ タイプ] を選択します。[コンテナ名] を入力します。パラメータからリクエスト本文を作成するときに、親オブジェクト名として使用されます。
例: マップ: { container_name : { ...parameters } }
例: 配列: {container_name : [ { ...parameters } ] }
[レスポンス データのロケーション] を入力します。これは、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: エージェント IDagent_custom_id: エージェントのカスタム ID(エージェントのプロファイルに入力されている場合)。省略可。agent_email: エージェントのアカウントに関連付けられたメールアドレスqueue_id: 呼び出し元のキューの識別子。このフィールドは、通話がキューから発信された場合に含まれます。省略可。queue_path: 呼び出し元のキューのパス。このフィールドは、通話がキューから発信された場合に表示されます。省略可。campaign_id: キャンペーンの ID。このフィールドはキャンペーン呼び出しに含まれます。省略可。campaign_name: キャンペーンの名前。このフィールドはキャンペーン呼び出しに含まれます。省略可。call_id: コール IDsession_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: 通話に対応したエージェントの IDcall_id: コールの ID
通話の編集開始イベントの例を次に示します。
{
"type": "call_redaction_started",
"data": {
"agent_id": 2896,
"call_id": 97939
}
}
通話の秘匿化が停止しました
通話の秘匿化停止イベントは、通話の秘匿化が終了し、録音が再開されたときに発生します。このイベントは、通話に対応したエージェントの ID と call ID で構成されます。
このイベントの type は小文字の call_redaction_ended です。
agent_id: 通話に対応したエージェントのIDcall_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: エージェント IDagent_custom_id: エージェントのカスタム ID(エージェントのプロファイルに入力されている場合)。省略可。agent_email: エージェントのアカウントに関連付けられたメールアドレスqueue_id: 呼び出し元のキューの識別子。このフィールドは、通話がキューから発信された場合に含まれます。省略可。queue_path: 呼び出し元のキューのパス。このフィールドは、通話がキューから発信された場合に表示されます。省略可。campaign_id: キャンペーンの ID。このフィールドはキャンペーン呼び出しに含まれます。省略可。campaign_name: キャンペーンの名前。このフィールドはキャンペーン呼び出しに含まれます。省略可。call_id: コール IDsession_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: チャット IDsession_type: セッション タイプagent_id: エージェント IDagent_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: チャット IDsession_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: チャット IDsession_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: チャット IDsession_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 の参加者 IDqueue_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