Makeを使ってNotionからSlackに@マークでメンションする
Metadata
Date: January 29th, 2023
Category: 興味や関心、学んだこと全般、振り返りなど
背景
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で作成した配列をループします。