背景
今までは、Slack の中でコミュニケーションされる中のスレッドのデータのみ
取得してくる仕様でしたが、ある企業ではスレッドをあえて立てずに
コミュニケーションされる職場もあるとお聞きし
今回その機能の実現を行いました。
新機能
メッセージの中に「開始」や「終了」のアイコンを指定すると、その間のデータをとってくるようにもできるようにしました。
スレッドを使った設定にする
スレッドではなくメインの会話にアイコンをつけて運用する
このどちらかを選択できるようにしています。
開始と終了のアイコンは個別で設定変更可能ですので、このアイコンがいい!とおっしゃっていただければ、その設定にすることができます。
ご使用上の注意点
このスレッドを使わない設定ですが、システムに組み込むときにはちょっと苦労しました。
「そんな使い方しないよ」と言われましても、その想定をしてコードを書かないといけないので、
以下のようなシチュエーションがある場合、どうなるかをまとめておきます。
通常の運用を想定したケース
以下が通常の運用を想定したケースだと思いますが、二つのメッセージが取得され、ブログサービスにアップされます。
イレギュラーケース
「終了」のアイコンをつけ忘れてしまった場合、バッチが実行されたときに、開始のアイコンを探し出し、強制的に終了扱いにして、メッセージを取得します。
メッセージの最後に終了のリアクションをつけ忘れていた場合、こちらも強制的に終了状態としてメッセージを取得します。
どの期間のデータを取得するのか?は別途指定があるため、このような状態で会話が終了することはないと思いますが、活発なチャンネルではない場合、バッチ実行タイミングに終了扱いにされる点をご注意ください。
開始と終了のリアクションが両方入ってしまった場合、終了を無視する仕様にしています。
開始をつけ忘れてしまった場合、一つ前のメッセージを開始扱いにして、データ取得処理を行います。
実質、このようなケースの場合、データ量が少なすぎて、期待するようなメッセージにならないと思いますが、例外処理として仕様を共有しておいた方がいいということで取りまとめました。
最後に
新しく機能を追加したことで、この実現方法であれば、
Slack じゃなくても実現できそうだなーと思ったところではありますが、
まずは Slack を使っている企業様から日々の業務の改善を行ったり、
AI を活用して今までできてなかったことができるようになると嬉しく思います。
コメント