Slackワークフローから始める効率化

この記事は、[Cocone Advent Calendar 2022](https://qiita.com/advent-calendar/2022/cocone) 23日目の記事です。

# はじめに
はじめまして。開発本部ウェブ開発室の @ruisseau です。  
めっきり寒くなってきましたが、いかがお過ごしでしょうか。自分は最近風邪をひきまして声変わりしております。  

さて、本日はクリスマス🎅イブイブです。
最近は業務効率化に向けて考えを巡らせることが多いのですが、Slackワークフローを導入して効率化を図ろうと試みた事例について書きたいと思います。
クリスマス🎄イブイブなので。

# Slackワークフローとは
2019年10月15日（2年前！！）に、定型的な業務を「ワークフロー」としてSlack上で自動化するためのツールである、「ワークフロービルダー」がリリースされました。
[ワークフロービルダーが新登場 : Slack で簡単にタスクを合理化](https://slack.com/intl/ja-jp/blog/productivity/intl-ja-jp-automate-tasks-in-slack-with-workflow-builder)


>ワークフローとは、Slack 内で設定する、複数のステップで構成される自動化されたタスクまたはプロセスのことです。

>ワークフロービルダーは、定型的なプロセスを自動化して Slack ワークスペースのワークフローに変換できるツールです。


ワークフローとワークフロービルダーについての詳細は [Slackヘルプセンター > ツールの連携とタスクの自動化](https://slack.com/intl/ja-jp/help/categories/360000047926-%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E9%80%A3%E6%90%BA%E3%81%A8%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E8%87%AA%E5%8B%95%E5%8C%96) をご参照ください。  


ワークフロービルダーを使って、GUIで簡単にワークフローを作成することができます。  
ココネではSlackの有料プランを利用しているため、ワークフロービルダーを使用することができます。使わない手はないですよね。


# なぜSlackワークフローを導入しようと思ったのか

日報書いていますか？  
ウェブ開発室は、勤怠報告用のSlackチャンネルを用意しています。  
日報を兼ねて、出勤・退勤時に「今日やること・やったこと」などを投稿していました。


すべて手入力で投稿していましたが、以下の点が気になっていました。
- フォーマットがバラバラ
    - 書く順番、書く内容が微妙に違う
    - ひと目でわかりにくい
- コピペの横行
    - 毎日やることが大きく変わらない場合もあるので仕方がないが
- 誰が出勤して誰が退勤しているのかがひと目でわかりにくい
    - 当日の投稿を一通り追う必要がある


ココネでもリモートワークが当たり前になり、働き方が少しずつ変わってきています。  
今まで以上に、意識的に情報共有と状況の可視化を行う必要があるのではないかと感じています。

一人ひとりが毎日の仕事を振り返るきっかけになり、書く側・見る側 両方の負担が軽減できる方法はないだろうか、、と考えていました。

Slackワークフローというのがあったな、、これは使えないか？と思い事例を調べたところ、活用している事例がわんさか出てきました。
日報を兼ねた出勤・退勤連絡で やりたいなと考えていたことが実現できそうだったので、早速導入してみました。


# 活用事例

ワークフロービルダーでは、ワークフローを開始する方法を選択することができます。
![wf-select.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584624/6f19a6ab-8e79-c846-988e-0a956abdec74.png)



「スケジュールされた日付と時間」と「絵文字リアクション」のワークフローを作成し、組み合わせて活用しています。

作成したワークフローは以下の3つ
- 出退勤連絡（日報）ワークフロー
    - スケジュールされた日付と時間
- 出勤ワークフロー
    - 絵文字リアクション
- 退勤ワークフロー
    - 絵文字リアクション


## 出退勤連絡（日報）ワークフロー

当日の出勤・退勤 連絡用メッセージを投稿するためのワークフローです。  
月曜日〜金曜日の朝に自動でメッセージを投稿し、メッセージに対して絵文字リアクションをつけることで、出勤・退勤時の連絡を行うようにしています。
![wf-nippou.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584624/8625dc74-19a5-27a2-a3a9-ee0c50cc3429.png)
![wf-nippou-message.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584624/319ba962-d17c-701a-d825-6cded35e647f.png)


## 出勤ワークフロー
出勤連絡用のワークフローです。
![wf-shukkin.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584624/aa62623a-1af3-b7c7-7e19-750ca381b3c8.png)


出退勤連絡（日報）ワークフローで投稿されたメッセージに「出勤」の絵文字リアクションを行うことで、出勤連絡用のフォームが Slackbot から DMで届きます。  

フォームに必要事項を入力して送信をすることで、出勤連絡完了です。
![wf-shukkin-form.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584624/caf83a52-6c20-0e58-1217-55ffec972b94.png)

出退勤連絡（日報）ワークフローで投稿されたメッセージのスレッドに、フォームの内容が投稿されます。
![wf-shukkin-message.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584624/bf7bb78b-0564-691a-5d4a-f68fcfe6270f.png)


フォームに入力した内容は、DMで絵文字リアクションをしたメンバーに送信し、Googleスプレッドシートにも書き込むようにしています。


## 退勤ワークフロー
退勤連絡用のワークフローです。 **（※出勤ワークフローとほぼ同じです）**
![wf-taikin.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584624/262ffe4c-8f7e-52fc-f28c-0382b6e86ba4.png)


出退勤連絡（日報）ワークフローで投稿されたメッセージに「退勤」の絵文字リアクションを行うことで、退勤連絡用のフォームが Slackbot から DMで届きます。  

フォームに必要事項を入力して送信をすることで、退勤連絡完了です。
![wf-taikin-form.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584624/22291bb0-e9e8-e33e-807b-2d74548aaec9.png)


出退勤連絡（日報）ワークフローで投稿されたメッセージのスレッドに、フォームの内容が投稿されます。
![wf-taikin-message.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584624/1887949c-73cb-5664-400a-6abd27e9d455.png)



フォームに入力した内容は、DMで絵文字リアクションをしたメンバーに送信し、Googleスプレッドシートにも書き込むようにしています。


## Googleスプレッドシート連携
スプレッドシートへの書き込みは、ワークフローのステップに「Add a spreadsheet row」を追加し、用意しておいたシートと接続すればOKです。

出勤・退勤時の入力内容を同じスプレッドシートに書き込むように設定しています。
![wf-spreadsheet.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584624/ccf986ba-7194-1ef7-b39f-c18b4211d308.png)


「ステップの開始時間」を「投稿日」としてスプレッドシートに書き込んでいますが、そのままではJST表記になりません。どうしたものかと悩んでいたところ、このつぶやきを見つけ、参考にさせていただきました。

https://twitter.com/_kokada/status/1526136866688610304?s=20&t=xNatAnViF4jXsUQ_xBsiFg

つぶやきの通りに、スプレッドシートの言語と地域をイギリスに変更し、該当列の表示形式をカスタム日時で変更してから、「+ "9:00"」しています。

# 参考
絵文字リアクションを使ったワークフローのアイデアは、NIFTY engineering Blogの以下の記事を参考にさせていただきました！ありがとうございます。
- [Slackのワークフロービルダーを有効活用して業務効率化したい！](https://engineering.nifty.co.jp/blog/11480)

# さいごに
ウェブ開発室のチームリーダーで数日テストした後、ウェブ開発室全体に導入しました。  


導入して1週間ほど立ちましたが、以下の点がいいなと感じています。 
- 記入内容が減った
- フォーマットが統一されて見返しやすくなった
- 日毎の日報がスレッドに集約されたので、Slack上で後から追いやすい
- 絵文字リアクションの数で、出勤・退勤 人数がひと目でわかるようになった
- スプレッドシートに記入することで、データの加工がしやすくなる

改善したい点もありますが、Slackワークフロー自体の改善ではなく、出勤・退勤連絡時の記入内容についてなので、より活用できるように啓蒙活動を行っていきたいと思います。


特に便利だと感じたのが、スプレッドシートと簡単に連携できることです。  
Slackワークフローが活用できそうな定形業務がまだまだあるので、来年以降進めていきたいと思います！夢が広がりますね。


Advent Calendar は残り2日です！寂しい！