14
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kintone Webhookの基本とカスタマイズ検証:通知内容の確認

Last updated at Posted at 2025-01-29

はじめに

こんにちは!かねごん(@hrbk25)です!

今回はkintoneのWebhookに関する内容になります!

Webhookにより、kintoneから外部連携サービスに、通知を送信することはよくありますよね。

ただ、kintoneのアプリで値をセットするカスタマイズなどを行っている場合に、「Webhookの通知内容に、セットした値がちゃんと反映されているよね???」と思うことがあったので、実際に検証した内容を備忘録としてまとめました。

kintone Webhookとは

kintoneでWebhookを利用すると、kintoneのアプリで特定の操作が行われた際に、その内容を指定した外部サービスに送信します。
たとえば、レコードが追加されたときにその内容をチャットサービスに投稿する、といった連携を、プログラムを書くことなく設定できます。

どんな人向けの記事か

  • kintone の Webhook を使っている方
  • kintone のカスタマイズを始めたばかりの方

kintone JavaScript API や kintone REST API で更新したデータは Webhookで通知されるのか?

今回は、kintone JavaScript API や REST API を使用して値をセットした場合、Webhook でどのようなデータが通知されるのかを検証します。

前提:Webhookの通知のタイミング

ポイント
kintoneが対応している「通知を送信する条件」は、以下の通りで、ブラウザの画面上の操作だけでなく、kintone REST APIによる操作でも通知されます。

  • レコードの追加
  • レコードの編集
  • レコードの削除
  • コメントの書き込み
  • ステータスの更新

準備:Webhookの確認とアプリの設定

今回は、「Webhookを使ってみよう」にある webhook.site を使用して、通知内容を確認します。詳細は以下をご参照ください。

また、以下のようなフィールドを持つサンプルアプリを作成しました。

  • 「文字列」:”値は変更されていません!”(初期値)
  • 「フラグ」:”ON”、”OFF”

image.png

kintone JavaScript APIを使った場合

今回は、こちらのkintone JavaScript APIに関するドキュメント の機能を使っています。

以下 3 つのイベントとWebhookの設定条件を試しました。

image.png

  1. レコード追加画面を保存したとき
  2. レコード一覧画面インライン編集で保存するとき
  3. プロセス管理のアクションを実行したとき

コードの例は以下の通りです:

kintone.events.on('イベント', (event) => {
  event.record['文字列'].value = '値を変更しました!';
  return event; 
});

結果

カスタマイズで値を変更した後のデータがWebhookに含まれていることが確認できました。

image.png

イベント Webhook設定 結果
レコード追加画面を保存したとき レコードの追加 OK
レコード一覧画面インライン編集で保存するとき レコードの編集 OK
プロセス管理のアクションを実行したとき ステータスの更新 OK

プチまとめ

  • 今回使用したkintone JavaScript API のカスタマイズ内容は、Webhookの通知内容に含まれる。

kintone REST APIを使った場合

今回は、こちらのkintone REST APIに関するドキュメント の機能を使っています。

以下2つのWebhookの設定をして、レコード更新処理を試してみました。

image.png

  • レコード追加画面の保存が成功したときのイベントハンドラー内で、同じレコードの「フラグ」を”ON”から”OFF”に更新する。

コードの例は以下の通りです:

    kintone.events.on('app.record.create.submit.success', async (event) => {
        const appId = kintone.app.getId(); 
        const recordId = event.recordId; 

        try {
           
            const updateData = {
                app: appId,
                id: recordId,
                record: {
                    "フラグ": { value: 'OFF' } 
                }
            };
            await kintone.api('/k/v1/record', 'PUT', updateData);
        } catch (error) {
            console.error(error);
        }
        return event; 
    });

結果

以下のような通知内容が確認できました。

image.png

一瞬 ん?となるかもしれないですが、以下の内容によりWebhookの通知が行われています。

Webhook設定 詳細
レコードの追加 「レコード追加画面の保存が成功したとき」の、イベント発生時に"レコードの追加" の通知が行われる。
レコードの編集  「レコード追加画面の保存が成功したとき」の、kintone REST APIによる更新(PUT)後に、”レコードの編集”の通知が行われる。

プチまとめ

  • 前提のポイントでもあったように、kintone REST APIによる更新操作もWebhookの通知が行われる。
  • kintone REST APIに記載のHTTPメソッドURLを確認し、Webhookの条件を検討する必要がある。

さいごに

いかがでしたでしょうか?

今回は Webhook をテーマに、カスタマイズ内容が通知にどう反映されるかを検証しました。
「この場合どうなるんだっけ?」と思ったときに、ぜひこの記事を参考にしていただければ幸いです!

また、今回の検証を通じて、Webhook の仕組みや挙動について、まだまだ学ぶべきことがあると実感しました。
今後も引き続き、さまざまなケースを試しながら理解を深めていきたいと思います!

14
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?