ChatGPT と Notion を自動連携する実践ガイド
この記事の目的
- 手作業でコピーしていた会話を自動的に Notion に保存できるようにする
- Chrome 拡張・Notion API の設定手順を具体例とともに示す
- カスタム GPT から直接 Notion に書き込む方法と、運用上のベストプラクティスを解説
Contents
1. 自動連携がもたらす主な効果
| 効果 | 内容 |
|---|---|
| 情報ロスの削減 | 会話内容を手でコピペしなくなるので、抜けや誤字が発生しにくい。 |
| 検索性・共有性の向上 | Notion のフィルター・タグ機能で過去の議事録や調査結果を瞬時に抽出でき、チーム全員が閲覧可能になる。 |
| 業務効率化 | 会話終了後すぐに「保存」ボタンを押すだけで、要点が自動的にデータベースへ格納されるため、レポート作成やナレッジの蓄積にかかる工数が大幅に削減できる。 |
実際に導入した企業の事例(MoneyForward)では、会議後のノートまとめ時間が 30 % 短縮されたと報告されています【1】。
2. Chrome 拡張「ChatGPT to Notion」のインストール
2.1 拡張機能の取得方法
- Chrome のアドレスバーで 「ChatGPT to Notion」 と検索し、Chrome ウェブストアに表示される拡張を開く。
- 「提供元」が OpenAI Community(非公式ながらオープンソースコミュニティが管理)と記載されたものを選択する。※「公式版」と呼ばれることがありますが、OpenAI が直接リリースしたわけではありません【2】。
- 「Chrome に追加」→「拡張機能を追加」をクリックし、インストール完了後にツールバーへアイコンが表示されることを確認する。
ポイント:Chrome ウェブストアで配布されている拡張は Google の審査を受けています。安全性について不安がある場合は、GitHub リポジトリ(例:
github.com/ChatGPT-to-Notion)からソースコードを確認したうえで手動インストールも可能です。
2.2 初期設定:Notion と連携させる
| 設定項目 | 手順 |
|---|---|
| API トークン | 拡張アイコン右クリック → 「オプション」→「Notion API Token」欄に Notion のシークレットトークンを貼り付け。 |
| データベース ID | 保存先となる Notion データベースのページ URL から末尾の文字列(例: https://www.notion.so/xxxxxx?d=xxxxxxxxxxxxx → xxxxxxxxxxxxx)をコピーし、同じくオプション画面に入力。 |
| テスト送信 | 「テスト送信」ボタンで 1 件サンプルページが作成できれば設定完了。 |
権限は「Notion のページ作成・更新のみ」に限定され、他サービスへのアクセスは要求されません【3】。
3. Notion API インテグレーションの作成
3.1 開発者ポータルでインテグレーションを登録
- https://www.notion.so/my-integrations にログインし、「+ New integration」 をクリック。
- 名前に 「ChatGPT to Notion」(任意の名前可)を入力し、対象ワークスペースを選択。
- 権限は 「Read content」 と 「Update content」 のみチェックし、最小権限で作成することが推奨されます【4】。
- 「Submit」を押すとシークレットトークンが表示されるので、画面を閉じる前に必ずコピーして安全な場所(例:
.envファイル)へ保存します。
注意:シークレットは一度しか表示されません。再取得できないため、紛失した場合はインテグレーションを削除し新規作成してください。
3.2 トークンの安全な保管方法
|
1 2 3 |
# .env の例(プロジェクトルートに配置) NOTION_TOKEN=secret_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
- Node.js や Python の環境では
dotenvパッケージやpython-dotenvを利用して読み込むと、コード上にトークンが残らず安全です。 - Chrome 拡張側でも同様に、拡張の「secure storage」API(Chrome 76 以降)を使用すれば平文で保存されません【5】。
4. Notion データベース設計とマッピング
4.1 会話履歴用テーブルの作成手順
| プロパティ名 | タイプ | 用途 |
|---|---|---|
| Title | Title | ChatGPT - YYYY/MM/DD の自動生成タイトル |
| Date | Date | 保存日時(タイムスタンプ) |
| Tags | Multi‑select | トピックやプロジェクトを表すタグ |
| Content | Rich text | 会話全文または要約 |
- Notion の左サイドバーで 「+ New page」 → 「Database → Table – Full page」 を選択。
- 上記プロパティを追加し、必要に応じてデフォルトのビュー(Table)を保存する。
作成後は各列右上の 「…」→「Copy link」 で取得できる property_id(例: title, date, tags, content)をメモしておきます。これらは拡張側マッピング設定で必要になります。
4.2 拡張オプションのフィールドマッピング
| 拡張側項目 | Notion プロパティ (ID) |
|---|---|
| 会話タイトル | title |
| 送信日時 | date |
| タグ | tags |
| 本文 | content |
拡張のオプション画面で 「マッピング設定」 に上記対応表を入力(ドロップダウンで選択可能)すると、ChatGPT のウィンドウから 「保存」 ボタン一つで正しいプロパティへデータが送られます。
ポイント:プロパティ ID が変更された場合はマッピングも更新しないと 400 エラー(Bad Request)が発生します【6】。
5. カスタム GPT から Notion に書き込む
5.1 OpenAPI スキーマの作成とインポート
Custom GPT が外部 API を呼び出す際は、OpenAPI 3.0 の定義ファイルが必要です。以下は最小構成の例です(notion_openapi.yaml)。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
openapi: 3.0.0 info: title: Notion Write API version: "1.0" servers: - url: https://api.notion.com/v1 paths: /pages: post: summary: Create a page in a database security: - bearerAuth: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PageCreate' responses: '200': description: Page created successfully components: securitySchemes: bearerAuth: type: http scheme: bearer schemas: PageCreate: type: object properties: parent: type: object required: - database_id properties: database_id: type: string properties: type: object additionalProperties: true |
- 認証ヘッダーは
Authorization: Bearer {{NOTION_TOKEN}}と記述し、Custom GPT の環境変数に先ほど作成したトークンを設定します。 - スキーマファイルは GPT Builder の「API 連携」→「OpenAPI スキーマをインポート」でアップロードしてください【7】。
5.2 カスタム GPT の構築とテスト手順
- アクション定義で先ほどの
POST /pagesエンドポイントを選択。 - リクエストボディに以下のテンプレートを設定(
{{DATABASE_ID}}と{{TITLE}}などは変数として扱う)。
json
{
"parent": { "database_id": "{{DATABASE_ID}}" },
"properties": {
"title": { "title": [{ "text": { "content": "{{TITLE}}" } }] },
"date": { "date": { "start": "{{ISO_DATE}}" } },
"tags": { "multi_select": [{ "name": "{{TAG1}}" }, { "name": "{{TAG2}}" }] },
"content": { "rich_text": [{ "text": { "content": "{{CONTENT}}" } }] }
}
}
- テスト実行で「本日の会議要点を Notion に保存」と入力し、期待通りにページが生成されるか確認。
- エラーコード別の対処法は次節で解説します。
ポイント:Custom GPT はバックエンドでトークンを保持するため、ユーザー側がトークンを直接見ることはありません。安全性が高い点が大きな利点です。
6. プロンプト設計・品質向上とセキュリティベストプラクティス
6.1 統一フォーマットのプロンプト例
|
1 2 3 4 5 6 7 8 9 10 11 |
You are a knowledge curator. 1. Summarize the last user query and ChatGPT answer in ≤150 characters. 2. Extract up to three relevant tags (must exist in Notion's tag list). 3. Return JSON: { "title": "<自動生成タイトル>", "summary": "<要約>", "tags": ["tag1","tag2"], "content": "<全文>" } |
- 目的:JSON 出力を必須にすることで、Custom GPT のアクションが安定してデータを受け取れる。
- 品質チェックリスト(自動テストで実装)
titleが空でないかtagsが Notion データベースに登録済みの選択肢と一致しているか- JSON の構文エラーが無いか
6.2 権限管理と典型的なエラー対処
| エラー | 原因例 | 対処法 |
|---|---|---|
| 401 Unauthorized | トークンが無効、もしくは権限不足 | シークレットトークンを再生成し、拡張・Custom GPT の設定を更新。 |
| 429 Too Many Requests | Notion のレートリミット超過(1 秒あたり 3 リクエスト) | バックオフ実装(指数的遅延)か、プランアップグレードで上限緩和。 |
| 400 Bad Request(プロパティ ID 不一致) | データベース側で列名や順序を変更した | Notion の「Copy link」から新しい property_id を取得し、マッピング設定を更新。 |
| 403 Forbidden(IP 制限) | 管理画面で IP ホワイトリストが設定されている(2024 年に追加された機能) | Notion の管理コンソールで自社サーバー/クライアントの IP を許可リストへ登録【8】。 |
ベストプラクティス
1. 最小権限:Read と Update のみ付与し、Delete は不要な限り外す。
2. 環境変数で管理:トークンはコードや UI に平文で残さない。拡張は Chrome のchrome.storage.sessionまたはchrome.storage.local(暗号化オプション)を利用。
3. ログ監視:Notion の「Audit log」や自前の CloudWatch/Stackdriver で API 呼び出し失敗をリアルタイムに検知。
7. まとめ
- 自動保存 → 手作業の削減、情報ロス防止
- 検索・共有 → Notion のフィルターとタグでナレッジがすぐに活用できる
- 安全な設定 → 最小権限・環境変数管理・IP 制限(必要なら)でリスクを最小化
上記手順を踏めば、ChatGPT の会話内容を即座に Notion に蓄積し、チーム全体で活用できる基盤が完成します。ぜひ本稿を参考に、実務フローに組み込んでみてください。
参考文献
- MoneyForward, 「ChatGPT と Notion の連携で業務効率化」, https://biz.moneyforward.com/ai/basic/1876/
- Chrome ウェブストア公式ページ, 「ChatGPT to Notion」拡張情報, https://chrome.google.com/webstore/detail/chatgpt-to-notion/...(閲覧日: 2024‑12‑01)
- 開発者向け Notion API ドキュメント, 権限設定ガイド, https://developers.notion.com/docs/authorization
- Notion API v2022‑06‑28 リリースノート, https://developers.notion.com/changelog#v2022-06-28
- Chrome Extensions Security Best Practices, https://developer.chrome.com/docs/extensions/mv3/security/
- Notion API エラーハンドリングまとめ, Zenn 記事, https://zenn.dev/uguisu/articles/90d2c56d08bd8b
- OpenAI Custom GPT Builder 公式ガイド, https://platform.openai.com/docs/custom-gpts
- Notion 管理コンソールの IP アクセス制御(2024 年追加機能), https://www.notion.so/help/ip-allowlist