Notion Writer¶
Creates a new Notion page from Markdown content. It converts the provided Markdown into Notion blocks and publishes the page under a specified parent (database or page), optionally setting a cover image. Returns operation status and the Notion page URL or an error message.

Usage¶
Use this node at the end of a content generation workflow to publish AI-generated text as a formatted Notion page. Provide your Notion integration token, select whether the parent is a database or a page, set the parent ID, page title, and Markdown content. Optionally include a cover image URL. The node outputs a success status with the created page URL or an error with details.
Inputs¶
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
| token | True | STRING | Notion API integration token with access to the target parent page or database. | |
| parent_type | True | STRING | Type of the parent object to create the page under. Choose 'database' to add a page as a database entry or 'page' to nest under a page. | database |
| parent_id | True | STRING | The ID of the parent Notion database or page where the new page will be created. | aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
| title | True | STRING | Title of the new Notion page. | Weekly Research Summary |
| content | True | STRING | Markdown content to be converted into Notion blocks for the page body. Supports headings, paragraphs, lists, images, code blocks, and more. | # Overview - Item 1 - Item 2  |
| cover_url | False | STRING | Optional URL for the page cover image. | https://example.com/cover.jpg |
Outputs¶
| Field | Type | Description | Example |
|---|---|---|---|
| Status | STRING | Indicates whether the operation succeeded or failed. | Success |
| Response | STRING | JSON-serialized response string. On success, contains the created page URL; on error, contains an error message. | {"url": "https://www.notion.so/your-page"} |
Important Notes¶
- The Notion integration token must have permission to access the specified parent page or database.
- Set parent_type correctly: use 'database' to insert into a database, or 'page' to nest under a regular page.
- Content is parsed from Markdown into Notion blocks; some Markdown constructs (e.g., complex tables) may be transformed differently than expected.
- On failure, Status is "Error" and Response contains an error string; on success, Status is "Success" and Response includes {"url": "..."}.
- Ensure the Notion client dependency is installed in your environment (notion-client).
Troubleshooting¶
- Error: Invalid or missing token — Verify the token is correct, not expired, and pasted in full. Ensure the integration has been added to the target workspace and shared to the parent page/database.
- Error: Parent not found or access denied — Confirm parent_id is correct (including hyphens) and the integration has access to that parent.
- Success but missing page content — Check that 'content' is valid Markdown. Remove unsupported syntax if rendering is unexpected.
- Cover image not set — Ensure 'cover_url' is a publicly accessible URL; private or blocked URLs may fail to display.
- Received raw error in Response — Inspect the Response string for details; correct the indicated field (e.g., invalid parent_type) and retry.