notion2md

n8n node to convert between Notion JSON and Markdown

Package Information

Released: 16 mo ago
Downloads: 6 weekly / 18 monthly
Latest Version: 0.3.0
Author: Alexey Kalinin

Documentation

Notion Markdown Converter for n8n

Convert between Notion JSON blocks and Markdown format in your n8n workflows.

Features

  • 🔄 Auto-detect conversion direction
  • 📝 Convert Notion blocks to Markdown
  • 🔧 Convert Markdown to Notion JSON format
  • ✨ Support for rich text formatting (bold, italic, strikethrough, links, code)
  • 🎯 Flexible input field selector for nested data
  • ✂️ Automatic splitting of long paragraphs (>1800 chars) for Notion compatibility

Installation

Community Nodes (Recommended)

  1. Go to Settings > Community Nodes
  2. Click Install a community node
  3. Enter: n8n-nodes-notion2md
  4. Click Install

Manual Installation

cd ~/.n8n/custom
npm install n8n-nodes-notion2md

Restart n8n after installation.

Supported Elements

Block Types

  • # Heading 1
  • ## Heading 2
  • ### Heading 3
  • Regular paragraphs
  • - Bullet lists
  • 1. Numbered lists
  • - [ ] To-do unchecked
  • - [x] To-do checked
  • > Quotes
  • Code blocks
  • > 💡 **Note:** Callouts
  • <details> Toggle blocks
  • --- Dividers

Text Formatting

  • Bold text
  • Italic text
  • Strikethrough
  • Inline code
  • Links

Usage

  1. Add Notion Markdown Converter node to your workflow
  2. Connect input data (Notion JSON or Markdown string)
  3. (Optional) Set Input Field to extract data from nested JSON paths:
    • Leave empty to use entire input
    • Use dot notation like data.content or response.blocks
  4. The node automatically detects the format and converts accordingly

Example Input/Output

Notion to Markdown

// Input
{
  "results": [{
    "type": "heading_3",
    "heading_3": {
      "rich_text": [{
        "text": {"content": "Hello World"},
        "plain_text": "Hello World"
      }]
    }
  }]
}

// Output
{
  "markdown": "### Hello World",
  "blocksCount": 1,
  "direction": "notion_to_markdown"
}

Markdown to Notion

// Input
{
  "markdown": "### Hello World\n\nThis is **bold** text."
}

// Output
{
  "blocks": [
    {
      "object": "block",
      "type": "heading_3",
      "heading_3": {
        "rich_text": [...],
        "is_toggleable": false,
        "color": "default"
      }
    },
    {
      "object": "block",
      "type": "paragraph",
      "paragraph": {
        "rich_text": [...],
        "color": "default"
      }
    }
  ],
  "blocksCount": 2,
  "direction": "markdown_to_notion"
}

License

MIT

Author

Alexey Kalinin (alexeykalinin@me.com)

Discussion