Notion Writer¶
Creates a new Notion page from Markdown content under a specified parent (database or page). It converts the provided Markdown to Notion blocks, optionally sets a cover image, and returns the resulting page URL or an error. Outputs a simple status string along with a JSON-formatted response string.

Usage¶
Use this node to publish generated content into Notion as a new page. Provide your Notion API token, select whether the parent is a database or a page, supply the parent ID, a title, and Markdown content. Optionally include a cover image URL. This is typically used at the end of a content-generation workflow to store results in Notion.
Inputs¶
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
| token | True | STRING | Notion API integration token with permission to create pages under the specified parent. | |
| parent_type | True | [["database", "page"]] | Type of the parent container where the new page will be created. Choose 'database' to create a page under a database, or 'page' to create under another page. | database |
| parent_id | True | STRING | The ID of the Notion parent (database ID or page ID) where the new page will be created. | a1b2c3d4e5f6473890abcedf12345678 |
| title | True | STRING | Title for the new Notion page. | Weekly Research Summary |
| content | True | STRING | Markdown content that will be converted into Notion blocks for the page body. | # Highlights - Point 1 - Point 2 ## Details Here are the details... |
| cover_url | False | STRING | Optional URL to an image that will be used as the page cover. | https://example.com/cover.jpg |
Outputs¶
| Field | Type | Description | Example |
|---|---|---|---|
| Status | STRING | Operation status string: 'Success' if the page was created, otherwise 'Error'. | Success |
| Response | STRING | JSON-formatted string with the result. On success includes the created page URL; on error includes an error message. | {"url": "https://www.notion.so/workspace/My-Page-abcdef123456"} |
Important Notes¶
- Authentication: The token must belong to a Notion integration that has been invited to the target page or database.
- Parent type alignment: Ensure 'parent_type' matches the type of 'parent_id' (database vs page) to avoid errors.
- Response format: The 'Response' output is a JSON string, not a structured object. Parse it if you need to read fields.
- Markdown conversion: Content is parsed from Markdown into Notion blocks via an internal converter; unsupported Markdown features may be omitted.
- Dependencies: Requires the Notion Python client (notion-client) to be installed in the environment.
- Security: Never hardcode or share real tokens; use secure secrets handling.
Troubleshooting¶
- Authentication failed: If Status is 'Error' with an auth-related message, verify the token value, that the integration is enabled, and that it has access to the specified parent.
- Parent not found or type mismatch: If you see an object-not-found error, confirm the 'parent_id' is correct and that 'parent_type' matches the object type.
- Insufficient permissions: Invite the integration to the target page or database and grant it the necessary permissions.
- Invalid cover URL: If the cover fails to set, ensure the URL is reachable and points to a valid image.
- Rate limits or network errors: Retry after a short delay. Check network connectivity and Notion API status.
- Large content issues: Very long Markdown might hit Notion limits or partial conversion; try splitting content into sections or reducing size.
- Malformed Markdown: If conversion fails, simplify or validate the Markdown formatting and try again.