All these automations were built in a single day, imagine what’s possible with a bit more time! Automations don’t have to be complex, we built them one day at a time and the possibilities grow exponentially.
Executive Summary
Objective
If you write blog content in Notion but publish in WordPress, you’ve probably dealt with the annoying back-and-forth of copying content, fixing formatting, and manually uploading. This post shows how to automate that process using n8n, a low-code tool that connects your Notion database directly to WordPress.
The objective is to reduce your publishing overhead to near-zero by setting up a workflow that runs every time you switch your status in Notion.
Tools
- Notion – for drafting and organizing blog posts
- n8n – for automating the publishing process
- WordPress (self-hosted) – as the publishing platform
Preview

Problem & Goal
Bloggers often love Notion for its smooth writing experience. But when it’s time to publish to WordPress, things get annoying: manual copy-pasting, fixing formatting and double-checking structure. If you’re writing regularly, this gets repetitive fast.
The goal is an automation that monitors a Notion database for new blog posts marked as “Ready,” extracts the content including headings, paragraphs, and lists, formats it into HTML, and publishes it directly to WordPress from Notion. After posting, it updates the original Notion entry to prevent duplicate publishing.
Theory & Research
Notion AI
Freelancers and bloggers can streamline their idea creation process by leveraging Notion AI as a built-in brainstorming and writing assistant. From generating blog post outlines and titles to expanding bullet points into full paragraphs, Notion AI helps overcome creative blocks and speeds up content development.
Notion Databases and Knowledge base
Combined with Notion databases, creators can organize content drafts, track publishing status, and maintain a clear overview of their editorial pipeline. Over time, this evolves into a powerful knowledge base, making it easier to revisit past ideas, repurpose content, and ensure consistency across platforms.
Notion Templates
Using Notion templates can safe multiple hours of work per week by embracing the templates to standardise work processes. Especially when publishing across multiple platforms Notion templates can help create an uniform structure into blog posts and guide the blogger in the content production process.
Prerequisites
Accounts and Credentials needed
- A Notion account with a database containing your blog drafts.
- An n8n instance (self-hosted or cloud).
- Access to your WordPress site with admin/editor permissions.
- Existing Resources
Documentation Links
https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.notion
https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.wordpress/#templates-and-examples
Existing Resources
https://n8n.io/workflows/2901-convert-notion-to-markdown-and-back-to-notion
https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.markdown
Theoretical Action Plan
Business Process Flow
We want to build a bridge from Notion to WordPress that:
- Blogger adds a new Blog Post in Notion and content is created and edited in Notion
- N8N detects which Notion page is ready
- Fetches the content and structure
- Converts the content from json (rich text) to markdown to HTML
- Posts it to WordPress as WordPress-compatible HTML format via the REST API
- Marks them as published in the notion database
- Blogger can directly convert content to Blocks and finish post in Word Press
Flow Chart

Key Features and Challenges
- Only posting new/unpublished items
- Preserving semantic structure (headings, bullets, bold, etc.)
- Rich-text parsing and formatting from Notion
- Supporting images or links in future upgrades
Technical Implementation
N8N Template

Step 1: Trigger on Notion database update
This step monitors your Notion blog database and automatically triggers the workflow whenever a page is updated for example when it is marked as “Ready to publish.” It ensures your automation reacts instantly without manual input.
Step 2: Check if Blog post is ready
This step filters your Notion database to only fetch blog posts with the status set to “Post Draft”. It ensures only content marked as ready will continue through the automation and be published.
Step 3: Fetch all content
This step uses a custom HTTP GET request to retrieve all child blocks from the Notion page. It accesses the full content structure like headings, paragraphs, and lists by calling the Notion API directly with the page ID, ensuring rich text formatting is preserved.
Step 4: Convert all content
This step transforms the raw Notion blocks into clean HTML, ready to post on WordPress. First, each block is split out and then converted to Markdown using a custom JavaScript function, preserving structure and formatting like headings, and lists. Then, Markdown is converted into HTML using n8n’s Markdown node to ensure proper rendering on your website.
Step 5: Post to WordPress
This step takes the final HTML content and sends it directly to WordPress via the REST API. It sets the blog post title from Notion databases and uses the converted content as the body, assigns a draft status, and places the post in the “Uncategorized” category by default.
Step 6: Update Notion DB Status
This step marks the blog post as “Published” in your Notion database after it’s been successfully sent to WordPress. It updates the page by its ID and changes the status field to prevent the same post from being published again.
What else could be done?
- Set publishing date a Notion field “Publish Date” field mapped to WordPress post date
- Automatically assign categories and tags based on Notion properties
- Upload images and attach them to the WordPress post automatically
- Send notifications via email or Slack after publishing in a weekly update
- Automatically share the post on social media platforms like LinkedIn or Twitter
- Allow to update the content in Notion and publish automatically on WordPress
- Add support for multiple languages by translating content before publishing
Bug Fixes & Common Errors
- Publishing fails silently: Add an error handler or Slack/email node to catch failed WordPress API calls
- Bold text and links not rendering correctly: Current Markdown conversion doesn’t fully support combining annotations (e.g. bold text with links)
- Images must be added manually: The workflow doesn’t currently support image blocks or uploading to WordPress; this needs to be done post-publish
- Block is rendered as a Classic block in WordPress: WordPress interprets the HTML as a single Classic block; block-level separation isn’t preserved