CallConnect REST API を使って、PowerBI で通話対応分析レポートを作成してみる(CData REST ODBC Driver)
前回の記事で CallConnect REST をざっと触ってみました。
今回は、Microsoft PowerBI と を組み合わせて、レポートを作成しています。
できあがりイメージ
CallConnect REST API では通話時間(duration)とキューの待ち時間(wait_time )が取れるので、それを元に顧客ごとの通話時間合計とユーザーごとの応答速度分析ができるレポートを作成してみました。
元ネタはRecoredsデータですが、リレーションを使って、UsersとContactsデータも組み合わせています。
実現イメージ
今回は Microsoft PowerBI からCallConnectに接続しますが、CallConnect API は単純にツールと接続することはできません。PowerBI がどのようにWeb API側へリクエストを投げるべきかの判断材料やメタデータの情報が無いためです。
そこで、CData REST ベースの各種 Driverを用いて、このボトルネックを解決します。
まず、各ツールからはODBCインタフェースでSQL(Select文)をCData REST ODBC Driverに向けて発行してもらいます。そのリクエストを受け取った、CData ODBC REST Driverは、CallConnect API のエンドポイントに対して、SQL文を解釈し、HTTPリクエスト形式に変換して、Getメソッドを発行します。
リクエスト後、Jsonフォーマットで返ってきたデータセットはCData REST ODBC DriverがODBCインタフェースのResultsetに変換してツールに返します。
これにより、各種ツールからアドホックにSQLによるリクエストがあったタイミングで最新のデータをCallConnect REST API から取得することが可能です。
なお、今回はPowerBIから接続としましたが、TableauやQlikなどからも同じように接続が可能です。
手順
それでは実際に PowerBI と CallConnect REST APIの接続方法を説明します。
PowerBI は以下URLから予めデスクトップ版をダウンロードしておいてください。
REST データ処理用 RSDファイルの作成
まず、CallConnect の API を CData 各種 REST DeiverがSQLとして解釈できるように設定ファイルを作成します。
サンプルとしてCallConnectの顧客や通話履歴を取得するための設定ファイルを作成していますので、以下のGitHubから保存してください。
保存先フォルダは後ほど使用するので「C:\CData_REST\CallConnect」といった書き込み可能な任意のフォルダに配置してください。
CData REST Driverのインストール
PowerBI と CallConnect APIを繋ぐために必要となるCData REST Driverをインストールします。
まず、以下のURLからCData REST ODBC Driverの30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。
https://www.cdata.com/jp/drivers/rest/odbc/
ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。
※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。
インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。
以下の項目をセットし、保存します。
Otherには事前に取得したAPITokenを指定します。
- Location=C:\CData_REST\CallConnect;
- Other="ApiToken=XXXXX;";
以上で、CData REST Driverの準備は完了です。
PowerBI からの接続
それでは、PowerBIから CData REST ODBC Driverに接続します。
PowerBI デスクトップを立ち上げて「データを取得」をクリックし
ODBC 接続を選択します。
データソース名から先程ODBCで登録したDSNを選択し、Windows認証で接続します。
すると、以下のようにテーブル化されたCallConnect REST APIが選択できるようになります。
今回は、対象の値が格納されているRecoredsテーブルと、顧客マスタであるContacts、ユーザーマスタであるUsersを選択して取得します。
これでそれぞれのデータを読み取ることができました。ちなみに、REST APIはページング処理があるので、通常はページセット単位でしか取得できませんが、CData REST Driverの設定で自動的に存在しているレコードをすべて取得するように調整しています。
なお、以下のデータはダミーデータです。
また、ビジュアライズする前にPowerBIで分析しやすくするため、リレーションを構成しておきましょう。
Recoredsテーブルのcontact_idとContactテーブルのid
Recoredsテーブルのuser_idとUsersテーブルのid
それぞれをRecoredsに対して多対一で接続します。これで分析するための準備は完了です。
あとはシンプルに縦棒グラフと横棒グラフを使ってグラフを作成しました。
顧客ごとの通話時間合計では「軸:Contactsテーブル:email」、「値:Recoredsテーブル:duration(合計)」
ユーザーごとの平均応答速度・中央値では「軸:Usersテーブル:name」、「値:Recoredsテーブル:wait_time(平均・中央値)」
をそれぞれ出してみました。