Contents
Notion データベースと API の基礎知識
Notion が提供する公式 API は 2022 年 6 月 28 日にリリースされた v2022‑06‑28 が現在の安定版です(2024 年に新バージョンが出たという情報は誤り)。RESTful なエンドポイントと Bearer Token / OAuth2.0 による認証方式を採用しており、1 秒あたり最大 3 回(180 リクエスト/分) のレートリミットが設定されています。以下ではデータベースの構造と API の利用方法を順に解説します。
データベース構造とプロパティタイプ
Notion のテーブルは「ページ」の集合体で、各ページがレコード(行)に相当し、列は プロパティ として表現されます。CRM 連携ではプロパティ設計が API エラー防止の鍵になるため、代表的なタイプと特徴を把握しておきましょう。
| プロパティ | 説明 |
|---|---|
| テキスト | 任意の文字列。検索やフィルタに最適。 |
| 数字 | 整数・小数。計算式は利用できないが、外部で集計可能。 |
| 選択肢(シングル/マルチ) | ドロップダウン形式のリスト。マルチ選択は配列として扱われる。 |
| 日付 | 期限・開始日・タイムゾーン情報を保持できる。 |
| リレーション | 他データベースと双方向リンク。ページ ID が必須。 |
| ロールアップ | リレーション先のプロパティを集計(合計・平均・カウント) |
実務ポイント
- CRM の顧客レコードは「テキスト」「日付」「選択肢」だけでなく リレーション を活用し、案件データベースと結びつけることで営業パイプラインが可視化しやすくなります。
- プロパティ名にスペースや特殊文字を入れない方針で統一すると、API 呼び出し時のフィールド指定がシンプルになります。
公式 API のエンドポイントと認証方式
Notion API は以下の主要エンドポイントから構成されます。全て HTTPS 経由で呼び出し、Authorization: Bearer <TOKEN> ヘッダーを必ず付与してください。
| エンドポイント | 主な機能 |
|---|---|
GET /v1/databases/{database_id} |
データベース構造(プロパティ情報)取得 |
POST /v1/pages |
新規ページ(レコード)作成 |
PATCH /v1/pages/{page_id} |
既存ページのプロパティ更新 |
GET /v1/search |
ワークスペース内リソース全体検索 |
認証方式
- シークレットキー方式:Notion の管理画面 → 「インテグレーション」から API キーを取得し、社内ツールやバッチ処理で利用。権限は「Read」「Update」など最小限に絞ることが推奨されます。
- OAuth 2.0:外部ユーザー向けの連携シナリオでは必須。認可コードフローで取得したアクセストークンとリフレッシュトークンを安全に保管し、30 日ごとに自動更新する実装が一般的です。
ポイント
1 秒あたり 3 回のレートリミットは「バースト」的に許容されますが、連続で大量リクエストを送ると429 Too Many Requestsが返ります。バックオフ戦略(指数的遅延)とキューイング処理を組み込んでおくと安定運用できます。
CRM 連携がもたらすビジネスメリット
CRM と Notion をシームレスに結びつけることで、情報の 一元管理 と 営業プロセス自動化 が実現します。以下では代表的な効果と導入時に期待できる具体的成果を示します。
顧客情報の一元管理と営業プロセス自動化
-
データ重複の排除
CRM に登録された顧客が Notion の案件テーブルへリアルタイムで反映され、手入力ミスや二重レコードを根本的に防止します。 -
リード育成とフォローアップの自動化
Zapier / Make が「新規リードが CRM に追加されたら Notion のタスクページを自動生成」し、担当者へ即座に Slack 通知やメールでアラートできます。 -
レポート作成時間の短縮
Notion のロールアップとビュー機能だけで売上予測・パイプラインステータスを集計できるため、エクセルへの手動転記が不要になります。
まとめ
双方向同期により顧客情報は常に最新状態が保たれ、営業チームは「データ入力」から「案件進捗の意思決定」へ本来の業務に集中できるようになります。
主要 CRM 別連携方式と比較表
ここでは HubSpot・Salesforce・Zoho CRM・Pipedrive・Microsoft Dynamics 365 の5つを対象に、ネイティブ連携可否、ノーコードツール(Zapier/Make)での実装状況、コスト・リアルタイム性などを比較します。
比較ポイントの解説
- 導入コスト:無料プランがある HubSpot が最もハードル低く、エンタープライズ向け Dynamics は初期投資が大きいです。
- 連携方法:ネイティブ連携がない CRM でも Zapier/Make が実質的な橋渡し役となります。双方向同期が必須の場合は Make のシナリオ構築を推奨します。
- データマッピング柔軟性:Notion のプロパティは基本型しか持たないため、CRM 側で複雑な picklist や数式がある場合は事前に正規化(文字列化)しておく必要があります。
- リアルタイム性:Zapier はポーリング方式が主流で 有料プランの最短間隔は 1 分、無料プランは 15 分です。一方 Make は Webhook を利用すれば数秒以内に同期可能です。
| CRM | 導入コスト* | ネイティブ連携 | Zapier 可 | Make 可 | 双方向同期 | データマッピング柔軟性 | リアルタイム性 | 認証方式 |
|---|---|---|---|---|---|---|---|---|
| HubSpot | 無料プランあり、上位は月額 $50〜 | 公式テンプレート未提供 | ✅(豊富なトリガー) | ✅(自由度高) | ✅(Zapier/Make 両方で実装可) | 高(UI が分かりやすい) | 有料プラン最短 1 分、無料は 15 分 | OAuth 2.0 |
| Salesforce | Professional $75/ユーザー/月 | AppExchange にサードパーティ製あり | ✅(標準オブジェクト対応) | ✅(Apex 呼び出し可) | ✅(Make が推奨) | 中(カスタムオブジェクトは手動マッピング) | 5 分程度の遅延が一般的 | OAuth 2.0、IP 制限 |
| Zoho CRM | $12〜/月(Standard) | Zoho Flow は公式ツールだが Notion 非対応 | ✅(Webhook 経由) | ✅(HTTP モジュール可) | 片方向が標準、Make で双方向構築可 | 中(フィールド正規化必要) | 約1 分の遅延 | OAuth 2.0、API キー |
| Pipedrive | $15〜/月(Essential) | Power‑Ups に Notion 未実装 | ✅(シンプルトリガー) | ✅(HTTP リクエスト可) | 片方向が標準、Make 推奨で双方向化 | 高(カスタムフィールド自由度大) | 1〜2 分の遅延 | OAuth 2.0、API キー |
| Microsoft Dynamics 365 | エンタープライズ向けプラン別料金 | Power Automate が公式ノーコードツール。Notion コネクタは非公開 | ✅(HTTP アクションで実装) | ✅(シナリオ構築可) | ✅(Power Automate 併用で双方向) | 高(スキーママッピング機能豊富) | 数十秒〜1 分程度 | Azure AD、OAuth 2.0 |
*「導入コスト」は SaaS の最低プラン料金を目安に記載。実際の費用はユーザー数・オプションで変動します。
ノーコードツールで実装する具体的設定手順
実務で最も利用されている Zapier と Make(旧 Integromat) を例に、HubSpot・Salesforce との Notion 連携手順をステップバイステップで解説します。各ステップでは「なぜその設定が必要か」を簡潔に説明し、エラーハンドリングやレートリミット対策も併せて提示しています。
Zapier で HubSpot と Notion を連携
Zapier はポーリング方式が基本です。有料プラン(Professional 以上)では最短 1 分間隔、Starter でも 5 分、無料プランは 15 分 が上限となります。この点を踏まえて設定します。
- Zap の作成
-
Zapier ダッシュボードで「Create Zap」をクリックし、新規フローを開始。
-
トリガー設定(HubSpot)
- アプリ選択:
HubSpot→ イベント:「New Contact」または「Contact Property Change」。 -
HubSpot アカウントを OAuth で認証し、対象プロパティ(例:
lead_status)を指定。 -
アクション設定(Notion)
- アプリ選択:
Notion→ アクション:「Create Database Item」。 -
Notion のインテグレーションキーで認証し、事前に作成したデータベース ID を入力。
-
フィールドマッピング(ここが実装の要)
- HubSpot
First Name→ Notion名前(テキスト) Email→メールアドレス(テキスト)-
Lifecycle Stage→ステージ(選択肢) -
フィルタとエラーハンドリング
- 「Filter」ステップで「Stage が 'Qualified' のみ処理」など条件付け。
-
エラー時は Zapier の「Task History」から自動リトライ設定を有効化し、失敗通知を Slack に送るようにします。
-
テスト実行 & 有効化
- テストデータで動作確認後、Zap を ON にすれば完了です。以降 HubSpot に新規コンタクトが追加されるたびに Notion データベースへ自動登録されます。
注意点
- Zapier のレートリミットは 1 秒あたり最大 10 リクエスト(プラン依存)ですが、Notion 側の 3 RPS を超えないように「Delay」ステップで間隔を調整すると安全です。
Make(Integromat)で Salesforce と Notion を同期
Make は Webhook 主導 のリアルタイム実行が可能で、無料プランでもシナリオは 15 分ごとに自動実行 が上限です。また月間 1,000 オペレーション(HTTP リクエスト・変換など)の制限があります。以下の手順で双方向同期シナリオを構築します。
- シナリオ作成
-
Make のダッシュボードで「Create a new scenario」→ 空白キャンバスを開く。
-
モジュール追加:Salesforce → Watch Records
-
OAuth で Salesforce アカウントを接続し、対象オブジェクトは
Lead。変更種別は「Created / Updated」のみ取得するようにフィルタ設定。 -
データ変換(Mapper)
-
Mapper モジュールで Salesforce フィールドと Notion プロパティを 1 対 1 にマッピング。数値型は小数点以下 2 桁へ丸め、日付は ISO8601 形式に統一します。
-
Notion → Create a Database Item
-
Notion キーで認証し、対象データベース ID を指定。リレーションが必要な場合は別シナリオで取得したページ ID を
Relationプロパティに渡す設定を追加します。 -
双方向同期実装
- 同一シナリオ内に「Watch Database Items」(Notion 側)モジュールを配置し、変更があれば Salesforce の
Update Recordモジュールへ流す。 -
無限ループ防止のため、各レコードに
Last_Synced_Timestamp(DateTime)フィールドを設け、更新時はこのタイムスタンプで比較します。 -
エラーハンドリングとスケジューリング
- 「Error Handler」モジュールで失敗メール通知を設定し、リトライ回数は 3 回に限定。
- 無料プランではシナリオの最小実行間隔が 15 分 のため、リアルタイム性が必須の場合は有料プランへのアップグレード(1 分間隔)を検討してください。
ポイント
Make の無料枠は月 1,000 オペレーションまで利用可能です。大量データ同期が必要な場合は「Batch」モジュールでまとめて処理し、オペレーション数削減とレートリミット回避を図ります。
運用と保守のベストプラクティス
連携システムは構築後も継続的なメンテナンスが不可欠です。ここでは実務で頻出する課題に対処するための具体的手順を示します。
認証情報とトークン管理
- 定期ローテーション:シークレットキーは最低 90 日ごと、OAuth のリフレッシュトークンは 30 日以内に自動更新できるようスクリプト化。
- 最小権限の原則:Notion は「Read」+「Update」のみ付与し、Write(全削除権限)は不要なケースでは外す。CRM 側も同様に Scopes を絞り込む。
レートリミット対策
- バックオフ実装:429 エラー受信時は 2 秒 → 4 秒 → 8 秒 … と指数的に待機時間を伸ばすロジックを組み込みます。
- バッチ処理:1,000 件以上のレコード更新が必要なときは、500 件ずつに分割し、各バッチ間に 2 秒のスリープを入れることで 3 RPS の上限を遵守します。
データ不整合防止
- ソース・オブ・トゥルース を明確化(例:ステージは CRM が唯一更新元、Notion は閲覧専用に限定)。
- タイムスタンプ比較:双方向同期時は
updated_atフィールドで最新レコードを判定し、古い方のデータは上書きしないようにします。
バックアップ戦略
| 対象 | 方法 | 頻度 |
|---|---|---|
| Notion データベース | エクスポート機能で CSV/HTML ダウンロード | 週次 |
| CRM(例:HubSpot) | API GET /crm/v3/objects/* → S3 バケット保存 |
毎日 |
| 認証情報 | 秘密管理ツール(1Password/HashiCorp Vault)に格納し、変更履歴を有効化 | 随時 |
セキュリティベストプラクティス
- HTTPS のみ利用:全通信は TLS 1.2 以上で暗号化。
- IP ホワイトリスト(可能な場合):Notion と CRM の管理画面に対し、社内 IP のみアクセス許可。
- 監査ログの取得:Zapier/Make の実行履歴を CloudWatch や Datadog に転送し、異常検知ルールを設定します。
FAQ(よくある質問)
| 質問 | 回答 |
|---|---|
| Notion の無料プランでも API は利用できますか? | 利用可能です。1,000 件/日までのリクエストが許容され、インテグレーションキーは同様に取得できます。ただしチームメンバー数やページ権限に制限があります。 |
| Zapier の最短ポーリング間隔はどれくらいですか? | 有料プラン(Professional 以上)で 1 分 が最短、Starter は 5 分、無料プランは 15 分です。リアルタイム性が必要な場合は Make の Webhook 推奨です。 |
| Make の無料プラン実行頻度の上限は? | 無料プランではシナリオは最短 15 分間隔、月間オペレーションは 1,000 回までです。有料プランにすれば 1 分間隔・無制限に近いオペレーションが可能になります。 |
| 双方向同期でデータ衝突を防ぐ方法は? | 各レコードに Last_Synced_Timestamp を持ち、更新時は「最新のタイムスタンプ」だけを書き込むロジックを実装します。また、重要フィールドは片方(例:CRM)だけ更新可能とするルールも有効です。 |
| カスタムオブジェクトは Notion にどうマッピングしますか? | Zapier/Make では API 経由で取得できるため、事前に Notion 側に「テキスト」や「選択肢」プロパティを用意し、Mapper で文字列化して渡すと問題なく保存できます。 |
| API キーが漏洩した場合の対処は? | 即時に Notion と CRM のインテグレーションページからキーを無効化し、新しいキーを発行します。その後、全てのシナリオ・スクリプトで新キーへ置き換え、監査ログで不正アクセスがないか確認してください。 |
記事の要点まとめ
- Notion API は v2022‑06‑28 が現行 で、1 秒あたり 3 リクエスト(180/分)のレートリミットを守る設計が基本です。
- CRM 連携によりデータの一元管理と営業自動化が実現 し、手入力エラーやレポート作成工数を大幅に削減できます。
- 主要 CRM(HubSpot・Salesforce・Zoho·Pipedrive・Dynamics) はネイティブ連携がなくても Zapier/Make が橋渡し役となり、コスト・リアルタイム性・サポート体制を比較して選定すべきです。
- Zapier の最短ポーリングは有料プランで 1 分、無料は 15 分。一方 Make は Webhook により数秒以内の同期が可能 ですが、無料プランでは実行間隔が 15 分に制限されます。
- 運用フェーズでは認証情報の定期ローテーション、レートリミット対策、データ不整合防止、バックアップ取得 を標準プロセス化し、セキュリティと可用性を確保します。
本ガイドに沿って設計・実装・運用すれば、Notion と CRM のシームレスな統合が実現し、営業チームの生産性向上とデータ品質の安定化を同時に達成できます。ぜひ自社プロジェクトで試してみてください。