VOYAGER · MARKETING

N 40.7128° · W 74.0060°

Notion as a WordPress CMS: How We Built a Zero-Touch Publishing Pipeline

The Problem With WordPress for Content Teams

Content writers do not want to learn Gutenberg. They do not want to set featured images, configure SEO fields, or remember to hit Publish at the right time. They want to write in a tool they already know, hand it off, and see it live.

We built a pipeline where the content team works exclusively in Notion. They never open WordPress. Here is how it works and why it changed our entire content operation.

The Pipeline: Notion Row to Published Post

Step 1: Create a row. Writer adds a row to the Notion content database. Fills in title, keyword, and brief. This is the only thing a human has to do.

Step 2: AI generates the draft. An Orbit ability takes the brief and generates a full draft — headline, body (800+ words), meta description, and suggested schema markup. The draft appears in the HTML field of the same Notion row.

Step 3: Editorial review. Editor reviews in Notion. Makes changes directly in the rich text field. Moves status from “In Progress” to “Approved.”

Step 4: Publish command fires. The /publish skill picks up approved rows, creates WordPress posts with full SEO meta via RankMath, and writes the WordPress post ID back to Notion so the team always knows what is live.

Step 5: Scheduled publishing. WordPress cron handles timed publishing. The post goes live at the date specified in the Notion “Do Date” field.

The Notion Database Schema

The content database has these columns, each serving a specific pipeline function:

Name         (title)      → WordPress post title
Keyword      (rich_text)  → RankMath focus keyword
Status       (status)     → Pipeline stage: Up Next → In Progress → Approved → Published
Type         (select)     → Blog, Page, Email, Social
Client       (select)     → Which client this content is for
HTML         (rich_text)  → Full post HTML content
Do Date      (date)       → Scheduled publish date
WP Post ID   (number)     → Written back after publish
Published Link (url)      → Written back after publish

The Status field drives everything. Content moves through stages. Only “Approved” items get picked up by the publish command. The writeback to WP Post ID and Published Link closes the loop — the content team never has to check WordPress to see if something went live.

Handling Images and Media

Featured images are the one area where the pipeline needs attention. The current approach: the Featured Image URL field in Notion points to an image. The publish step downloads it, uploads to WordPress media library, and sets it as the featured image.

For inline images within the post body, we use standard HTML <img> tags in the Notion HTML field pointing to already-uploaded media URLs. This keeps the pipeline simple — no complex image processing middleware.

Quality Gates

The pipeline enforces quality before anything touches WordPress:

  • Word count minimum: 800 words or the publish command rejects the post
  • SEO meta required: Title, description, and focus keyword must exist. Auto-generated from content if missing.
  • Internal links minimum: At least 2 links to other site pages
  • CTA paragraph: Every post must end with a call-to-action linking to /contact/
  • Open Graph meta: Facebook and Twitter card data set automatically

What Makes This Different From Zapier

Zapier connects Notion to WordPress, sure. But it is a dumb pipe — it moves data from A to B with no intelligence. Our pipeline generates content, validates quality, sets SEO fields, handles media, writes back to Notion, and respects scheduled dates. Zapier would need 5+ zaps and still could not do the AI generation or quality validation.

More importantly, the Notion binding source means WordPress pages can read from Notion in real time — not just during a one-time publish. Edit a Notion row and the bound WordPress content updates on the next cache expiry. This is two-way integration, not a one-shot sync. See it live on the bindings showcase page.

The Numbers

  • Time per post: ~15 minutes from brief to published (was 2+ hours with manual WordPress editing)
  • Tools eliminated: Google Docs, Trello, Zapier, manual WordPress editing
  • Content velocity: From 2 posts/month to 12+ with the same team size
  • Error rate: Zero missed SEO fields since quality gates were added

Key Takeaways

  • Content teams should never touch WordPress. Let them work in the tool they know.
  • AI generation + human review is the right balance. AI writes the first draft, humans refine.
  • Quality gates catch what humans forget. Word count, SEO meta, internal links — all enforced automatically.
  • Two-way Notion sync means the content database is always current. No “is this published?” questions.

Ready to automate your content pipeline? Start here.


Leave a Reply

Your email address will not be published. Required fields are marked *