If you manage social media for clients, you already know the math problem nobody warns you about: the writing is not the job. The job is the loop around the writing — drafts in one doc, feedback in three DM threads, a post quietly waiting two weeks for a one-word approval, and a monthly report rebuilt from memory at midnight.
This is the approval workflow I rebuilt after one too many of those months. It runs on a spreadsheet and plain-text prompts — no specific platform required — and it scales from 2 clients to about 10 before you need real tooling.
Why approvals actually stall
Three reasons, and none of them is "clients are difficult":
- Approving is annoying in chat. One post at a time, in a DM thread, with no clear ask. Your client means to reply; the thread scrolls away.
- Feedback has no home. Comments arrive by email, DM, voice note and doc comments. You reconcile four channels before you can revise anything.
- Nobody can prove what was approved. When a client asks "who signed off on this?", the answer shouldn't be a screenshot hunt.
Every fix below maps to one of these.
Step 1: Produce in batches, from one brief
Never write posts one at a time on posting day. For each client, take the brief (what they sell, audience, voice, pillars, off-limits topics, this month's verified promos) and generate the whole month's idea batch first: working titles, hooks, formats, platform variants. Then write the batch — scripts, carousels, captions — in one sitting per client.
Context-switching between clients daily is where quality and hours leak. Batching closes a client's context before you open the next one.
Step 2: Give every post a row and a status
One tracker for all clients. One row per post, same columns for everyone:
| Column | Why it exists |
|---|---|
| Client | Keeps multi-client work separated in one file |
| Platform | TikTok / Instagram / LinkedIn / … |
| Working title | The handle you refer to in messages |
| Scheduled date | This column is your content calendar |
| Status | See the ladder below |
| Client feedback | Their words, next to the post — not in a DM |
| Published date | Closes the loop for reporting |
Status ladder, fixed for every client:
Draft → In Review → Revision Requested → Approved → Scheduled → Published
The rule that makes it work: if a post isn't a row with a status, it doesn't exist. Add dropdowns for status/platform/client, and a small summary that counts posts per status, your approval rate ((Approved + Scheduled + Published) / Total), and published posts per client. With spreadsheet formulas this takes ten minutes to build and updates itself forever.
Step 3: Send approvals as one package
This is the single highest-leverage change. One message per batch, containing:
- What's in the batch (titles, platforms, planned dates)
- Where to view everything (one folder/link)
- The exact ask: approve or request changes per item — never one blanket reply
- The deadline that keeps the schedule, and what silence means under your agreement (pause posting, or proceed — decide at onboarding, not mid-crisis)
- One closing question, so replying is easy
Then the nudge rule: one gentle reminder with the deadline restated and the items still unmarked listed by name. One follow-up, written kindly, then the agreement's silence rule applies. Chasing beyond that trains clients to ignore you.
And when feedback comes back as "this feels off"? Don't rewrite on a guess. Reply by translating it into a written change list ("shorter hook / warmer tone / remove the price mention — did I miss anything?") and get a yes on the list before you touch the draft. Vague feedback converted into a checklist is a deliverable, not a delay.
Step 4: Report from exports, never from memory
At month end, the report almost writes itself:
- Shipped work = your tracker's Published rows
- The numbers = platform exports only, every metric with its source, quoted exactly
- Highlights = top posts and what made them work
- What didn't work = named plainly, with the likely cause
- What the data can't tell us = a short mandatory section — the one that makes clients trust everything above it
- Next month = keep / stop / start, and decisions you're waiting on
Attribution honesty matters: if a post was boosted, say the reach jump came with ad spend attached. Clients can smell a padded report, and one honest limits section buys more trust than ten glossy charts.
The mistakes that keep this broken
- Sending posts for approval one by one (see Step 3 — it's the root of most stalls)
- Letting feedback live in DMs because "the client prefers it" — mirror it into the tracker row yourself, every time
- A different process per client — same columns, same ladder, same package format; only the content changes
- Reporting from impressions — if a number isn't in an export, it doesn't go in the report; mark it missing instead of estimating
Steal this workflow
You can build everything above from this article: the tracker columns, the status ladder, the approval package anatomy, the report structure. If you'd rather start from a finished version, I packaged the one I use — 50 fill-in prompts covering batch production, approval & client communication, and reporting, plus the tracker spreadsheet with the formulas built in and the report template with a filled example:
- Free mini pack (5 full prompts, including the batch approval request and the monthly-report highlights prompt): https://promptandskillco.gumroad.com/l/free-smm-mini-pack
- Full system (Personal $39 / Commercial $79 for client work): https://promptandskillco.gumroad.com/l/social-media-manager-production-system
Disclosure: that's my product, sold through my Gumroad store. Every example in it is fictional and labeled as such — the prompts run only on facts and numbers you paste in. The workflow in this article stands on its own either way; questions welcome in the comments.
Top comments (0)