ネクストモードの南です。
ネクストモードではZapierを社内の業務効率化に役立てています。
今回はZapierとNotion/Slackを組み合わせて、Notionのデータベースに登録したアイテムを日付指定でSlackに通知するアプリを作ってみましたので、紹介させていただきます。
以下がアプリの概要図となります。
今回は社内アナウンスの用途で利用するケースを想定していますが、Notionのデータベースの構成などは利用シーンに合わせて変えてください。
利用者はSlackに投稿したい内容を、Notionのデータベースにアイテムとして登録します。
この際、投稿予定の日時も指定します。
Zapierが起動したタイミングで指定した投稿日時を迎えており、かつ未投稿のアイテムがあればSlackチャンネルにメッセージを投稿します。
今回のアプリですが、少し残念な点があります。
例えば、以下のような感じで同じ投稿日時が指定された複数のアイテムが登録されている場合、1件のアナウンスしか処理されません。
1回の実行でデータベースを繰り返しクロールして処理するような機構も検討したのですが、複雑&冗長になってしまい、あまり筋がいいものになりませんでした。
妥協案として、アプリを1日に複数回実行する形にしてお茶を濁しています。
(一度にまとめて通知できなくても、その日の内に通知ができればいいじゃないか、というやや安易な考えです。)
Zapierの実行回数が多くなるのと、決まった時間にまとめて通知できないという課題はありますが、その分処理もシンプルになっています。
今後筋の良さそうな解決策があれば、こちらの記事の内容も更新していきたいと思います。
Zap(Zapierで作成したアプリ)のワークフローは以下のようになります。
ステップを複数持つZapとなるため、Zapierで有料プランの契約が必要になることをご留意ください。
1.の[Every Hour in Schedule by Zapier]がワークフローのトリガーとなっており、スケジュールでZapを起動させています。
今回は1時間毎にZapが起動する設定にしています。
2.の[Find Database Item in Notion]では、Notionデータベースで投稿対象のアイテムが存在するか検索処理をしています。
今回はZapが起動したタイミングでプロパティの[投稿予定日]で指定された日時を迎えている、かつ未投稿のアイテムがある場合には後続の処理を続け、条件に合致しない場合は処理を終了する、という動作にしています。
3.の[Send Channel Message in Slack]では、2.の条件に合致したアイテムからテキストメッセージを作成し、指定したSlackチャンネルにメッセージを投稿する、という処理をしています。
4.の[Update Database Item in Notion]では、投稿処理をしたNotionのアイテムについてプロパティの更新(メッセージの投稿日時を反映する)を行っています。
ここからは構築手順を紹介していきます。
まず、Notionでアナウンス内容を記載するデータベースを用意します。
プロパティは以下の項目で作成しています。
この内、タグ以外の項目はZapierと連携させるプロパティとなります。
プロパティは利用用途に応じてカスタマイズをしてみてください。
データベースにはテスト用にアイテムを1つ登録しておきます。
テスト用のアイテムの[投稿予定日]は、現在時刻より以前の日時を指定するようにしてください。
また、[投稿日(自動入力)]には値を入れないようにします。
続いて、Slack側でアナウンス通知用のチャンネルを用意します。
今回はtest-announcementというパブリックチャンネルを用意しました。
最初にZapのトリガーとなる起動スケジュールの設定をします。
Zapierにログインしたら、左ペインの[Zap]をクリックし、Zapの格納先となるフォルダーを選択したら[Create]、[New Zap]の順でクリックして新しいZapを作成します。
Zapの作成画面になったら、まずは左上の設定でZapの名前を入力します。
また、以下の手順でZapのタイムゾーンを日本標準時刻に合わせます。
トリガーを選択していきます。
今回はスケジュールでZapを起動させたいので[Schedule by Zapier]を検索して選択します。
[Event]の項目ででプルダウンから[Every Hour]を選択し、[Continue]をクリックします。
[Trigger on weekends?]の項目ででプルダウンから[no]を選択し、[Continue]をクリックします。
[Test trigger]をクリックします。
[Your trigger is working!]という表示が確認できたら、[Continue]をクリックします。
続いて、Notionのデータベースから通知したいアイテムを検索するための設定を追加していきます。
Actionの選択画面で[Notion]を検索してクリックします。
[Event]で[Find Database Item]を選択し、[Continue]をクリックします。
[Connect Notion]で[Sign in]をクリックします。
別ウィンドウでNotionへのアクセスリクエストを設定する画面が表示されます。
右上のプルダウンメニューから対象のワークスペースを選択し、[ページを選択する]をクリックします。
検索ウィンドウからデータベースを検索してチェックを入れ、[アクセスを許可する]をクリックします。
元のZapierの画面に戻って、[Continue]をクリックします。
[Action]の画面で以下のように選択した後、[Continue]をクリックします。
データベースの中に[投稿日(自動入力)]が未入力、かつ[投稿予定日]がZapの起動時と同じ(または以前の)アイテムが存在する場合に処理を続ける、という条件にしています。
[Test action]をクリックして実行します。
正常にデータベースへアクセスができると、事前にテスト用として登録していたアイテムの値が表示されます。
続いて、Slackに通知するための設定をしていきます。
2.の処理の後に追加するので、2.のアクションの下の[+]マークをクリックします。
Actionの選択画面で[Slack]を検索してクリックします。
続いて、[Event]から[Send Channel Message]をクリックし、[Continue]をクリックします。
[Account]の項目で対象のSlackのワークスペースを選択して[Continue]をクリックします。
※対象のSlackワークスペースが表示されない場合はこちらの備考の内容をご確認ください。
以下のように項目を選択し、[Continue]をクリックします。
今回は以下の項目以外はデフォルトにしていますが、設定やメッセージの内容は好みに合わせてカスタマイズしてみてください。
[Test action]をクリックし、アナウンス通知用のSlackチャンネルにメッセージが投稿されたことを確認します。
[Close]をクリックしてアクションの編集を閉じます。
最後に、Notionのデータベースで通知したアイテムに対して、投稿日を追加するための設定をしていきます。
3.のアクションの下の[+]マークをクリックして、アクションを追加します。
続いて、Actionの選択画面で[Notion]を検索してクリックし、[Event]の項目で[Update Database Item]を選択し、[Continue]をクリックします。
[Account]の画面で、2.のアクションで追加したコネクションを選択し、[Continue]をクリックします。
[Action]の画面で以下のように選択した後、[Continue]をクリックします。
[Test action]をクリックして実行します。
お知らせデータベースの対象アイテムの[投稿日(自動入力)]に日時が追加されたことを確認します。
問題なければ[Publish Zap]をクリックします。
続けてウィンドウが表示されるので、[Publish & Turn On]をクリックします。
これで作成したZapがリリースされました。
実際にテストをしてみます。
Notionのデータベースにアナウンスするアイテムをいくつか登録しておきます。
1時間に1回の通知のタイミングで、[投稿予定日]の時間を迎えた(または過ぎている)アイテムについてはSlackチャンネルに投稿されます。
また、Notionのデータベースの[投稿日(自動入力)]のプロパティにも投稿時間が追加されています。
まだ[投稿予定日]の時間を迎えていないアイテムについては、指定した時間になるまでそのまま残ります。
ZapierとNotion/Slackを組み合わせた、Notionのデータベースに登録したアイテムを日付指定でSlackに通知するアプリを紹介させていただきました。
エントリ内では社内アナウンスで利用するケースを想定していますが、Notionのデータベースの構成を変えれば様々な用途に利用することができると思うので、ご参考にしていただけると幸いです。
ZapierはいろんなアプリケーションやSaaS製品と連携させることができ、シンプルな要件であればノーコードで実装することができます。
今回のように繰り返し発生する業務を自動化させることはもちろんですが、アイディア次第でいろんな施策にもつなげることができると思います。
ネクストモードは社内のいろんな場面でZapierを活用させていますので、今後も有用な取り組みは紹介していきたいと思います。
ネクストモード社は、日本で3社しかないNotion販売代理店です。(2023年01月01日現在)
Notion導入を検討の際は是非下記からお問い合わせ頂けますと幸いです。