JUST.DB Googleスプレッドシートとの連結|API

こんにちは

Google スプレッドシートの更新を JUST.SFA の WebAPI を利用して自動反映する設定をご紹介いたします。

■GoogleスプレッドシートからJUST.SFAへ反映

弊社では SFA に JUST.SFA を導入しています。JUST.SFA で案件管理を行っていますが、 Googleスプレッドシートに案件一覧を起こしてWeb会議などに利用しています。
Web会議で案件の進捗や詳細に対する更新が発生した場合、複数人または担当者がスプレッドシートを更新します。
そのままでは JUST.SFA の案件情報と乖離してしまうので更新内容を自動で JUST.SFA に反映します。
概要は以下の図になります。

■用意したもの

・案件一覧スプレッドシート
 現在 JUST.SFA に登録済みの案件一覧をエクスポートしてシートを作成しておきます。
 複数行テキストは改行を含むデータが入っていますので、そのままシートに貼り付けることはできません。
 いったんエクセルの「データの取込機能」を使ってエクセルシートに取り込んでから貼り付けします。
 また、JUST.SFA のデータ更新は レコードIDをキーに指定する必要がありますので、Postmanなどで WebAPIを使って各案件データのレコードIDを取得して、シートに追加します。
・JUST.SFA案件テーブル
 社内で共有する案件にテーブルです。
・Zapier JUST.SFA汎用 Integration
 Zapier から WebAPI を利用してリクエストを送信するための Integrationです。日付の形式変換、改行コードの変換、WebAPIリクエストにで送信するJSONの組み立て、リクエストの送信を行います。

■案件一覧スプレッドシート

スプレッドシートは 一行目に項目名を記載した一覧形式のものになります。Zapier は自動で項目名を拾って処理してくれます。
また、Zapierはシートに更新されたデータがあれば後続の処理を実行しますので、一覧の並べ替えや列の挿入などを行うと大量の処理が発生する可能性があるため禁止としています。(参考:https://zapier.com/help/doc/common-problems-with-google-sheets-on-zapier

■JUST.SFA 案件テーブル

テーブルの項目は、受注予定日、開発部門(弊社内の部門です)、受注担当者、お客様名、案件名、次回アクション、案件詳細、レコードID。
この項目のうち 次回アクション と 案件詳細 を更新対象のデータとしました。他の項目を変更する場合は JUST.SFA で更新することになります。また、新しい案件は JUST.SFA で登録することになります。(JUST.SFA から Googleスプレッドシート への連携は WebHookを使って実現することになります。)

■Zapier JUST.SFA汎用 Integration

Zapier CLI を利用して作成しました。以前の記事では 認証のAPI-Keyはハードコートして更新先のテーブル識別名やフィールド識別名、JUST.SFAのテナントも決め打ちで作成してましたが、汎用的に使える Integrationを作成しました。
以下の機能をプログラミングしています。
1)API-Key と テナントを指定して認証
2)更新先のテーブル識別名を指定
3)更新先のフィールド識別名、フィールドタイプを指定(複数指定可能)
4)フィールドタイプに合わせて JUST.SFAの API送信時仕様に則ったリクエストJSONの作成
5)WebAPIへリクエストを送信
作成した Integration は Zapier Platform にアップしてプライベートで利用可能としています。汎用的に作成したので Publicで公開できればと考えております。

Integration の認証画面は以下のようになります。
複数の認証を登録できますので、タイトルは登録したAPI-Keyを識別するために使用します。
テナントは JUST.SFA のテナントです。(https://ooooo..justsfa.com の oooooの部分)
API-Key は JUST.SFA で [運用管理画面]-[API連携設定]-[API-Key管理]-[API-Keyの追加] で作成したAPI-Keyを入力します。
テーブル識別名は テナント と API-Key の組み合わせで WebAPIが正常にリクエストできるのか確認するためのテストで利用します。API-Keyで閲覧を許可したテーブルのテーブル識別名を入力します。

Zapier のセットアップアクションは以下のような構成で作成しました。
汎用的に利用できるように [テーブル識別名]の指定が可能となっています。
[レコードID項目]は読み込んだスプレッドシートで保持している JUST.SFAのレコードIDが登録されている列を指定しています。
[項目数]は更新対象のフィールド数を入力します。この例では 次回のアクション と 案件詳細 の2項目になります。
項目数を入力して、画面下部の [Refresh Fields]をクリックすると項目の設定欄 Item01、Item02 が表示されます。
Item01 には 次回のアクションのフィールド識別名を入力し、フィールドタイプで文字列をドロップダウンから選択しています。更新データは スプレッドシートの次回のアクション列になります。Item02 にも同様に案件詳細の設定を入れます。

■Zapier の設定

Zapier では 最初にGoogleスプレッドシートの更新をトリガーに設定しています。
更新された行が見つかると、後続の JUST.SFA Integration にデータが引き継がれます。JUST.SFA Integration では フィールド設定とスプレッドシートのデータでリクエストJSONを作成し、設定されている テーブル識別名、レコードID、および認証で設定しているテナントからリクエストURLを決定、API-Keyを使ってリクエストをJUST.SFAのWebAPIに送信します。

Integration さえあればデータソースはスプレッド以外でもかまわないのでいろいろな活用ができそうです。
反対に JUST.SFA から Googleスプレッドシートの登録/更新も別の記事でご紹介しようと思います。