Morning Girl

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

Cloud Signの契約書発行状況をCData ODBC Driver for REST+Tableauで可視化してみる

今回は最近注目しているWeb完結型クラウド契約サービス「クラウドサイン」のAPIを使って、Tableauと繋いでみました!

CloudSignとは?

前述の通り、オンライン上で契約書を交わすことができるサービスなんですが、契約書の準備はもちろんのこと、それを契約先へWebベースで送付し、サインや必要事項の入力、はては印鑑までWeb上で完結してしまうという素晴らしいサービスです!

www.cloudsign.jp

以下のように今までの契約書のフォーマットに沿いつつ、構成することができ、なおかつ相手先もこのフォーマットベースで入力できるので、わかりやすいのがいいですね。

f:id:sugimomoto:20180227192431p:plain

いちいち印刷したものを再スキャンとかする必要も無くなるので、NDA等数多く契約締結が発生する契約書などは、すごくありがたいと思います。

今回やってみたこと

通常Cloud Sign上ですと、以下のように各ステータスごとで件数が表示されるのですが

f:id:sugimomoto:20180227191154p:plain

この情報を今回は、CloudSignのAPIを経由して、BIツールTableauでわかりやすくグラフ化してみました。

f:id:sugimomoto:20180227191204p:plain

CloudSign のAPI

CloudSignのAPIは素晴らしいことにOpenAPI(Swagger)で仕様が公開されています!

app.swaggerhub.com

APIに関する詳しい解説は、以下のURLを参照すると良さげです。

クラウドサインWeb APIとは何ですか | クラウドサイン ヘルプセンター

ちなみにざっとデータの構成をまとめると、

以下のように1契約書に対して、複数の宛先、ファイルを持ち、それぞれのファイルでユーザーに入力を求めるWidgetsが並ぶ、という構成になっています。

f:id:sugimomoto:20180227191454p:plain

ほぼすべてのエンドポイントで読み取り・作成・更新をサポートしており、ある種マイクロサービスのように扱うこともできるのが嬉しい限りです。

APIでアクセスするためのClient ID取得

それでは、実際にTableauで分析を進めていきたいと思いますが、接続する前にAPIアクセス用のClientIDを取得しておく必要があります。

CloudSingにログインし、右上のユーザー名から[管理画面に移動]をクリックします。

f:id:sugimomoto:20180227191502p:plain

左メニューの[クライアントID]から[新しいクライアントIDを発行する]をクリックすることで、APIアクセス用のクライアントIDが自動生成されます。

f:id:sugimomoto:20180227191508p:plain

このクライアントIDを後ほど使用するので、控えておいてください。

CData ODBC REST Driverのインストールと設定

続いてTableauとCloudSignをシームレスに接続するために、中継役となるCData ODBC Driver for RESTをインストールします。

www.cdata.com

CData ODBC REST Driverは各種Web APIODBC規格で汎用的にアクセスすることができるようにするためのドライバーコンポーネントです。

これを使用することで、APIを意識することなく、各種CloudSignのデータを扱えるようになります。

詳しくは以前のBlogでも詳しく紹介しているので、参照してみてください。

kageura.hatenadiary.jp

インストール後、ODBC データソースアドミニストレータを立ち上げて、[追加]をクリックします。

f:id:sugimomoto:20180227191606p:plain

インストールしたCData ODBC Drivers for RESTを選択し、[完了]をクリック

f:id:sugimomoto:20180227191611p:plain

完了をクリックすると、接続情報を入力する画面が立ち上がるので、任意のデータソース名を入力の上、先程取得したクライアントIDを[OAuth Client ID]へ入力

f:id:sugimomoto:20180227191616p:plain

LocationにCloudSignのAPIを解釈するためのマッピングファイルであるRSDファイルを配置したフォルダを指定します。

RSDファイルは以下のGitHubで公開しているので、使ってみてください。現在Documents, Files, Participants, Widgetsの4種類作成していますが、今回使用したのはDocumentsエンドポイントです。

github.com

github.com

それと、OtherにはCloudSignのAPIアクセス用URLを入力します。今回はSandboxを使用しているので、以下のような感じで入力します。

[baseuri=https://api-sandbox.cloudsign.jp

f:id:sugimomoto:20180227191706p:plain

これで、[OK]をクリックすれば、Tableauで繋ぐための準備が完了です。

Tableauでの接続と可視化

それではTableauと繋いでみたいと思います。

Tableauを立ち上げて。[サーバーへ]の一覧から[その他のデータベース(ODBC)]を選択します。

f:id:sugimomoto:20180227191714p:plain

DSNでは、先程作成したCloudSignのデータソースを指定して、接続をクリック。

裏でDSNへの接続処理が実施されるので、接続完了後[サインイン]をクリックします。

f:id:sugimomoto:20180227191733p:plain

すると、以下のようにあらかじめ設定されていたRSDファイルをベースとして、Documentsなどのエンドポイントからデータが取得できるようになっています。

f:id:sugimomoto:20180227191739p:plain

以下のような形でデータがプレビューできればOKです。

f:id:sugimomoto:20180227191745p:plain

あとは、ワークシートに移動し、グラフを作成していくだけです。

Documentsの情報に含まれるStatusとレコード数を元に、締結状況を可視化してみました。

f:id:sugimomoto:20180227191754p:plain

ちなみに、ステータスはただの数値情報なので、計算フィールドを作成して、実際の名称に置き換えています。以下のような感じです。

f:id:sugimomoto:20180227191800p:plain

あと、一覧表や、各テンプレートごとの発行状況なども交えて、以下のようにグラフを構成してみました。

f:id:sugimomoto:20180227191808p:plain

ちなみに今回は作成していませんが、Widgetエンドポイントであれば、お客さんが入力した情報も取得できるので、もう少し分析しがいのあるデータになると思います。

座標軸をどう処理するかがポイントになりそうですね。

参考

kageura.hatenadiary.jp