見出し画像

Slack用「確認お願いしますボット」をKurocoで作成し(てもらっ)たので解説

Kuroco(クロコ)で作成した、「確認お願いします」ボットの解説です。

「確認お願いしますボット」とは?

Slackにて、メッセージの承認や確認リマインドしてくれるbotです。botと連絡したい人にメンションをつけてメッセージを投稿すると、定期的にbotからリマインダーが届きます。

無題のプレゼンテーション

リモートワークが一般的になり、Slackの利用頻度が高まってきています。その中で、メッセージの確認&返信忘れが起きることもあり、それを防ぐ役目を担えるかなと思います。

実際の利用方法や仕様はこちらのドキュメントで公開しています。


作るきっかけ

きっかけはこちらの深津さんのnoteです。

このツイートから、ディバータ代表の加藤さんがすぐ動き出して作り始めました。

要望 -> 開発・テスト -> リリースまでほぼ1日
かなりのスピード感で開発されてました。早かった!

機能概要

ほぼ上記深津さんのnoteの仕様通りの作りですが、以下にもまとめます。

起動条件

- @KurocoWorkflow にメンションがついていること
- 誰か宛にメンションがついていること

画像4

リマインダー発生の条件

メンション受けた人で「👍」または「👎」スタンプをつけてない人に定期的にDMでリマインダーが送られます。

画像5

リマインダー発生時間について

デフォルトでは12時間毎にリマインド発生しますが、メッセージ内に「🔥」が記載されている場合は1時間毎にリマインドが発生します。
(メッセージ編集して「🔥」を追加し、途中から1時間毎にすることもできます)

画像6

確認完了の条件

メンションつけられたユーザが、slackのメッセージに「👍」または「👎」スタンプをつけたユーザーにはリマインドストップとなります。

画像7

キャンセルの条件

メッセージ内に「❌」スタンプを記入すると、リマインドキャンセルとなります。(そのため、投稿者のみキャンセル可能となっています)

画像8

注) スタンプではなくメッセージ内に「❌」が必要となりますのでご注意ください。

ワークフロー終了の条件

メンションを受けた人が全員「👍」または「👎」のリアクションをすると、ワークフローが終了します。

画像9

技術のポイント

Kuroco利用

当然なのですが、バックエンドはディバータ社で作成しているHeadlessCMS『Kuroco(クロコ)』で作成しています。

メッセージの管理

botにメンションがついたメッセージがSlackに投稿された内容は、Kurocoの管理画面からも確認できます。

Kurocoにはコンテンツ管理画面があるのですが、1メッセージ1コンテンツとして、メッセージがある度に自動でコンテンツが投稿されます。

画像3

コンテンツ詳細画面より、メッセージの詳細が確認できます。

画像11

現在はメッセージとステータスだけの確認となりますので、みなさんからの意見をもとに今後改善していければと思います。

Slackへの投稿について

Slackメッセージや、処理の挙動はKuroco内のオリジナル処理を利用しています。こちらでPHP(Smarty)が利用できるので、プログラム実装しています。

画像10

PHP利用できる方であれば、こちらのエディタより実装することでSlackの挙動を修正することができます。

Kurocoオリジナル処理の参考:
- 管理画面マニュアル -> オリジナル処理
- チュートリアル -> オリジナル処理を利用して、コンテンツ追加時にメールを送信する


最後に

以上、Slack用「確認お願いしますボット」の簡単な解説でした。

Headless CMSというとWebサイトに利用するのが一般的ですが、このようにSlackアプリ等にも利用できるようになります。私もこういう利用方法があるという発想がなかったので、とても勉強になりました。


Kurocoは無料で利用開始できますので、ぜひ利用してみてください。


利用方法のご不明点は、twitterでDMか、KurocoサポートSlackまでご連絡ください!

よろしくお願いします🎉

いいなと思ったら応援しよう!

Koshi Kagawa 読んでいただきありがとうございます。

ピックアップされています

Web開発日記

  • 116本

コメント

ログイン または 会員登録 するとコメントできます。
Slack用「確認お願いしますボット」をKurocoで作成し(てもらっ)たので解説|Koshi Kagawa
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1