notion-markdown-unified

Unified n8n node that converts Markdown to Notion blocks and creates them in a page

Package Information

Downloads: 2 weekly / 95 monthly
Latest Version: 1.3.1
Author: Abdo

Documentation

n8n-nodes-notion-markdown-unified

Unified n8n node that converts Markdown to Notion blocks and creates them in a page

✨ Features

  • Single Operation: Markdown → Notion blocks in one step
  • Smart Page Resolution: Accepts IDs, URLs, or page titles
  • Full Markdown Support: All standard syntax + tables, code blocks, etc.
  • Optional Base64 Images: Avoid Notion's URL expiration
  • Flexible Creation: Append or replace existing content

📦 Installation

npm install n8n-nodes-notion-markdown-unified

🚀 Quick Start

  1. Install the node in your n8n instance
  2. Add your Notion integration token in n8n credentials
  3. Create a workflow with the "Notion Markdown Unified" node
  4. Configure parameters:
    • Page: Notion page ID, URL, or title
    • Content: Your Markdown content
    • Mode: Append or replace existing content

🔧 Configuration

Required Parameters

  • Notion Integration Token: Your Notion API integration token
  • Page Identifier: Notion page ID, URL, or page title
  • Markdown Content: The markdown content to convert and create

Optional Parameters

  • Creation Mode:
    • append - Add blocks to the end of the page (default)
    • replace - Replace all page content with new blocks
  • Convert Images to Base64: Convert image URLs to base64 to avoid expiration
  • Preserve List Hierarchy: When flattening nested lists, preserve visual hierarchy with indentation (default: true)
  • Max List Nesting Depth: Maximum nesting depth for lists (1-2, default: 2)
  • Max Table Rows: Maximum rows per table before automatic splitting (10-100, default: 80)
    • Tables exceeding this limit are automatically split into multiple tables
    • Header rows are duplicated for each split table
    • Notion API enforces a maximum of 100 rows per table

📋 Supported Markdown

Text Formatting

  • Bold, italic, strikethrough, code
  • Headers (H1-H6)
  • Paragraphs and line breaks
  • Blockquotes
  • Horizontal rules

Lists

  • Bulleted lists
  • Numbered lists
  • Todo lists with checkboxes
  • Nested lists (automatically flattened to Notion's 2-level limit)

Advanced Elements

  • Tables with headers (automatically split if exceeding row limits)
  • Code blocks with syntax highlighting
  • Images (with optional base64 conversion)
  • Links
  • Dividers

🔗 Page Resolution

The node accepts multiple page identifier formats:

// Page ID
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

// Page URL
"https://notion.so/My-Page-a1b2c3d4e5f67890abcdef1234567890"

// Page Title (requires title resolution enabled)
"My Project Documentation"

🛠️ Technical Details

  • Built with: TypeScript
  • Markdown Parser: @tryfabric/martian
  • Notion API: Version 2022-06-28
  • n8n Compatibility: Workflow version 1
  • Dependencies: @tryfabric/martian, node-fetch
  • Nested List Handling: Automatically flattens deeply nested lists to comply with Notion's 2-level nesting limit while preserving visual hierarchy
  • Large Table Handling: Automatically splits tables exceeding 100 rows (configurable) into multiple tables with duplicated headers to comply with Notion API limits

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

MIT License - see the LICENSE file for details.

🔗 Links


🛠️ Development

This project uses the Claude Fast framework for AI-assisted development. For developers working on this package, see CLAUDE.md for the complete development workflow and AI agent coordination system.

Discussion