BLOG
こんにちは、TAのモレイラです。
今回のブログでちょっとした技術ネタの紹介をしようと思います。
4年ほど前、新型コロナウイルスが我々の社会を揺さぶる中、世の中の会社は様々な課題を抱えました。
普段集まって仕事をしていたチームが物理的にバラバラとなり、遠隔でも集結できるような仕組みの施策。
同じ場所で管理しやすかった従業員の勤怠のリモート化。
遠隔でのデータ共有など。
大きな課題から小さな課題まで、一つずつの対応と向き合って、レベルアップできた会社がたくさんあるのではないかと思います。
以前大河原がブログで記述したように、Slackのワークフローという機能が便利で日常の作業のためにもちょっとした工夫ができます。
SlackにGoogle Apps Script(以下「GAS」という)を連携させることによって、できることがさらに増えます。今回はこの「GAS」との連携についてご紹介しようと思います。
さて、弊社では毎日の就業開始時、Zoom上で朝会を行います。
社内ルールとして、朝会の司会を担当する人は毎日変わります。みんなに少しでも人前で話すのに慣れるのを一つの目的として、一人ひとりに話してもらう機会を与えています。
ところが、そこで問題が発生しました。
今日誰だっけ?
五十音順で担当を回しているとはいえ、前日の担当を覚えていなければ、当日の担当も分からないままです。
その時思いつきました。順番をアプリで管理しながらSlackに通知を送れば、迷いなく朝会をスムーズに開催できるのではないかと。
Morning Gloryと名付けたこちらのアプリの大まかな開発の流れを説明しようと思います。
まずはGoogle Spreadsheetで従業員の名前とSlackメンバーIDを記載。
GASでは上記のデータを拾って、行の順で担当を回していきます。対象の従業員のSlackメンバーIDを使って、Slackにメンション付きのメッセージを送ります。
アクセスしやすいように、Zoom会議のURLも載せています。
そうしたら担当が一人進んで、翌日は次の人になり、最後まで行ったらまた一行目に戻ります。
ここで新たな問題を発覚しました。
当日の担当が休みだったらどうする?
こちらの問題を解決するために全員のメールアドレスをスプレッドシートに記載しました。
弊社では従業員の休暇を必ずGoogle Calendarに登録しています。みんなのメールアドレスを使えば、カレンダーの予定をスクリプト上で確認することができます。
当日の本来の担当のカレンダーに「不在」イベント、もしくは「有給」や「お休み」などの特定のキーワードを含む予定が登録されていれば、次の人に回します。このチェックを行っている時はむしろ「担当」ではなく、「候補」として扱っています。
全員の予定を考慮してから担当を決めることができれば、あとはSlackに通知を送るだけです。完成状態は以下の通りです。
アプリの発動は毎日9:55に設定していますが、当日が祝日または会社全体の休業日であれば、それらの予定専用のカレンダーを参照したうえで通知の処理をスキップします。
そこでもう一つの問題発覚。
休みの人がカレンダーに予定を入れなければどうする?
突発的に当日の担当がカレンダーにお休みの予定を登録していなかった時のために、追加の機能も用意しています。
Slackコマンドを使えば、アプリを直接呼び出すことができるようになります。
具体的にはコマンドを三つ用意しました。
・/checkmc:当日の担当を確認する
・/skipmc:担当を一人スキップする
・/setmc 名前:担当を指名する
こちらのコマンドとGASのアプリURLをSlackのAPIページで登録すれば準備完了。
ここまで来れば、朝会の担当を決めることから始めたアプリが、いつの間にか勤怠情報も扱っていてかなり便利になりました。
今後も新たな機能を思いつくことがあれば、さらに強化したいですね!
ここまで説明した開発の流れを以下の図でまとめてみました。良かったら参考にしてみて下さい。
今回のブログはいかがでしたでしょうか。
こういったちょっとした工夫が日々の業務を助けてくれますし、開発するために色々調べる必要があるので同時にとても良い勉強になります!
これからもピンチをチャンスに変えて、新しい工夫を考えていきたいと思います!