BigQuery に Outgoing Webhook を使って応対履歴データを溜める

応対履歴データを、Outgoing Webhook で BigQuery に溜め込み、さまざまな用途で使えるようにする手順を紹介します。

概要

本ガイドでは、 MiiTel の応対履歴のデータを Outgoing Webhook で API 経由で BigQuery に連携をする仕組みの実装例をご紹介致します。

応対履歴データを BigQuery に連携することで、BigQuery 上でクエリを作成することができたり、BI ツールに連携してデータを自由に可視化することなどができます。

システム構成

今回ご紹介するシステム全体は、下図の様になっています。

インフラストラクチャには AWS を利用しており、 API Server の部分は API Gateway および Lambda で実装しています。

BigQuery への連携は、BigQuery の API を用いて実現します。Lambda が Outgoing Webhook を受信したらその内容に応じて連携を行います。

実装方法

それでは、実際の実装方法をご紹介致します。

システム構成図の通り、AWS 上に API Gateway で MiiTel の Outgoing Webhook を受信して、 Lambda 経由で BigQuery に連携しますが、 AWS 上へのデプロイは Serverless Framework を利用します。

サンプルコードをダウンロードする

RevComm の GitHub レポジトリに今回の実装のベースとなるコードを公開しておりますので、ダウンロードしてください。

https://github.com/revcomm/miitel-developers-public/tree/main/samples/ow-bigquery-integration-api

GCP のクレデンシャルファイルを格納する

config内に、BigQuery の API を実行するための GCP クレデンシャルファイルを格納します。

既存のファイルはダミーファイルなので破棄していただいて大丈夫です。

env の値を修正する

envsフォルダ内にある、デプロイ先環境名に応じたファイルを編集します。(デプロイ先環境名は、後述の serverless.yml内での環境名に対応します)

修正対象

  • GOOGLE_CREDENTIAL: 格納ファイル名を修正する。app/config/の後ろにファイル名を入力する
  • GCP_TABLE_NAME: データ連携先の BigQuery テーブル名を入力する。<your-project>.<your-dataset>.<your-table>という形式で入力する

serverless 内の設定値を修正する

ow-bigquery-integration-api/serverless.ymlを修正して、自分の環境にデプロイできるように修正します。

修正対象

以下の値を修正します。devprodなどの環境名は必要に応じて修正します。

  • domains の値: サブドメインは任意の値を入力する。トップドメインは保有しており、かつ、AWS の Route53 にて利用できるドメインを入力する
  • apiKeysの値: nameに任意の値を入力する。valueには推測されない乱数を入力する

自身の環境にデプロイする

Serverless Framework でインストールします。

パッケージをインストールする

npm install

ドメインを準備する

--stageには、デプロイしたい環境名を指定します。

sls create-cert --stage dev --aws-profile <your-profile-name>
sls create_domain --stage dev --aws-profile <your-profile-name>

デプロイする

--stageには、デプロイしたい環境名を指定します。

sls deploy --stage dev --aws-profile <your-profile-name>

エラーが出た場合は、都度エラー内容を確認してください。

成功したら、次に進みます。

MiiTel Admin で Outgoing Webhook を設定する

作成した API に応対履歴の情報を連携するため、MiiTel Admin で Outgoing Webhook を設定します。

Outgoing Webhook の設定画面を表示する

https://account.miitel.jp/v1/signin にアクセスし、管理者権限があるユーザーで MiiTel Analytics にログインします。

[外部連携] > [Outgoing Webhook] をクリックします。

緑色の [応対履歴連携設定を追加] をクリックします。

応対履歴連携設定を追加する

以下の値を入力します。

  • 名前: 任意の名前を入力する
  • URL: https://<serverless.yml の domains に設定した値>/api/v1/bigquery/addを入力する
  • 追加ヘッダー:{"X-API-KEY": "<serverless.yml の apiKeys に設定した値>"}を入力する

正常に保存されると、下図のように BigQuery への Outgoing Webhook の設定が表示されます。

設定は以上です。この設定以降、MiiTel で生成された応対履歴は BigQuery に連携されます。

ここまでお疲れ様でした。

ぜひ、ここからさらに、BigQuery に保存した音声解析データや文字起こしデータを活用するなど、チャレンジしてみてください。