【超簡単！】 Notion2SlackをMakeで実現する

この記事は、[Ateam Finergy Inc\. × Ateam Wellness Inc\. のカレンダー \| Advent Calendar 2023 \- Qiita](https://qiita.com/advent-calendar/2023/ateam-finergy-wellness) の15日目の記事になります

本日は、@tommy1038 が担当いたします

## はじめに

今年の中頃に、Notionから「Notionプロジェクト」が、発表されました

https://www.notion.so/ja-jp/blog/new-ai-powered-notion-projects

[プロジェクト＆タスク \| Notion \(ノーション\)テンプレート](https://www.notion.so/ja-jp/templates/notion-projects-and-tasks) は、Notion公式が出してくれており、とても使い勝手が良きです

ですが、プロジェクトとしてタスクを進めていくにあたり避けて通れないのは、言わずもがな「進捗管理」ですよね

なので本記事では [Make \| Automation Software](https://www.make.com/en) というノーコードで作業の自動化を構築できるアプリを用いて、進捗管理の助けになる通知の仕組みを作りたいなーと思います

## この記事のターゲット

- Notionでプロジェクト管理したい/している人
- Slackでタスクの通知をしてほしい人
- Makeでの自動化を試したい人

## 結論

先に結論ですが

**MakeでNotionプロジェクトの直近1週間以内の未着手タスクを週次でSlackに通知する**

を行います。設定のスクショとGIFを下記にまとめてみますので、振り返りなどの際にご覧ください

### 全体像

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/2a574dec-f598-f67d-4b6d-03e7c4b1de92.png)

### 各種GIF

![Kapture 2023-12-15 at 00.35.47.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/1c67279e-c3fb-1522-cafd-e6d6a562e68f.gif)

![Kapture 2023-12-15 at 00.45.51.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/a666ea23-e4f3-aff2-6f95-62c44e93a390.gif)

![Kapture 2023-12-15 at 00.49.28.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/0f0170a0-a689-90aa-c86f-31c0ad52cd0f.gif)

![Kapture 2023-12-15 at 00.49.55.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/59fb4370-79ea-cd5d-e4ab-90419225bb04.gif)


では順をおって説明していきます

## 目次

1. 下準備
2. NotionとMakeの紐付け
3. SlackとMakeの紐付け
4. リマインダーの作成
    4.1 本日~1週間後までのタスクを抽出する
    4.2 未着手のタスクを抽出する
    4.3 担当者にメンションできるようにする
    4.4 メッセージを1つにまとめる
    4.5 タスク数によってメッセージを変える
5. スケジューラの設定
6. Q&A

## 1. 下準備

下準備として Slack・Notion・Makeのセットアップが必要になりますので、それらができていればOKです

私が0から記載するより下記の記事が画像が多くとても参考になりましたので、そちらをご覧いただけるといいかなと思います

https://qiita.com/tks_00/items/bd03f4647f924fdd2634

また、NotionとMake、SlackとMakeの紐付けがある程度わかっていれば 次の2つの章は読み飛ばしてもらっても問題ありません

## 2. NotionとMakeの紐付け

では NotionとMakeの紐付けを行っていきましょう

1. `Scenarios`から[+ Create a new scenario]をクリック
1. `+`ボタンを押すと `Search applications`となるので `Notion`を選択
1. データベースのタスクを抽出しようと考えているので [DATABASE/PAGE] の`Search Objects`を選択

| Notionを選択 | Search Objects を選択 | Notionの詳細設定 |
| ---- | ---- | ---- |
| ![スクリーンショット 2023-12-09 3.42.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/4ca2e1d1-dcbb-2a34-2292-4645ad02bf8c.png) | ![スクリーンショット 2023-12-09 3.42.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/8e76792e-ea31-b1b3-48d1-aeea8793bbed.png) | ![スクリーンショット 2023-12-10 1.24.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/4fd5d512-fd2e-258c-c1b7-dc6d00e7bc8d.png) |

では次に、Notionのコネクションの設定に移ります

1. `Connection`のセクションで `Add`をクリックし `Connection type`で`Notion Internal`を選択する
1. `Connection name` は自由に入力
1. `Internal Integration Token` を入力（※）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/0a843081-5c1e-d9d7-5876-2237b119c4dc.png" width=400px />

`Internal Integration Token`という、ちょっとなんだろうというワードが出てきました
こちらは [インテグレーション](https://www.notion.so/my-integrations) のページからインテグレーションを作成し、そのトークンを入力すれば問題ありません。下記画像の シークレットをコピーして入力してください

| 基本情報 | シークレット | 機能 |
| ---- | ---- | ---- |
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/7737244c-04f1-f439-493b-f726ebda4171.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/4cd9770b-affb-b532-0d1e-71631259ed55.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/2531d3c2-05fd-91b7-86b5-83dab41b379c.png) |

（基本情報作成時の [送信ボタン] がわかりづらいですよね）

- 参考: [Notion パブリックインテグレーションの認可を実装する \- アルパカログ](https://alpacat.com/blog/implementation-of-notion-public-integration/)
  - PublicとInternalについて記載されています

これで、トークンを入力してコネクションが反映されればOKです

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/9752bfbe-14c0-2a24-1b2a-7fa5c68b4257.png" width=300px />

では設定を続けていきます

1. `Search Objects`で `Database Items` を選択
1. `Database ID`を入力（※）

`Database ID`についてです。[プロジェクト＆タスク \| Notion \(ノーション\)テンプレート](https://www.notion.so/ja-jp/templates/notion-projects-and-tasks) を用いるとタスクテーブルができているはずです

ここで `リンクをコピー` すると、URLが得られます（例: `https://www.notion.so/{database_id}?v=*****&pvs=*`）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/e4bca71b-f642-a1cb-dcc9-ad6e779e834b.png)

この`https://www.notion.so/`から`?`までの部分がデータベースIDになります

- 参考
    - [\[初期設定 1\] インテグレーションの 取得と設定](https://booknotion.site/setting-integration)
    - [\[作成済みDBへの連携 2\] データベースIDの取得と設定](https://booknotion.site/setting-databaseid)

これでデータベースIDを手に入れたので 設定に追加します

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/8d8fdca1-3bb4-3ec3-5830-ed3c7db4d940.png" width=300px />

この時 Database ID を入力してもFilterで絞り込みをするプロパティを選択できません

下記のように `コネクトの追加` で、さきほどのインテグレーションを追加しておく必要があります。設定漏れがちなのでご注意ください

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/48d17534-17b9-68ed-507e-9effc86eeb47.png" width=300px />

コネクトの追加ができていれば、画像のようにFilterで絞り込むプロパティを選択することができるようになります

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/b74ad880-ea35-ce35-820c-795b55ee4f75.png" width=300px />

これで一度、左下の`Run once`をクリックして実行してみましょう

| scenarioの画面 | 値の確認 |
| --- | --- |
|　![スクリーンショット 2023-12-09 4.00.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/ad948c72-19dc-e4e5-aaaa-df1ed0caf19e.png)　|　![スクリーンショット 2023-12-09 4.03.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/409eff67-6d88-bb0a-7908-e9ff40d46027.png)　|

二つめの画像のように、アプリケーションロゴの右上のアイコンから値を確認できればOKです

ちなみに、scenarioの画面の フロッピーディスク(？)のようなアイコンが保存ボタンになります。scenarioの作成をしている際、保存を忘れて何度か痛い目を見ているので、頻繁に保存ボタンを押すことをおすすめします

## 3. SlackとMakeの紐付け

続いて SlackとMakeの紐付けを行いましょう

1. Notionのアイコンの右側で`Add another module`をクリック
2. `Search applicaitons`に`Slack`と入力し、`Slack`を選択
3. Slackにメッセージを連携したいので [Messages] から`Create a Message`を選択

| モジュールの追加 | Slackを選択 | Create a Messagegeを選択 |
| --- | --- | --- |
| ![スクリーンショット 2023-12-10 9.47.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/5e8e264c-669f-2e90-0f7e-d3f7d4bbbc7a.png) | ![スクリーンショット 2023-12-10 9.47.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/80566fa3-1848-c3f5-44cc-035286f451d1.png) | ![スクリーンショット 2023-12-10 9.47.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/9c7f4ac2-ce67-fecc-ca9a-5dfd53e69b17.png) |

では次に Slackのコネクションの設定に移ります

1. `Connection`のセクションで`Add`をクリックし `Connection type`で`Slack (bot)`を選択する
1. `Connection name`は自由に入力
1. [Save]をクリックすると、「Integromat が NotificationSample Slack ワークスペースにアクセスする権限をリクエストしています」の画面になるので許可する

| Connection type | Connection name | 権限のリクエスト |
| --- | --- | --- |
| ![スクリーンショット 2023-12-10 9.57.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/5dcaa56e-257c-a7f4-63e9-a5a9b05e1989.png) | ![スクリーンショット 2023-12-10 9.57.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/a492f10c-d739-0b37-b8ab-cb38e31d5d1e.png) | ![スクリーンショット 2023-12-10 9.58.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/fd5014cd-9123-4c9f-9cf3-5388f84daa2d.png) |

`Connection type`は、Botからのメッセージにするために`Slack (bot)`を選択します
権限許可の箇所で`Integromat`と表示されますが、Makeの名前になりますので問題ありません

:::note info
Makeの前の名称がIntegromatだったようで、「Integromat」のキーワードで調べると もう少し情報が得やすいらしいです
（検証はしておりません）
:::

設定を続けていきましょう

1. `Enter a channel ID or name`で`Select from the list`を選択
1. `Channel type`を選びます（今回は通知チャンネルとしてpublicで用意しているので `Public channel`を選択）
1. `Public channel`をプルダウンで選択（今回は、`test-notification`を選択）
1. `Text`で`hoge`と入力して、OKをクリック

これで準備ができたので、疎通確認をしましょう
`Run once`で実行して、Slackに6回`hoge`が来たらOKです

| Slackの詳細設定 | Slack画面 |
| --- | --- |
| ![スクリーンショット 2023-12-10 10.10.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/90f35938-6f10-15a9-2b46-63c9ef3c35bb.png) | ![スクリーンショット 2023-12-10 10.18.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/5b813e56-feb5-422b-560d-9f52d942fe15.png) |

## 4. リマインダーの作成

それぞれの紐付けが完了しましたので、やりたいリマインダーを作成していきましょう

### 4.1 本日~1週間後までのタスクを抽出する

結論としては、Filterの設定は下記の通りです

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/84978439-f842-14d8-45ca-c89f48dbac8c.png" width=300px />

1. 期限（Date）を選択、`Date: On or after`で `now`を入力（`now`は「Date and time」から選んでください）
2. 期限（Date）を選択、`Date: On or before`で `addDays(now; 7)`を入力（`addDays(;)`, `now`は「Date and time」から通常入力でOKです）

こちらの設定でタスクテーブルに対して 「今日よりも後の日」かつ「今日の7日後よりも前の日」のタスクを絞り込むことができました

### 4.2 未着手のタスクを抽出する

NotionモジュールとSlackモジュールを繋ぐ線の中で、スパナーのアイコンをクリックします

下記のようにフィルターを設定していきましょう

- Label: 未着手（自由に設定してください）
- Condition: 
    - {{1.properties_value.`ステータス`.name}}
    - Text operators: Equal to
    - 未着手

| スパナーをクリック > Set up a filter | フィルターの設定 |
| --- | --- |
| ![スクリーンショット 2023-12-11 22.34.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/79d50d3a-d466-5e64-ed6a-7ee7fe2f38ff.png) | ![スクリーンショット 2023-12-11 22.36.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/c72122a0-917b-ec80-308e-ec5e98f87b41.png) |

この設定で実行すれば、フィルターの箇所に数字が入り フィルターアイコン（ホバーすると虫眼鏡アイコン）をクリックすると詳細を確認することができます

| 実行後 | 詳細 |
| --- | --- |
| ![スクリーンショット 2023-12-11 22.53.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/b474a22e-1654-3599-1fda-99a485c0fac6.png) | ![スクリーンショット 2023-12-11 22.53.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/dbc48c3d-5656-0b16-74d6-c45253ea538e.png) |

こちらの設定で、タスクテーブルに対して 未着手のタスクを絞り込むことができました

### 4.3 担当者にメンションできるようにする

では次に、担当者にメンションして通知できるようにしていきましょう

Slackでメンションをするためには `@Tommy1038` という文字列ではなく、SlackのユーザーIDが必要になります。SlackのユーザーIDは、下記画像のように`メンバーIDをコピー`で取得できます

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/2f5671ee-1b3d-1ee2-3725-9e7ccdc9b0a4.png" width=300px />

https://slack.com/intl/ja-jp/help/articles/360003827751-%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%AE%E3%83%97%E3%83%AD%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%81%B8%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-#:~:text=%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E6%AC%A1%E3%81%AE%E9%83%A8%E5%88%86%E3%81%AF%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%20ID%20%E3%81%A8%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%20ID%20%E3%81%AF%E3%80%81users.list%20API%20%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E8%A6%8B%E3%81%A4%E3%81%91%E3%81%BE%E3%81%99%E3%80%82%E3%81%BE%E3%81%9F%E3%80%81%E5%80%8B%E3%80%85%E3%81%AE%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%20ID%20%E3%81%AF%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%AE%E3%83%97%E3%83%AD%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%81%AB%E3%81%82%E3%82%8B%C2%A0%C2%A0%EF%BC%88%E3%81%9D%E3%81%AE%E4%BB%96%E3%83%9C%E3%82%BF%E3%83%B3%EF%BC%89%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B%E3%81%A8%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%89%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%E3%81%9D%E3%81%AE%E5%BE%8C%E3%80%81%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%20ID%20%E3%82%92%E3%82%B3%E3%83%94%E3%83%BC%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82

無事ユーザーIDが取得できたと思いますので、次に進みます

タスクテーブルとは別で、下記のようなユーザーテーブルを作成します。SlackのユーザーIDですが、Notion側ではわかりづらいので `SlackID` という名前にしています（なお、今後楽をするために、`@`をつけています）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/9d49f0c8-542f-c3a7-933c-a072c2d54828.png
" width=700px/>

ここで忘れがちなのが **ユーザーテーブルに対してもコネクトの設定をしてあげてください**

すでにタスクテーブルで行っている下記の設定ですね

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/3bc02f3f-5247-a04f-02d1-d3dec1ad96f0.png" width=300px/>

これで準備OKです。次の手順で新たなプロパティを定義します

1. タスクの新規プロパティから`リレーション`を選択して `ユーザー`を選択します
2. 名前を入力し `リレーションを追加`をクリック

| リレーションのテーブル選択 | リレーションの詳細設定 |
| --- | --- |
| ![スクリーンショット 2023-12-12 0.17.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/6bb0b5e5-974d-a99c-d1f5-77f228eb90c4.png) | ![スクリーンショット 2023-12-12 0.17.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/6ebc6441-6542-ba96-9a95-fe37e1ab2de6.png) |

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/3433d6b2-88d8-ff3f-f9db-b5ae6db802ec.png" width=700px />

これでタスクのプロパティとして、ユーザーを選択できるようになりました

では次に、SlackID（SlackのユーザーID）を取得しましょう

1. タスクの新規プロパティから`ロールアップ`を選択
2. リレーションとして`ユーザー`を選択
3. プロパティで`SlackID`を選択

| ロールアップを選択 | リレーション先の選択 | プロパティの選択 |
| --- | --- | --- |
| ![スクリーンショット 2023-12-12 0.23.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/62a64c49-20fe-d5bc-bd60-df7735b4c18c.png) | ![スクリーンショット 2023-12-12 0.28.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/2750982c-7a4a-34b4-435e-7b20c5999d81.png) | ![スクリーンショット 2023-12-12 0.25.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/a07ccbc1-79d0-97b3-33eb-6e7efc1cef74.png) |

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/c644edfc-1342-a3cc-a82e-18442c9b1b6c.png" width=700px />

これで、タスクのプロパティとして ユーザーを介してSlackIDを取得することができました。これにより、新たにユーザーが増減した場合でもユーザーテーブルに名前とSlackIDを入力すれば簡単に管理することができます

:::note warn
このやり方でなくても、関数を定義して泥臭くif文を書けば実現はできるのですが、新しいメンバーが追加された時やメンバーが抜けた時などにif文の修理が属人化を招く危険性があるので、別テーブルに切り出す対応を行ってみました
:::

あとは本題の SlackIDを用いてメンションさせるようにしましょう

| makeの設定画面 | 実行結果 |
| --- | --- |
| ![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/d3f28842-5bd5-1add-3fb7-06ea78bd021b.png) | ![スクリーンショット 2023-12-12 0.41.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/63f5bb10-a41b-be9e-9ef5-8430237dacfd.png) |

今回は「タスク名」と「メンバー」を連携させてみました。メンバーのプロパティでメンションさせるために`<>`で囲ってあげてください

こちらの設定で、担当者にメンションを飛ばすことができました

### 4.4 メッセージを1つにまとめる

4.1-4.3で、実行したいメッセージの大枠はできてきましたが、Slackを見てみるとタスク1つにあたり1つのメッセージとなりちょっと見栄えが良くありません

なので、メッセージを1つにまとめてみましょう

1. 下部のToolsから、 Text aggregatorを選択
1. 今までSlack側で定義していた処理をコピー&ペースト
1. Slack側では、Toolsから渡される`text`を入れればOKです

| Text aggregatorを選択 | 集約するテキストの1つ分を設定 | Slackへ流すテキストの設定 |
| --- | --- | --- |
| ![スクリーンショット 2023-12-12 0.48.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/500f0961-9d76-059e-960d-0df3c00e45e1.png) | ![スクリーンショット 2023-12-12 0.51.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/8c1eadb0-87c7-4baa-4cb3-df00fd7e678c.png) | ![スクリーンショット 2023-12-12 0.51.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/63b7d581-e931-644d-c880-6b51997c1946.png) |

これでタスクが1つにまとまるはずです。実行してみましょう

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/a1859fa1-1d66-19ff-45a4-c4624cf8f7cd.png" width=500px />

こちらの設定で、メッセージを1つにまとめることができました

### 4.5 タスク数によってメッセージを変える

では最後に、タスク数による条件分岐を対応しましょう

現状だと、リマインドするタスクがなかった際にエラーになってしまうので

- タスクが0件だった場合は、「リマインドするタスクはありません」的な文章を
- タスクが1件以上あった場合は、「今週のタスクはこちらです」という文章を入れて、タスクを通知できるように

ということをやっていきましょう

まずは、ルーターの準備です。この機能により条件分岐を用意できます

1. ルーターを追加
1. 既存のSlackのモジュールと接続
1. 既存のSlackのモジュールをクローン
1. ルーターと接続

| ルーターを追加 | 既存のSlackのモジュールと接続 | 既存のSlackモジュールをクローン | 接続 |
| --- | --- | --- | --- |
| ![スクリーンショット 2023-12-12 20.17.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/2d8ce1ee-7765-7f78-caa1-8f00113e7ae9.png) | ![スクリーンショット 2023-12-12 20.19.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/3cdfe38f-444c-894b-5a66-e22186c1cbae.png) | ![スクリーンショット 2023-12-12 20.19.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/c59126c2-e032-4c42-5816-0d5a41f666d5.png) | ![スクリーンショット 2023-12-12 20.22.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/3529f881-143a-b29a-24c1-e949fa8b264e.png) |

次に ルーターの条件分岐を設定しましょう

1. タスクあり: ルーターとSlackのモジュールの間のスパナーをクリックしてフィルターを設定
    - Label: `タスクが存在していれば`
    - Condition: 
        - {{3.text}}
        -  Basic operators: `Exists`
1. タスクなし: ルーターとSlackのモジュールの間のスパナーをクリックしてフィルターを設定
    - Label: `タスクが存在していなければ`
    - Condition: 
        - {{3.text}}
        -  Basic operators: `Does not exist`

| タスクあり | タスクなし | 全体像 |
| --- | --- | --- |
| ![スクリーンショット 2023-12-12 20.24.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/1b624c5b-170e-d7e5-ba92-411517502242.png) | ![スクリーンショット 2023-12-12 20.25.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/f2520716-7eb0-664d-905d-d8f74a0f3620.png) | ![スクリーンショット 2023-12-12 20.25.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/d8a39417-c8e7-e5ac-a788-363feb64192e.png) |

これで条件分岐ができました

あとは、メッセージの箇所を修正して完了です。Slackのメッセージモジュールを変更します

| タスクあり | タスクなし |
| --- | --- |
| ![スクリーンショット 2023-12-12 20.25.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/45c406e6-d744-3c3f-a68c-b6ca34e8558c.png) | ![スクリーンショット 2023-12-12 20.26.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/e290be81-41b1-e8be-0336-2a9dd4677388.png) |

これで、Slackのメッセージも それぞれの文章を通知させることができました

| タスクあり | タスクなし |
| --- | --- |
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/eb679448-e75b-a53a-a7f9-efd1f041e73f.png) |　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/3796d9d7-7dda-9ea9-8e19-1026403ccf6b.png) |

## 5. スケジューラの設定

では最後に、スケジューラを設定していきましょう。下記の画像の箇所で設定できます

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/ad02ca72-3850-c7c6-21c2-859f01871ebc.png" width=500px />

デフォルトが15分ごとになっているので、週次月曜日の10時に設定します

- Run scenario: `Days of the week`
- Days:
    - `Monday`
- Time:
    - `10:00`

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/77be0344-f29b-300b-7628-3d27ff473d68.png" width=500px />

あとは、SCHEDULINGをONにすればOKです

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/a8a8cb51-6b85-13c4-68d2-8e56c959112c.png" width=300px />


## 6. Q&A

設定を行なっていくにあたり、自問自答した問題をQ&A形式で書いてみます

### Q. 現状タスク一覧を取得してから、Make側で絞り込んでいますが、非効率ではないですか？

僕もそう思いますね。ですが、Make側で操作できる、filterが下記のようになっておりまして、ステータスで絞り込むことができません

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153992/5a11887e-d0c1-01a8-fe57-77883eeec3fc.png" width=400px />

回避策として、Makeで絞り込む方法を紹介しましたが、他のやり方としては、Notion側で新たに`ステータス2`の項目を作ることです。種類を「セレクト」とすれば、Make側のfilterに出てくるので効率的になるかなと思います

（なお、`ステータス2`と名前をしたのは、デフォルトのステータスを残している場合、同名は避けないといけないためです。そちらを消せば、「ステータス」の名前で使えます）

今回は、Notionのテンプレートをそのまま使う方を優先した次第です

### Q. 担当者が複数人の場合はどうなりますか？

ここがうまく対応できずでして。。。

Arrayで帰ってきたユーザー情報を、`map`してIDだけ取り出せるものの、Make側でその配列に対して`<@userId> <@userId2>`みたいできず。

こんなやり方でできました！できそうかも！
みたいなコメントもらえると、とっても嬉しいです。笑

## 最後に

お疲れ様でした！ちょっと操作にクセがあったり、どこでエラーになった？（権限なのか、シンプルにできないのか）がわかりづらい部分もありましたが、なんとか思い描いていたリマインダーはできたような気がします

Makeをうまく活用しつつ、プロジェクトを成功に導きましょう〜！