All workflows
Google Sheets logoOpenAI logo

Draft blog posts and email them for approval

Drafts each planned blog topic with AI, emails it to your reviewer, and records their decision in your sheet.

Every day2 apps6 steps

Apps it connects

Authenticate each one once and the workflow is ready to run.

What it does

Each integration step this workflow runs, in order, what it is for, and the conditions and loops that decide when it runs.

  1. 1Google SheetsCreate tabCreates the 'Draft Approvals' tab in your plan spreadsheet on the first run, or carries on with the existing one.
  2. 2Google SheetsRead rowsReads the approval log to find topics already reviewed or waiting, then reads your plan tab for the topics still to draft.
  3. If approvalLog.headers is empty

    1. 3Google SheetsAppend rowAppends the log's header row when it is empty, then each topic as awaiting review and again with its status, reviewer notes and date.
  4. For each plannedTopic

    1. 4OpenAIQuery modelAsks the AI to write the full post for one topic in your house style, following any angle on the row.
    2. 5Google SheetsRead columnReads the log's Topic column again just before each review request, so a topic another run has taken on is skipped.
    3. 6Google SheetsAppend row

How it works

What happens on each run, in plain English.

Once a day, the topics on your content plan that have not been through review yet are written up as blog posts by AI in your house style, and each full draft is emailed to your reviewer to approve or reject, from the email itself. The run waits for their answer, so nothing counts as done until a person has looked at it.

Each topic ends up as a draft in the reviewer's inbox and a row in a 'Draft Approvals' tab in the same spreadsheet: the topic, whether it was approved or changes were requested, the reviewer's notes and the date. Each topic is logged as awaiting review before the reviewer is asked and that log is checked again before each request, so a topic is never drafted twice, and a topic nobody answers is recorded as 'No answer' rather than resent. Your plan tab is only ever read, a topic whose draft fails is picked up next time, and nothing is published anywhere.

You need a plan tab with a 'Topic' column, optionally an 'Angle' column for extra direction, the reviewer's email address and a short description of your audience and house style.

google sheetsopenaicontentblogapprovalhuman in the loopaidaily

Start from a workflow that already works.

Add "Draft blog posts and email them for approval" to your workspace, connect its apps, and make it yours.

Free plan, no credit card