SkillStack Lab 運営者の「スタック」です。
日々の業務でタスク管理からマニュアル作成までNotionを使い倒している方も多いのではないでしょうか。一方でチームのリアルタイムなコミュニケーションにはDiscordが欠かせないという声もよく聞きます。
この二つのツールを行き来していると、情報の確認漏れが発生したり、重要なメッセージの保存を手作業で行う手間がかかったりと、NotionとDiscordの連携ができないことにもどかしさを感じる場面も少なくありません。
そこで今回は、ZapierやMakeといったノーコードツールを活用した手軽な方法から、WebhookやGASを使った少しマニアックな自動化まで、実務で使える仕組みを徹底的に解説していきます。
- ノーコードツールを使った簡単な自動通知の設定手順
- Webhookを活用したリアルタイムなデータ連携の仕組み
- チャット上の重要な発言をデータベースに蓄積する方法
- エラーが発生した際の具体的な解決策とトラブルシューティング
情シス視点で語るNotionとDiscordの連携

企業の管理部門や情シスにいると、「最新のタスク状況がどこにあるか分からない」「マニュアルが更新されたことに誰も気づいていない」というチームメンバーの悲鳴をよく耳にします。
Notionという強力なストック型データベースと、Discordという機動力のあるフロー型チャットをシームレスに繋ぐことで、この問題は劇的に改善できるかなと思います。
ここでは、外部のミドルウェアを活用してシステムを統合する具体的なアプローチを見ていきましょう。
Zapierを用いた効率的な通知設定
プログラミングの専門知識がない方や、まずは手軽に自動化を試してみたい方に一番おすすめなのが、Zapierを活用した通知システムの構築ですね。
Zapierは直感的な画面操作だけで、アプリ同士を繋ぐことができます。特に中小企業の現場では、IT専任者がいなくても現場の担当者が自ら業務改善できる点が非常に強力です。
具体的な設定のステップ

例えば、「Notionのタスクデータベースに新しいアイテムが追加された時」をトリガー(自動化の起点)に設定します。
次に、アクションとして「Discordの特定のチャンネルにメッセージを送信する」という動作を指定するわけです。
このとき、NotionのページタイトルやURLを変数としてDiscordのメッセージ本文に埋め込むことで、クリック一つで該当ページに飛べる通知が完成します。
ここがポイント!
緊急度が高いタスクや、絶対に全員に目を通してほしい全体周知のドキュメント更新の場合は、Zapierの設定でメッセージ本文に「@everyone」や「@here」を含めるようにカスタマイズしておくと良いでしょう。
Discord側で強制的にプッシュ通知が鳴るため、メンバーの確認漏れを強力に防ぐことができます。
Makeで複雑なデータ処理を自動化
もし、単なる直線的な「Aが起きたらBをする」という通知ではなく、「特定のステータスが『完了』になった時だけ通知したい」「担当者がAさんの場合は営業チャンネルへ、Bさんの場合は開発チャンネルへ送信先を変えたい」といった複雑な条件分岐が必要な場合は、Make(旧Integromat)の出番です。
視覚的なデータルーティングの強み
Makeは視覚的なノードベースのインターフェースを持っており、複数の経路にデータを振り分けるルーティング機能や、複数のデータを一括で処理する機能に優れています。
少し技術的な学習コストはかかりますが、システム運用担当者にとっては、より柔軟なハイパーオートメーションを実現する強力な武器になるはずです。
| ツール名 | 操作性と学習コスト | 得意な処理・ユースケース |
|---|---|---|
| Zapier | 直感的で非常に簡単(低) | 1対1のシンプルな通知連携、非エンジニア向け |
| Make | ノードベースで少し複雑(中) | 複雑な条件分岐、データの変換、複数アプリへの同時展開 |
※各ツールのプランや機能は変更される可能性があるため、導入の際は公式サイトの最新情報をご確認ください。
Notion公式Webhookの限界と壁
外部ツールに頼らず、Notionの有料プランに備わっている「データベースオートメーション機能」を使ってWebhookを飛ばすことも可能です。
これはデータベースの変更を即座に検知して外部のエンドポイント(URL)にPOSTリクエストを送る仕組みですが、実は現在の仕様にはいくつかの壁が存在します。
(出典:Notion公式ドキュメント『Webhooks – Notion API』)
注意点とデメリット
Notionから送信されるWebhookのデータ(ペイロード)には、ページのタイトルや日付などの「メタデータ」しか含まれていません。
ページ内の具体的なテキスト本文や画像ブロックを直接送信することはサポートされていないため、本文が必要な場合は、通知を受け取った後に改めてNotion APIを叩いてデータを再取得する二段構えの処理が必要になります。


連携できない時のよくあるエラー原因
「設定手順通りにやったはずなのに、どうしても連携できない」というトラブルに直面すること、ありますよね。
その最大の原因は、Notionが送るデータ形式と、Discordが受け取りたいデータ形式の構造的な不一致(スキーマの不適合)にあります。
HTTP 400(Bad Request)の正体
Discord側の簡易Webhook設定から発行したURLは、基本的に{"content": "ここにメッセージ内容"}という非常にシンプルなJSON形式しか受け付けてくれません。
しかし、Notionのオートメーションから自動送信されるデータは、ワークスペース情報や各種プロパティが深く階層化された(ネストされた)独自の複雑なJSONデータです。
これをそのままDiscordのWebhook URLに直接投げつけても、Discord側のサーバーが「求めているデータ形式と違う!」と判断し、「不正なリクエスト(HTTP 400エラー)」としてはじき返してしまうのです。
これが連携失敗の最も多い根本原因です。

GASを用いた独自プロキシサーバー構築
上記の「データ形式の不一致」という壁を、有料の外部ツールを使わず、かつ毎月の運用コストをかけずに乗り越える方法があります。
それが、Google Apps Script(GAS)を使って独自のプロキシ(中継)サーバーを構築するアプローチですね。
中継地点でデータを翻訳する
GAS上でウェブアプリとしてデプロイし、専用のURLを発行します。NotionからのWebhookは一度このGASに向けて送信させます。
GASを活用したデータ変換のイメージ
Notionからの複雑なデータを一度GAS(doPost関数)で受け取り、JavaScriptを使って必要な情報(タイトルやURLなど)だけを抽出します。
そして、Discordが理解できる{"content": "メッセージ"}というシンプルな形にデータを整形(翻訳)し直してから、UrlFetchApp.fetch()を使って改めてDiscordへ送信するという中継役を担わせるわけです。

サーバー維持費も完全無料なので、少しコードが書ける情シス担当者には非常に有力な選択肢です。
管理職が推すNotionとDiscordの連携術
ここまでは、Notionの更新をいかにチャットへ通知するかという「ストックからフローへ」の一方向の話をしてきました。
しかし、組織の本当の資産となるのは、日々のチャットから生まれる有益な議論、トラブルシューティングの履歴、そしてナレッジです。
ここからは視点を逆転させ、フロー情報であるチャットをストック情報へと自動変換する、逆方向の連携術について深掘りしていこうと思います。
過去のメッセージの保存における課題
Discordは低遅延で快適なコミュニケーションができ、チャンネルをまたいだ議論も活発に行える素晴らしいツールです。その反面、情報はタイムラインの彼方へ急速に押し流されてしまいます(フロー化)。
過去の重要な決定事項や、エンジニア同士の有益なQ&Aを数ヶ月後にDiscordの検索機能から探し出そうとしても、文脈が途切れていたりして見つけ出すのは至難の業ですよね。
この構造的課題を解決するには、価値あるメッセージだけを抽出し、Notionの構造化されたデータベースに自動で保存する仕組みが不可欠になってきます。
Webhook送信のメカニズムと制約
Discordから情報を外へ出す(Notionへ保存する)場合も、単純に全てのメッセージを送ってしまうとNotionが日々の雑談やスパムのようなノイズで溢れてしまいます。
そこで、運用上のルール決めや技術的なフィルタリングが重要になります。
要件に合わせたツールの選定
どのような情報を拾い上げたいかによって、最適なアプローチは変わってきます。
| 連携ツール・手法 | 抽出のトリガー例 | 主なメリットと制約・注意点 |
|---|---|---|
| Zapier / Make | 特定チャンネルの新規投稿 | ノーコードで非常に手軽に構築できるが、設定を工夫しないと全メッセージが無差別にNotionへ保存されやすい。 |
| 独自Bot開発 | 特定の絵文字リアクション | ユーザーが「これは保存したい!」と思ったメッセージにスタンプを押すだけで蓄積できる。開発のハードルは高いが実用性は抜群。 |
| コマンド機能 | 先頭に「!save」などのプレフィックス | チャットを打ち込む際に意図したタイミングで能動的に保存可能。Botのプログラム側で正規表現を用いた解析が必要になる。 |
※上記表に記載の各ツールの仕様や連携機能については、アップデートにより変更される可能性があります。あくまで一般的な目安ですので、導入の際は最新仕様をご確認ください。
独自Botでメッセージの保存を自動化
私が情シス目線で個人的に最もおすすめしたいのが、Discordの独自Botを作成して自動化するアプローチです。
Discord Developer Portalからアプリケーションを新規登録し、特定のインテント(メッセージ内容を読み取る権限など)を適切に付与することで、非常に柔軟な連携が可能になります。
全員がナレッジのキュレーターになる
例えば、「特定のスタンプ(💡や📝など)がリアクションとして追加されたメッセージだけをNotionに保存する」といった運用ルールとBotを組み合わせます。
これなら、自分以外の誰かの発言であっても、有益だと思ったメンバーがスタンプを押すだけで、価値のあるナレッジがNotionにどんどん蓄積されていくエコシステムが完成します。
また、スポイラータグ(隠しテキスト)で伏せられた回答と質問本文をセットで抽出し、Notionの別々のプロパティに格納するといった複雑な処理も、独自Botであれば難なく対応可能です。
GASによるペイロード不一致の解決法
前述した独自の中継サーバーやGASを利用して双方向の連携を実現する際、管理部門として絶対に忘れてはいけないのが「セキュリティへの配慮」です。
インターネット上に公開されたエンドポイントURL(GASのURLなど)には、悪意のある第三者がNotionを偽装して不正なリクエストを送ってくるリスクが常に付きまといます。
署名検証(HMAC-SHA256)の重要性
Notionからの正規のリクエストであることを証明するために、送信されてくるHTTPヘッダーにはX-Notion-Signatureという特別な署名(シグネチャ)が含まれています。
これは事前に発行されたシークレットキーを用いた暗号化ハッシュです。
受信側のGAS内でこのハッシュ値を再計算して検証(Validate)するプロセスをしっかりとスクリプトに組み込むことで、「このリクエストは確実にNotionから来た本物だ」と信頼できるようになります。
これにより、情報漏洩や不正アクセスを防ぐエンタープライズ水準のセキュアな連携システムが実現するわけですね。

💡 最新ツールを使いこなす一方で、「会社のエクセル業務」に疲弊していませんか?
NotionやDiscord、Zapierなどの最新ツールを連携させて個人の業務やチーム開発をスマートに自動化できるスキルがある方ほど、会社から求められる「各種申請」や「経費精算」などを、いまだに旧態依然としたエクセルへの手入力やマクロで処理し続けなければならない現状に、強いストレスと非効率さを感じているのではないでしょうか。
「関数やマクロのエラーに怯える日々から抜け出したい」
「誰かが休むと業務が回らない『エクセル属人化』を根本から解消したい」
そう感じたことのある総務・経理・バックオフィス担当者に向けて、元社内SE・現役管理職の視点で「日々の定型業務を劇的に楽にする脱エクセル(SaaS)ツール」を厳選しました。
いきなり会社で稟議を通す必要はありません。時間を無駄にせず業務を効率化したい方は、まずはノーリスクの無料登録や資料請求を活用して、専用ツールの圧倒的な「ラクさ」をご自身の目で確かめてみてください。
\ エクセルの手作業を今日でやめるなら /
まとめ:NotionとDiscordの連携
いかがでしたでしょうか。
今回は、中小企業の情シス・管理部門の目線から、NotionとDiscordの連携に関する具体的なアプローチと、その裏側にある技術的な課題(スキーマの不一致やセキュリティ)について詳しく解説しました。
手軽な通知から始めたいならZapier、少し複雑な条件でデータ処理を回したいならMake、そして高度なカスタマイズやコスト削減を狙って独自のエコシステムを作りたいならGASや独自Botの開発と、組織のフェーズやITリテラシーに合わせて最適な手段を選ぶことが最も重要ですね。
こうしたツールの利用料金やAPIの制限事項などは常に変動する可能性があるため、最終的な判断は専門家にご相談いただくか、各サービスの公式リファレンス等の最新ドキュメントをご自身で確認することをおすすめします。
情報のサイロ化(孤立)を防ぎ、ツール間のシームレスな情報の循環を生み出すことで、皆さんのチームの業務効率が劇的に向上することを願っています。
ぜひ、自社に合った無理のない範囲から、自動化の一歩を踏み出してみてください。
