n8nとNotionを連携させようとして、いきなり詰まった話

n8nのNotionノードを初めて触ったとき、正直かなり手こずった。インテグレーションを作ってCredentialを登録したのに「権限エラー」が出る。titleプロパティをNameと書いたのに動かない。Selectに値を送ったら謎のオプションが自動生成された──こういう「ドキュメントに書いてない落とし穴」が多すぎる。

この記事では、n8n v1系UIを使ってNotionデータベースに新規ページを自動作成し、プロパティを書き込むまでの手順を説明する。「なぜ動かないか」の原因ごとに対処法も載せているので、詰まったところから読んでもらえばいい。

この記事で得られること: インテグレーション設定から型別プロパティの書き込みまで、コピペで使える実例付きで一通り動くようになる。


💡 関連教材: n8nノーコード自動化 実践ワークフロー集(¥1,980) — Gmail/Slack/Notion/Claude連携の動くワークフロー10本を実装込みで完全解説(全35ページ)

結論:ハマりどころは3箇所に集中している

先に答えを出す。n8n×Notion連携で詰まる原因は、ほぼ以下の3点に絞られる。

  • DB単位での「コネクトを追加」を忘れている(ワークスペース追加だけではアクセス不可)
  • titleプロパティ名が「Name」だと思い込んでいる(実際のプロパティ名を使う必要がある)
  • プロパティの型に合ったJSON構造を書いていない(rich_text型とplain_text型を混同しやすい)

この3点を押さえれば、基本的な連携は1時間以内に動く。順番に説明していく。


H2①|前提設定:インテグレーション作成と権限付与

n8nからNotionを操作するには、Notion側でAPIトークンを発行し、n8n側でCredentialとして登録する。この手順自体は簡単だが、「権限付与」のステップを半分しかやらない人が多い

Notionインテグレーションの作成手順

  1. https://www.notion.so/my-integrations を開く
  2. 「新しいインテグレーション」をクリック
  3. 名前(例:n8n-connector)を入力し、対象ワークスペースを選択
  4. 「送信」→ secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 形式のトークンが発行される
  5. トークンをコピーして安全な場所に保存

n8n側のCredential登録

n8n v1系UIでの操作手順:

  1. 左サイドバーの「Credentials」→「Add Credential」をクリック
  2. 検索欄に「Notion」と入力して選択
  3. 「Internal Integration Token」欄に先ほどのトークンを貼り付け
  4. 「Save」で保存

⚠️ 最多ハマりポイント:DB単位の権限付与を忘れない

ここが一番重要。ワークスペースにインテグレーションを追加しただけでは、各データベースにはアクセスできない。

Notion上で操作したいデータベースを開き、右上の「…」→「コネクトを追加」から、作成したインテグレーションを選択する必要がある。この操作をDBごとに行わないと、n8nから叩いたときにobject_not_foundエラーが返ってくる。

エラー例:
{
  "object": "error",
  "status": 404,
  "code": "object_not_found",
  "message": "Could not find database with ID: xxxxxxxx"
}

このエラーが出たら、まずDB側の「コネクトを追加」を確認する。URLやトークンの問題より、これが原因である確率が圧倒的に高い。

Database IDの確認方法

NotionのDBをブラウザで開いたときのURLは以下の形式になっている:

https://www.notion.so/[ワークスペース名]/[DATABASE_ID]?v=[ビューID]

?v=の前にある32文字の英数字がDatabase ID。n8nのNotionノードに貼り付けるとき、ハイフン区切り形式(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)への変換が必要な場合がある。n8nの専用ノードは自動処理してくれるが、後述するHTTP Requestノードで直叩きするときは手動で変換が必要になるので覚えておきたい。


H2②|新規ページ自動作成の基本設定:Create Pageノードの手順

権限設定が終わったら、いよいよノードの設定に入る。まず「最小構成で動かす」を目標にする。他のプロパティは動作確認後に追加するのが正しい順序だ。

Notionノードの追加手順(v1系UI)

  1. ワークフロー画面で「+」ボタンをクリック
  2. 「Notion」を検索して選択
  3. 設定パネルが開いたら以下を入力:
    • Credential:先ほど登録したものを選択
    • ResourcePage
    • OperationCreate
  4. Database ID 欄に先ほど確認したIDを貼り付け

titleプロパティの指定方法

ここで多くの人が躓く。n8nのCreate Pageノードには「Title」という入力欄があるが、これはNotionDB上の実際のプロパティ名を指定する必要がある。

デフォルトで「Name」というプロパティ名のDBが多いが、日本語DBだと「タイトル」になっていたり、カスタムで変更されていたりする。Notion上のプロパティ名と一致していないと、エラーにはならないまま空のページが作られてしまうケースもある。

確認方法:NotionのDBを開き、一番左の列のプロパティ名を直接確認する(クリックすると名前が表示される)。

最小構成での動作確認手順

[手順]
1. Notionノードの「Title Property Name」に実際のプロパティ名を入力
   例:データベースの最初の列が「タスク名」なら「タスク名」と入力
2. 「Title」欄にテスト用の文字列(例:「テストページ_001」)を入力
3. 「Test step」ボタンをクリック
4. 成功すると右パネルに作成されたページのJSON(page_id等)が表示される
5. Notionのデータベースを開いて、実際にページが作成されているか目視確認

ここまで動けば、Credential・権限・ノード設定は正常。次のステップとしてプロパティを追加していく。


H2③|プロパティ型別の書き込み設定:4種類のJSON記述パターン

n8nのNotionノードでプロパティを書き込むとき、型ごとにJSON構造が違う。これを知らないとエラーが止まらない。よく使う4種類を整理した。

プロパティ型別の書き込みパターン一覧

プロパティ型 Notionでの表示 n8nでの記述形式
title タイトル(1列目) Title Property Nameで名前指定
rich_text テキスト {"rich_text": [{"text": {"content": "値"}}]}
select セレクト {"select": {"name": "オプション名"}}
date 日付 {"date": {"start": "2026-06-06"}}
number 数値 {"number": 100}

コード例①:テキスト・セレクト・日付を動的に書き込む

n8nのNotionノードで「Additional Properties」を使う場合、以下のようにExpressionモードで前ノードのデータを流し込める。

{ “メモ”: { “rich_text”: [ { “text”: { “content”: “” } } ] }, “カテゴリ”: { “select”: { “name”: “” } }, “期限”: { “date”: { “start”: “” } }, “優先度”: { “number”: } }


Expressionモードへの切り替えは、各入力欄の右端にある「/」アイコンをクリックする。ここを見落として固定値しか入れられないと思っている人が意外と多い。

### ⚠️ Selectプロパティの注意点

Notionに存在しないオプション値をselectプロパティに送ったとき、**APIバージョンによって挙動が変わる**。

- 旧バージョン:自動的に新しいオプションが作成される
- 新バージョン(2025以降):エラーを返すケースが増えている

本番運用前に、実際に存在するオプション名と完全一致しているか確認しておくこと。大文字・小文字・全角半角の違いでも不一致になる。

### コード例②:HTTP Requestノードで直接Notion APIを叩く方法

Notionノードでは対応しきれない複雑な操作(ネストしたfilter条件、rollupプロパティの取得など)は、HTTP Requestノードで直叩きする。


// HTTP Request ノードの設定
{
  "method": "POST",
  "url": "https://api.notion.com/v1/pages",
  "headers": {
    "Authorization": "Bearer secret_xxxxxxxxxxxxxxxx",
    "Notion-Version": "2022-06-28",
    "Content-Type": "application/json"
  },
  "body": {
    "parent": {
      "database_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    },
    "properties": {
      "タスク名": {
        "title": [
          {
            "text": {
              "content": ""
            }
          }
        ]
      },
      "担当者": {
        "rich_text": [
          {
            "text": {
              "content": ""
            }
          }
        ]
      }
    }
  }
}

Notion-Versionヘッダーは必須。これを忘れると意図しない旧バージョンの挙動になる場合があるので注意。


H2④|よくある失敗と対処法

実際に使って遭遇した失敗パターンをまとめた。エラーメッセージで検索してここにたどり着いた人は、このセクションを先に読んでほしい。

よくある失敗パターン3選

失敗①:「validation_error」が出てページが作成されない

原因の大半はプロパティ名の不一致か、型の記述ミス。対処法:

  1. Notionのプロパティ名をコピー&ペーストで入力(手打ちしない)
  2. n8nの実行ログで「Input」タブを開き、送信しているJSONを確認
  3. 型ごとのJSON構造が上記テーブルと一致しているか照合

失敗②:レートリミットに引っかかり大量書き込みが途中で止まる

Notion APIのレートリミットは3リクエスト/秒(インテグレーション単位)。100件のデータを一気に送ると確実に詰まる。

対処法:n8nの「Wait」ノードをループ内に挟み、1リクエストごとに400ms以上の待機を入れる。

[ループ構成]
Split In Batches(バッチサイズ:1)
  → Notionノード(Create Page)
  → Wait(Duration:0.5秒)
  → ループ先頭に戻る

失敗③:旧バージョンの記事を参考にしたら設定項目が見つからない

n8n v1系ではUIが大幅に変わっており、v0.x系の記事にある「Databaseメニューから…」という手順が通用しない。2024年以前の記事を参考にするときは要注意。Resource・Operationの選択画面のレイアウトが別物になっている。

正直なデメリット:Notionノードだけでは限界がある

n8nの専用Notionノードは便利だが、対応していない操作がある。具体的には:

  • rollupプロパティの取得:専用ノードでは読み取れないケースがある
  • 複雑なfilter条件のネスト:AND/ORを組み合わせた3階層以上のフィルタは専用ノードのGUIで設定しにくい
  • ページコンテンツ(ブロック)の書き込み:プロパティではなく本文(Blocks)の操作は別エンドポイント(/blocks)が必要

こういったケースはHTTP Requestノードで対応する。専用ノードとHTTP Requestの使い分けを最初から意識しておくと詰まりにくい。


H2⑤|NotionノードとHTTP Requestの使い分け比較

「どっちを使えばいいか」は実務でよく迷う。判断基準を整理した。

操作内容 Notionノード HTTP Request
新規ページ作成(基本) ✅ 推奨 ○ 可
プロパティ更新 ✅ 推奨 ○ 可
DBページ一覧取得(シンプル) ✅ 推奨 ○ 可
複雑なfilterクエリ △ 設定しにくい ✅ 推奨
ブロック(本文)の書き込み ❌ 非対応 ✅ 必須
rollupプロパティ取得 △ 不安定 ✅ 推奨
unique_idプロパティ操作 △ 確認必要 ✅ 推奨

基本的なCRUD操作はNotionノードで十分。「動かない」「対応してない」となった段階でHTTP Requestに切り替える、という判断で問題ない。


H2⑥|実装手順まとめ:ゼロから動かすまでの全ステップ

前の内容を踏まえて、初回セットアップの全手順を順番に並べる。

【前提設定】
Step 1. Notionインテグレーション作成(my-integrations)
Step 2. APIトークンをコピー
Step 3. n8nのCredentials画面でNotionのCredentialを追加
Step 4. 対象NotionDBを開き「コネクトを追加」でインテグレーションを選択
Step 5. DBのURLからDatabase IDをコピー

【ノード設定】
Step 6. n8nワークフローにNotionノードを追加
Step 7. Resource:Page / Operation:Create を選択
Step 8. Credential欄でStep3で作成したものを選択
Step 9. Database IDを入力
Step 10. Title Property Nameに実際のプロパティ名を入力(例:「タスク名」)
Step 11. Titleに固定文字列でテスト(例:「テストページ_001」)
Step 12. 「Test step」で実行→成功確認

【プロパティ追加】
Step 13. Additional Propertiesで追加プロパティを設定
Step 14. 型ごとのJSON構造で記述(上記コード例を参照)
Step 15. 前ノードのデータをExpressionで流し込む
Step 16. 本番データで動作確認

よくある質問

Q1. 無料のn8n.cloudでもNotion連携は使えるか?

n8n.cloudの無料プラン(Starter)でもNotionノードは使用できる。ただし、実行回数の上限(2026年時点で月2,500実行)があるため、大量のDB操作を自動化する用途にはスケールしない。本番運用で毎日数百件の書き込みが発生するなら、セルフホスト版を検討したほうがコスト面で有利だ。

Q2. Notionの1データベースに書き込めるプロパティ数に上限はあるか?

Notion APIの仕様上、1データベースあたりのプロパティ数の上限は最大100個。API経由でも同じ制限が適用される。通常の業務用DBでこの上限に達することはほぼないが、大規模なデータ管理用途では注意が必要だ。

Q3. 前ノードから日付データを流し込む際にフォーマットエラーが出る

Notionのdateプロパティが受け付けるフォーマットはISO 8601形式2026-06-06 または 2026-06-06T09:00:00+09:00)。前ノードから来るデータが2026/06/06のようなスラッシュ区切りだと弾かれる。

n8nのDateTimeノードか、Expressionで変換する:

// Expressionで変換する例

これで2026/06/062026-06-06T00:00:00.000+09:00に変換できる。


まとめ:次にやるべき1つのアクション

n8n×Notion連携で「動かない」理由の9割は、DBへの「コネクトを追加」忘れプロパティ名・型のミスだ。難しい設定は何もない。

まだ試していない人へ。今すぐやるべきことは1つだけ

Notionでテスト用のデータベースを1つ作り、インテグレーションを追加して、n8nから「テストページ_001」というページを1件作成してみる。これだけでいい。動いた瞬間に「あ、思ったより簡単だった」と感じるはずで、そこから応用は自然と広がっていく。

より複雑なフロー(LLMが判断してNotionに書き込む、Gmailの内容をNotionに自動保存するなど)に進みたい場合は、まずこの基本形が動く状態を作ってからにする。土台が不安定なまま応用に進むと、どこで詰まっているかの切り分けができなくなる。


著者:AI実践ラボ編集部


📘 もっと深く学びたい方へ

この記事で紹介した内容を、さらに体系的に・実務レベルで習得できる教材を販売中です。

n8nノーコード自動化 実践ワークフロー集(¥1,980)

Gmail/Slack/Notion/Claude連携の動くワークフロー10本を実装込みで完全解説(全35ページ)

  • Cloud版前提・2026年最新のn8n v1系UI完全対応
  • 動くノード設定値・JSON・OAuth設定まで全部入り
  • 10ワークフロー(Gmail/Slack/Notion/Discord/Webhook/RSS)はコピペで即実務投入

👉 今すぐ購入する

ChatGPT業務自動化 実践テンプレート集(¥1,480)

API・スプレッドシート・メール・議事録・請求書をコピペで自動化する実装特化型テンプレート集(全22ページ)

  • 動くGASコード・API設定手順・プロンプトをワンセット収録
  • スプレッドシート連携/メール/議事録/請求書を実務レベルで自動化
  • コピペで即動く実装コード(Python / GAS)付き

👉 今すぐ購入する


関連記事


関連ツール紹介

ブログ記事を効率的に量産するならValue AI Writer byGMOがSEO記事の自動生成に使える。月額1,650円から利用可能。

おすすめツールの一覧はこちらにまとめている。