AI Content Approval Workflow: Draft, Check, Sign Off

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Content Approval Workflow: Draft, Check, Sign Off.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Content Approval Workflow: Draft, Check, Sign Off.

Give every piece three stages, each with a named owner: one person drafts with AI from an agreed brief, a second checks it against a written checklist and the source documents, and a third approves the exact final version and records it. Route work by risk, so routine posts can skip steps that ads and client statements never skip.

Two breakdowns are worth designing against from day one. On a busy week the checker and the signer quietly become the same person, and nobody notices until a mistake slips past both. Or the version a client approved is not the version that goes live, because someone tweaked a headline after sign-off. Asking people to be more careful fixes neither. Each stage below ends with something written down, so the gaps show.

Follow me on Instagram@sagnikteaches

Three roles, and what each one hands to the next

The workflow is really three handovers. Job titles matter less than two rules: the person checking didn't write the draft, and the person signing didn't do the check. In a marketing agency of six or seven people that usually means an account executive drafts, a colleague from a different account checks, and the account lead or the client signs.

Connect on LinkedInSagnik Bhattacharya
StageOwnerReceivesHands overTypical time (600-word piece)
DraftDrafterBrief, lane, source packDraft plus draft notes: what the AI added, what still lacks a source25 to 40 minutes
CheckChecker (not the drafter)Draft, notes, sourcesCompleted check sheet and a verdict: pass or changes needed15 to 25 minutes
Sign offSigner (not the checker)Final version and the check sheetSign-off record naming the version, date and any conditions5 to 10 minutes, plus waiting

Two columns in that table do most of the work. The draft notes make the drafter admit what the AI added that isn't in the sources, which is where invented figures hide. And the sign-off names a version, which is the only reliable answer to "that isn't what I approved".

Subscribe on YouTube@codingliquids

Smaller teams can still keep the roles apart. In a two-person business, swap: you check each other's drafts, and the owner or the client signs. Working alone, check on a different day from the one you drafted, using the same sheet, and treat the client as your signer. A night's gap catches things that a second read straight after writing tends to miss, because you stop reading what you meant and start reading what's there.

Put each piece in a lane before the AI writes a word

Not everything needs three people. A reply to a comment and a paid ad quoting a price carry very different costs if they're wrong, so decide the lane when the brief is written, which takes ten seconds, rather than arguing about it at the end. The general method for matching review effort to risk is in how to set up human review for AI work without slowing down. For content, it lands as three lanes.

  • Lane A, low risk. Short, reversible, no numbers or promises. Draft, then a self-check against a six-point list. Each week the account lead reads one in ten after publishing.
  • Lane B, standard. Public and lasting, but no prices, offers or statistics. Draft, a full check by someone else, internal sign-off by the account lead.
  • Lane C, high risk. Anything with a price, an offer, a statistic, a comparison, a health or money claim, a quote attributed to a real person, or paid media behind it. Draft, full check, a second look at the claims by whoever knows the evidence, and written sign-off from the client.

Filled in for an agency with five retainer clients, the routing looks like this:

Content typeLaneReason
Replies to comments on client social accountsAShort and reversible; complaints still go to a person
An approved article reshared as a LinkedIn postAAlready approved; check the link and that nothing new crept in
How-to articles for a client's websiteBPublic and indexed, so errors linger for months
Monthly newsletter with no offerBGoes to the whole list at once and can't be recalled
Newsletter with a discount or deadlineCOffer terms are promises customers can hold the client to
Paid social and search adsCMoney behind every impression, and platform review on top
Press statements and quotes in the client's nameCAttributed words the client must approve verbatim
Case studies with results figuresCFigures need the client's evidence and permission

One rule overrides the table. If a draft picks up a number, a price or a quote during drafting that the brief never mentioned, it moves up a lane. A how-to article that started in Lane B becomes Lane C the moment the AI decides to add "clients typically see results within 30 days".

Stage one: a draft pack the AI can't wander away from

Most errors that reach the checker were invited by a thin brief. Tell the AI to "write the October newsletter for the homeware client" and it fills the gaps with plausible inventions. Give it the offer terms word for word, and tell it what to do when something is missing, and the gaps turn into visible flags instead. Here is a filled-in brief for a Lane C newsletter.

BRIEF NL-OCT-03                     Lane: C (contains an offer)
Client:      online homeware shop (bedding and table linen)
Piece:       October customer newsletter, about 350 words
Audience:    past customers, mostly repeat buyers
Goal:        clicks to the bedding sale page
Offer terms, verbatim from the client's email of 22 September:
  "15% off all bedding, 3-12 October, excludes items already reduced.
   Free delivery on orders over $60."
Sources:     autumn product sheet, offer email, last three newsletters
Do not say:  eco-friendly, sustainable, best, cheapest, "last chance"
             (unless within 48 hours of the end date)
Call to action: Shop the bedding sale
Drafter: [first name]   Checker: [first name]   Signer: client

The prompt that goes with it does two jobs: it fences the AI inside the sources, and it asks for a list the checker can work from.

Write the newsletter described in the brief below.
Rules:
1. Use only facts that appear in the attached sources.
2. If you need a fact that isn't there (a number, date, product
   detail or customer count), write [CHECK: what's missing] instead
   of guessing.
3. Copy the offer terms exactly. Don't round, shorten or reword them.
4. After the draft, list every number, date, product name and claim
   you used, each with the source it came from, or "no source".

[paste the brief and the sources]

An excerpt of what came back (illustrative):

Our washed-linen duvet cover, already loved by over 2,000 customers, is now 15% off until 14 October. [CHECK: delivery threshold] Treat your bedroom to eco-friendly comfort this autumn.

Three problems in about thirty words, and one piece of good behaviour:

  • "Over 2,000 customers" appears in no source, and the AI's own claim list marked it "no source". That list is worth asking for precisely because it exposes inventions like this one. Cut.
  • "Until 14 October" is wrong; the offer ends on the 12th. The claim list credited it to the offer email, so the AI misread its own source. Self-checks rarely catch this type, which is why a person checks next.
  • "Eco-friendly" was on the do-not-say list. Cut.
  • [CHECK: delivery threshold] is the prompt doing its job. The figure sat on the second line of the email and the AI missed it, but it flagged the gap instead of inventing a number. The drafter filled in $60 from the source.

The drafter fixes what's plainly wrong, leaves anything uncertain flagged, and writes three lines of draft notes: what the AI added, what was cut, what still needs a source. Don't polish the prose at this stage. If the checker cuts a paragraph, the polishing was wasted time.

Stage two: the checker works from a sheet, not a feeling

The checker's job is to compare, not to rewrite. They take the draft, the notes and the sources, and go through the same list in the same order every time. For claims in particular, the line-by-line method in how to fact-check AI marketing copy before it goes live slots straight into this stage. A completed sheet for the newsletter's second version:

CHECK SHEET  NL-OCT-03  v2      Checker: [first name]   Time: 22 min
1 Numbers, dates, prices vs sources    9 checked, 1 wrong:
    header says 3-12 October, the P.S. says "ends 13 October"   FIX
2 Offer terms verbatim                 exclusion missing ("excludes
                                       items already reduced")     FIX
3 Product names vs glossary            "Washed Linen Duvet Set" should
                                       be "washed-linen duvet cover" FIX
4 Claims (best/only/most/green/%)      "our softest sheets ever": no
                                       test data, ask client        ASK
5 Links and tracking                   4 links, 1 points to the summer
                                       sale page                    FIX
6 Voice and banned phrases             OK
7 Disclosures (ads, affiliates, AI)    none needed
8 Accessibility                        2 images without alt text    FIX
9 Generic filler                       opening line could be any
                                       brand's; rewrite             FIX
Verdict: CHANGES NEEDED (7 fixes, 1 question for the client)

Look at what the sheet found that the drafter didn't. The P.S., added in a later prompt, contradicted the header. Drafts built up over several prompts often disagree with themselves, because each new instruction gets applied locally. A person reading top to bottom against the source catches that; the AI rereading its own work usually doesn't.

An AI comparison can still speed the checker up, as long as it's treated as a pre-pass. Paste the draft and the offer email into a fresh chat and ask: "List every place where the draft differs from the source on dates, prices, percentages, exclusions or product names. Quote both versions side by side. Don't comment on style." On this draft it would plausibly return the 12 versus 13 October clash and the missing exclusion, and miss the wrong link and the missing alt text, which is why the sheet still gets filled in by a person.

Here's the sale paragraph before and after the check:

Before (v2): Hurry, this is your last chance! Our softest sheets ever are now 15% off, ending 13 October. Free delivery on everything.
After (v3): Our bedding sale runs from 3 to 12 October: 15% off all bedding, excluding items already reduced. Orders over $60 are delivered free.

"Last chance" went because nine days remained. "Softest sheets ever" went until the client could support it. "Free delivery on everything" was the most expensive error in the draft: a customer who orders a $25 pillowcase and is then charged for delivery has a screenshot of a promise.

Two habits keep this stage honest. The checker checks against the sources, never against memory of what the client "usually" offers. And the checker marks problems and sends the piece back rather than quietly rewriting it, so the drafter sees what went wrong and the pattern can be logged.

Stage three: a sign-off that names the version

A sign-off is only useful later if it answers four questions: who approved, exactly what they approved, when, and on what conditions. A thumbs-up in a chat thread answers one of them. A complete record takes a minute to fill in:

SIGN-OFF  NL-OCT-03
Version approved:  v3  (NL-OCT-03_v3.pdf, saved 30 Sep 14:10)
Approved by:       [first name], marketing manager at the client
Approved on:       1 Oct 09:42, by email reply "Approved"
Conditions:        none ("softest ever" cut at the client's request)
Check sheet:       attached; all 7 fixes confirmed in v3
Publishes:         email platform, 3 Oct 07:00, list "past customers"
Locked by:         [first name], account lead
Any change after this point goes back to Stage 2.

The email that gets the client's approval should make the version and the deadline impossible to miss:

Subject: For approval: October newsletter (v3), by Thursday 4pm

Hi [first name],

Attached is version 3 of the October newsletter exactly as it will
appear. We've checked every date, price and product name against
your offer email of 22 September and the autumn product sheet.

One change since last time: we removed "our softest sheets ever",
because we don't have test data to support it.

Please reply "Approved" or send changes by Thursday at 4pm. Once
approved we lock this version, and any later change, however small,
comes back to you before it goes out.

As set out in our agreement, first drafts are prepared with AI
assistance and checked by our team before you see them.

[first name]

That last line depends on what your contract says about AI. If it says nothing yet, AI clauses for agency contracts covers disclosure, ownership and approvals.

Email with a PDF is a perfectly good record. So are the approval features built into office suites. In Google Workspace (Business Standard and above), the Approvals feature in Drive sends a file to named approvers, who approve or reject it, and a formal approval resets if the file is edited. That reset is exactly what you want for final sign-off. Google added lighter "alignment" approvals in June 2026 that don't reset when the content changes; use those to agree an outline, never for the final version. In Microsoft 365, the Approvals app in Teams does the same job: New approval request, add the approvers, attach the file, and the decision stays in the app's history.

Here is how the version problem tends to surface in practice. An agency sends v3 of a promotional email and gets "Approved". The next morning a colleague, hoping to lift the open rate, changes the subject line to "Last chance: 15% off ends tonight", when the sale has five days to run. Customers start replying to ask whether the offer is over, and the client's owner, who approved v3, asks why the email says something they never saw. Nobody acted in bad faith. The fix is procedural: after sign-off the file is locked, and even a subject-line change gets a short re-check of just the difference, then goes back to the signer.

Statuses, deadlines and who chases whom

Each piece should sit in exactly one status, with one owner, at any moment:

  1. Brief ready. Lane chosen, sources attached. Nothing moves to drafting without sources.
  2. Drafting. The drafter owns it.
  3. In check. The checker owns it. Target: one working day.
  4. Changes needed. Back with the drafter, check sheet attached.
  5. Awaiting sign-off. The signer owns it. Target: same day internally, two working days for clients.
  6. Approved and locked. Version recorded; the file is no longer edited.
  7. Scheduled. Whoever schedules compares the scheduled post with the locked version, word for word on the offer lines.
  8. Live. The published link is added to the record.

A status column in Asana, Trello, Monday or a shared spreadsheet all do the job; the tool matters far less than two rules. Nothing is approved by default: if a client misses the deadline, the account lead chases once at 24 hours and the piece waits. And every AI-drafted piece gets a tag, so that when you look back you can see whether AI drafts need more fixes than human ones, and for which content types.

The same three-stage shape works for other AI outputs with a different check sheet. Social posts need platform checks such as hashtag limits and AI labels, covered in the social media pre-publish checklist for AI-drafted posts. Quotes and estimates need price and scope checks, covered in how to set up an approval step for AI-written quotes.

A 64-piece month at a seven-person agency

To put numbers on it, take an illustrative seven-person agency with five retainer clients producing 64 pieces a month: 30 in Lane A, 26 in Lane B and 8 in Lane C. The minutes below are per piece.

LanePiecesDraftCheckSign-offPer pieceMonthly hours
A30155 (self-check)020 min10.0
B2635201065 min28.2
C84530, plus 20 on claims15110 min14.7
Total6452.8

Checking and sign-off account for 1,450 of those minutes: 150 in Lane A, 780 in Lane B and 520 in Lane C, or about 24 hours. At an internal cost of $45 an hour that's roughly $1,090 a month spent on getting things right.

Against that, suppose the illustration's month catches 21 wrong or unsourced facts, 6 claims without evidence, 5 link errors and 2 offer-term mismatches, both of the last in Lane C ads. Now picture just one of those offer errors getting through: an ad runs for a weekend saying 20% off instead of 15%, and the client decides to honour it on 180 orders averaging $80. That's 5% of $14,400, or $720 of margin, before anyone counts the hours spent apologising. One error of that kind costs about two-thirds of a month's checking, and it lands on the client relationship rather than on a timesheet.

The lanes are what keep the total sensible. Put all 64 pieces through the Lane C process and the month costs about 117 hours instead of 53, most of it spent on comment replies that never needed a second person.

Warning signs the checks have gone soft

A workflow that has turned into a rubber stamp still looks busy. These signs show it before a client does:

  • Nearly everything passes first time. If more than about 95% of Lane B and C pieces pass the check on the first attempt for a whole month, either the drafts have become excellent or nobody is really checking. Find out which.
  • Check sheets filled in too fast. A 600-word piece checked in three minutes wasn't checked against its sources.
  • [CHECK] flags reaching the signer. A flag should never survive past Stage 2.
  • The same fix, week after week. If checkers keep correcting the same product name or the same banned phrase, the problem lives upstream in the brief template, the prompt or the glossary.
  • Clients finding errors after sign-off. Every one of these is a check that failed, and it's worth knowing which line of the sheet should have caught it.

Two habits keep checkers sharp without turning it into a blame exercise. Once a month the account lead plants one known error, such as a wrong end date, in a draft before it goes to check. If it's missed, the sheet or the time allowed is the problem, not the person. And rotate checkers between clients every quarter, because familiarity is when people start reading what they expect to see.

Finally, write down what the checks catch. A running record of each error, its cause and the fix turns the workflow from a filter into something that improves the drafts themselves; an AI error log shows how to set one up so the same mistakes stop coming back.

Approval workflow questions from small teams

Can one person draft and check in a two-person business?

Only for low-risk pieces such as comment replies or reposts of content that was already approved. For anything public and lasting, swap roles so each of you checks the other's drafts, and let the owner or the client sign. If you work alone, check on a different day from the one you drafted, using the same written sheet, and treat the client as the signer.

Is a thumbs-up in a chat thread a valid sign-off?

For Lane A work it's fine, as long as someone copies it into the tracker. For anything with a price, an offer, a quote or a statistic, no: a chat reaction doesn't say which version was approved or when. Ask for a reply that names the version, or use an approval feature that attaches the decision to the file itself.

Do clients need to know which parts AI drafted?

That depends on your contract and on what you've told the client, so read the contract first. Many agencies now say in the contract that first drafts may be AI-assisted and are always checked by a person, then repeat one line in each sign-off email. Being specific about the checking tends to reassure clients more than silence does, because silence reads as hiding something if it comes out later.

Should the checker be more senior than the drafter?

Not necessarily. The checker needs the sources, the sheet and enough time, not seniority. A junior checker working line by line against the offer terms often catches more than a senior person skimming. Seniority matters at sign-off, because the signer is accepting the risk on behalf of the business or the client.

Further reads

Sources: Google Workspace Admin Help (Manage Approvals, supported editions); Google Workspace Updates (alignment approvals in Google Drive, June 2026); Microsoft Support (Create an approval in the Teams Approvals app).

Want an approval workflow your team will follow?

On a 1:1 call we'll map how content moves through your team today, set the lanes and sign-off points, and decide which of your current tools should hold the approval record.

Book a 1:1 call with me