Slackワークフローで勤怠報告を楽したい


# はじめに
新型コロナウイルス感染症(COVID-19)への対策として弊社でも3月末より在宅勤務を実施しています。

社内コミュニケーションには以前からSlackを活用していたので、出退勤時には全員が参加している特定のチャンネルへひとことメッセージを送る、というルールが始まりました。

1週間・2週間と在宅勤務が続くなか、やはり対面の機会がないため、各メンバーが今日どのような業務を行うのか把握しづらい、という課題が出てきます。
毎朝Slackで挨拶するならば、そのとき一緒に『今日やること』を書き込んで状況を共有したいよね、というアイディアが出たので、出勤メッセージのテンプレートを決めて始めてみたものの、実施の初日から「コピペして記入するだけでもなんだか面倒くさいよね」という結論にいたりました。

いつかは使ってみようと思っていたワークフロービルダー、今こそ使う機会だと思い、重い腰を上げてフローを組んでみところ、思っていたよりも簡単だったので余裕が出来た時間で記事にまとめてみることにします。

# 前提条件
まず、Slackを使っていることは大前提として、Slackのプランや設定も確認が必要です。

- Slackのワークスペースは有料プラン契約で利用している
- ワークフロービルダーの利用権限がワークスペースで有効化されている

この前提条件が満たせない場合、ごめんなさい、別の方法を検討しましょう。

# 動作イメージ
勤怠報告と今日やることの項目を定型文でサクっと投稿したい。投稿したらこんなメッセージが流れてほしい、という動作を期待しています。
<img width="680" alt="2020-04-08_18h12_21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/1e19afa3-9a4b-ef35-c9ef-d65ae8d0e2a4.png">
勤怠報告の操作は以下のような手順で、手軽に送信できるようになります。そう、ワークフロービルダーを使えばね😉

# 操作の流れ
操作のステップとしては3つです。（お、リストアップすると多くみえますね…）

**＜勤怠報告の操作ステップ＞**
1. 『業務開始』のワークフローを呼び出す（メッセージ入力欄の⚡アイコンから）
2. 投稿フォームに今日やることを記入する
3. #kintaiチャンネルにメッセージが投稿される

## 1. ワークフローの呼び出し
ワークフローを実行するにはメッセージ入力欄の先頭にある⚡アイコンから『業務開始』の項目を選択します。
<img width="556" alt="2020-04-08_14h23_04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/e50a6fa0-ed0b-4ae1-8ccb-c9043dc96fb1.png">

## 2. 今日やることの記入
表示されたフォームに今日やることの内容を記入して、送信ボタンを押します。
<img width="397" alt="2020-04-08_15h15_39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/6fe42d92-d173-9abc-8b1b-cbeea5ae2818.png">

## 3.メッセージの投稿
投稿された内容はワークフローからの投稿として#kintaiチャンネルにメッセージが表示されます。
<img width="416" alt="2020-04-08_14h22_14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/c7194970-e6bf-89f7-674a-670bfe7b60c1.png">

これくらいの操作だと『今日やること』も毎朝気軽に書ける気がします。


# ワークフローの設定手順
Slackワークフロービルダー利用手順の詳細については先人の丁寧なまとめ記事を有効活用させていただきましょう！（投稿者に感謝）

[徹底解説！Slack ワークフロービルダー（Workflow Builder）](https://qiita.com/kazushi_iizuka/items/5cd9c3bb0bde9803cac0)

実際に組んだワークフローは以下のとおりです。

# ワークフローの内容
実際に組んだワークフローはスクリーンショットで見ていただくほうが把握しやすいので、場面ごとの画像で流れを追います。（一部、実際の設定手順と前後する画面がありますがご了承ください）

## ワークフローを開始する方法の選択
ワークフローの構成ショートカットを選択します
<img width="430" alt="2020-04-08_15h22_12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/83d04a4a-5251-c8db-5886-04ea5bc55058.png">

## ショートカットの保存
ショートカットの内容として、利用先のチャンネル名と表示名を指定します。
<img width="758" alt="2020-04-08_14h21_08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/5f2075ad-ff99-bd80-e72c-0f3663b25652.png">
チャンネル名はプルダウンメニューに表示されますが、見当たらない場合は入力してください。

## ワークフロー
ここではフローの設定が済んだ画面を表示します。今回作成したワークフローはこのようになっています。
<img width="758" alt="2020-04-08_14h20_55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/1e9ffbba-61a6-33f6-4bfd-184718936d3c.png">

## フォームを作成する
フォームの設定では質問文を記入して、複数行の項目を入力したいので質問のタイプには『長い回答』を選びました。
<img width="758" alt="2020-04-08_14h21_18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/89f714a2-902a-e165-c7d0-c5733a6aacf8.png">

## メッセージを送信
フォームに入力された回答をメッセージに含めるために、入力欄右下にある『変数を挿入する』リンクから挿入します。
<img width="758" alt="2020-04-08_14h21_25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/e4b3115d-e338-d60f-1103-b4b8cb6289bb.png">
フォームからの送信内容はワークフロービルダーからのメッセージ送信になるため、送信者はワークフローの名称になります。

フォーム入力者の名前を変数で加えておくことで誰からのメッセージか把握できるようにしておきます。
選択できる表示内容としては、氏名・メンション名・メールアドレス、の3種類が選択できます。
今回は氏名とメンションをメッセージに含めてみることにしました。

また、回答文は『今日やること』として見えてほしいので、変数の一行上に見出しを加えます。書式や絵文字も使えるので見栄えにはちょっとしたこだわりを反映できます。下部に表示されるプレビューを確認しながら気に入るまで編集しましょう。

## ワークフローの設定
ワークフローの名称(タイトル)やアイコンの指定は『設定』のタブから変更できます。Slackの初期アイコンだと味気ないので会社のロゴを割り当てました。いっそ『業務開始』などのアイコンを用意しても良かったのですが、とりあえず。
<img width="758" alt="2020-04-08_15h25_05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/986f6607-90b4-e34c-a7d6-e5f92cdb189f.png">
一通り設定が済んだら『保存』ボタンを押してワークフローを保存しておきます。

## ワークフローのコピー
作成したワークフローはワークフロービルダーの画面から複製ができます。出勤のワークフローをコピーして退勤のワークフローも用意しておきましょう。
<img width="758" alt="2020-04-08_14h21_41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235641/23899d0c-2906-a375-0658-b9c27e31999f.png">

以上でワークフロービルダーを利用したワークフローの登録と実行までの手順は完了です。

ワークフローはこのようなシンプルな利用例のほかにも送付先を指定したダイレクトメッセージも利用できたり、ステップを追加して複数のワークフローを組み合わせることもできるので、Slackを入口としたさまざまな入力フォームを手軽に作ることが出来そうです。

チャットボットほどの柔軟性はありませんが、お手軽さは代えがたいので今後も活用する場面をいろいろ試していきたいですね。Webhookも利用できるので私が想像しているよりも活用できる機会は多いかもしれません。

スラッシュコマンドをフローに入れられると良いのになーと思っていますが、やはり出来ないのでしょうか…。（ホントはメッセージに合わせて勤怠管理システムへ打刻操作を飛ばしたかったのですが、私が確認したかぎりではできなかったです。）

# 参考リンク
Qiitaに投稿された記事のほかにもさまざまな参考資料がありますので参考にしてください。

- [slackに「勤怠報告機能」をノンコーディングで追加する](https://qiita.com/marogoma/items/5e92a297a1a1a372e887)
- [徹底解説！Slack ワークフロービルダー（Workflow Builder）](https://qiita.com/kazushi_iizuka/items/5cd9c3bb0bde9803cac0)
- [【速報】Slackの神・新機能「ワークフロー」使ってみた！これは仕事が超効率化する予感…！](https://seleck.cc/1356)
- [slackの「投稿ルールが守られない問題」をコード不要のWorkflow builderで解決する](https://qiita.com/marogoma/items/5decf57915e3f166d9eb)
- [slack ヘルプセンター：ワークフロービルダーガイド](https://slack.com/intl/ja-jp/help/articles/360035692513-%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%83%93%E3%83%AB%E3%83%80%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89)

# 最後に
Slackのワークフロービルダーをこんなふうに活用してます！って方、ぜひコメントください。

COVID-19で普段の生活がままならない状況ですが、こんなときこそ知恵を出し合って乗り切りたいですね。
この投稿がどなたかの一助になれば幸いです。ご精読ありがとうございました。