Workflow Builder 実践内容

<strong>突然ですが</strong>
Slackの Workflow Builder って皆さん知っていますか？

僕は少し前までは、存在は知ってたけど実際に何が出来るかよくわかっていませんでした😱
少なからず、存在は知っているがどんな事が出来るか曖昧な人がいると思い、
そういった方々を対象に記事を書こうと思います👍

## 概要

Workflow Builder では、特定のイベント発火によってSlackの機能( メッセージ・フォームの送信 )やThird Party アプリ、カスタムアプリの機能を利用して業務の自動化を行えるようになります。

このページでは、特定のイベント発火の種類と実際にどんな感じで利用しているかを書きます。


## 特定のイベント発火について
Slack の Workflow Builder で利用可能なイベント発火は添付のようになっています。
![スクリーンショット 2020-12-10 9.26.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430353/6ff90146-7c0b-ab73-214e-3e277e0b65ee.png)

### 個々のイベント発火の説明

#### ショートカット
ショートカットでは、個々のチャネルに任意のショートカットを作成できます。
![スクリーンショット 2020-12-10 9.40.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430353/52b0f108-6b67-d120-5e93-f6999a6ad865.png)

実際に設定した場合チャネルの⚡️から Workflow Builder を簡単に開始することが可能です。
![スクリーンショット 2020-12-10 9.42.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430353/9d734a20-780d-7b10-9d4f-4dd2d464e62a.png)

#### チャネルの新しいメンバー
チャネルの新しいメンバーでは、個々のチャネルに追加されたユーザをイベントの発火として利用することが可能です。
![スクリーンショット 2020-12-10 9.45.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430353/c026e08b-dafb-8839-336b-2eb72d2c04bd.png)

使用例としては、Slack が紹介しているようなチャネルの説明メッセージの送信などがあると思います。
https://slack.com/intl/ja-jp/blog/productivity/intl-ja-jp-automate-tasks-in-slack-with-workflow-builder

#### 絵文字のリアクション
絵文字のリアクションでは、個々のチャネルで利用された特定の絵文字をイベント発火として利用することが可能です。

![スクリーンショット 2020-12-10 9.48.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430353/e54b1d1e-0d56-bb4f-832e-e1bceeec8df2.png)

個々のチーム内でいいねがどれだけ使われているかを見たりするのも面白いような気がします。

#### スケージュールされた日付と時間
スケージュールされた日付と時間は、cron みたいなものだと思ってます。
ただ、頻度は cron 程細かく設定が出来ないので(最短1日)、要件にマッチしない場合は後述の webhook を利用しています。


![スクリーンショット 2020-12-10 9.55.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430353/4bf5ab3a-7395-5007-ee0a-11162c2855b6.png)

#### webhook
webhook では、入力変数( 最大値何個なんだろ )と外部サーバが叩くURLが設定されます。

入力変数では、テキスト、Slack ユーザID、Slack メアドをデータタイプとして指定する事が可能です。

![スクリーンショット 2020-12-10 10.02.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430353/8ae22a00-d6b4-8ac2-13ab-3de1381a71bf.png)
なお、URL はワークフローの公開後に発行されます。
![スクリーンショット 2020-12-10 10.03.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430353/e26952f9-d472-72b9-ba81-0a010ed48c19.png)

自分はこれを一番使っています。
外部サーバから任意のタイミングでイベントを作成可能なので、とても便利。
`スケージュールされた日付と時間`では、設定できない10分毎にメッセージを送ることなども可能です。

### 実際の活用方法　

#### 社内フロアの人数取得

自分の会社では、各フロアに何人いるかの情報を収集しています。*1

Workflow Builder 構成
`webhook` -> `カスタムアプリ` -> `メッセージ送信`
という形で Slackへ10分毎に通知しています。
今は、covid-19下なので、混んでいるエリアなどを出社前にも確認できてとても便利です。

![スクリーンショット 2020-12-10 10.16.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430353/916c83fd-ebf8-990f-d172-3f337ef92b16.png)

#### チャネル参加者情報の共有

自分の会社では、社員のプロフィール情報を管理する事も可能なサービス*2を開発しています。
特定のチャネルにJoinした際に、その人のプロフィール情報を Slack へ通知しています。
( 個人情報が含まれる為、グレーアウトしています。 )
Workflow Builder 構成
`チャネルの新しいメンバー` -> `カスタムアプリ` -> `メッセージ`

氏名、部署などの人事情報だけでなく、趣味、ひとこと(意気込み的な)、skill(資格等)を見ることができるので新規PJなど始まった際に相手の情報を受動的に知れるので便利かなと思います。

![スクリーンショット 2020-12-10 10.28.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/430353/bfd4d6b1-6fa0-81ec-d570-614f98c89dac.png)


###　最後に

いかがでしたか？
Workflow Builder でどういうことが出来るかイメージをして頂けましたか？
ここで紹介していない使い方も色々あるので是非試して欲しいです。
Workflow Builderに対応しているThird Party アプリは、
Zapier 、スプレッドシートなど様々あるのでカスタムアプリを作成せずに、
簡単に使用開始することができると思います！！


##### Appendix
*1 PHONE APPLI PLACE を使用していますが、正式に提供済のものではありません。
*2 Web電話帳のPHONE APPLI PEOPLE を使用していますが、正式に提供済のものではありません。