Workato：Slack上で発生したイベントをトリガーにWorkatoのレシピを実行する

# はじめに

Workatoでは、SlackカスタムアプリのEvents subscriptionで指定されたEvent typesのイベントをトリガーに、レシピの処理を実行することが出来ます。

例えば、特定のSlackチャンネルにメッセージが投稿されたらWorkatoレシピを実行する、特定の文字列が含まれるメッセージがSlackチャンネルに投稿されたらWorkatoレシピを実行する、Slackメッセージに特定のリアク字（絵文字）が追加されたらWorkatoレシピを実行する等、様々なSlack上のイベントをトリガーにWorkatoレシピを実行することができます。

# 手順
## 【１】Workato：コネクションを追加
Slackのイベントを取得するための「Slackコネクタ」コネクションを追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/94ace2a4-fe5e-8bad-98e8-aaea34ad816b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/16b6e856-7146-5dbe-e0cd-d46dd731ce9e.png)

## 【２】Workato：レシピ追加
### １．トリガーの追加
#### １）Slackコネクタを追加し、「New event」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/077273ef-fc3c-4bf0-48cd-e4821c049dbd.png)

Connectionは【１】で追加したコネクションを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/fd64eb14-99fa-ad27-93fd-a5370c2ec042.png)

#### ２）Event nameを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/cfff1ae7-f0ca-8387-3e2f-328efd065954.png)

#### ３）Request URLが生成されたことを確認します。
このURLは後続の手順で使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/ee270205-982c-33aa-1759-fba2111ec847.png)

### ２．アクションの追加
実行したい内容をアクションに定義します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/b2489438-aefb-f0b2-f69a-9a606e2ddd09.png)


### ３．レシピの保存
「Save」をクリックし、レシピを保存します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/f9740f99-ec37-bd33-0068-4e4b34b46b1e.png)


## 【３】Slack：Slackカスタムアプリの作成
Slackイベントを取得するためのSlackカスタムアプリを作成します。

### １．https://api.slack.com/apps/ へアクセスし、「Create New App」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/b12cefe8-8af4-32a2-baae-89ef1cd06fcc.png)

### ２．「From scratch」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/5e99b59c-5889-181e-af16-83f9f958d7dc.png)

### ３．App nameとアプリのインストール先とするワークスペースを選択し、「Create App」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/b2ab2423-11b8-2bc3-d780-abe232dbd8e5.png)

### ４．「Event Subscriptions」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/73a53600-7faa-9c6c-e211-f3506359c1f6.png)

### ５．「Enable Events」を「On」にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/7b984040-40d5-65b1-d164-2e29ca742dba.png)

### ６．「Request URL」に【２】Workato：レシピ追加 のトリガーで生成されたRequest URLを入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/0ea278de-24b0-482e-9b83-45ba90cee415.png)

### ７．「Add Bot User Event」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/33be421d-7b7b-8290-af00-0b7c81386d6a.png)

### ８．購読するイベントを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/35d59bee-e93a-337c-85d9-c8e4d7dbcabd.png)

選択可能なイベントとその内容については、以下を参照ください。

https://api.slack.com/events

#### 例）
- パブリックチャンネルのメッセージを取得したい場合： `message.channels` を選択
- プライベートチャンネルのメッセージを取得したい場合： `message.groups` を選択
- ダイレクトメッセージ(DM)を取得したい場合： `message.im` を選択

### ９．「Save Changes」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/168e24e0-7b27-c780-2318-576a76aef464.png)

### １０．「Basic Information」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/6e75f8b3-9e1b-b35d-df6f-eb7d39c2c62d.png)

### １１．「Install to Workspace」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/85f56e2e-e357-59f7-d2bc-5963700778e1.png)

### １２．内容を確認のうえ、「許可する」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/0e0b0cd9-12e2-f9ab-7002-5603f1046fba.png)

## 【４】Slack：ボットユーザーをSlackチャンネルへ追加

チャンネル上のメッセージをボット（アプリ）で取得したい場合は、そのボットユーザーを予めSlackチャンネルへ追加しておく必要があります。必要な場合は、チャンネルに対してボットユーザーの追加（招待）を行ってください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/8d1dafbf-001c-0507-e3cc-7769870f600a.png)

## 【５】Workato：レシピの開始

「Start recipe」をクリックし、レシピを開始します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/180cfde0-1e08-18a5-aec0-a235eaef16a5.png)

レシピ開始後、動作確認を行い、Slackからのイベントが取得できていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/d1be3e2b-689c-c170-affa-e2bb28433704.png)

# 参考

https://docs.workato.com/connectors/slack/triggers.html