> ## Documentation Index
> Fetch the complete documentation index at: https://ai-kb.automationanywhere.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Notion ツールキット

> エージェントやワークフローからNotionページやデータベースのコンテンツを検索、読み取り、作成、更新、追加します。

Notion ツールキットにより、エージェントやワークフローがNotionのページやデータベースと対話できるようになります。コンテンツの検索、データベースレコードのクエリと更新、ページコンテンツの読み取りと追加、新しいページの作成に対応しています。

## 前提条件

* Notionアカウント（無料プランで十分です）
* Notionワークスペース（すべてのアカウントにデフォルトで付与されます）

## 接続の作成

<Tabs>
  <Tab title="Workflow Builder">
    1. ワークフローにNotionツールキットステップを追加します。
    2. **Connect with Notion**をクリックします。
    3. Notionの同意画面で接続を承認し、アクセスを許可するページとデータベースを選択します。
  </Tab>

  <Tab title="Agent Builder">
    チャットでは、ツールキットが最初に呼び出されたときにOAuth経由でNotionアカウントに接続するよう促されます。
  </Tab>
</Tabs>

<Note>
  ツールキットは接続に明示的に共有されたページとデータベースのみにアクセスできます。コンテンツを共有するには、Notionでページまたはデータベースを開き、**···** → **Connections**をクリックしてインテグレーションを追加してください。同じワークスペース内で共有されていないコンテンツは表示されません。
</Note>

## 利用可能なツール

| ツール                  | 説明                                     |
| -------------------- | -------------------------------------- |
| **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形式が決まります。

<Note>
  Get Databaseはプロパティの型と名前を表示しますが、Selectフィールドの利用可能なオプション値は表示しません。有効な選択オプションを確認するには、Notionで直接データベースを開いてください。
</Note>

***

### Query Database

オプションのフィルタリングとソート付きでデータベースからレコードを取得します。

**主要な入力:**

| 入力          | 説明                                            |
| ----------- | --------------------------------------------- |
| Database ID | クエリするデータベース                                   |
| Filter      | JSONフィルターオブジェクト（以下の例を参照）。空白の場合はすべてのレコードを返します。 |
| Sorts       | ソートルールのJSON配列（以下の例を参照）                        |
| Page Size   | 返すレコード数（デフォルト：20、最大：100）                      |

**フィルター例:**

単一フィルター — Statusが「In Progress」のレコード:

```json theme={null}
{
  "property": "Status",
  "select": { "equals": "In Progress" }
}
```

チェックボックスによるフィルター:

```json theme={null}
{
  "property": "Done",
  "checkbox": { "equals": false }
}
```

日付によるフィルター — 特定の日付より前のDue Dateのレコード:

```json theme={null}
{
  "property": "Due Date",
  "date": { "before": "2026-05-26" }
}
```

ANDロジックによる複合フィルター:

```json theme={null}
{
  "and": [
    { "property": "Status", "select": { "equals": "In Progress" } },
    { "property": "Done", "checkbox": { "equals": false } }
  ]
}
```

ソート — 新しい順:

```json theme={null}
[
  { "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で確認してください。 |

**フィールドタイプ別プロパティ形式:**

```json theme={null}
// 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:

```json theme={null}
{
  "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`に設定します                                 |

**例 — タスクを完了としてマーク:**

```json theme={null}
{
  "Status": { "select": { "name": "Done" } },
  "Done": { "checkbox": true },
  "Completed On": { "date": { "start": "2026-05-26" } }
}
```

**例 — レコードをアーカイブ:** Propertiesを空のままArchivedを`true`に設定します。レコードはデータベースビューから消えますが、Notionのゴミ箱から復元できます。

**一般的なパターン:**

1. Query Databaseを使用してレコードを検索し、`id`を取得します
2. その`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配列 |

**例 — 見出しとパラグラフの追加:**

```json theme={null}
[
  {
    "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." } }]
    }
  }
]
```

**例 — 箇条書きリストアイテムの追加:**

```json theme={null}
[
  {
    "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](/tools/notion-oauth-setup)を参照してください |
