HotProfileの商談データをCData ODBC REST Driver ＋ Tableauで可視化してみる

# はじめに

去年2017年12月のプレスリリースですが、クラウド名刺管理の「HotProfile」がAPIオープン化を発表しています。
最近日本国内のクラウドアプリケーションでも、どんどんAPIが公開されて開発者としては嬉しい限りです。

クラウド名刺管理「HotProfile」のAPIオープン化を発表
https://www.hammock.jp/release/171219.html

特に名刺情報は展示会や営業活動における顧客情報（潜在顧客を含める）の主な発生源となるため、様々な他のアプリケーションでも要となる情報です。

また、HotProfileは名刺情報に加えて、SFA・マーケティングの機能が充実しているので、今回はそれらのデータを対象として、APIを利用したTableauでのビジュアライズを行ってみました。

# HotProfileとは

株式会社ハンモックが提供している「SFA」「名刺管理」「マーケティング」の3つを業務プロセスが連動するSaaS型クラウドアプリケーションです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/949c1d1f-c4dd-305f-fe6a-127e80e14c42.png)

詳しくは以下のURLからどうぞ。

https://www.hammock.jp/hpr/

なおHot Profile APIでは、現在以下の5種類のエンドポイントが提供されています。

-「名寄せされた名刺情報」
-「名刺の画像データ」
-「営業報告」
-「商談情報」
-「タスク情報」

# 実現イメージ

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

そこで、CData REST ODBC Driverを用いて、このボトルネックを解決します。

まず、各BIツール（Tableau、QlikSence、PowerBI）からはODBCインタフェースでSQL（Select文）をCData REST ODBC Driverに向けて発行してもらいます。そのリクエストを受け取った、CData ODBC REST Driverは、HotProfileのWebAPIのエンドポイントに対して、SQL文を解釈し、HTTPリクエスト形式に変換して、Getメソッドを発行します。

リクエスト後、Jsonフォーマットで返ってきたデータセットはCData REST ODBC DriverがODBCインタフェースのResultsetに変換してBIツールに返します。

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/53a4b06a-47da-7958-6205-ad07e4890c62.png)

今回の記事では最終的に以下のように商談データを元にTableauでのビジュアライズを行います。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/e02f867a-9e2e-3369-809f-81f78ab4322c.png)

# 前提条件
本記事では以下のサービスや製品を使用しています。

- HotProfileアカウント
- CData REST ODBC Driver ※30日間の評価版あり
- Tableau Desktop ※無料トライアル版あり

# 手順

## HotProfile Web API 利用準備

まず、HotProfileへWeb APIアクセスするにあたって必要となるAPIキーを取得します。

HotProfileログイン画面へ移動し、ログインを行います。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/f23f5036-0d2a-8e4d-9372-baaa31193c24.png)

ヘッダーナビゲーションから、ユーザー名のボタンをクリックし、マイページへ移動します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/833d4633-df52-3d5d-8f8e-d6956da6ed45.png)

マイページの左ナビゲーションから［外部連係］を選択すると、APIキーを管理する画面が表示されるので

ここから外部サービス連係の［APIキー］をコピーして控えておきます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/e6b2153b-cfec-13a8-f952-d2ed8b9425d9.png)

以上でHotProfile側の準備は完了です。

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

続いて、HotProfileのWeb APIをCData ODBC REST DeiverがSQLとして解釈できるように設定ファイルを作成します。

サンプルとしてHotProfileのリード管理 (Leads)と商談管理（Deals）のデータを取得するための設定ファイルを作成していますので、以下のGitHubから保存して、利用してみてください。

[CData.REST.HotProfile/deals.rsd](https://github.com/sugimomoto/CData.REST.HotProfile/blob/master/deals.rsd)

[CData.REST.HotProfile/leads.rsd](https://github.com/sugimomoto/CData.REST.HotProfile/blob/master/leads.rsd)

保存先フォルダは後ほど使用するので「C:\CData_REST\HotProfile」といった書き込み可能な任意のフォルダに配置してください。

## CData ODBC REST Driverのインストール

TableauとHotProfileのAPIを繋ぐために必要となるCData ODBC REST Driverをインストールします。

CData REST ODBC Driverの30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/dbb5b845-9543-4d62-d088-9b748998bd7f.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/cba97e34-7c1f-9543-a030-404a71917f97.png)

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

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

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

- Schema
    - Location : 先程RSDファイルを配置したフォルダパス（例：C:\CData_REST\HotProfile）   

- その他
    - Other　：　ApiKey=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX;

OtherのApiKeyには、先程取得したHotProfileのAPIキーを入力してください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/bb6d5f94-3936-9679-407a-703e102d1bec.png)

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

## Tableauでの接続確認

それでは、実際にTableauと接続して、データの取得処理を実施してみましょう。

Tableau Desktopを起動して、データ接続より「サーバーへ」＞「詳細」＞「その他データベース（ODBC）」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/105926b1-b0dd-0875-8ea2-b60830c09c17.png)

「その他のデータベース（ODBC）」設定ウィンドウが開いたら、接続手段内のDSNから「CData REST Source」を選択して「サインイン」します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/f773f96b-62be-083a-50c6-050750dac2c2.png)

サインイン完了後「データソース」画面が開くので、左側のペインで、表「Deals (REST.Deals) (CData))」を選択して、右上のエリアにドラッグ＆ドロップします。抽出を行い、右下のデータプレビューにHotProfileの商談情報が表示されることを確認します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/3ecd4082-b77d-f271-926e-21407f51b8ea.png)


あとは、Tableauのシートに移動して、各種項目を組み合わせてグラフを作成できます。
以下のグラフはProduct・Chanceを列・行軸にそれぞれ配置し、Amountをメジャーとして各プロダクトごとの売上見込を可視化してみました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/b7638072-99d7-3c42-86e0-0f49c95016b1.png)

最終的には、グラフを組み合わせて、以下のようなダッシュボードも作成可能です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/e02f867a-9e2e-3369-809f-81f78ab4322c.png)

# 終わりに

今回はODBC → BIツールの接続でしたが、これを応用することでBI以外にもETL/EAIツールに接続して、顧客情報をERPに流すことや、IDEで接続しAPI接続開発を実施しやすくすることも可能です。

![20170919-2017-refresh.png](https://qiita-image-store.s3.amazonaws.com/0/56301/84d2015e-a08c-ff77-8ff3-21f063af040a.png)

※Visual Studioのサーバーエクスプローラーで接続
![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/8d1bb79c-0980-d3e9-ee72-66dfc9206ef5.png)

※SQL Server Integration Serviceによる連係
![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/cd648577-d1b6-88ae-8397-d706bf1d2a0f.png)

https://www.cdata.com/jp/drivers/rest/ssis/

Excel上にデータをロードして、簡易BIもなんだかんだで良さげです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/bf6f35ca-aae1-d1e8-f9e4-b5160c362455.png)

https://www.cdata.com/jp/drivers/rest/excel/

また、現在様々なWeb APIをBIやETLツールから接続するための検証を実施中なので、こんなサービスつないでみてほしい！　こんな感じで接続してみたい！　などの希望がありましたら、是非連絡ください。随時検証します。