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
を修正して、自分の環境にデプロイできるように修正します。
修正対象
以下の値を修正します。dev
やprod
などの環境名は必要に応じて修正します。
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 に保存した音声解析データや文字起こしデータを活用するなど、チャレンジしてみてください。
Updated 9 months ago