Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

CallConnect REST API を使って、PowerBI で通話対応分析レポートを作成してみる(CData REST ODBC Driver)

前回の記事で CallConnect REST をざっと触ってみました。

kageura.hatenadiary.jp

今回は、Microsoft PowerBI と を組み合わせて、レポートを作成しています。

Power BI | 対話型のデータ視覚化 BI ツール

CData REST Driver

f:id:sugimomoto:20190729105724p:plain

できあがりイメージ

CallConnect REST API では通話時間(duration)とキューの待ち時間(wait_time )が取れるので、それを元に顧客ごとの通話時間合計とユーザーごとの応答速度分析ができるレポートを作成してみました。

元ネタはRecoredsデータですが、リレーションを使って、UsersとContactsデータも組み合わせています。

f:id:sugimomoto:20190729105733p:plain

実現イメージ

今回は Microsoft PowerBI からCallConnectに接続しますが、CallConnect API は単純にツールと接続することはできません。PowerBI がどのようにWeb API側へリクエストを投げるべきかの判断材料やメタデータの情報が無いためです。

f:id:sugimomoto:20190729105740p:plain

そこで、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に変換してツールに返します。

f:id:sugimomoto:20190729105747p:plain

これにより、各種ツールからアドホックSQLによるリクエストがあったタイミングで最新のデータをCallConnect REST API から取得することが可能です。

なお、今回はPowerBIから接続としましたが、TableauやQlikなどからも同じように接続が可能です。

手順

それでは実際に PowerBI と CallConnect REST APIの接続方法を説明します。

PowerBI は以下URLから予めデスクトップ版をダウンロードしておいてください。

powerbi.microsoft.com

REST データ処理用 RSDファイルの作成

まず、CallConnect の API を CData 各種 REST DeiverがSQLとして解釈できるように設定ファイルを作成します。

サンプルとしてCallConnectの顧客や通話履歴を取得するための設定ファイルを作成していますので、以下のGitHubから保存してください。

github.com

保存先フォルダは後ほど使用するので「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/

f:id:sugimomoto:20190729105812p:plain

ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。

※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。

f:id:sugimomoto:20190729105818p:plain

インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。

以下の項目をセットし、保存します。

Otherには事前に取得したAPITokenを指定します。

  • Location=C:\CData_REST\CallConnect;
  • Other="ApiToken=XXXXX;";

f:id:sugimomoto:20190729105825p:plain

以上で、CData REST Driverの準備は完了です。

PowerBI からの接続

それでは、PowerBIから CData REST ODBC Driverに接続します。

PowerBI デスクトップを立ち上げて「データを取得」をクリックし

f:id:sugimomoto:20190729105832p:plain

ODBC 接続を選択します。

f:id:sugimomoto:20190729105837p:plain

データソース名から先程ODBCで登録したDSNを選択し、Windows認証で接続します。

f:id:sugimomoto:20190729105842p:plain

すると、以下のようにテーブル化されたCallConnect REST APIが選択できるようになります。

今回は、対象の値が格納されているRecoredsテーブルと、顧客マスタであるContacts、ユーザーマスタであるUsersを選択して取得します。

f:id:sugimomoto:20190729105847p:plain

これでそれぞれのデータを読み取ることができました。ちなみに、REST APIはページング処理があるので、通常はページセット単位でしか取得できませんが、CData REST Driverの設定で自動的に存在しているレコードをすべて取得するように調整しています。

なお、以下のデータはダミーデータです。

f:id:sugimomoto:20190729105853p:plain

また、ビジュアライズする前にPowerBIで分析しやすくするため、リレーションを構成しておきましょう。

Recoredsテーブルのcontact_idとContactテーブルのid

Recoredsテーブルのuser_idとUsersテーブルのid

それぞれをRecoredsに対して多対一で接続します。これで分析するための準備は完了です。

f:id:sugimomoto:20190729105901p:plain

あとはシンプルに縦棒グラフと横棒グラフを使ってグラフを作成しました。

顧客ごとの通話時間合計では「軸:Contactsテーブル:email」、「値:Recoredsテーブル:duration(合計)」

ユーザーごとの平均応答速度・中央値では「軸:Usersテーブル:name」、「値:Recoredsテーブル:wait_time(平均・中央値)」

をそれぞれ出してみました。

f:id:sugimomoto:20190729105908p:plain