How to send Markdown to Notion

Hey n8n community!

I noticed many of us struggle with sending markdown content to Notion. After trying various complex solutions with custom nodes and Code nodes, I wanted to share a simpler approach that works in any n8n workflow (self-hosted or cloud).

The Problem

  • To convert Markdown to Notion blocks, you need to use a lib, and in the n8n cloud, you can’t always do that
  • After converting, you need to post blocks to Notion - and there are a few challenges
    • 2000 characters limit per rich_text
    • 100 blocks 1-level limit
    • 1000 blocks overall limit
    • Maximum 2-level nesting for lists
  • Rate limits, retries

The Solution

An API service (Mark2Notion) that handles all the conversion complexity. It’s just a simple HTTP Request node - no custom nodes needed.

How It Works

Two simple endpoints:

  • /convert - just converts Markdown to Notion blocks, in case you need them for some manipulations
  • /append - directly sends markdown to Notion page, handling all limitations.

Resources

Happy to help anyone get it set up or answer questions.

Hope this helps someone else who’s been struggling with the same issue.

Let me know if you have any requests or suggestions.

Here is a sample workflow showing how to use the Append endpoint:

Update: Added /api/append-blocks endpoint for direct JSON blocks (no markdown needed). Useful if you already have JSON with Notion blocks and just need to send them to Notion. This endpoint also handles all Notion limitations like nested children or max blocks limits.
Same HTTP setup, just pass blocks instead of markdown.

Update: Mark2Notion now works both ways

Hey everyone - quick update since I posted this guide.

Mark2Notion now supports the reverse direction: you can export Notion pages to clean Markdown.

Use cases:

  • Backup Notion pages to Git repositories
  • Export documentation to static site generators
  • Extract Notion content for AI processing, then write results back
  • Sync Notion with other tools

n8n example (Notion → Markdown):

Add an HTTP Request node:

  • Method: POST
  • URL: https://api.mark2notion.com/api/notion-to-markdown
  • Authentication: Generic Credential Type (Header Auth)
    • Name: x-api-key
    • Value: YOUR_MARK2NOTION_API_KEY
  • Body JSON:
{
  "notionToken": "{{$json.notionToken}}",
  "pageId": "{{$json.pageId}}"
}

Returns clean markdown with all formatting, tables, lists, and code blocks preserved.

Combined with the original Markdown→Notion workflow, you can now build complete bidirectional automations.

Full guide here: Export Notion to Markdown - Backup & Sync Notion Pages | Mark2Notion

Let me know if you have questions or run into any issues!