Skip to content
Search prompts, tools, agents…

Google Sheet Topics to WordPress Drafts

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.

Free 3 views 0 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)

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

  1. Trigger on Ready rows. Read rows where Status is “Ready”.
  2. Lock the row. Set Status to “Processing” straight away so it cannot run twice.
  3. Call the AI model with the instruction above and your row’s values.
  4. Read the JSON result into separate fields.
  5. Create the WordPress post with status draft, using the title, slug, excerpt and content.
  6. Save the meta description into your SEO plugin’s field if your connection allows it. Otherwise add it to the sheet for manual entry.
  7. Update the sheet: Status “Drafted”, the post’s edit link and the date.
  8. Notify yourself by email or chat with the link.
  9. 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.

Use it with the SEO Article Writer, the WordPress Content Editor Agent and the guide How to Automate WordPress Drafts from a Google Sheet. Tools: Make, Make MCP server.

Join the conversation

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