Small Changes

Makeを使ってNotionからSlackに@マークでメンションする


Metadata


背景

zapierの代用でmakeを使っています。

makeは無料プランでフィルタ機能が使えたり、プランは個人に最適化されていて試しやすいプランになっているのですが日本語の情報量が少なめです。

今はNotion x Slack連携で使っており、ミーティングノートを30分前になったら専用のSlackチャンネルに自動通知するようにしています。

Slackで通知したい文章

通知する文章は下記のような感じです。参加者の部分はNotionのユーザー名を元に取得しています。

テストtitle
開催時間: 17:15参加者: test.taro, test.hanako

makeのmap関数のみだと実現できなさそう

makeでは、map関数があり、配列を繰り返し処理する場合に便利です。下記のようにすると次のような出力が得られます。

  • map(array; name) => test.taro, test.hanako

今回はSlack側でメンションされるように@を入れると構文エラーになってしまいます。

  • map(array; @name) => エラー

配列の文字列の先頭に@をつけたいだけでしたがmap関数では実現できないようでした。

かなり遠回りですが、自分の場合は Itelator → text parser(replace) → array aggregator を挟むことで実現できました。

実現するためにやったこと

モジュールの全体像

1. Set Variables

  • Notion User Namesというnameの配列を作ります。

2. Iterator

  • 配列をIteratorで分割する。

3. Replace

  • Iteratorで要素ごとに文字列が渡ってくるので、先頭に@をつける

4. Array aggregator

  • 置換後の要素を再度配列に加工しなおします。

5. Create a Message

  • Array aggregatorで作成した配列をループします。

References