Most agencies do not lose clients over one bad post. They lose them over the feeling that things go out without the client knowing. A clear approval process fixes that feeling, and it also protects the agency: when a client signs off, there is a record of what they signed off.
This guide walks through how to design that process, step by step, whatever tool you use.
Decide what needs approval, and by whom
Start with a short list, not a policy document. For each kind of work, write down who has to say yes before it goes live:
- Organic posts: usually someone inside the agency checks first (tone, typos, the right brand), then the client approves.
- Ad changes: raising a budget or switching a paused campaign back on spends the client's money, so it deserves a decision by a senior person. Lowering a budget or pausing usually does not need to wait.
- New campaigns: the full set — audiences, creatives, landing pages, budget — should be approved as one package, not piece by piece.
- Reports: the numbers come from the platforms, but the commentary is the agency's voice. Someone senior should read it before the client does.
Not every client wants to approve every post. Some want to see everything; some only want to approve campaigns. Make the client step a per-brand setting rather than a rule for the whole agency.
Use two stages, in a fixed order
A simple two-stage chain covers almost every agency:
- Internal approval: an account lead or manager checks the work against the brief.
- Client approval: the client's named approver signs off.
Keep the order fixed. If the client sees work that the agency has not checked yet, every typo they find costs trust. And name the approver on the client side. "The client approves" is not a process; "Ayşe in marketing approves for this brand" is.
Make the approval stick to exactly what was approved
This is the step most processes skip. An approval should be tied to the exact version the person saw: the text, the image, the alt text, the time it goes out. If any of those change after approval, the approval should no longer count.
Without that rule, the most common failure looks like this: the client approves on Monday, someone fixes "a small thing" on Tuesday, and the post that goes out on Wednesday is not the one the client saw. It is rarely malicious. It is just that "small" means different things to different people.
The rule is easy to state: edit after approval voids the approval. The work goes back to the start of the chain.
Check again at the moment of publishing
Approvals can go stale between the yes and the go-live. A campaign might be paused for a week; a client might withdraw approval; someone might change the scheduled time. A good system checks the approval again at the moment of publishing, not only when the post was scheduled.
Give the client a real seat, not a forwarded screenshot
Approval by e-mail thread works for one client. With ten, the screenshots, "see attached" and "which version is this?" messages become a job of their own. The client approver should be able to open the actual work, see it as it will appear on each network, and approve or ask for changes with a note.
Two details make clients more likely to use it:
- Their own language. If the client works in Turkish and the agency in English, the approval e-mail and screen should be in Turkish.
- No extra cost for the client's login. If every client approver costs the agency a paid seat, agencies end up sharing logins or going back to e-mail. Both break the record of who approved what.
Keep a log of every decision
When a client asks "who approved this?", the answer should take seconds. Record who approved or rejected, when, at which stage and with which note. Keep that log separate from the work itself, so editing a post never rewrites its history.
Keep the chain from becoming a bottleneck
Approval chains fail when they slow everything down. A few habits help:
- Batch the client's work. Ask clients to approve a week of posts in one sitting rather than one post a day.
- Set a response time in the contract. For example: posts not approved 48 hours before their time are moved, not published.
- Let lowering happen at once. Pausing an ad that is wasting money should never wait for a meeting. Only changes that raise spend need the extra step.
- Show what is waiting. A single list of pending approvals, visible to the account team, stops work from getting lost.
How Reachio handles this
Reachio was built around this process, so here is how each step maps to the product today:
- Each brand has its own approval settings: an internal stage (owner, admin or manager) on by default, and a client stage (the brand's client approver) that you switch on per brand. See Posts and the approval chain.
- Approval is tied to a checksum of the post. Editing the text, a media file, an alt text or the time after approval voids it, and Reachio checks the approval again when it publishes.
- Approvers get an e-mail in their own language and decide in Reachio, with an optional note.
- Seats are free on every plan, including client approvers and client viewers. Client roles only see their own client's brands. See Team, clients and roles.
- Ad changes go through change sets: a manager's pause or lower budget applies at once, while raising spend always waits for approval. New campaigns from the launch wizard always need approval and are created paused. See Ads, change sets and undo.
- Every decision is written to the audit log.
One limit to know: client reports are approved inside the agency (manager or above) before sending; there is no client approval step for reports yet.
If you want to try this flow with a real brand, Reachio is free during early access.