【kintone】Webhookを使って、新規レコード追加をSlackに通知しよう
0. 目次
1. 概要
ギークス株式会社CRUD Lab.のKUNISADAです。
Webhookを使って、新規レコード追加をSlackに通知しよう
SlackのIncoming Webhookのインテグレーションを使って、kintoneとSlackを連携します。
Incoming Webhookとは、外部のアプリケーションからPOSTするとSlackにメッセージが投稿される仕組みのことです。Slackが発行するIncominng Webhook のURLを通して、JSON形式でメッセージをPOSTします。
新規レコード追加をSlackに通知したい時に便利です! 条件も自由にカスタムできるので、今回は確認フラグを設置して簡単な通知設定を行います。
2. イメージ図
▼新規レコード追加
※ 確認フラグを「ON」に設定
▼Slackに通知
※ 確認フラグ「ON」の場合のみ通知する
3. 準備
3-1 Incoming Webhookの設定(URLを取得/Slackと連携)
STEP1:incoming Webhookのインテグレーションを設定する
以下のURLにアクセスして、連携したいSlackのチームでログインします。 https://www.slack.com/services/new/incoming-webhook
STEP2:通知したいSlackのチャンネルを選択
「Add Incoming WebHooks integration」ボタンを押して次の画面へ
STEP3:WebhookのURLを取得
「Save Settings」で変更を保存
3-2 kintoneの設定(フィールド)
フィールド名 | フィールドコード | 初期値 | その他 |
---|---|---|---|
タイトル | タイトル | -- | -- |
確認フラグ | 確認フラグ | 初期値はOFF | -- |
場合に応じて、その他必要項目を設置してください。
※ 実装に必要なフィールドのみ記載しています。
4. 実装
const WEBHOOK_URL = 'https://hooks.slack.com/services/XXXXXXXXXXXXXX'; //ここにコピーしてきたWebhookのURLを挿入 (function () { 'use strict'; //新規レコード追加のイベントハンドラー kintone.events.on('app.record.create.submit', function(event){ var rec = event.record; //確認フラグがONの場合に以下の処理を実行 if(rec['確認フラグ'].value == 'ON'){ var payload = { 'text': "新規レコードが追加されました。:「" + rec['タイトル'].value + "」" }; return new kintone.Promise(function(resolve, reject) { kintone.proxy(WEBHOOK_URL, 'POST', {}, payload, function(body, status, headers) { console.log(status, body); resolve(event); }); }, function(err) { reject('データの取得に失敗しました。'); return; }); } return event; }); })();
5. 参考URL
こちらのサイトを参考にしました! cybozudev.zendesk.com
参考サイトは、プロセスのステータスが変更になった際に、Slackに通知される仕組みになっています。
逆に、Slackの「Outgoing Webhooks」を利用することで、Slackからkintoneへレコードを登録することもできるので、こちらも要チェックですね。
6. まとめ
Incoming Webhookを使えば、様々なタイミングでSlackに通知することが可能です。 実装も極めてシンプルなので、新規レコード追加以外の場合も柔軟にカスタムすることができるので、とても便利です。