Building a content approval workflow
Every agency has a story about a post that went live without a real sign-off, or a client who insisted they never approved something. A content approval workflow exists to make those stories impossible. The core idea is two gates and a log: an internal check, the client's own approval, and a record of every decision.
Key takeaways
- Two gates: an internal reviewer clears an item before it ever reaches the client.
- The client approves in a view scoped to only their content — never your internal list.
- Every state change records who and when, so approvals are auditable months later.
- Track the workflow up to a per-platform "posted" checklist; publishing itself stays in your scheduler.
Gate one: the internal check
Before anything reaches a client it should pass an internal reviewer — a quick check for brand, brief-fit and obvious errors. This keeps the client relationship about judgement calls, not typos, and it means the client's time is spent on things only they can decide. In a defined pipeline this is a stage the item moves through, not an informal "can you take a look" in chat.
Gate two: the client's own approval
The client approves or requests changes in a portal that shows only their content, approvals and invoices — never your internal client list or notes. Scoping matters: it removes the risk of a client seeing another client's work, and it makes the approval a deliberate action on a specific item rather than a thumbs-up in an email thread that's hard to find later.
The log is the point
Each decision — submitted for review, cleared internally, sent to client, approved, changes requested — is recorded with the person and the timestamp. That log is what you open when there's a disagreement about what was agreed. It is cheap to keep and expensive to reconstruct after the fact, which is why building it into the workflow beats hoping the email trail is complete.
Where the workflow stops
The workflow tracks an item from brief through approval to a per-platform posted checklist — Instagram done, Facebook done. Actual scheduling and publishing stay in whatever tool you already use for that. The pipeline's job is the accountability trail up to "posted," not replacing your scheduler. Pipeline stage names are fixed because the priority and review logic depend on them; other metadata goes in custom fields.
Common questions
Can we use our own pipeline stage names?
Stages are fixed in the current version because the automatic priority ranking and the review logic depend on them. Custom fields cover other metadata you want to track per item.
Does the client need an account?
Each client gets a portal login scoped to only their content, approvals and invoices.
What happens after approval?
The item moves to a per-platform posted checklist. You tick platforms as the post goes live in your scheduler; the pipeline doesn't publish for you.
See how ThodaLogic Ops does this
Client portal — part of one workspace for clients, content, approvals, invoicing and client reporting.
Keep reading
What agency operations actually covers — deliverables, approvals, capacity, invoicing and team …
GuideA repeatable process for monthly agency client reports: which sources to connect, how to get th…
GuideThe Instagram metrics worth putting in a monthly agency report — followers, reach, engagement, …
SolutionA production pipeline, two-gate approvals, a client portal and Instagram/Facebook reporting — w…
SolutionRun client work, approvals, retainers and reporting for a marketing agency from one workspace. …
Content pipelineMove every post from brief to posted with a live auto-priority engine, a two-gate review flow a…
Client portalGive every client a clean portal to review and approve work in one timestamped click — no more …