| name | notion-content-management |
| description | Create, update, archive, and compose Notion pages and block content.
Use when building pages programmatically, appending rich content blocks,
updating page properties, or managing page lifecycle (archive/restore).
Trigger with phrases like "notion create page", "notion add blocks",
"notion update page", "notion archive page", "notion content",
"notion block types", "notion rich text".
|
| allowed-tools | Read, Write, Edit |
| version | 1.38.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","productivity","notion"] |
| compatibility | Designed for Claude Code |
Notion Content Management
Overview
Complete guide to creating, updating, archiving, and composing Notion pages and block content using the @notionhq/client SDK. Covers page lifecycle, all common block types, rich text formatting, and bulk content operations. The core workflow lives here at a high level; deep code walkthroughs are extracted into references/ so this file stays scannable.
Prerequisites
- Completed
notion-install-auth setup
NOTION_TOKEN environment variable set
- Target database or page shared with the integration (via Connections menu)
@notionhq/client v2+ installed (TypeScript) or notion-client (Python)
Instructions
Step 1: Create, Update, and Archive Pages
Create a page in a database with typed properties (title, select, multi_select, date, people, number, checkbox, url), an optional icon/cover, and initial children block content. Update properties with pages.update (set a property to null to clear it). Archive is a soft-delete via archived: true, and restore flips it back to false.
Minimal skeleton:
import { Client } from '@notionhq/client';
const notion = new Client({ auth: process.env.NOTION_TOKEN });
const page = await notion.pages.create({
parent: { database_id: databaseId },
properties: { Name: { title: [{ : { : } }] } },
});
notion..({ : page., : { : { : { : } } } });
notion..({ : page., : });