Customer Experience Insights(CX インサイト)を使用すると、CX インサイトの会話と分析データを BigQuery にエクスポートし、独自の未加工クエリを実行できます。エクスポート プロセスでは、Speech Analysis フレームワークに似たスキーマが書き込まれます。このガイドでは、エクスポート プロセスについて詳しく説明します。
新しい BigQuery テーブルとデータセットを作成する
CX Insights Exporter が正常に動作するには、BigQuery テーブルが必要です。ターゲットテーブルがない場合は、このサンプルを使用して bq コマンドライン ツールで新しいテーブルとデータセットを作成します。 出力スキーマと列の定義については、BigQuery スキーマのドキュメント をご覧ください。
BigQuery には、データソースの場所に関する制限があります。
ロケーションに関する考慮事項をご覧ください。Cloud
Storage バケットに適用される制限は、CX インサイトにも適用されます。たとえば、BigQuery データセットが EU
マルチリージョン ロケーションにある場合、europe-* ロケーションのいずれかからのみ CX インサイトのデータをエクスポートできます。
bq mk --dataset --location=LOCATION PROJECT:DATASET bq mk --table PROJECT:DATASET.TABLE
会話データを BigQuery にエクスポートする
エクスポート ツールは、フィルタリングと、 顧客管理の暗号鍵(CMEK)で保護された テーブルへのデータの書き込みの両方をサポートしています。この機能を有効にしない場合は、スキップして データを BigQuery にエクスポートできます。
リクエストにフィルタを追加する(省略可)
BigQuery へのエクスポートは、
会話クエリに適用できるフィルタのすべての組み合わせと互換性があります。
たとえば、次のサンプルでは、2021
年 1 月 1 日から 2021 年 1 月 2 日(太平洋標準時)の間に agent_id「007」によって処理された 10
回以上のターンを含むすべての会話がエクスポートされます。
FILTER='create_time>"2021-01-01T00:00:00-08:00" create_time<"2021-01-02T00:00:00-08:00" agent_id="007" turn_count>="10"'
CMEK で保護されたテーブルにデータをエクスポートする(省略可)
CX インサイト サービス アカウントに Cloud KMS CryptoKey の暗号化/復号ロールを付与します。 サービス アカウントの形式については、既知の問題のドキュメント をご覧ください。サービス アカウントに適切なロールを付与したら、テーブルを保護する KMS 鍵の完全修飾名をエクスポート リクエストに追加します。
KMS_KEY='projects/<project>/locations/<location>/keyRings/<key_ring>/cryptoKeys/<key_name>'
リクエストで書き込み処理オプションを指定する(省略可)
CCAI Insights エクスポートは、BigQuery の次の 書き込み処理オプションをサポートしています。
WRITE_TRUNCATE: テーブルがすでに存在する場合、BigQuery はテーブルデータを上書きし、クエリ結果のスキーマを使用します。これはデフォルトのオプションです。WRITE_APPEND: テーブルがすでに存在する場合、BigQuery はデータをテーブルに追加します。
たとえば、次のサンプルでは、エクスポートされたデータが既存の宛先テーブルに追加されます。
WRITE_DISPOSITION='WRITE_APPEND'
データを BigQuery へエクスポートする
次のコードサンプルは、データをエクスポートする方法を示しています。詳細については、 エクスポートのリファレンス ドキュメント をご覧ください。
エクスポートにより、長時間実行される Operation
オブジェクトが作成されます。オペレーションを
ポーリング
して、そのステータスを確認できます。
REST
リクエストのデータを使用する前に、 次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクト ID。
- DATASET: データのエクスポート先となる BigQuery データセットの名前。
- TABLE: CX インサイト データの書き込み先となる BigQuery テーブル名。
- FILTER_QUERY: 特定のプロパティを持つ会話のみをエクスポートするために CX インサイトで使用されるクエリ。たとえば、「agent_id=\"007\"」と入力すると、エージェント 007 に関連付けられた会話のみがエクスポートされます。
HTTP メソッドと URL:
POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/insightsdata:export
リクエストの本文(JSON):
{
"bigQueryDestination": {
"projectId": "PROJECT_ID",
"dataset": "DATASET",
"table": "TABLE",
},
"filter": "FILTER_QUERY"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
}
Python
CX インサイトに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の認証の設定をご覧ください。
Java
CX インサイトに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の認証の設定をご覧ください。
Node.js
CX インサイトに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の認証の設定をご覧ください。
別のプロジェクトにデータをエクスポートする(省略可)
デフォルトでは、CX インサイト BigQuery エクスポートは、CX インサイト データを所有するのと同じプロジェクトにデータを書き込みます。ただし、別のプロジェクトの BigQuery にエクスポートすることもできます。
Identity and Access Management(IAM)コンソールまたは gcloud を使用して、CX インサイト サービス
アカウントに受信者プロジェクトへの BigQuery アクセス権があることを確認します。
gcloud projects add-iam-policy-binding RECEIVER_PROJECT \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-contactcenterinsights.iam.gserviceaccount.com \
--role=roles/bigquery.admin
特定のプロジェクトにデータをエクスポートするには、受信者プロジェクトの
ID 番号を project_id フィールドに BigQueryDestination
オブジェクトに入力します。
BigQuery でデータをクエリする
このコマンドを実行して、BigQuery でデータをクエリします。その他のクエリ オプションについては、 BigQuery クイックスタート のドキュメントをご覧ください。
gcloud config set project PROJECT bq show DATASET.TABLE
エクスポートされた会話のクエリ:
bq query --use_legacy_sql=false \ "SELECT conversationName FROM DATASET.TABLE"