はじめに ネクストモードの南です。 Notionのエンタープライズプランにて組織レベルの管理機能が新たにリリースされました。...
【Notion】Webhookインテグレーションでページ更新のイベントをSlackに通知する
はじめに
ネクストモードの南です。
NotionにWebhookインテグレーションが登場しました。
本エントリではアップデートの詳細と具体的なワークフロー例をご紹介します。
目次
Webhookインテグレーション
これまでインテグレーションは、Notion APIを使用してワークスペースと連携するためのコネクターとして機能していました。
今回のアップデートによりインテグレーションにWebhook機能が追加され、Notionで発生したイベントをトリガーとして外部サービスやアプリケーションとデータ連携できるようになりました。
例えばページやデータベースの変更をトリガーとして、ページ更新の通知やタスクの実行をするなど、さまざまなワークフローを実現できます。
さらに、ZapierやMakeといった自動化プラットフォームサービス(IPaaS)を利用することで、複雑なサービス間連携が必要なワークフローもノーコードで実装することが可能です。
本記事でもNotionページの更新を通知するワークフローを紹介していますのでご参考ください。
補足ですが、少し前にオートメーションでもWebhook機能がリリースされています。
オートメーションではボタンやデータベースの特定のイベントに限定されていましたが、Webhookインテグレーションではより幅広いイベントをトリガーとして設定できるようになったというのがポイントです。
以下はオートメーションのWebhookを紹介した記事ですのでご参考ください。
設定方法
以下で設定方法を紹介します。
はじめにインテグレーションを作成し、Webhookを有効化する必要があります。
作成したインテグレーションを任意のページやデータベースに設定することで、Webhookによるイベントの通知や、APIを通じてNotionのリソースにアクセスすることができるようになります。
なお、ワークスペースにインテグレーションを作成するには、ワークスペースオーナー権限が必要です。
- 以下のインテグレーションの管理画面にアクセス
- 新しいインテグレーションをクリック
- 以下を入力・選択し保存をクリック
・インテグレーション名:任意の名称を入力
・関連ワークスペース:設定先のワークスペースを選択
・種類:内部 - 作成したインテグレーションの画面でWebhookタブを選択し、サブスクリプションを作成するをクリック
- WebhookのURLを入力し、通知するイベントついてチェックを入れ、サブスクリプションを作成をクリック
- 認証するをクリック
→ 指定したWebhook URLに認証トークンが送信される - 受信した認証トークンを入力し、サブスクリプションを認証するをクリック
- 正常に認証できたことを確認
Webhookで通知可能なイベントの一覧は以下です。(2025/4/4時点)
通知されるイベントの詳細やサンプルについては以下をご参考ください。
また、ページとデータベースのイベントを通知するためにはコンテンツの読み取り権限、コメントのイベントにはコメントの読み取り権限が必要になります。
- 作成したインテグレーションの画面で設定タブをクリック
続いて、作成したインテグレーションにページ(またはデータベース)へのアクセス権限を設定します。
- 右上の…からメニューを開き、接続から作成したインテグレーションをクリック
- ポップアップメニューではいをクリック
なお、通知にも記載されている通り、インテグレーションはサブページに対してもデフォルトでアクセス権限を持つことになります。
Webhookを使ったワークフローを作成してみる
デモ用に以下のようなワークフローを作成してみました。
任意のNotionページが更新された場合に、Slackチャンネルに通知するアプリとなります。
- Notionページを更新
- WebhookからZapierのURLにイベントデータを送信
- Notion APIでページ、ユーザーの情報を取得
- Slackチャンネルに投稿
現在は新規で作成できなくなってしまいましたが、Notion NotificationsというNotionの更新イベントを通知できるSlack Appがありました。その簡易版のようなイメージです。
- Slackへの通知
Zapierの設定
Webhookの通知先にはZapierを使用しています。
複雑なワークフローもノーコード・ローコードで設定できるのでおすすめです。
Zapierのワークフローは以下です。
1つ目のトリガーにはWebhooks by Zapierを設定しています。
このトリガーを使うと、WebhookからZap(Zapierのアプリケーション)を実行することができるようになります。
(Webhooks by Zapierを使用するためにはZapierの有料プランに入る必要があります。)
Testのタブに移動すると、ZapのWebhook URLを参照することができます。
このURLをインテグレーションのWebhook URLに設定します。
また、インテグレーションの設定時(手順はこちら)に、Webhookの通知先との間で認証を行う必要があります。
以下の手順で認証トークンを受信し、インテグレーションの認証を実施します。
- TestタブでFind new recordsをクリック
2つ目のアクションではNotionを選択し、アクションイベントにRetrieve a Pageを設定しています。
Webhookの通知イベントからはページのidしかわからないので、Retrieve a PageでページのタイトルとURLを取得します。
Page IDには1つ目のトリガーで受信したEntity Idを指定します。
3つ目のアクションではNotionを選択し、アクションイベントにAPI Request(Beta)を設定しています。
API Request(Beta)では任意のNotion APIに対してリクエストを送信することができます。
ここではRetrieve a user APIを使って、Webhookの通知イベントのユーザーIDからユーザー名を取得しています。
HTTP MethodにGET、URLにhttps://api.notion.com/v1/users/とWebhookで通知されたAuthors IDを指定しています。
4つ目のアクションではSlackを選択し、アクションイベントにSend Channel Messageを設定しています。
Message TextではWebhookで通知されたType、2つ目のアクションで取得したページタイトルとURL、3つ目のアクションで取得したユーザー名を指定しています。
メッセージからページタイトルとURL、更新者、トリガーされたイベントのタイプを確認することができます。
今回は簡易的な通知内容にしていますが、イベントによる分岐処理をすることでページの更新内容といった詳細な情報も通知することができると思います。
まとめ
新しく登場したWebhookインテグレーションについて紹介しました。
これまでNotionのイベントをトリガーにしたワークフローを組むことにはハードルがありましたが、このアップデートにより柔軟な実装が可能となりました。
実装の難易度も高くないので、多くのユーザーが活用できる機能として期待できます。
今後も新しい情報や役立つユースケースがあれば随時公開していきますので、ぜひご活用ください。
Notionについてのお問い合わせ
ネクストモード社は、日本で3社しかないNotion販売代理店です。(2023年01月01日現在)
Notion導入を検討の際は是非下記からお問い合わせ頂けますと幸いです。