Guide

Blog automation with n8n, Make or Zapier: an honest guide

You can build your own blog pipeline with n8n, Make or Zapier: topics from a sheet, a draft from an AI model, a featured image and a WordPress post. Here is how the pipeline looks, where it usually breaks and what the platforms cost.

Updated:

In short: Blog automation with n8n, Make or Zapier works, and many people run it. The typical pipeline reads a topic from a sheet, asks an AI model for a draft, converts it to HTML, uploads a featured image, creates the post as a draft in WordPress and leaves publishing to a person. The hard parts are rarely the AI step: they are the featured image, formatting, authentication errors, duplicates and error handling. DIY makes sense if you like building and maintaining workflows. If you mainly want reviewed posts on a schedule, a ready tool saves that work.

This guide is for people who already know their way around WordPress and want to decide whether to build the workflow themselves. For the big picture of blog automation, read our pillar guide on how to automate blog posts. For a comparison of ready-made tools, see the best blog automation tools.

The typical DIY pipeline

Almost every n8n, Make or Zapier blog workflow you will find in community forums follows the same seven steps:

  1. Topic source: a row in Google Sheets, Airtable or Notion with the topic, a keyword and a status column.
  2. AI model step: a prompt that turns the row into a draft (title, body, excerpt, maybe a meta description).
  3. Formatting: the draft is converted to HTML, because that is what WordPress stores in the post content.
  4. Featured image: an image is generated or picked, uploaded to the WordPress media library, and its ID is kept.
  5. Create the post as a draft: title, HTML content, excerpt, category IDs and the image ID go to WordPress with the status draft or pending.
  6. Human review: someone reads the draft in WordPress, checks facts and fixes the text.
  7. Publish: the reviewer publishes or schedules the post. The sheet row is marked as done.

Steps 1 to 5 are automated. Steps 6 and 7 stay with a person, and for good reason: Google recommends checking AI content by hand before publishing (see our guide does Google penalize AI content?).

The WordPress pieces you need

All three platforms talk to the same WordPress REST API. Knowing the endpoints helps you debug, whichever tool you use.

Posts endpoint

Posts are created with POST /wp/v2/posts. The posts reference on developer.wordpress.org (external link) lists the fields you need: title, content, excerpt, slug, categories and tags (both as term IDs), date, featured_media ("The ID of the featured media for the post") and status. The allowed statuses are publish, future, draft, pending and private. For a reviewed workflow, use draft or pending, never publish.

Media endpoint

Images go to POST /wp/v2/media (media reference (external link)). Besides the file, you can set alt_text, title, caption and post (the ID of the post the attachment belongs to). The response contains the new media ID. That ID is what you later put into featured_media on the post.

Application passwords

Since WordPress 5.6, application passwords are built in. You create one on the user's profile screen in wp-admin and send it with Basic Auth (REST API authentication, developer.wordpress.org (external link)). The integration guide on make.wordpress.org (external link) adds an important detail: "By default, Application Passwords is available to all users on sites served over SSL/HTTPS." A site without HTTPS is the first thing to rule out. Use a separate WordPress user with the Editor role for the workflow, not your own admin account.

How each platform connects to WordPress

n8nMakeZapier
WordPress operationsPost, Page and User: create, get, get many, update (node docs (external link))Posts, Media Items, Categories, Tags, Comments, Users, plus "Make an API Call" (WordPress app (external link))Create Post, Update Post, Upload Media, Create Tag, Find Post and more (WordPress integration (external link))
Media uploadNot in the WordPress node; use the HTTP Request node, which can send an "n8n Binary File" as the body (HTTP Request docs (external link))"Create a Media Item" module"Upload Media" action
AuthenticationBasic auth with an application password for self-hosted WordPress; OAuth2 only for WordPress.com (credential docs (external link))API key from the "Make Connector" plugin, which must be installed in WordPressWordPress account connection in Zapier
Markdown to HTMLMarkdown node (docs (external link))Markdown app, "Markdown to HTML" (docs (external link))Ask the AI step for HTML directly

The real pain points (and how to fix them)

Community forums for all three platforms are full of the same questions. Here are the most common ones, with the fix that usually works.

This is the most frequent complaint. In an n8n community thread (external link), a user sent title, text and image to the WordPress node in one step: the post was created, the image was missing. The answer in the thread: run the steps one after the other. Create the post, generate the image, upload it, then update the post with the image.

The rule behind it: a post cannot take a file. It only takes the ID of an image that already sits in the media library. So the order is always upload first (media endpoint), then set featured_media with the returned ID, either when creating the post or with an update afterwards.

Formatting breaks: Markdown in WordPress

AI models like to answer in Markdown. WordPress stores what you send in content, so ## and ** end up as visible characters in the post. Two fixes: ask the model for clean HTML with only h2, h3, p, ul, ol and a tags, or convert Markdown to HTML in a separate step (n8n Markdown node, Make Markdown app). Do not ask for an h1: the post title already is the H1 in most themes.

401 errors with application passwords

A typical case on the WordPress.org support forum (external link): GET requests work, POST requests fail with 401. The thread tried an .htaccess rule that passes the Authorization header through, and it ended unresolved. Check these points in order:

  1. HTTPS: application passwords are only available by default on HTTPS sites.
  2. User role: the user must be allowed to do what you ask. According to the roles and capabilities overview (external link), an Author cannot manage categories, and a Contributor can neither publish nor upload files. An Editor can do all three.
  3. Authorization header: some server setups drop it before WordPress sees it. Ask your host, or test with the curl --user example from the authentication docs (external link).
  4. Security plugins: firewalls in security plugins sometimes block the REST API for unknown clients. Check the plugin's log.
  5. Redirects: if http:// redirects to https:// or www to non-www, the request may lose its header on the way. Use the exact final URL.

Duplicate posts

A workflow that runs twice, or a retry after a timeout, creates the same post twice. Three safeguards:

  • Write a status ("in progress", "done") back to the sheet row and only pick rows without a status.
  • Store the WordPress post ID in the row after creating the post.
  • Before creating, search for an existing post (Zapier "Find Post", Make "Search Posts", n8n "Get many").

Error handling

Tutorials usually show the happy path. In real life the AI step times out, the image is rejected or WordPress is down. Plan for it:

  • n8n: an error workflow starts with the Error Trigger node and receives the error message and the last executed node; you set it in the workflow settings and can reuse it for several workflows (n8n error handling (external link)).
  • Make: error handler modules exist; according to the pricing page (external link), error handler modules (Rollback, Break, Resume, Commit, Ignore) do not use credits.
  • Zapier: failed actions do not count as tasks (pricing page (external link)).

Whatever the platform, send yourself a message when a run fails, and mark the sheet row as "failed" so it does not silently disappear.

Token costs of the AI step

The platform fee is only half the cost. Every AI call is billed by your model provider per token (input and output), plus image generation if you create featured images. Long prompts, a separate outline step and retries all add up. Check the current prices on your provider's pricing page, run ten test posts and divide the bill by ten before you plan a monthly volume.

What the platforms cost

Prices from the official pricing pages, as of 12 November 2026. They change often, so check before you decide.

PlatformFree optionEntry paid planHow usage is counted
ZapierFree plan: 100 tasks per month, two-step Zaps onlyProfessional: $19.99 per month billed yearly or $29.99 monthly for 750 tasks"A task is counted whenever Zapier successfully completes a unit of work for you"; triggers and built-in tools like Formatter and Filter do not count; "Many actions cost more than one task"
n8nSelf-hosted Community edition: "A standard, self-hosted version of n8n is available on GitHub"Cloud Starter: 20 EUR per month billed annually, 2.5K workflow executions; Pro 50 EUR per month billed annually, 10K"An execution is a single run of your entire workflow", no matter how many steps
MakeFree plan: 1,000 credits per monthPaid plans Core, Pro, Teams and Enterprise; the prices were not readable in the page text on 12 November 2026, so please check the pageMost actions use 1 credit; some AI features use more; Router and error handlers do not count

Sources: Zapier pricing (external link), n8n pricing (external link), Make pricing (external link).

What this means for a blog pipeline with about six steps:

  • Zapier: the free plan allows only two-step Zaps, so a full pipeline needs a paid plan. Each action step is at least one task.
  • n8n: one post is one execution, however many steps it has. Self-hosting costs nothing in licence fees, but you run the server, updates and backups yourself (hosting options (external link)).
  • Make: each module run is usually one credit, so one post uses roughly as many credits as it has modules, plus any searches.

Step table: build your pipeline

Copy this table as a checklist. The right column names what to check before you go live.

Stepn8nMakeZapierCheck before going live
1. Get topicRead sheet rows without statusRead sheet rows without statusSheet trigger or search for rowsOnly rows without a status are picked
2. Mark rowUpdate row: "in progress"Update row: "in progress"Update row: "in progress"A second run skips the row
3. Write draftAI model node with your promptAI module with your promptAI step with your promptOutput is HTML without h1, length as asked
4. FormatMarkdown node, if neededMarkdown to HTML, if neededPrompt for HTMLNo ## or ** in the result
5. ImageGenerate image, HTTP Request to /wp/v2/mediaCreate a Media ItemUpload MediaAlt text set, media ID returned
6. Create postWordPress node, status draftCreate a Post, status draftCreate Post, status draftfeatured_media = media ID, categories as IDs
7. Write backUpdate row: post ID, "done"Update row: post ID, "done"Update row: post ID, "done"Post ID stored in the sheet
8. ErrorsError workflow with Error TriggerError handler routeFailure notificationRow marked "failed", you get a message
9. ReviewIn WordPress: read, fix, publish or schedulesamesameA named person approves every post

The names of the sheet and AI steps depend on which apps you connect. The WordPress steps are named as in the official docs linked above.

When DIY makes sense, and when a ready tool does

DIY with n8n, Make or Zapier makes sense if:

  • you already use one of these platforms and know how to debug a failed run
  • your process is unusual, for example topics from your CRM or posts for several systems at once
  • you want to choose every model, prompt and step yourself
  • you have time for maintenance: API changes, expired passwords, new plugin conflicts

A ready tool makes sense if:

  • several people write and approve, and you need roles and a clear approval status
  • you run more than one site and want one calendar for all of them
  • you would rather not maintain prompts, image uploads and error handling yourself
  • predictable cost per post matters more than full control

Neither way is wrong. Many teams start with DIY to learn what they need, then decide whether to keep maintaining it.

Where Blog Automation fits

If you decide against building it, Blog Automation covers the same pipeline without a workflow builder. Automations pick topics from the idea board or a keyword list on set days and times and create a "draft for review", or publish after approval. AI drafts go to review first by default. The featured image is created with AI (1536 x 1024 px) and has an alt text field. The WordPress connection uses an application password that WordPress creates itself after you confirm, without a plugin, or optionally through our plugin. A post with image costs 80 tokens at a fixed price, and failed actions cost nothing. Plans start with a free plan of 200 tokens per month; Starter costs $20 and Pro $50 per month plus VAT. More on automated blog posting.

Frequently asked questions

How do I attach a featured image when posting through the REST API, n8n or Make?

Upload the image first to /wp/v2/media, take the ID from the response, and set it as featured_media on the post. In n8n, use the HTTP Request node for the upload, because the WordPress node has no media operation. In Make, use "Create a Media Item", in Zapier "Upload Media".

Why do I get a 401 error with application passwords?

The most common causes are a site without HTTPS, a user role without the needed rights, a server that drops the Authorization header, a security plugin that blocks the REST API, or a redirect that loses the header. Test with curl --user against the exact final URL to narrow it down.

What does a DIY n8n or Zapier blog pipeline really cost to run?

The platform fee (see the price table above) plus the AI provider's token costs for text and images, plus your time for setup and maintenance. Self-hosted n8n has no licence fee, but you pay for the server and look after it yourself. Run ten test posts to see your real cost per post.

Should my workflow publish directly or create drafts?

Create drafts (draft or pending) and let a person publish. An automated run cannot check facts, and Google recommends reviewing AI content by hand before it goes live. How to set up a clear approval step is explained in our guide on the content approval process.

Why does the AI write fewer words than I asked for?

A Zapier community thread (external link) describes exactly this: 750 words asked, around 400 delivered. The advice there was to phrase the length as a direct instruction ("Write a 750 word article") instead of a goal, and to expect some tweaking. Another way is to generate an outline first and then write section by section. A fixed word count is not a quality goal anyway: write until the question is answered.

Ready for your first post?

Try Blog Automation with sample data

The demo opens at once, no sign-up needed. You see the dashboard, editor, calendar and approval just the way your team will use them.

Try the demo - no sign-upStart free

The demo shows sample texts. The Free plan includes 200 tokens a month.

Try the demo