Notion ツールキットにより、エージェントやワークフローがNotionのページやデータベースと対話できるようになります。コンテンツの検索、データベースレコードのクエリと更新、ページコンテンツの読み取りと追加、新しいページの作成に対応しています。
前提条件
- Notionアカウント(無料プランで十分です)
- Notionワークスペース(すべてのアカウントにデフォルトで付与されます)
接続の作成
Workflow Builder
Agent Builder
- ワークフローにNotionツールキットステップを追加します。
- Connect with Notionをクリックします。
- Notionの同意画面で接続を承認し、アクセスを許可するページとデータベースを選択します。
チャットでは、ツールキットが最初に呼び出されたときにOAuth経由でNotionアカウントに接続するよう促されます。
ツールキットは接続に明示的に共有されたページとデータベースのみにアクセスできます。コンテンツを共有するには、Notionでページまたはデータベースを開き、··· → Connectionsをクリックしてインテグレーションを追加してください。同じワークスペース内で共有されていないコンテンツは表示されません。
利用可能なツール
| ツール | 説明 |
|---|
| Search | すべての共有ページとデータベースをタイトルで横断的に検索します |
| List Databases | 接続がアクセスできるすべてのデータベースを返します |
| Get Database | 特定のデータベースのスキーマ(カラム名と型)を返します |
| Query Database | オプションのフィルタリングとソート付きでデータベースからレコードを取得します |
| Get Page | ページまたはデータベースレコードのプロパティ値とメタデータを取得します |
| Create Page | 新しいデータベースレコードまたはサブページを作成します |
| Update Page | 既存ページのプロパティを更新、またはアーカイブします |
| Get Page Content | ページの本文テキスト(コンテンツブロック)を読み取ります |
| Append Content | ページの下部に新しいコンテンツブロックを追加します |
すべての共有ページとデータベースを横断的に検索し、タイトルで一致する結果を返します。
主要な入力:
| 入力 | 説明 |
|---|
| Query | 検索するテキスト |
| Filter Type | オプションでpageまたはdatabaseに制限します。空白の場合は両方を検索します。 |
| Page Size | 返す結果数(デフォルト:10、最大:100) |
後続ステップでの結果参照:
- 最初の結果のID:
{{ step.output.results[0].id }}
使用例: 新しいクライアントレコードを作成する前に、クライアント名で検索します。countが0より大きい場合、クライアントは既に存在します。重複を作成する代わりに、既存レコードのidを使用してください。
データベースアクション
List Databases
接続がアクセスできるすべてのデータベースを、名前とIDとともに返します。
主要な入力:
| 入力 | 説明 |
|---|
| Page Size | 返すデータベース数(デフォルト:20、最大:100) |
使用タイミング: テストワークフローで一度実行してデータベースIDを確認します。目的のデータベースのidをコピーし、後続ステップでハードコードしてください。
Get Database
特定のデータベースのスキーマ — カラム名とプロパティ型を返します。
主要な入力:
| 入力 | 説明 |
|---|
| Database ID | データベースのID — List Databases、またはNotion URLから取得:?v=の前のセグメント |
使用タイミング: Create PageまたはUpdate Pageステップを実行する前に実行します。正確なプロパティ名(大文字小文字を区別)とその型が判明し、Propertiesフィールドで使用するJSON形式が決まります。
Get Databaseはプロパティの型と名前を表示しますが、Selectフィールドの利用可能なオプション値は表示しません。有効な選択オプションを確認するには、Notionで直接データベースを開いてください。
Query Database
オプションのフィルタリングとソート付きでデータベースからレコードを取得します。
主要な入力:
| 入力 | 説明 |
|---|
| Database ID | クエリするデータベース |
| Filter | JSONフィルターオブジェクト(以下の例を参照)。空白の場合はすべてのレコードを返します。 |
| Sorts | ソートルールのJSON配列(以下の例を参照) |
| Page Size | 返すレコード数(デフォルト:20、最大:100) |
フィルター例:
単一フィルター — Statusが「In Progress」のレコード:
{
"property": "Status",
"select": { "equals": "In Progress" }
}
チェックボックスによるフィルター:
{
"property": "Done",
"checkbox": { "equals": false }
}
日付によるフィルター — 特定の日付より前のDue Dateのレコード:
{
"property": "Due Date",
"date": { "before": "2026-05-26" }
}
ANDロジックによる複合フィルター:
{
"and": [
{ "property": "Status", "select": { "equals": "In Progress" } },
{ "property": "Done", "checkbox": { "equals": false } }
]
}
ソート — 新しい順:
[
{ "property": "Created time", "direction": "descending" }
]
後続ステップでの結果参照:
- 最初の結果のID:
{{ step.output.results[0].id }}
- 最初の結果のStatus:
{{ step.output.results[0].properties.Status }}
- 最初の結果のタイトル:
{{ step.output.results[0].title }}
ページアクション
Get Page
特定のページまたはデータベースレコードのプロパティ値とメタデータを取得します。
主要な入力:
| 入力 | 説明 |
|---|
| Page ID | ページのID — Notion URL、Query Database、またはSearch結果から取得 |
後続ステップでの値参照:
- Status:
{{ step.output.page.properties.Status }}
- Title:
{{ step.output.page.title }}
- Page ID:
{{ step.output.page.id }}
使用例: ページID付きでトリガーが発火します。Get Pageを使用してレコードの現在のStatusを読み取ります。Statusが「Pending」の場合、ワークフローを続行します。それ以外の場合は停止します。
Create Page
新しいページを作成します — データベース内のレコード(新しい行)として、または別のページの子ページとして作成できます。
主要な入力:
| 入力 | 説明 |
|---|
| Parent ID | データベースID(新しい行の場合)またはページID(サブページの場合) |
| Parent Type | データベース行を追加する場合はdatabase_id、サブページを追加する場合はpage_id。デフォルト:database_id |
| Title | プレーンテキストのページまたはレコードのタイトル |
| Properties | 追加のフィールド値用のオプションJSONオブジェクト。キーはデータベースのプロパティ名と完全に一致させる必要があります。Get Databaseで確認してください。 |
フィールドタイプ別プロパティ形式:
// Select フィールド
{ "Status": { "select": { "name": "To Do" } } }
// Status フィールド(Notionの組み込みStatus型)
{ "Status": { "status": { "name": "In Progress" } } }
// Date フィールド
{ "Due Date": { "date": { "start": "2026-06-01" } } }
// Checkbox フィールド
{ "Done": { "checkbox": false } }
// Number フィールド
{ "Priority Score": { "number": 8 } }
// Rich text フィールド
{ "Notes": { "rich_text": [{ "text": { "content": "Needs review before sending." } }] } }
完全な例 — タスク行の作成:
Title: Follow up with client
Properties:
{
"Status": { "select": { "name": "To Do" } },
"Due Date": { "date": { "start": "2026-06-01" } },
"Done": { "checkbox": false }
}
返されたidは、新しいページを更新またはリンクするために後続ステップに渡すことができます。
Update Page
既存ページのプロパティを更新、またはアーカイブします。
主要な入力:
| 入力 | 説明 |
|---|
| Page ID | 更新するページ — Query Database、Get Page、またはSearchから取得 |
| Properties | 変更するフィールドのみを含むJSONオブジェクト(Create Pageと同じ形式)。含まれていないフィールドは変更されません。 |
| Archived | ページをアーカイブ(ソフト削除)するにはtrueに設定します |
例 — タスクを完了としてマーク:
{
"Status": { "select": { "name": "Done" } },
"Done": { "checkbox": true },
"Completed On": { "date": { "start": "2026-05-26" } }
}
例 — レコードをアーカイブ: Propertiesを空のままArchivedをtrueに設定します。レコードはデータベースビューから消えますが、Notionのゴミ箱から復元できます。
一般的なパターン:
- Query Databaseを使用してレコードを検索し、
idを取得します
- その
idをUpdate Pageに渡してフィールドを変更します
コンテンツアクション
Get Page Content
Notionページ内のコンテンツブロック — パラグラフ、見出し、箇条書きリストなどを取得します。これはページのプロパティ(データベースフィールド)とは別です。ドキュメントの本文テキストを読み取るために使用します。
主要な入力:
| 入力 | 説明 |
|---|
| Page ID | コンテンツを読み取るページ |
| Page Size | 返すブロック数(デフォルト:50、最大:100) |
後続ステップでの値参照:
- 最初のブロックのテキスト:
{{ step.output.blocks[0].text }}
- すべてのブロック:
{{ step.output.blocks }}
使用例: ページコンテンツを取得し、すべてのテキストブロックをAIステップに渡して要約を生成し、その要約をメールまたはTelegramで送信します。
Append Content
既存のNotionページの下部に新しいコンテンツブロックを追加します。
主要な入力:
| 入力 | 説明 |
|---|
| Page ID | コンテンツを追加するページ |
| Children | 追加するNotionブロックオブジェクトのJSON配列 |
例 — 見出しとパラグラフの追加:
[
{
"object": "block",
"type": "heading_2",
"heading_2": {
"rich_text": [{ "type": "text", "text": { "content": "Workflow Run — May 26" } }]
}
},
{
"object": "block",
"type": "paragraph",
"paragraph": {
"rich_text": [{ "type": "text", "text": { "content": "3 records processed. 1 error found." } }]
}
}
]
例 — 箇条書きリストアイテムの追加:
[
{
"object": "block",
"type": "bulleted_list_item",
"bulleted_list_item": {
"rich_text": [{ "type": "text", "text": { "content": "New lead: Jane Doe — jane@example.com" } }]
}
}
]
使用例: ワークフローが毎朝実行され、データを処理して「Daily Log」ページに1行のログエントリを追加します。毎回新しいページを作成せずに、監査証跡を蓄積します。
トラブルシューティング
| 症状 | 原因の可能性 | 対処 |
|---|
401 Unauthorized | トークンが取り消されているか不足している | OAuthフローで再認証してください |
ページまたはデータベースで404 Not Found | 接続にコンテンツが共有されていない | ··· → Connectionsでページを共有してください |
| 検索やクエリの結果が空 | 接続に何も共有されていない | 少なくとも1つのページまたはデータベースを共有してください |
| プロパティ更新が無視される | プロパティ名の大文字小文字の不一致 | Get Databaseを使用して正確なプロパティ名を確認してください — 大文字小文字が区別されます |
oauth_not_configuredエラー | Super AdminにClient ID/Secretが保存されていない | Notion OAuth Setupを参照してください |