kintone から Slack に通知を送る方法
はじめに
こんにちは。クローバの門屋です。
クローバではコミュニケーションツールとして、主に Slack を使っています。
他のチャットツールと比べてユーザーインターフェースが秀逸で、ちょっとした操作にも細かい配慮がされていて心地良く使うことができます。
Slack
今回は、Slack と kintone の連携について考えてみます。
kintone から Slack に通知を送る
通知なら kintone の機能を使えばいいと思われるかもしれません。 しかし、Slack を通知サービスとしてみたとき、大きな特徴があります。
- チームのメンバーが一斉に同じ通知を受け取ることができる。
- 通知のオン、オフを、ユーザー自身がチャンネルごとに選択できる。
- プッシュ通知を受け取れるデスクトップ・モバイルアプリがある。
これらの特徴を活かして、たとえばシステムで障害があったとき E メールではなく Slack に通知するなど、不特定の相手へ一斉に通知するが、通知の重要度はユーザーに委ねたいようなケースで重宝します。
ここではこのような用途を想定しています。
- 案件管理のステータスが完了になったら、案件名と kintone レコードの URL を Slack の特定のチャンネルに投稿する。
- メッセージを通知するしないはユーザーが自由に選択できる。
kintone 単体では、通知メールの内容をカスタマイズできないため、ニーズがありそうです。
Slack の設定
チャンネルの作成
kintone の通知を受け取るチャンネルを作成します。
Incoming Webhook の作成
Slack の API でメッセージを送信する方法は大きく 2 つあります。
- Web API を使う方法
- Incoming Webhook を使う方法
Web API を使う場合は、任意のユーザーで API トークンを取得する必要があります。
今回は Incoming Webhook を使うことにします。
-
Incoming Webhook Integration のページを開きます。
Incomming Webhook -
メッセージを送信したいチャンネルを選択して、「Add Incoming WebHooks Integration」ボタンを押します。
Incoming Webhook が作成されます。
-
作成後のページに、Incoming Webhook の URL が表示されます。
こちらはあとで利用します。
ボットの名前や、アイコンのカスタマイズを行うこともできます。
これで Slack 側の準備は完了です。
kintone の設定
続いて kintone 側で通知部分を実装します。
本記事では簡易的に JS カスタマイズで通知部分を実装しますが、プラグインとしての実装も可能です。
プラグインを開発する場合は、次の記事も合わせて確認してください。
アプリの作成
アプリを追加します。 例ではアプリストアで 案件管理 を使用しています。
またアプリの設定で、プロセス管理を有効にしてプロセスを追加してください。
プロセス管理
カスタマイズファイルの適用
次の内容で「post2slack.js」というファイルを作成し、追加したアプリに適用します。
次の箇所は、ご自身の環境に合わせて書き換えてください。
subdomain
: kintone のサブドメインwebhookUrl
:Webhook の URLfieldCode
:Slack のメッセージに投稿するフィールドのフィールドコード
例では案件管理アプリの会社名フィールドを指定しています。
|
|
コードの解説
まずはじめに app.record.detail.process.proceed
イベントをフックして、プロセス管理でステータスが変わったときに処理します。
ステータスが完了になったら、kintone.proxy()
で Slack の Incoming Webhook の URL に POST リクエストを送信します。
Slack の Incoming Webhook の詳しい使い方は以下のドキュメントに書かれてあります。
Sending messages using Incoming Webhooks
動作確認
-
カスタマイズを適用したアプリにレコードを作成し、完了までプロセス進めます。
-
Incomming Webhook の設定で指定したチャンネルにメッセージが投稿されていることを確認します。
終わりに
いかがだったでしょうか。
Incoming Webhook を使うことで、手軽に Slack へメッセージを送信できることがお分かりいただけたかと思います。
通知を Slack に集約することで、複数のサービスの通知を柔軟に管理できるのは大きな魅力です。
また、Outgoing Webhook と kintone の REST API を組み合わせることで、Slack でボットのメッセージに返信したら、kintone のレコードのプロセスを進めるといった双方向の連携も可能になります。
今回紹介したように、Slack はさまざまなクラウドサービスと連携することで、単なるチャットツールの枠を超えたコミュニケーション基盤として活用できます。
kintone との連携もさらに便利な使い方があるかもしれません。ぜひお試しください。
この Tips は、2016 年 1 月版 kintone と Slack で動作を確認しています。