Notion Page Create

Notion Page Create

Create a new Notion page in a database or under a parent page

Node Type

Action

Category

Notion Integration

Icon

Notion

Overview

The Notion Page Create node is an action node that creates new pages in Notion using the user's OAuth token. This powerful integration allows you to create pages in databases or under parent pages, enabling automated content creation, data logging, and workflow documentation directly in Notion.

Key Features

  • Database Page Creation: Create pages within Notion databases with properties
  • Parent Page Creation: Create pages under existing parent pages
  • Dynamic Database Selection: Browse and select from available databases
  • Property Configuration: Set page properties using JSON format
  • Content Blocks: Add rich content blocks to new pages
  • Success Tracking: Returns page ID, URL, and operation status

Prerequisites

Notion Integration

Must have Notion integration properly configured

Notion integration enabled and configured
User has authorized Notion account access
Valid OAuth access token for Notion

Required OAuth Scopes

OAuth scopes needed for page creation

Notion Write: Access to create pages and content
User Consent: User must grant permission for these scopes
Database Access: Access to target databases or parent pages

Technical Requirements

Services needed for operation

Notion Service: Access to Notion API for page operations
OAuth Service: Access to OAuth service for token management
Workflow Service: Access to workflow service for user identification

Node Configuration

Required Fields

Properties

Type:text_area
Required:Yes
Value Type:JSON

JSON object containing the page properties (e.g., {"Title": {"title": [{"text": {"content": "My Page"}}]}}). This defines the page's properties and metadata.

Optional Fields

Database

Type:dynamic_select
Required:No
Value Type:string

Optional: Notion database to create the page in. This field provides dynamic selection options, allowing users to browse and select from their available Notion databases.

Parent Page ID

Type:text
Required:No
Value Type:string

Optional: Parent page ID to create the page under when not using a database. Use this when creating pages under existing pages rather than in databases.

Content Blocks

Type:text_area
Required:No
Value Type:JSON Array

Optional: JSON array of block objects to add as page content. This allows you to add rich content like text, headings, lists, and more to the new page.

Technical Details

Page Creation Process

How the node creates new Notion pages

Input Validation

The node validates that either a database ID or parent page ID is provided, along with required properties. Returns failure if essential inputs are missing.

User Authentication

Retrieves the user ID from the workflow service and obtains their Notion OAuth access token for secure API access to Notion.

Notion API Integration

How the node interfaces with Notion's page creation services

Database Page Creation

When a database ID is provided, uses the Notion API to create a new page within the specified database with the given properties.

Parent Page Creation

When a parent page ID is provided, creates a new page under the specified parent page with the given properties.

Content Block Addition

If content blocks are provided, adds them as children to the newly created page, enabling rich content creation.

Dynamic Database Selection

How the node provides dynamic options for database selection

Database Listing

Implements the getDynamicSelectOptions method to fetch available Notion databases and provide them as selectable options in the UI.

User-Specific Access

Only shows databases that the authenticated user has access to, ensuring proper security and access control.

Error Handling

Gracefully handles authentication failures and API errors, returning an empty options list when database fetching fails.

Examples & Use Cases

Basic Database Page Creation

Create a new page in a Notion database

{
  "databaseId": "12345678-1234-1234-1234-123456789abc",
  "properties": {
    "Title": {
      "title": [{"text": {"content": "New Project Page"}}]
    },
    "Status": {
      "select": {"name": "In Progress"}
    },
    "Priority": {
      "select": {"name": "High"}
    }
  }
}

This will create a new page in the specified Notion database with the given properties.

Page with Content Blocks

Create a page with rich content

{
  "parentPageId": "87654321-4321-4321-4321-cba987654321",
  "properties": {
    "Title": {
      "title": [{"text": {"content": "Meeting Notes"}}]
    }
  },
  "content": [
    {
      "type": "heading_1",
      "heading_1": {
        "rich_text": [{"text": {"content": "Meeting Agenda"}}]
      }
    },
    {
      "type": "bulleted_list_item",
      "bulleted_list_item": {
        "rich_text": [{"text": {"content": "Review project status"}}]
      }
    },
    {
      "type": "bulleted_list_item",
      "bulleted_list_item": {
        "rich_text": [{"text": {"content": "Discuss next steps"}}]
      }
    }
  ]
}

This creates a page under a parent page with structured content including headings and bullet points.

Automated Documentation Workflow

Create documentation pages automatically

Workflow Structure

📧 Email Trigger → 🤖 AI Analysis → 📄 Notion Page Create → 📊 Database Log

Trigger on new emails, analyze content with AI, create structured Notion pages, and log the process in a database.

Best Practices

Do's

  • Use the dynamic select for easy database browsing
  • Structure your properties JSON according to Notion's API format
  • Handle the success status for proper error management
  • Consider using content blocks for rich page content
  • Use meaningful page titles and properties
  • Test your property structure with Notion's API documentation

Don'ts

  • Don't hardcode database IDs when dynamic selection is available
  • Avoid creating pages without proper property validation
  • Don't ignore authentication and scope requirements
  • Avoid creating pages in databases you don't have write access to
  • Don't forget to handle empty or malformed property JSON
  • Avoid making too many API calls in rapid succession
💡
Pro Tip: When working with Notion page creation, remember that the properties JSON must match your database schema exactly. Use Notion's API documentation to understand the correct format for different property types (title, select, multi-select, etc.).

Troubleshooting

Common Issues

Authentication Errors

Symptoms: Node fails with OAuth or access token errors

Solution: Ensure the user has connected their Notion account and granted the required OAuth scopes (Notion write access).

Database Not Found

Symptoms: Node returns success: false or database selection fails

Solution: Verify the database ID is correct and the user has write access to the specified database. Check that the database exists and is not archived.

Property Format Errors

Symptoms: Page creation fails with property-related errors

Solution: Ensure your properties JSON matches the database schema exactly. Check property names, types, and values according to Notion's API documentation.

Dynamic Select Not Working

Symptoms: Database selection dropdown is empty or shows errors

Solution: Check that the user has access to Notion databases and that the OAuth integration is working properly. Verify the required scopes are granted.

Content Block Issues

Symptoms: Content blocks are not added to the page

Solution: Ensure your content blocks JSON follows Notion's block structure format. Use the Notion API documentation to verify block types and properties.

Related Resources