5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ZOZOAdvent Calendar 2021

Day 7

Slackワークフローを使って、未来の上司(内定者バイト)のために日報運用をちょっと便利にしてみた件

Last updated at Posted at 2021-12-06

こんにちは!場末のエンジニアことガチムチ(ムチ成分多め)です。
皆さんは日報というか作業ログというかそういったものはどうしていますか?
私のチームでは、メンバーそれぞれがSlackで毎朝昨日やったこと、今日やることを投稿し、そのスレッドに作業ログを書いていくスタイルで運用しています。

特に困っていることはないのですが多少の煩わしさがあります。
それは、毎朝昨日何やっていたっけ?とチャンネルを遡らないといけないことと、ある種決まっているようなフォーマットを毎回入力しないといけないことです。
~~正直アドベントカレンダーネタのためにひねり出した感が否めないですが、~~有給とったり、内定者バイトさんが1週間出社が空いたりするとチャンネルのメインスレッドが進むので、結構めんどくさかったりします。

そこで、前回の作業予定の内容を記録しておいて、いい感じにフォーマットして投稿してくれるSlack ワークフローを作って煩わしさから魂の解放を行ったという話です。

ワークフローと各種ステップの説明

データの保存先はスプレッドシートにしワークフロー開始時に保存されている前回のやることを取得し、今回のやることを入力されたら更新するような流れにしました。

全体図

スクリーンショット 2021-12-02 19.51.59.png

各種ステップの概要

wfをショートカットが選択されたら起動する
↓
スプレッドシートでワークフローを起動した人のログを検索
↓
フォームメッセージに前回の予定をセットし送信
  フォーム内容は前回やったこと、今回やることを入力できるように設定する
↓
チャンネルに送信
 チームのグループメンションをつけてメッセージ送信
↓
シート更新

スプレッドシートの準備

まず、以下のようなシートを含むスプレッドシートを用意しておきます。
この後説明するシートを更新するステップでは、検索できるキーが一つのため、ユーザー一人につき、一行で更新していく方式にしました。

member log date  format-date
email-address やることを保存するところ wfを実行した日時 関数でdateをフォーマット値(後述)

スプレッドシートの検索

Slackが用意してくれているSelect a spreadsheet rowを利用してwfを実行した人のメールアドレスでmember列を検索をします。
変数からwfを始めた人の属性が取得できます。
取得した行の情報は変数として次以降のステップに引き継がれます。
スクリーンショット 2021-12-02 20.24.27.jpg

フォームの送信

メッセージのテンプレートを適当に入力します。
ここで、スプレッドシートから取得したlog列の値をセットし前回の予定を送ってあげます。

下の方で、入力フォームの設定を行います。
今回は、前回やったこと、今回やることにしました。

フォームが送られてきたメッセージで、前回予定が確認でき、実際にやったことと、今日やることをまとめれるようにしました。

メッセージの送信

フォームに入力された値を使って日報を送ります。
このメッセージテンプレートに今まで準備してきた変数が使えるので、必要なものを使って構築します。
ここには書いてないですが、@hogehoge-teamみたいにメンションもつけれます。

スプレッドシートの更新

最後にスプレッドシートの更新を行います。
これは、最初にスプレッドシートを検索したときと同じように更新する行を選択し、更新する列に値をセットするように設定します。

動作確認

ワークフローを設定したチャンネルの入力欄の左下のショートカットからwfを実行します。
そうすると、なんということでしょう〜。前回入力した内容がおくられてきたじゃないですか。
スクリーンショット 2021-12-02 20.29.08.png
今日の予定を入力してみましょう。

無事に表示されました。
スクリーンショット 2021-12-02 20.29.54.png

注意点

変数:ワークフローが開始した時刻

変数のワークフローが開始した時刻 をスプレッドシートに送ると一体どういう了見なのか、 Thu, 02 Dec 2021 11:28:44 という形式で保存されるで、致し方なく、日付をスプレッドシートの関数でフォーマットするだけの列(format-date)を用意しました。

スプレッドシートの検索結果がないとき

検索結果がないときはエラーになり、wfがうまく動作しません、そのため使うであろう人のメールアドレスを事前にスプレッドシートのmember列にセットしておく必要がありました。
ちなみに、エラーになったときは、ワークフローの設定画面のアクティビティからエラーの詳細を確認できます。
スクリーンショット 2021-12-02 21.13.13.png

適当なチャンネルを作ってある程度動かしてから

簡単なテストは適当なチャンネルでやったんですが、メンバーに使用感とか聞く前にチームのチャンネルに導入してしまい、メインスレッドが日報だらけになってしまいました。
使う人がある程度絞れているなら使用感とか聞きながら作ったほうがいいなと思いました。当然っちゃ当然なんですが、、、
もっとドライな反応だと思っていましたが、意外とあーだこーだ議論できて楽しかったです。

まとめ

ちょっと煩わしさを取っ払いたいとかそういったときにサクッと準備できるSlackワークフローはすごく便利だと思いました。
今回はスプレッドシートと連携していろいろやりましたが、他にもいろいろなインテグレーションが用意されているので、胸熱です。

また、使用感を確認したときにチームの人達が意外とこうしたらどうだろうか?といろいろ言ってくれたり、結構楽しかったです。
途中自分含めて「あれ...?やっぱりいらないんじゃない...?」っていう雰囲気になったときに、内定者バイトさんが「出社が1週間とか空くことがあるので、とても便利そうです!」と穢れなき言葉を言ってくれて一生ついていこうと思いました。

年末ご多忙の折ではございますが、お身体にお気をつけて良き新年をお迎えください。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?