kintoneからSlackに通知を送る方法

フォローする

(著者:クローバ株式会社 門屋 亮

はじめに

こんにちは。クローバの門屋です。
クローバではコミュニケーションツールとして、主にSlackを使っています。他のチャットツールと比べてユーザーインターフェイスが秀逸で、ちょっとした操作にも細かい配慮がされていて心地よく使うことができます。

Slack
https://slack.com/
今回は、Slackとkintone の連携について考えてみます。

kintoneからSlackに通知を送る

通知ならkintoneの機能を使えばいいじゃないかと思われるかもしれません。……がSlackを通知サービスとしてみたとき、大きな特徴があります。

  • チームのメンバーが一斉に同じ通知を受け取ることができる
  • 通知のオン、オフを、ユーザー自身がチャンネルごとに選択できる
  • プッシュ通知を受け取れるデスクトップ・モバイルアプリがある

これらの特徴を生かして、たとえばシステムに障害があったときにEメールではなくSlackに通知するなど、不特定の相手に一斉に通知するが、通知の重要度はユーザーに委ねたいようなケースで重宝します。 ここではこのような用途を想定しています。

  • 案件管理のステータスが完了になったら案件名といっしょにSlackの特定のチャンネルにメッセージを書き込む。
  • メッセージを通知する、しないはユーザーが自由に選択できる。

kintone単体では、通知メールの内容をカスタマイズすることはできないため、ニーズはありそうです。

Slack側の準備

kintoneの通知を受け取るチャンネルを作成します。


Incoming Webhookの作成

SlackのAPIでメッセージを送信する方法は大きくふたつあります。

  • Web APIを使う方法
  • Incoming Webhookを使う方法

Web APIを使う場合は、任意のユーザーでAPIトークンを取得する必要があります。今回はIncoming Webhookを使うことにします。

Incoming Webhook Integrationのページを開きます。
https://www.slack.com/services/new/incoming-webhook


メッセージを送信したいチャンネルを選択して、「Add Incoming WebHooks Integration」ボタンを押します。 Incoming Webhookが作成されます。


作成後のページに、Incoming WebhookのURLが表示されます。こちらはあとで利用します。ボットの名前や、アイコンのカスタマイズを行うこともできます。 これでSlack側の準備は完了です。

kintoneでJSカスタマイズを行う

続いてkintone 側で通知部分の実装を行います。本記事では簡易的にJSカスタマイズで通知部分の実装を行いますが、プラグインを開発することもできます。 プラグインの開発にはこちらも合わせてご覧下さい。

kintone プラグイン開発
https://cybozudev.zendesk.com/hc/ja/sections/200644024
SendGrid APIを使ってメールを送信するプラグインを作ってみよう
https://cybozudev.zendesk.com/hc/ja/articles/206584633

post2slack.js

まずはじめにapp.record.detail.process.proceedイベントをフックして、プロセス管理のステータス変更時に処理を行えるようにします。ステータスが完了になったら、kintone.proxyでSlackのIncoming WebhookのURLにPOSTリクエストを送信します。

SlackのIncoming Webhookの詳しい使い方は以下のドキュメントに書かれてあります。
https://api.slack.com/incoming-webhooks

終わりに

いかがだったでしょうか。Incoming Webhookを使うことで、手軽にSlackへのメッセージ送信ができることがお分かりいただけたかと思います。通知をSlackに集約することで、複数のサービスの通知を柔軟に管理することができるのは大きな魅力です。また、Outgoing WebhookとkintoneのREST APIを組み合わせることで、Slackでボットのメッセージに返信したら、kintoneのレコードのプロセスを進めるといった双方向の連携も可能になります。


今回ご紹介したように、Slackはさまざまなクラウドサービスと連携することで、単なるチャットツールの枠を超えたコミュニケーション基盤として活用できます。kintoneとの連携もさらに便利な使い方があるかもしれません。ぜひお試しください。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

ログインしてコメントを残してください。
Powered by Zendesk