Skip to content

Notion Write

Overview

The Notion Write node creates a new page or updates an existing page in a Notion workspace using the Notion API. It requires a valid Notion integration token and a target database or parent page ID. On success it emits the resulting page object; on failure it routes to the error port so downstream nodes can handle API or permission errors without halting the workflow.

Configuration

FieldTypeRequiredDescription
integration_tokenstringYesNotion internal integration secret (Bearer token). Store in workflow credentials — never hard-code.
operationenumYesAction to perform: 'create' inserts a new page under the target; 'update' patches an existing page by ID.
target_idstringYesFor 'create': the parent database ID or parent page ID. For 'update': the existing page ID to modify.
propertiesobjectYesKey/value map of Notion page properties to write. Keys must match the property names defined in the target database schema (e.g. Title, Status, Tags).
content_blocksarrayNoOptional list of Notion block objects appended as the page body. Accepts any valid Notion block type (paragraph, heading_1, callout, etc.).
iconobjectNoOptional page icon. Accepts a Notion emoji object ({ type: 'emoji', emoji: '🚀' }) or an external URL object.
archivedbooleanNoWhen true, marks the target page as archived. Only relevant for the 'update' operation.

Inputs

PortTypeDescription
inputobjectTrigger signal and optional dynamic payload. Fields in the payload can be referenced via template expressions in 'properties' or 'content_blocks' to inject runtime values into the page.

Outputs

PortTypeDescription
outputobjectThe full Notion page object returned by the API after a successful create or update, including the page ID, URL, and resolved properties.
errorobjectEmitted when the Notion API returns an error (e.g. invalid credentials, missing permissions, schema mismatch, or rate limit exceeded). Contains 'code', 'message', and the original 'status' from the API response.

Example

json
{
  "nodeType": "notion_write",
  "config": {
    "integration_token": "{{credentials.notion_token}}",
    "operation": "create",
    "target_id": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
    "properties": {
      "Name": {
        "title": [
          {
            "text": {
              "content": "{{input.battle_title}}"
            }
          }
        ]
      },
      "Status": {
        "select": {
          "name": "Published"
        }
      },
      "Score": {
        "number": "{{input.final_score}}"
      }
    }
  }
}