WorkatoのSlackコネクターを利用して、Slackのイベントをトリガーにレシピを実行する

# はじめに
Workatoの導入を検討する理由の１つに挙げられるものとして、SlackやTeamsなどのコミュニケーションツールのボット（チャットボット）を手軽に作りたい、というものがあります。

Workatoではコミュニケーションツールへメッセージを送信するだけのボットや、ボットと対話しながら何らかの処理を進めるインタラクティブなボット、コミュニケーションツールのイベントをトリガーに何らかの処理開始するボットなど、様々なボットをノーコードで開発することが出来ます。

イベントをトリガーとする例を挙げますと、Slackの特定のチャンネルに特定のメッセージが投稿されたらWorkatoで何か処理を行う（レシピを実行する）、特定のメッセージにリアク字（絵文字で反応を示す機能）が追加されたらWorkatoで何らか処理を行う、という実装も可能です。

今回は、Slackで発生したイベントをトリガーに、Workatoのレシピを実行する方法について記載していきます。

# 手順

## 【１】Workatoの設定
### １．トリガーに対してSlackコネクターを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/f9b4a55d-253f-8102-f59f-c6182e53b2db.png)

### ２．「New event」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/5631e5e4-44ef-1aae-8942-cdfaceac42d2.png)

### ３．Event nameを入力します。（任意の名称）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/2637a9ad-09ba-0b53-76cd-15f18a6626d5.png)

### ４．画面の空いている箇所をクリックすると、Request URLが表示されます。（Request URLの値は後ほど使用します）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/169c0eaa-88ce-3e94-4da5-c962db2654e7.png)

### ５．残りのレシピ（アクション）の作成を進めます。

## 【２】Slackの設定
### １．以下のURLへアクセスします。
https://api.slack.com/apps

### ２．「Create New App」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/c4deed03-e310-4758-b289-deb6314c3e41.png)


### ３．「From scratch」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/7b570834-e67a-e50c-21a0-5be42e45d709.png)

### ４．以下の設定を行い、「Create App」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/77290562-cb76-20ba-eed0-f586d5e8ca7b.png)

|App Name|Pick a workspace to develop your app in
|:-------------------------------:|:--------------------------------------:|
| カスタムアプリの名前（任意の名称）|カスタムアプリを利用するワークスペースを選択|

### ５．「Event Subscriptions」をクリックします。
「Event Subscriptions」が表示されていない場合は、左側のメニューより「Basic Information」をクリックし、「Add features and functionality」をクリックして表示を展開してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/900f9f3e-3403-2b92-fe77-b488513739ec.png)

### ６．「Eneble Events」をクリックし、「On」に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/2a861701-47f3-8e97-13c6-50d75cb98e71.png)

### ７．WorkatoのSlackコネクターのEventトリガーの「Request URL」に表示されているURLコピーし、Slackの Event Subscriptionsの「Request URL」へ貼り付けます。
URLを貼付後、画面の空いている箇所をクリックするか、他の項目をクリックして「Verified」と表示されれば問題ありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/f3b76a45-5b5d-eca7-e2a4-0f7dca45582d.png)

### ８．Subscribe to bot eventsをクリックして展開し、「Add Bot User Events」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/12020950-a4a9-f3fd-faef-089f521a147d.png)

### ９．トリガーとするSlackイベントを選択します。
例えば、メッセージが投稿されたことをトリガーとしたい場合は、「message.channels」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/4b5efc3d-7d36-03a8-11e7-2c3096e10ff3.png)

### １０．購読（Subscribe）するSlackイベントが追加されたことを確認し、「Save Changes」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/31de4f02-e444-b48c-2ba1-2a965d95e27e.png)

### １１．「Install to Workspace」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/fcd6cda1-a0f6-8908-1e8b-7e837d860c96.png)

### １２．「許可する」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/b9b61b53-8d47-0968-5351-9987c8cec60b.png)

### １３．インストール先のSlackワークスペースと、Botを利用したいチャンネルを開き、作成したアプリに対してメンションを送信します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/2ab1e9aa-516f-ee1b-3c42-2ee50071ec8e.png)

※メンションするアプリユーザー名は、Slackカスタムアプリ名です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/b8eb8cf0-e12e-d150-5ab0-c360cecee389.png)

### １４．「チャンネルに追加する」をクリックします。
※Slackアプリは、参加したチャンネルのイベントのみ取得することが出来ます。（参加していないチャンネルのイベントを取得することはできません）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/4f4d3608-559b-5813-1821-2193315a8795.png)

## 【３】動作確認
### １．Workatoレシピの「Test」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/f6ba75ef-663c-77c4-d4cc-5a9afc8e21ff.png)

### ２．「【２】Slackの設定」Slackアプリが追加されたチャンネルから、メッセージを送信します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/9a7bb85f-36c5-1091-00be-fd3f9f3b5085.png)

### ３．Workatoのテストが正常に動作したことと、その結果を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/e427fa33-cf50-fdc2-cafa-0be8f55410e4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/d43614d3-c18a-12ea-c6a4-8582d5f6d9b3.png)

#### メッセージ内容などの条件に応じてトリガーを制御したい場合
メッセージ内容などの条件に応じてトリガーを制御したい場合は、「Set trigger condition」を有効化し、条件を設定してください。
（例えば、特定の文字列が含まれる場合や、特定の絵文字でリアクションが行われた場合のみレシピを動作させたい場合等）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/0c669361-2477-68c9-afaf-b2b2e2827fef.png)