Notion Writer¶
Creates a new Notion page from Markdown content under a specified parent (database or page). It sets the page title, converts Markdown to Notion blocks, and can optionally add a cover image. Returns a success status with the created page URL or an error status with details.

Usage¶
Use this node when you need to publish generated or prepared Markdown content into Notion. Provide a Notion integration token with access to the target parent, the parent type and ID, a title, and Markdown content. Optionally include a cover image URL. Typical workflows involve generating content earlier in the pipeline, then passing it here to create a formatted Notion page.
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 | SELECT | Type of the parent container where the page will be created. Choose 'database' to create a database entry or 'page' to create a child page. | database | 
| parent_id | True | STRING | ID of the target Notion parent (database_id or page_id) where the new page will be created. | a1b2c3d4e5f6g7h8i9j0 | 
| title | True | STRING | Title for the new Notion page. | Weekly Update - Sprint 14 | 
| content | True | STRING | Markdown content to be converted into Notion blocks. Supports headings, lists, code blocks, images, links, inline code, bold/italic, equations, and tables (converted to LaTeX equations). | # Overview - Task A done - Task B in progress ```python print('hello') ``` | 
| cover_url | False | STRING | Optional URL of an image to set as the page cover. | https://example.com/cover.jpg | 
Outputs¶
| Field | Type | Description | Example | 
|---|---|---|---|
| Status | STRING | Operation status: 'Success' if the page was created, otherwise 'Error'. | Success | 
| Response | STRING | JSON string with the result. On success: {"url": " | {"url": "https://www.notion.so/your-workspace/Page-Title-abc123"} | 
Important Notes¶
- Authentication: The provided token must be an authorized Notion integration with access to the specified parent page or database.
- Parent type and ID: Ensure parent_type matches the parent_id (use 'page' with a page_id and 'database' with a database_id).
- Content format: The node converts Markdown to Notion blocks. Unsupported Markdown features may be ignored or transformed differently.
- Cover image: cover_url should be a publicly accessible URL for Notion to fetch.
- Response format: The Response output is a stringified JSON object, not a native object.
- Rate limits: Notion API rate limiting may apply and can cause temporary errors.
- Error handling: On failure, Status='Error' and Response contains an 'error' message string.
Troubleshooting¶
- Invalid parent_id or parent_type: Verify the ID corresponds to the selected type ('page' or 'database') and that it exists.
- Permission denied: Ensure the integration is added to the target page or database and has the necessary permissions.
- Invalid token: Replace token with a valid Notion integration token and confirm it has not expired or been revoked.
- Cover not applied: Check that cover_url is reachable over the internet and points to a valid image format.
- Malformed Markdown: If rendering is unexpected, simplify the Markdown or remove unusual syntax; verify code block fences and list indentation.
- API errors or timeouts: Retry after a short delay to handle transient Notion API issues or rate limits.