カスタム CRM ソリューションを使用すると、CCAI Platform との標準統合が現在行われていない CRM を使用している場合でも、コンタクト センター AI プラットフォーム(CCAI Platform)ポータルを利用できます。カスタム CRM 構成は、自社開発の CRM または標準以外の CRM を使用する場合に機能します。
エージェントは通話とチャットを処理し、スーパーバイザーは CCAI Platform ポータルを使用してレポートをモニタリングして取得できます。通話またはチャット セッションに関するすべての詳細は、セッション メタデータ ファイルに保存されます。このファイルには、セッション情報、転送、対応時間、参加者、診断情報など、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 Platform ポータルにログインしている必要があります。
カスタム ルックアップ URL は事前に構成しておく必要があります。
CRM でカスタム URL を処理して、関連する CRM レコードを表示する必要があります。
カスタム ルックアップ URL の動作
CCAI Platform は、空でないパラメータのみを URL に含めます。
CCAI Platform は、セッションが終了すると、ANI / UID / メールアドレスを含む生成された URL を CCAI Platform データベースに保存しません。
カスタム ルックアップ URL の構成
固有識別子、CRM の機能、動作が異なるため、2 つの異なる URL を作成する必要があります。1 つは IVR / PSTN / SMS セッション用、もう 1 つはウェブとモバイル SDK セッション用です。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 プラットフォーム ポータルの構成
管理者ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。
[設定] > [開発者向け設定] に移動します。
[CRM] セクションで、[カスタム CRM] を選択します。
[CRM 検索] で、カスタム URL を入力します。
CRM リクエストで使用する電話番号の形式を選択します。
[変更を保存] をクリックします。
まだ構成していない場合は、外部ストレージ サービスを構成します。詳細については、外部ストレージをご覧ください。
メールによる CRM レコードの更新
カスタム ルックアップ URL などの構成では、セッションが完了したら、CRM でセッション メタデータを更新する必要があります。この機能を使用すると、CCAI Platform はメールを使用してセッション データを自動的に送信できます。セッションが終了してから約 15 分後に、構成された場所にメールが送信され、メールの内容を使用して CRM のレコードが更新されます。この機能は、グローバルに構成することも、キューごとに構成することもできます。メールが受信されると、CRM はセッションの新しい CRM レコードを更新または作成するように構成されている場合があります。
詳細情報を送信
以下が含まれます:
Subject line
JSON 構文のセッション メタデータを含む本文
チャットの文字起こしを含む TXT 形式の添付ファイル(該当する場合)
CCAI Platform は、セッションの終了後 15 分間待機してからメールを送信します。
メールは、正常に終了したセッションに対してのみ送信されます。失敗したセッションや放棄されたセッションでは送信されません。
グローバル構成
管理者ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。
[設定] > [開発者向け設定] に移動します。
[CRM] セクションで、[カスタム CRM] が選択されていることを確認します。
[セッションの結果をメールで送信する] を有効にします。
メールの送信先となるメールアドレスを入力します。
[変更を保存] をクリックします。
キューごとの構成
管理者ロールが割り当てられているアカウントを使用して、CCAI Platform ポータルにログインします。
[Settings] > [Queue] に移動し、サブキューを選択します。
[セッションの結果をメールで送信する] を有効にします。
メールの送信先となるメールアドレスを入力します。

[Save Custom CRM setting] をクリックします。
設定の継承とオーバーライド
| 設定 | 動作 |
|---|---|
| グローバル = 有効でない キュー = 有効でない |
すべてのキューに送信しないでください。 |
| グローバル = 有効でない キュー = 有効 |
キューの設定(オン / オフの状態)は、グローバル設定をオーバーライドします。 メールは、指定されたキューから、キュー設定で定義されたメールアドレスに送信されます。 |
| グローバル = 有効 キュー = 有効でない |
キューの設定(メールアドレス、オン / オフの状態)は、グローバル設定を継承します。 メールは、特定のキューからグローバル設定で定義されたメールアドレスに送信されます。 |
| グローバル = 有効 キュー = 有効 |
キューの設定(メールアドレス)はグローバル設定をオーバーライドします。 メールは、指定されたキューから、キューの設定で定義されたメールアドレスに送信されます。 メールアドレスが空の場合、メールは送信されません。 |
エージェントのエクスペリエンス
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 アドレス)を入力します。
[Port] 番号を入力します。
SFTP の [Login User ID] を入力します。
SFTP サーバーで認証にパスワードが必要な場合は、[パスワード] フィールドに入力します。
SFTP サーバーで認証に秘密鍵が必要な場合は、[SSH 秘密鍵] チェックボックスをオンにします。
SSH 秘密鍵を入力(コピーして貼り付け)します。
秘密鍵のパスフレーズを入力します。セッション情報を SFTP サーバーの特定のフォルダに保存する必要がある場合は、[フォルダパス] チェックボックスをオンにして、[SFTP フォルダパス] を入力します。
[変更を保存] をクリックします。
Cloud Storage
宛先の Google Cloud バケット名を入力します。
Google Cloud クライアント ID を入力します。
Google Cloud クライアント シークレットを入力します。
セッション情報を Google Cloud バケット内の特定のフォルダに保存する必要がある場合は、[フォルダパス] チェックボックスをオンにして、Google Cloud フォルダパスを入力します。
[リンクして保存] をクリックします。
外部ストレージ構成をテストする
既存の標準インテグレーションを使用する 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 Platform アダプタにメディアを表示することです。外部ストレージまたは 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 ポータルで、[Settings] > [Developer Settings] をクリックします。[設定] メニューが表示されない場合は、 メニュー をクリックします。
[CRM] ペインで、[カスタム CRM] をクリックします。
[Display CRM in CCAI Platform portal] 切り替えボタンをクリックしてオンにします。
[表示 URL] にカスタム CRM ページの URL を入力し、[保存] をクリックします。
カスタム URL のスクリーンポップを開く
システムで連絡先が見つからない場合にカスタム URL 画面ポップを表示するには、[カスタム URL を開く] を使用します。一時的なアカウント ID を使用して CRM レコードを作成し、キューレベルの構成に基づいてパラメータを含むカスタムリンクをトリガーします。
キューごとに画面ポップを有効にする
[設定] > [キュー] > [IVR] に移動し、編集するキューをクリックします。
パネルの [カスタム URL を開く] に移動します。
URL を入力して、画面ポップを表示します。
変数パラメータ {ACCOUNT_ID} と {PHONE_NUMBER} を URL に含めます。
例が示されている。
- [保存] をクリックします。
カスタム CRM の汎用 API 統合
汎用 API 統合方法では、CRM の API を使用して CCAI Platform との双方向接続を確立できます。このシームレスな方法は、すぐに利用できる CRM 統合エクスペリエンスと同じ感覚で使用できます。
エージェントは、通話セッションまたはチャット セッションの CRM レコードを作成するために、何もする必要はありません。独自の API 構成に応じて、シームレスなレコード検索とレコード更新を可能にします。
用語
用語 |
説明 |
アカウント |
CRM のアカウント / 連絡先 / 顧客 / 見込み顧客エンティティを参照するために使用されます。CRM では、このエンティティに別の名前が付けられている場合があります。 アカウントにはレコードが含まれます。 |
記録 |
CRM のケース / チケット / 会話 / インシデント エンティティを指すために使用されます。CRM では、このエンティティに別の名前が付けられている場合があります。 レコードはアカウントに属します。 |
コメント |
CRM のコメント / メモ エンティティを参照するために使用されます。CRM では、このエンティティに別の名前が付けられている場合があります。 コメントはレコードに属します。 |
API 設定
このセクションでは、カスタム CRM API 設定に固有の設定について説明します。
認証方法
CCAI Platform は、CRM の 3 つの認証方法をサポートしています。
基本認証: ユーザー名とパスワードを含む認証情報を構成します。
カスタム ヘッダー: カスタム ヘッダーの Key-Value ペア([フィールド キー] と [フィールド値])を構成します。必要な数だけペアを入力します。
OAuth: CCAI Platform は、業界標準の承認プロトコルである OAuth 2.0 をサポートしています。[Include the Redirect URL as part of the Authorization URL and Token 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 を入力します。
CRM ルックアップ URL は、ウェブ SDK とモバイル SDK でも使用できます。SDK を構成して、CRM アカウントとレコード情報を検索し、エージェント アダプタに表示できます。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 がパラメータからリクエスト本文をビルドするときに、リクエスト オブジェクトが基本的なプロパティ マップであることを示します。
コンテナ。これは、送信するリクエスト オブジェクト データを構造内にネストする必要があることを示しています。[Map] または [Array] から [Container Type] を選択します。コンテナ名を入力します。パラメータからリクエスト本文をビルドするときに、親オブジェクト名として使用されます。
例: Map: { container_name : { ...parameters } }
例: 配列: {container_name : [ { ...parameters } ] }
[Response Data Location] を入力します。これは、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} |
レコードの検索 / 作成エンドポイントを呼び出すことで検出されます。 |
| セッション ID | {SESSION_ID} |
CCAI プラットフォームのセッション ID |
| メニューパス | {MENU_PATH} |
|
| 発信電話番号 | {OUTBOUND_PHONE_NUMBER} |
設定の選択を使用してフォーマット |
| キュー名 | {QUEUE_NAME} |
|
| キュー ID | {QUEUE_ID} |
内部キュー ID。 |
| SDK の名前 | {SDK_NAME} |
ウェブ SDK またはモバイル 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 レスポンスでパラメータの場所を入力します。これは、アタッチメント ビルダーの URL で {ATTACHMENT_ID} として使用できます。
Attachment Builder の URL。ファイル添付をダウンロードする URL を入力します。RECORD_ID と ATTACHMENT_ID は使用可能な変数です。
例:
https://www.example.com/Accounts/{RECORD_ID}/Attachments/{ATTACHMENT_ID}添付ファイルの URL
ファイル ダウンロード URL の JSON レスポンスでパラメータの場所を入力します。
ファイルがアップロードされたときに CCAI Platform がレコードにコメントを残すようにするには、[Add comment to CRM] レコード チェックボックスをオンにします。これらのコメントには、Comment エンドポイントの Text Format 設定が適用されます。
次の例は、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 の評価とコメント
カスタムデータ パッケージ
転送コメント
処理コードとメモ
アンケートの質問と回答
コメントのテキスト形式を選択します。[テキストを HTML に変換] チェックボックスがオンになっている場合、テキストは HTML 形式になります。それ以外の場合は、書式なしテキストになります。
リクエストの例(POST/PUT/PATCH):
{
"comment": "Some text",
// string can also be formatted on CCAI Platform 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: フロー
CCAI Platform のカスタム CRM(汎用 API)統合は、一連のフローとして機能します。通話、チャット、ボイスメールの開始時に、プラットフォームは構成されたアカウントとレコードのステップを実行します。これにより、CRM でアカウントとレコード(チケットやケースなど)が検索または作成されます。インタラクション中およびインタラクション後に、コメント、レコードの更新、ファイルのアップロードなどのアクションも実行します。次のフローチャートは、各ステップが実行されるタイミングと、実行するために構成する必要があるものを示しています。
フローの実行タイミング
これらのフローは、インタラクションのさまざまなポイントで実行されます。アカウントと記録の手順は、やり取り中に行います。録音、文字起こし、ボイスメールは、コメント、更新レコード、その他のセッション後のアクションとともに、インタラクションの終了後にアップロードされます。添付ファイル(写真、動画、ドキュメント、音声)は、やり取り中に共有されるとアップロードされます。これらのフローのいずれかが実行される前に、次の処理が行われます。
- アクションのトリガーが発生した(アップロード可能なファイルがある、通話、チャット、ボイスメールが終了したなど)。
- カスタム CRM の設定で、関連するアクションが有効になっている。たとえば、ファイル形式がアップロード用に有効になっている、または API Comment エンドポイントまたは API Update エンドポイントが構成されている。
- CRM への書き込み(レコードへのアップロード、コメントの投稿、レコードの更新)を行う場合は、必要なエンドポイントが構成され、セッションのレコードが存在している必要があります。レコードがまだ作成されていない場合、プラットフォームはアクションを保留し、レコードが存在するようになると自動的に実行します。
外部ストレージにファイルをアップロードする場合、レコードは必要ありません。レコードの要件は CRM の書き込みに適用されます。
一部の構成では、アカウントがセッション レコードとして機能します。レコードの作成がスキップされ、セッション データが CRM アカウントにプッシュされると、レコードレベルのエンドポイントの代わりに、アカウントレベルのコメント、アップロード、更新のエンドポイントが使用されます。図の「レコード」には、この構成が有効になっている場合にセッション レコードとして機能するアカウントが含まれます。
アカウント、レコード、セッション後の注文、再試行のタイミング、エラーの動作については、カスタム CRM(汎用 API)でのエラー処理、再試行、呼び出しの順序をご覧ください。
フローチャート
これらのフローチャートでは、次の 3 つの結果が繰り返し表示されます。
| 結果 | 意味 |
|---|---|
| スキップ | このアクションは構成によってオフになっているため、何も送信されません。 |
| 保留中 | アクションは構成されていますが、レコードが存在するまで待機し、その後自動的に実行されます。 |
| 構成が未完了です | 必要なエンドポイントがないため、アクションを実行できません。 |
基本的なフロー
インタラクションでは、アカウント ステップ、レコードステップ、セッション後のアクションの順に実行されます。各ステップは、独自の設定とエンドポイントが構成されている場合にのみ実行されます。外部ストレージへのアップロードはレコードなしで実行されます。その他のセッション後のアクションは CRM に書き込まれ、レコードが存在するまで待機します。この概要は、セッション後のパスを示しています。やり取り中に共有されたファイルは、利用可能になるとすぐにファイルのアップロード フローに従います。

アカウントを検索または作成する
プラットフォームは、提供された ID、電話番号、メールアドレス、または設定された照合方法でアカウントを検索します。アカウントが見つからず、アカウント作成が有効になっている場合は、アカウントが作成されます。識別情報がない場合は、匿名アカウントが作成されます。見つかったアカウントまたは作成されたアカウントがセッションにリンクされます。

レコードを検索または作成する
記録モードが有効になっている場合、プラットフォームは、セッションの既存の記録がまだ使用可能であれば再利用します。使用できない場合は、新しい記録を作成します。レコード ID は、リクエストに付属している場合や、インタラクションにすでに関連付けられているレコードから取得される場合があります。リクエストにレコード ID が指定されている場合、プラットフォームは、そのレコードを再利用したか、代わりに新しいレコードを作成したかを示すコメントも追加します。

レコードを更新する
レコードが存在すると、プラットフォームは構成済みのテンプレートから作成された更新リクエストを送信します。更新エンドポイントがプレースホルダの値(#など適宜文脈に応じて)に設定されている場合、更新はスキップされます。

セッション後のアクション
セッション終了後、複数の独立したアクションを実行できます。各アクションは、通話、チャット、メールの終了、評価の送信、アンケートへの回答、セッション後の録音、文字起こし、ボイスメールの利用可能化など、独自のイベントによってトリガーされます。ファイルのアップロードは、ファイルのアップロード フローに従います。コメントと更新のアクションは CRM に書き込まれ、レコードが存在するまで待機します。

コメント
コメントは、完了、評価、アンケート、ファイル アップロードのアクションによって投稿できます。API Comment エンドポイントと既存のレコードが必要で、レコードが存在するまで待機します。コメントは、コメントの設定に応じて HTML または書式なしテキストとして投稿されます。

ファイルのアップロード フロー
外部ストレージはファイル形式ごとに有効になります。ファイル形式で有効にすると、ファイルは外部ストレージに保存されます。有効にしない場合、ファイルは CRM に保存されます。別の設定で、ファイルを外部ストレージに送信した後に CRM にアップロードすることもできます。CRM への書き込み(添付ファイルまたはコメント)は、レコードが存在する場合にのみ 1 回実行されます。

エージェント アダプタ
カスタム 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 機能を強化するために利用できる特定のイベントがあります。
コールアダプター
- 新しい通話
- コンシューマーが参加しました
- 通話の秘匿化を開始しました
- 通話の秘匿化が終了しました
- 通話を終了
チャット アダプター
- 新しいチャット
- アクティブなチャット
- チャットのインバウンド メッセージ
- チャットの送信メッセージ
- フォームを送信しました
- フォームの入力が完了しました
- チャットを終了
- チャットを閉じた
両方のアダプター
- エージェントのログイン
- 画面共有セッションが開始されました
- 画面共有セッションのリモコンが変更されました
- 画面共有セッションのデバイス全体が変更されました
- 画面共有セッションが終了しました
- 転送
- パーティーを追加しました
- エージェントがセッションに接続する
- エージェントのログアウト
- Agent Assist を追加しました
- Virtual Task Assistant が参加しました
- 仮想タスク アシスタントが退出しました
- 仮想タスク支援(機能)のセッション変数を受信しました
- CRM レコードのポップアップ
- サードパーティのページを開く
メッセージの形式
すべてのイベントは、ブラウザの window.postMessage() API を使用して、アダプタ iframe からその直接の親ウィンドウ(window.parent)に送信されます。親ウィンドウは、それを 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)またはキャメルケース(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 が入力されている場合は、その 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 Platform のセッション タイプ。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 から開始されます。
- Voice Inbound(API): API を使用して開始。
- 音声スケジュール設定(モバイル): インストール済みのモバイル SDK を使用してスケジュール設定。
- 音声スケジュール設定(ウェブ): インストール済みのウェブ SDK を使用してスケジュール設定。
- 音声発信: エージェントが番号をダイヤルして開始します。
- 音声アウトバウンド(API): API を使用して開始。
- 音声キャンペーン: アウトバウンド ダイヤラー(キャンペーン)を使用して開始されます。
チャットの種類
- メッセージ(WhatsApp): WhatsApp を使用して開始。
- メッセージング インバウンド(SMS)
- メッセージ送信(SMS)
- メッセージ送信(API を使用した SMS)
- メッセージ(ウェブ): インストール済みのウェブ SDK を使用して開始。
- メッセージ(モバイル): インストール済みのモバイル SDK を使用して開始されます。
通話またはチャットの種類
- 画面共有セッション: 通話中またはチャット中にエージェントまたはエンドユーザーが開始します。
イベントタイプ
エージェント アダプタによって投稿されるイベントタイプは次のとおりです。type 列は、メッセージの type フィールドに表示される、大文字と小文字を区別する正確な文字列です。
| イベント | type |
アダプタ |
|---|---|---|
| エージェントのログイン | Agent_Login |
両方 |
| 新しい通話 | New_Call |
電話 |
| 消費者が参加 | Consumer_Joined |
電話 |
| 通話を終了する | End_Call |
電話 |
| 通話の秘匿化が開始されました | call_redaction_started |
電話 |
| 通話の秘匿化が終了しました | call_redaction_ended |
電話 |
| チャットを新規作成 | New_Chat |
チャット |
| チャットを終了する | End_Chat |
チャット |
| アクティブなチャット | Active_Chat |
チャット |
| チャットのインバウンド メッセージ | Chat_Inbound_Message |
チャット |
| チャットの送信メッセージ | 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 |
両方 |
| タスク支援(機能)のセッション変数の受信 | 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: エージェント ID省略可:
agent_custom_id: エージェントのカスタム 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: エージェントのカスタム識別子(エージェントのプロファイルに入力されている場合)。省略可。agent_email: エージェントのアカウントに関連付けられたメールアドレスqueue_id: 呼び出し元のキューの識別子。このフィールドは、通話がキューから発信された場合に表示されます。省略可。queue_path: 呼び出し元のキューのパス。このフィールドは、通話がキューから発信された場合に表示されます。省略可。campaign_id: キャンペーンの ID。このフィールドは、キャンペーン呼び出しに含まれます。省略可。campaign_name: キャンペーンの名前。このフィールドは、キャンペーン呼び出しに含まれます。省略可。call_id: コール IDsession_type: セッション タイプvirtual_agent_id: 仮想エージェントの識別子。このフィールドは、仮想エージェントに関連するイベントに含まれます。省略可。va_data_parameters: 仮想エージェントに送信するためにキューで構成された変数。このフィールドは、仮想エージェントが関与するイベントに含まれます。省略可。session_variable: CCAI プラットフォームに送信される仮想エージェントのすべての変数。省略可。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
以下に、Call redaction started イベントの例を示します。
{
"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: エージェントのカスタム識別子(エージェントのプロファイルに入力されている場合)。省略可。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: エージェントのカスタム 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: エージェント ID。agent_custom_id: エージェントのカスタム 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: エージェント IDagent_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: エージェント IDagent_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: 仮想エージェントからコンタクト センター AI プラットフォームに送信されるすべての変数。省略可。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: エージェント IDagent_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: エージェント 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 の署名なし顧客データ(省略可)をご覧ください。省略可。
画面共有セッションのデバイス全体が変更されました
画面共有セッションのデバイス全体の変更イベントは、デバイス全体の画面共有セッションのステータスが変更されたときに発生します。このイベントは、デバイス全体の画面共有セッションのステータスを示します。詳しくは、画面共有をご覧ください。
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: エージェント 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: エージェント 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: ペイロードで CCAI Platform に送信される仮想エージェントのすべての変数。省略可。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: エージェント IDsession_id: セッション ID。省略可。queue_language_id: キューの言語。省略可。Timestamp: イベントが投稿された時刻(Unix エポックからのミリ秒数)
Virtual Task Assistant が参加しました
仮想タスク アシスタント参加イベントは、仮想タスク アシスタント(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 Platform ポータルで構成され、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 によってキャプチャされたセッション変数。それぞれに、キャプチャしたインテントとキャプチャされた日時が含まれます。省略可。
仮想タスク支援(機能)のセッション変数を受信しました
仮想タスク アシスタントのセッション変数受信イベントは、セッション中に 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