Skip to content

Notion - Create Page

↩ Part of the Notion integration.

This module creates a page in Notion with POST /pages. The parent can be a database — in which case the new page is a row of that database — or another page, in which case the new page is a subpage.

Properties are passed as JSON in Notion’s own typed format, and you can optionally send an array of content blocks to fill the page from the start.

FieldTypeRequiredDescription
credentials_idcredentialsYesNotion credential
database_idtextConditionalParent database id (the page becomes a row)
parent_page_idtextConditionalParent page id (if the parent is not a database)
propertiesjsonYesPage properties in Notion format
childrenjsonNoInitial content blocks (JSON array)

You must provide either database_id or parent_page_id. If both are set, database_id wins.

This module requires a Notion credential.

FieldDescription
tokenInternal Integration Secret from notion.so/my-integrations
notion_versionOptional. Value for the Notion-Version header (default 2022-06-28)
{
"nextModule": null,
"data": {
"object": "page",
"id": "8b9c0d1e-2f3a-4b5c-6d7e-8f9a0b1c2d3e",
"created_time": "2026-03-04T10:22:00.000Z",
"url": "https://www.notion.so/8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e",
"parent": { "type": "database_id", "database_id": "1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d" },
"properties": {
"Name": { "title": [ { "text": { "content": "Acme Ltd" } } ] }
}
},
"_meta": {
"moduleVersion": "1.0.0",
"success": true,
"id": "8b9c0d1e-2f3a-4b5c-6d7e-8f9a0b1c2d3e",
"url": "https://www.notion.so/8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e",
"totalMs": 412
}
}
{
"credentials_id": 12,
"database_id": "1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d",
"properties": {
"Name": { "title": [ { "text": { "content": "{{data.company}}" } } ] },
"Email": { "email": "{{data.email}}" },
"Status": { "select": { "name": "New" } },
"Score": { "number": 87 }
}
}
{
"credentials_id": 12,
"parent_page_id": "5c6d7e8f-9a0b-1c2d-3e4f-5a6b7c8d9e0f",
"properties": {
"title": [ { "text": { "content": "Weekly report" } } ]
},
"children": [
{
"object": "block",
"type": "heading_2",
"heading_2": { "rich_text": [ { "type": "text", "text": { "content": "Summary" } } ] }
},
{
"object": "block",
"type": "paragraph",
"paragraph": { "rich_text": [ { "type": "text", "text": { "content": "{{data.summary}}" } } ] }
}
]
}
  • When the parent is a database, the property names must match the database columns exactly, including capitalisation, or Notion answers 400.
  • When the parent is a page, the only property is title.
  • If properties is not valid JSON, the node stops with a validation error before calling Notion.
  • The page or database must be shared with the integration (··· → Add connections), otherwise the call returns 404.
  • _meta.url gives you the public Notion URL of the new page, handy for a follow-up notification.