---
title: Slackで定期的に確認をサポートするbotアプリ「KurocoWorkflow」のインストールと利用方法
description: Slackにてメンションがついた投稿にスタンプがつけられるまで、定期的にリマインドを送るbotをKurocoにて作成しました。利用方法を説明します。
---

:::note
想定作業時間：10分
:::

:::caution
現在[フリートライアル](https://kuroco.app/ja/free_trial/)からパッケージの選択が一時的にできなくなっております。  
「ワークフローSlackボット」のパッケージ利用を希望する場合は[サポート](/ja/docs/about/support/)にお問い合わせください。
:::

## アプリ概要説明

Slackにてメンションがついた投稿に「👍」スタンプがつけられるまで、定期的にリマインドを送るbotをKurocoにて作成しました。
- このパッケージは[Slack用「確認お願いしますボット」の仕様（誰か作ってほしい）](https://note.com/fladdict/n/n640d61574f31)の記事にインスピレーションを得て1日で作成したものです。
- 月間3000ワークフロー程度の利用で無料枠1100円/月を超える予想です。
- こちらのパッケージをOEMで提供していただく、または改造いただいても構いません。全て管理画面で設定されたものです。不具合や要望など是非、フィードバックをください。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/65e9dafc85e937517558d93e54f3c871.png)
### 起動条件
下記条件にてAppが起動されます。
- @KurocoWorkflow にメンションがついていること
- 誰か宛にメンションがついていること

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/757e94967460f06eedc8056473b29778.png)
### リマインド時間の設定
下記条件にて、メンション受けた人で「👍」または「👎」スタンプをつけてない人に定期的にDMでリマインダーが送られます。
- デフォルト：12時間毎
- 投稿内に「🔥」が記載されている場合：1時間毎（メッセージを編集して、途中から緊急にもできます）

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/aba23f4eab66fef5304c2b07f9e456ec.png)
### 完了条件
下記にてリマインドが完了します。
- slackの**メッセージ**に「👍」または「👎」スタンプをつける

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/59bad220d72608911d7a648bb76c28fc.png)
### キャンセルの条件
下記にてリマインドがキャンセルされます。
- slackの**メッセージ内**に「❌」スタンプを記入する(つまり投稿者のみキャンセル可能です)

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/a192a981ab3a021e4aea4fbb66ea9e13.png)
### ウォッチの条件
下記にて結果がDMで共有されます。
- slackの**メッセージ**に「👀」スタンプをつける

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/4a28c8210d5d942703cf619e6540f562.png)
### ワークフロー終了の条件
メンションを受けた人が全員「👍」または「👎」のリアクションをすると、ワークフローが終了します。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/d664f13360eaec3dcc8dc93b01794ba0.png)

## バックエンドの準備をする
### Kurocoの登録
まずはKurocoのアカウント登録します。[無料トライアル](https://kuroco.app/ja/free_trial/)より必要項目を記入し、「登録する」をクリックします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/a80b767e116713164250606ff2b4ca58.png)

:::caution
KurocoWorkflowはサブサイトで運用します。  
メインサイトとサブサイトで別々のサイトキーになるのでそれぞれ準備してください。

無料トライアルから登録するサイトキーはメインサイトのものになります。
:::

登録したメールアドレスに登録完了のメールが届きます。メール内に記載されている管理画面URLをクリックし、ログインを行うと下記画面が表示されます。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/8a370334b8d179ad7d55cf6b62756802.png)

### サブサイトの追加
サイト一覧からKurocoWorkflow用のサブサイトを追加します。  

:::info
メインサイトのデフォルトは会員制サンプルサイト用の設定になっています。  
お支払い用のクレジットカードはメインサイトで登録し、サブサイトの利用料を含めた費用がメインサイトに請求されます。  
:::

[環境設定] -> [サイト一覧]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/6e62d36fc06738d5bd8bde2772e0d807.png)

[追加]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/d2275c30e4535ce3d720c21ccd054af4.png)

コピー元のサイト名を`workflow(Default)`に設定し、必須項目を入力して[追加する]をクリックします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/96fe6fd0e931f9771b6708d8b479bd8b.png)

サブサイトの登録完了のメールが届いたらログインをしてコンテンツを確認します。  

:::note
以降、Kuroco管理画面の説明はすべてサブサイトのものになります。
:::

### APIドメインの確認
Slack連携に必要となるAPIドメインを確認します。[環境設定] -> [アカウント設定]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/f807438e08fc8685686d787544197afc.png)
アカウント設定画面が表示されるので、「APIドメイン」を確認します。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/8aa379fe922d9643e95496372556a8fa.png)

こちらは後ほど利用するのでコピーをとっておいてください。

### エンドポイントの確認
Slack連携に必要となるエンドポイントを確認します。  
[API] -> [ForSlack]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/eab6c180215723426ced1cfca5dbd90d.png)
すでに作成されているエンドポイントのパスを確認します。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/60e20536b5d7c5721084705328bc387b.png)

上記の場合、`/rcms-api/3/event` をコピーしておいてください。

一旦ここまででKurocoの登録完了です。

## Slackアプリのインストール方法

それではAppのインストール方法を記載します。

### Appを作成する

[Slack API](https://api.slack.com/apps)にアクセスし、[Create an App]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/e668c5bc17cc4680068a05bfb3b8434f.png)
ポップアップでApp作成画面が表示されるので、[From an app manifest]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/b516cfed5eb19c0c429264b42ea0617b.png)
Workspace選択画面が表示されます。  
「Pick a workspace to develop your app in:」フィールドより、Appを利用するworkspaceを選択し[Next]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/bfd8157d34e6d10919c78a5aa8df0c70.png)
Enter app manifest below画面が表示されるので、「YAML」のテキストエリアに下記を貼り付けます。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/213f3cbcfda1340ebef0f3a8bc420664.png)
```YAML
_metadata:
  major_version: 1
  minor_version: 1
display_information:
  name: KurocoWorkflow
features:
  bot_user:
    display_name: KurocoWorkflow
    always_online: true
oauth_config:
  scopes:
    bot:
      - app_mentions:read
      - channels:history
      - chat:write
      - emoji:read
      - im:history
      - im:write
      - mpim:history
      - reactions:read
      - team:read
      - users:read
      - groups:history
      - groups:read
      - groups:write
settings:
  event_subscriptions:
    request_url: https://sample.a.kuroco.app/rcms-api/3/event
    bot_events:
      - app_mention
      - reaction_added
      - reaction_removed
  org_deploy_enabled: true
  socket_mode_enabled: false
  token_rotation_enabled: false
```

:::caution
上記コード内の `https://sample.a.kuroco.app/rcms-api/3/event`には、先ほどKurocoの管理画面でコピーした `APIドメイン/エンドポイント`を記載してください。
:::

貼り付け後、[NEXT]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/23bbd34846605a272290ad0f201804c4.png)
[Create]をクリックし、APIの作成が完了です。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/4e9b1af89c79bcc631329e7dc331106b.png)
### AppをWorkspaceにインストールする

次に、先ほど作成したAppをWorkspaceにインストールします。

[Install to Workspace]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/9639ba6940d58402fabadd19019d3b28.png)

アクセス権限のリクエスト画面が表示されるので、[許可する]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/5fa1e4176ae35015a72aa8ad6aac218f.png)
次に、イベントを設定します。左サイドバーより[Event Subsctriptions]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/2fc2fe859983524ae8d3563c0f464b8e.png)
Request URLには、先ほど同様コピーした `APIドメイン/エンドポイント` を入力し、[Save Changes]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/faf5c51fb03ec1bd01b583149fea8fc2.png)
次に、トークンを確認します。左サイドバーより、[OAuth & Permissions]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/08db165c6333d28026cf3289eeb0d338.png)
「Bot User OAuth Token」が表示されるので、コピーします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/e32f672cf7137041fcdcfb97aa91de99.png)
### Appの情報編集
デフォルトだとAppのアイコンが表示されないので、画像設定をします。
左サイドバーより[Basic Information]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/83a6a8079f941afee95268439d3b8466.png)
「Display Information」より、[Add App Icon]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/59402b9ede0ed859462ac0df31f81581.png)
今回はKurocoのアイコンをアップロードしました。(画像は[こちら](https://kuroco.app/files/user/img/documentation/kuroco_logo_512.png)から表示／保存できます。)
画像アップロードされたら完了です。アイコンが設定されました。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/6ba008bc4f39abe607c5c9a9f718521b.png)
### アプリの確認
Workspaceを確認すると、Appに「KurocoWorkflow」が追加されていることが確認できます。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/7ba540caeba8d24620b9483c5ef7d1a5.png)
Slackにアプリは追加されていますが、設定完了していないのでまだアプリは動きません。次にKurocoとアプリを連携します。

## Kurocoの設定
最後に、Kurocoに先ほどコピーしたトークンを設定します。

Kuroco管理画面より[外部システム連携] -> [slack]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/51b6fd87be764e8945ee91b73385257b.png)
Slack連携設定画面が表示されるので、「有効にする」にチェックを入れます。「Bot User OAuth Token」には先ほどコピーしたBot User OAuth Tokenを入力し、[更新する]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/4f1e33e04d5b30a897143ea1f8054485.png)
以上で設定完了です。

## 動作確認

それではSlackにて動作を確認します。対象のSlack Workspaceに移動し、@kurocoWorkflow と自分にメンションをつけてメッセージを投稿します。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/bc922b4b9e2c694b9086b22cfc560baa.png)
「👍」スタンプでリアクションしない場合、リマインダーが届きます。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/48d68e847710404d89283d5fd4efdbb2.png)
## 運用
### 投稿の確認
Kurocoの管理画面[コンテンツ] -> [ワークフロー]より、投稿状況が確認できます。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/46a64395f7c20c9a88537ceaff569ecb.png)
### 絵文字管理
Kurocoの管理画面[コンテンツ] -> [マスタ] -> [アクション絵文字]をクリックします。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/adb19b4cfcde2df774a5c9f528f5e73a.png)
マスタ編集より、絵文字とアクションの管理ができます。

![Image (fetched from Gyazo)](https://t.gyazo.com/teams/diverta/9e631e1513c2c28f7107e0809ecc6d39.png)

現在は下記のように設定されています。

| action | アクション名 | emoji | 絵文字 | 説明 | 
| ---- | ---- | ---- | ---- |---- |
| canceled | キャンセルする | x | ❌ |ワークフローのメッセージ内に編集で記入するとキャンセルになります。|
| approved | 承認する | 1 | 👍 |ワークフローを承認します。メンションされた人が承認か拒否を全員すると完了します。|
| rejected|拒否する	| -1 | 👎 |ワークフローを拒否します。メンションされた人が承認か拒否を全員すると完了します。|
| asap|緊急	| fire | 🔥 |ワークフローのメッセージ内に編集で入れると緊急（1時間毎に通知）になります。|
| watch | ウォッチする | eyes | 👀 |ワークフローが完了になると通知がきます |

マスタはCSVのアップロードにより、編集可能です。  

:::info
[管理画面マニュアル -> マスタ](/ja/docs/management/master/)
:::