Slackのステータス機能を活用するためにアプリを作った
Slackのユーザーステータス、使ってますか?Slack上で絵文字+テキスト
によって自身の状態を示すことができる機能。
メッセンジャー系ソフトウェアの機能としては目新しいものではないが、コミュニケーションの質を向上させるポテンシャルがあるなと感じている。
リモートワークとステータス
リモートでは基本のやりとりは非同期だが、たまーに同期的なコミュニケーションが必要なときに相手がどんな状態でいるのかを知りたいときがある。
自分の状態を示したいときもある。カフェで仕事してるときとか。
この状態のやりとりにSlackのステータスがうまく機能するようにできればいいのでは?と考えた。
最近移転した弊社オフィスを作業場所として使うことが多くなってきたので、オフィスに誰がいるのかを把握するのにも使えそうだな〜と思っていたところ、次のようなエントリを読んだ。
ステータス変更を自動化する
このエントリではつないでいるSSIDをもとにSlackのステータスを変更するというコマンドラインツールを作ったと紹介していた。
この方法は自身の状態を大まかに示すのに最適だなと思った。
ただコマンドラインで動作するツールというのが、同僚にインストールしてもらうのには障壁になりそうだなと思った。
Electronでアプリを作った
https://nakajmg.github.io/SlackStatusChanger/
メニューバーで動作するアプリをElectronで作った。
機能は👇のような感じ
SSIDによるステータス変更
つないでいるWi-FiのSSIDによってステータスを自動で変更する。
サスペンド時のステータス変更
PCがサスペンドしたときにステータスを自動で変更する。設定はSSIDと紐付ける。
例えば、オフィスのネットワークにつないでいるときにPCを閉じたときなどに離席中
といったステータスに自動で変更するように設定できる。
ステータスのリスト作成
Slackの場合、デフォルトのステータスは5個までで、チーム全員で共有される。
このアプリではアプリごとに好きなステータスのセットを保存しておけるので、よく使うステータスを1クリックで適用することができる。
アプリを活用するために
作ったアプリでステータスの変更が超カンタンにできるようになったが、メンバーのステータスを知る手段が名前の横に表示されているやつしかない。
これだとあまりステータスが有効活用できないので、botとスラッシュコマンドを作って追加した。
ステータス変更通知bot
ステータスの変更を監視して、変更があったステータスをbotに通知させるようにした。
heroku上で特定のURLを叩くとSlack APIでステータスを取得して、前回の結果との差分を取得して専用のチャンネルに流すようにしている。
URLを叩くのにはGoogle Apps Scriptの分タイマーを使ってる(herokuのschedulerがイマイチだった)。
ソース https://github.com/nakajmg/SlackStatusNotifier
ステータス一覧コマンド
メンバーのステータスを一覧で見たかったので、スラッシュコマンドを作成して追加した。
通知と一覧によってステータスの可視化ができるようになってアプリの利用価値も高まったように思う。
おわり
DLはこちらから
https://github.com/nakajmg/SlackStatusChanger/releases/tag/v2.2.0
フィードバックお待ちしております 😆
[追記] サインインとSlackへのインストールについて
アプリにサインインするにはManage PermissionでSign in with Slack
を有効にする必要があります。
SlackのApp Directoryに乗せる審査を通していないので、Teamの設定でNon distributedなappのインストールが許可されてない場合にはサインインでエラーになります 🙇🏻。(PermissionのOnly allow apps from the Slack App Directory
が有効な場合)
また、インストールにAdminの許可が必要な場合(Approved Apps
が有効な場合)にもサインインでエラーがでますが、インストールが許可されると使えるようになります。
サインイン以外にTokenの入力でもアプリを使えるようにするか検討中です🤔