Job Runnerの1つである、kintoneアプリのWebhookカスタマイズを使うと、レコードの追加・編集など、特定の処理がされた時(フォームブリッジなどの連携サービスでレコードが1レコードずつ追加された時も含む)に、任意の処理を行う事ができます。
この記事では具体的な例として、次のようにレコード追加時に下記の形式で採番された管理番号をセットする方法についてお伝えします。
カスタマイズで用いるアプリ
例として使用するアプリは、kintone アプリストアの『アンケート』アプリを使用します。
処理対象とする『アンケート』アプリは次のように設定します。
アンケートごとに重複しない採番結果を保存するための「管理番号」フィールド(文字列(1 行)) を追加します。
また、今回のカスタマイズを実行するためにはkintoneアプリにAPIトークンを設定しておく必要があります。次のように設定しておいてください。
※「レコード閲覧」と「レコード編集」を設定
カスタマイズの概要
概要は次の通りです。
『アンケート』アプリにレコードが追加されると、管理番号フィールドに「20220827-001」(年月日-連番)の形式で採番された管理番号がセットされる。
ユーザーが kintone の画面でレコードを追加した時に加え、フォームブリッジなどの連携サービスでレコードが追加された時も同様に採番される。
処理対象となる kintone アプリに接続する
定期実行タスクのカスタマイズと同様に、kintoneアプリのWebhookカスタマイズで使用する kintone アプリはやること「kintone 接続設定を行う」を使用して接続する必要があります。
ただ、例外として下記のレコードだけはやること「kintone 接続設定を行う」で接続しなくても使用することができます。
kintone の Webhook の通知のきっかけとなったレコードの閲覧
レコードの閲覧が可能な理由は、kintone の Webhook の通知に、通知の発生元となったレコードの情報が含まれるためです。そのためやること「kintone 接続設定を行う」で接続しなくてもやること「Webhook から渡されたレコードを取得する」でレコードの情報を取得し、フィールドの値をカスタマイズで利用できます。
ただ可能なのはあくまで通知の発生元となったレコードの閲覧だけですので、レコードの更新を行う場合はやること「kintone 接続設定を行う」で接続する必要があります。発生元となったレコード以外のレコードを取得・更新する場合や、もちろん他のアプリのレコードを扱う場合も同様にやること「kintone 接続設定を行う」で接続が必要です。
今回は、自動採番を行った結果でレコードの更新を行いたいので、『アンケート』アプリに接続します。
この時使用する条件は条件「Webhook を開始した時」を指定します。なおkintone アプリのWebhook のカスタマイズの起点は、必ずこの条件になります。
そして、やること「Webhook から渡されたレコードを取得する」で kintone アプリの Webhook の通知と共に送信されてきた、通知の発生元となったレコードを取得します。
取得したレコードに対して処理を行う
ここからは、定期実行タスクのカスタマイズと変わりません。今回の例では、やること「自動採番を行う」で『管理番号』フィールドに採番を行います。条件は「レコード1行が準備できた時」です。
処理結果を kintone に反映する
やること「自動採番を行う」は、パラメーター「フィールド」に指定したフィールドに採番結果をセットしますので、やることひとつで処理結果の反映も完了します。
最終的にカスタマイズは次のようになります。
カスタマイズの実行
カスタマイズが確認可能なところまで完成したら、「ジョブ生成・設定」ボタンを押し、ジョブを作成します。
なお、kintone アプリの Webhook のカスタマイズはジョブ設定画面に「直ちに実行」ボタンがありますが、定期実行タスクのカスタマイズと異なり、基本的に「直ちに実行」では実行できません。
試しに「直ちに実行」で実行してみると、「(2) Webhook から URL を渡されていません。」とのエラーが出力されます。
これは、やること「Webhook から渡されたレコードを取得する」がkintone から送信された Webhook の通知からレコードを取得する「やること」だからです。「直ちに実行」では kintone から Webhook の通知が送られてこないため、レコードの取得を試みた結果、レコードを得られず「(2)Webhook から URL を渡されていません。」といったエラーになります。
そのため、kintone アプリの Webhook のカスタマイズを実行確認するためには、下記のいずれかの方法でテスト実行を行うか、カスタマイズにレコードを渡して実行を確認する必要があります。
テスト実行機能を使う
下記のテスト実行ボタンでテスト実行を行えます。
※なお、テスト実行ボタンを使う場合、アプリの実際の値は変更されません。詳しくは Job Runnerテスト実行の使い方 を併せてご覧ください。
実際に動かして試す
次の2つの方法で実際に動かして試す事もできます。
kintone アプリの設定で kintone に Webhook の通知を発生させる設定を行い、kintone からの Webhook の通知を起点にカスタマイズを実行する
kintone の Webhook の通知は使わずに、kintone アプリのカスタマイズから Job Runner の「kintone アプリの Webhook のカスタマイズ」を直接呼び出して実行する
kintone アプリの Webhook の通知設定
カスタマインの「ジョブ生成・設定」ボタンを押し、ジョブ設定画面に表示された URL をコピーします。
kintone の アプリの設定 >Webhook>Webhook の追加 から、kintone アプリに Webhook の設定を追加します。このとき、Webhook URL に先ほどコピーした URL を貼り付けます。Webhook の設定は、Webhook URL に指定した宛先に、kintone から Webhook の通知を送るための設定です。
Webhook URL の他に、通知を送信する条件には適切な設定を行い、有効化にもチェックを入れて保存し、アプリを更新してください。
カスタマイズの実行
今回の例では kintone アプリにレコードが追加された時に kintone から Webhook の通知をする設定をしたので、kintone アプリにレコードを追加すれば kintone から Webhook URL に設定したURL に向けて通知が行われ、その結果カスタマイズが実行されます。
kintone アプリにレコードを追加したのち、実行結果は下記の方法で確認します。
kintone から正常に Webhook の通知が行われたかを確認する
kintone の アプリの設定 >Webhook>Webhook の画面で、「ログを確認」から確認できます。
もしこの Webhook ログ の画面に記録がない場合は、kintone の Webhook の設定が誤っているか、または kintone の仕様により Webhook の通知が発生しない操作を行ったため、発生しなかった可能性があります。
kintone の Webhook の通知については、下記のサイボウズ様のページをご確認ください。
・カスタマインのカスタマイズの実行結果を確認する
カスタマインのメイン画面から「ジョブ生成・設定」ボタンを押し、実行履歴タブから確認してください。
実行結果は次のような形になったでしょうか?
おわりに
以上でkintoneアプリのWebhookカスタマイズの使い方のご紹介を終わります。
レコードが追加・編集など、特定の処理がされた時に、任意の処理を行なえることを、ご確認いただけたかと思います。
レコードの更新は簡単にできる分、思いもよらない大量のレコードを、意図しない内容で更新したりすることもできてしまうものです。実際にカスタマイズを作成される際には、テストアプリとテストデータでよくテストを行った上で、実際のアプリ・運用に適用していくことをおすすめします。
ご不明な点がございましたら、チャットでお問い合わせください。