Turn Google Sheet topics into WordPress draft posts with an AI step, row locking, error handling and a notification, with a Make, Zapier, n8n and Power Automate guide.
Free3 views0 copies
This workflow turns a list of topics in a Google Sheet into draft posts in WordPress. Each row with the status “Ready” is sent to an AI model with clear instructions. The result is saved as an unpublished draft, the sheet is updated with a link, and you are notified to review. A person always edits and publishes.
At a glance
Trigger
A row in a Google Sheet with the status “Ready”
Result
A WordPress draft, a link written back to the sheet and a notification
Platforms
Make, Zapier, n8n (Power Automate works with an Excel table or SharePoint list instead of Google Sheets)
Difficulty
Intermediate
Setup time
1 to 2 hours including testing
Human approval
Required before publishing. Posts are only ever created as drafts.
What it does and does not do
It does
It does not
Create consistent draft posts from topics and keywords
Publish or schedule posts
Record what was created and when
Fact-check the content
Flag failures in the sheet
Source images or add internal links automatically
Before you start
A Google account and a sheet laid out as in the table below.
A WordPress site and a user with permission to create posts (an author or editor role is enough, do not use an administrator). Create an application password for the connection.
An account with an AI provider supported by your platform, with a spending limit set.
The SEO Article Writer skill, which supplies the instructions for the AI step.
Prepare the sheet
Column
Purpose
Example
Topic
What the post is about
How to run a 20-minute planning meeting
Primary keyword
Main search phrase
weekly planning meeting
Audience
Who it is for
Small team managers
Notes
Facts, sources or points to include
Paste trusted notes here
Status
Controls what runs
Ready, Processing, Drafted, Error
Post link
Filled by the workflow
Edit link of the draft
Date drafted
Filled by the workflow
2026-10-02
Error
Filled if something fails
AI returned invalid JSON
The AI instruction (copy and paste)
prompt
Fill in the blanks below, or click a highlighted word in the prompt.
You are an SEO content writer. Write a draft article using the inputs below.
Topic: {{Topic}}
Primary keyword: {{Primary keyword}}
Audience: {{Audience}}
Notes and facts to use: {{Notes}}
Rules:
- Use the notes first. Do not invent statistics, quotes or sources. Put [verify] after any claim that needs a source.
- Answer the main question in the first two sentences.
- Use one H1-worthy title (return it separately), then H2 and H3 headings in the body.
- Use plain HTML only: p, h2, h3, ul, ol, li, strong, a.
Return ONLY valid JSON with exactly these keys and nothing else:
{"title": "", "slug": "", "excerpt": "", "meta_description": "", "content_html": ""}
The meta_description must be 140 to 155 characters.
Replace the double-brace placeholders with the field-mapping syntax of your platform.
Build steps
Trigger on Ready rows. Read rows where Status is “Ready”.
Lock the row. Set Status to “Processing” straight away so it cannot run twice.
Call the AI model with the instruction above and your row’s values.
Read the JSON result into separate fields.
Create the WordPress post with status draft, using the title, slug, excerpt and content.
Save the meta description into your SEO plugin’s field if your connection allows it. Otherwise add it to the sheet for manual entry.
Update the sheet: Status “Drafted”, the post’s edit link and the date.
Notify yourself by email or chat with the link.
Error path: on any failure set Status to “Error” and write the message in the Error column.
Platform guide
Step
Make
Zapier
n8n
Power Automate
Find Ready rows
Google Sheets: search rows with a filter on Status, on a schedule
Google Sheets: new or updated spreadsheet row, then a Filter step
Google Sheets Trigger or a Schedule Trigger plus a Google Sheets node, then an IF node
Recurrence trigger and “List rows present in a table” (Excel) with a filter
Lock the row
Google Sheets: update a row
Google Sheets: update spreadsheet row
Google Sheets node: update
Excel: update a row
AI step
An AI app module (for example OpenAI, Anthropic Claude or Google Gemini)
AI by Zapier or an AI app action
OpenAI or other AI node, or an AI agent or chain node
HTTP call to an AI API, or an AI Builder text action if licensed
Read the JSON
JSON: parse JSON
Ask for separate output fields, or use a Code step
Set or Code node
Parse JSON action
Create the draft
WordPress: create a post (status draft)
WordPress: create post (status draft)
WordPress node: create a post
WordPress connector action, or an HTTP call to the WordPress REST API
Update and notify
Sheets update, then email or Slack
Sheets update, then email or Slack
Sheets update, then email or Slack node
Excel update, then email or Teams
Errors
Add an error handler route to the AI and WordPress modules
Zap error alerts and a Path for failures
Error Trigger workflow
Scope with “Configure run after” set to failed
Names change as platforms update, so check the current module, action or node names in your tool. Some actions, such as HTTP calls and AI Builder, may need a paid or premium licence in Power Automate.
Test plan
Test
Expected result
One row with all fields filled
One draft is created, the row shows Drafted and the link works
Run the workflow twice
No duplicate draft, because the row is locked
A row with an empty Topic
Status Error with a clear message
AI returns text instead of JSON
Error path, no post created
WordPress credentials removed
Error path and a notification
Cost and limits
Most platforms count each step or module run, so a nine-step run uses more than a three-step run.
AI usage is billed separately by your AI provider. Set a monthly spending limit.
Process a few rows per run while testing, and check retries, which can use extra usage.
Security and privacy
Use an application password and a least-privilege WordPress user. Never share them in chat.
Always create drafts, never published posts.
Do not put confidential information in the Notes column.
Review every draft for accuracy, originality and tone before publishing.
Variations
Add an approval step: email the draft link and wait for approval before moving the row to “Approved”.
Add images: create a featured image separately and attach it after review.
Outline first: generate an outline into the sheet, approve it, then generate the article.
Troubleshooting
Problem
Fix
Duplicate drafts
Make sure the row is set to Processing before the AI step.
WordPress shows raw tags
Ask the AI for HTML only, and map the content to the post body field.
JSON fails to parse
Tell the AI to return only JSON, and strip any code fences before parsing.
Authentication error
Check the application password and that the REST API is not blocked by a security plugin.