Integromatで毎月1日にシナリオを自動実行してkintoneのアプリにレコードを追加する

Integromatで毎月1日にシナリオを自動実行してkintoneのアプリにレコードを追加する

こんにちは、エミックの松尾です。FileMaker Pro 東京ユーザーズミーティングのある日の午前中にカスタムWeb勉強会というFileMakerとWebに関する勉強会を開催していますが、4月以降は勉強会の形式や曜日、場所を変えて開催する予定です。詳細は決まり次第ご案内したいと思います。今回の記事では、Integromatで定期的にシナリオを自動実行して毎月1日にkintoneのアプリにレコードを追加する方法について記しています。

kintone REST APIでデータ連携が可能

kintoneには、データ連携用のAPIとして、“kintone REST API”と呼ばれるAPIが用意されています。

kintone REST APIを使えば、外部のサービスやプログラムなどからkintoneのアプリにレコードを追加することが可能です。レコードの追加だけでなく、レコードの取得・更新・削除、ファイルのアップロード・ダウンロード、アプリ・スペース・フォームの情報を取得する処理なども行うことができます。

kintoneにはスタンダードコースとライトコースの2種類のコースが用意されていますが、kintone REST APIはスタンダードコースで利用可能です。

kintoneでAPIトークンを生成する

Integromatで定期実行用のシナリオを作成する前に、kintone REST APIの認証に使用するAPIトークンをkintoneで生成します。

APIトークンはkintoneアプリの設定画面で生成できます。アプリの設定画面において[設定]タブにある[APIトークン]をクリックした後に[生成する]ボタンを押すという手順になりますが、手順の詳細についてはkintone ヘルプをご参照ください。

APIトークンはkintoneアプリの設定画面で生成可能

今回は、生成されたAPIトークンに対して、「レコード追加」の操作のみ許可するようにチェックをつけます。APIトークンを生成した後、アプリを更新することを忘れないようにしてください。

なお、生成したAPIトークンは第三者に知られないように注意してください(本記事のスクリーンショットでAPIトークンの文字列を確認できますが、記事公開時に削除しています)。

IntegromatでHTTPリクエストを送信するシナリオを作る

Integromatは、https://www.integromat.com/で登録でき、無料のプランも用意されています。プログラミングに関する知識がなくても、各種Webサービスを簡単に連携させることができます。kintoneとSlackを連携させる例について解説した記事を以前書きましたので、よろしければこちらの記事もご参照ください。

Integromatでは「シナリオ」を作成することでサービス連携処理のための設定をしていきます。シナリオを作成するには、ログイン後のダッシュボード画面で[Create a new scenario]をクリックします。

今回はkintone REST APIを用いるHTTPリクエストを送るシナリオを作成していきます。「HTTP」と入力してサービスを絞り込んだ後、「HTTP」をクリックして選択します。その後、右上にある[Continue]ボタンをクリックして次の画面に進みます。

Integromatでシナリオ作成時にHTTPを選択

真ん中に表示されている[?]をクリックした後、[HTTP]をクリックします。

IntegromatでHTTPモジュール追加後の画面

次に[Make  a request]をクリックします。

HTTPリクエストを送信するアクションを選択

[URL]欄に単一のレコード登録に使うURIを入力します(例:「https://example.cybozu.com/k/v1/record.json」)。「example」の代わりに実際に使用しているkintoneのサブドメインを指定してください。

IntegromatのHTTPモジュールでURLを指定

今回の例ではレコードを新規に登録するので、HTTPリクエストメソッドを指定する[Method]の値を「GET」から「POST」に変更します。

IntegromatのHTTPモジュールでレコード登録用のリクエストメソッドを指定

[Add a header]をクリックした後、HTTPヘッダー名に相当する[Name]に「X-Cybozu-API-Token」と入力し、[Value]にkintoneで生成したAPIトークンを入力します。HTTPリクエストの認証情報を入力した後、[Add]をクリックします。

IntegromatのHTTPモジュールで認証情報を入力

APIの制約によりContent-Typeに「application/json」を指定する必要があるため、[Body type]の値を「Raw」に変更した後に、[Content type]の値を「JSON (application/json)」に変更します。

IntegromatのHTTPモジュールでContent-Typeを設定

次に、「{"app": "3", "record": {"文字列__1行_": {"value": "{{formatDate(addDays(now; -1); "交通費(YYYY年M月)")}}"}}}」という文字列をコピーして、[Request content]欄にペーストします(アプリのIDが「3」、フィールドコードが「文字列__1行_」の場合)。

IntegromatのHTTPモジュールでリクエストボディの内容を設定

アプリIDやフィールドコードが上述の例と異なる場合には適宜書き換えてください。

Integromatで作成したシナリオが動作するか確認する

[OK]ボタンを押した後、[Run Once]をクリックして、作成したシナリオがうまく動作するか確認します。実際にkintoneでレコードが作成されているか確認しましょう。

Integromatで作成したシナリオが動作するか確認

Integromatのスケジュール設定でシナリオを定期実行

Integromatのスケジュール設定でシナリオを定期実行するには、HTTPモジュールの左下に表示されている時計のアイコンをクリックします。今回の例では、[Run scenario:]の値を「At regular intervals」から「Days of the month」に変更します。

Integromatのスケジュール設定画面

続けて[Days]のチェックボックスにおいて「1」にチェックをつけます。[Time]についてはシナリオを実行させたい任意の時刻に変更します。テストの際には、本日の日付や検証しやすい時刻に設定すると良いかもしれません。

Integromatのスケジュール設定画面で実行日時を設定

日時設定後に[OK]をクリックします。その後、定期的に実行されるようにスケジュールに登録します。[Run once]の下にある[SCHEDULING]をクリックして[OFF]から[ON]に変更します。

Integromatでのスケジュール設定が完了

[SCHEDULING]の右にあるフロッピーディスクのアイコンボタンを押して、念のためシナリオを保存します。これで設定は完了です。

今回は毎月1日にスケジュールを実行する例を説明しました。1日が休みの場合には翌営業日に処理を実行するように調整したい場合もあると思いますが、そのような場合の設定方法については別の機会に解説したいと思います。

まとめ

Integromatで毎月1日にシナリオを自動実行してkintoneのアプリにレコードを追加する方法について解説しました。Integromatのスケジュール機能を利用すると、任意のタイミングで繰り返しシナリオを自動実行させることができます。Integromatのスケジュール機能とkintone REST APIを組み合わせて使うことで、定期的にkintoneアプリのデータを処理することが可能になるので、活用の幅がより広がるはずです。

この記事が気に入ったらサポートをしてみませんか?