Every agency I know runs some version of this loop: designer finishes the creative, account manager WhatsApps it to the client, client replies "approved ✅" at 11:47pm, and then — this is the part nobody admits — a human still has to post it. The approval was digital. The publishing is Priya setting a 9am alarm.
This post is about closing that last gap: wiring approval directly to publishing, so a client's tap is the final human action between "draft" and "live on the grid". I've written before about getting clients to approve faster and about the internal approval stages before the client ever sees a post — this one covers the handoff at the very end.
What is approval-triggered publishing?
It's a workflow where every post carries two conditions — a scheduled time and an approval state — and the tool only publishes when both are satisfied. Approved and slot arrives → post goes live via Meta's API. Slot arrives but no approval → post is held, and someone gets pinged. Approval arrives early → nothing happens until the slot.
The important property is that approval isn't a comment or a WhatsApp reply that a human translates into action. It's a state change in the same system that does the publishing. That's what removes the 11:47pm-approval-to-9am-alarm relay.
Mainstream tools support this to different depths. Planable offers four approval levels (none, optional, required, multi-level) and once a post has its sign-offs "it publishes on the date and time you picked, with no manual intervention". Metricool has a send-to-review step, after which approved posts publish at their scheduled time. Our own Instagram scheduler works the same way, except the approver is your client in their own branded mobile app, not a teammate in your dashboard.
Why "approved" and "published" are separate problems
Most agencies solved approval years ago — badly, on WhatsApp, but solved. The publishing half has three failure modes that only show up at scale:
- The relay failure. Client approved in one system (chat), publishing lives in another (Meta Business Suite, or a phone). Every handoff between the two is a place where a post silently doesn't go out. At 3 clients you never drop it; at 12 clients you drop it monthly.
- The version failure. Client approved caption v2, but v3 got scheduled because revisions and scheduling live in different places. Approval must attach to the exact creative-plus-caption that will publish, or it protects nobody.
- The timing failure. Indian clients approve at night — after their own workday, often between 10pm and 1am IST. If publishing needs a human, your "9am post" quietly becomes an 11am post, and engagement windows don't wait.
How does the approval-to-publish handoff actually work?
Under the hood, every legitimate tool publishes through Meta's official Content Publishing API. Three constraints from Meta's documentation shape how the handoff behaves:
- Professional accounts only. Direct API publishing requires an Instagram professional account (Business or Creator) linked to a Facebook Page. A client on a personal account can't be auto-published — converting them is step zero of onboarding.
- 100 API posts per rolling 24 hours per account, with a carousel counting as one. Irrelevant for a single brand posting daily; relevant if you batch-publish festival greetings across every client at 9am on Diwali.
- Media containers expire after 24 hours. Tools stage media as a "container" before publishing. A well-built tool creates the container near publish time, not at approval time — otherwise a post approved on Monday for Friday would silently die. If your tool ever shows an "expired media" error, this is why.
The client-side half is simpler and matters more: the approver needs a link or app that shows the post exactly as it will appear — creative, caption, first comment, date — with an Approve button and a comment box. The moment approval requires a login the client has forgotten, you're back on WhatsApp. (I covered the safe-access side of this — OAuth, no password sharing — in a separate post, and the full API build in another.)
What should happen when a client approves late?
This is the question every tool page skips, and it's where agencies actually get burned. A required-approval workflow has a built-in deadlock: no approval, no post. Fine for one slot. But a client who goes silent for a week turns "protection" into "your calendar stopped". You need explicit rules, agreed in the contract, configured in the tool:
- Slot passes, still unapproved → hold, never auto-post. Publishing unapproved content to fix a schedule is how agencies lose accounts. The post stays held and the account manager is notified.
- Approved after the slot → reschedule, don't fire immediately. A 9am post approved at 4pm shouldn't go live at 4:01pm into a dead engagement window. Move it to the next agreed slot (same evening or next morning) and tell the client that's the policy.
- Set an approval cutoff. Ours is 24 hours before the slot: posts are sent for approval 3–5 days ahead, and anything still pending at T-24h triggers a reminder to the client — automatically, so no one on the team has to play collector.
- Deemed approval for chronic silence. The contract clause that saves retainers: "content not responded to within 48 hours of submission is deemed approved for publishing". Clients sign it happily in month one, and it keeps festival calendars alive in month six. (More on this clause in the approvals post.)
How the popular tools handle it
| Tool | Who approves | Approval model | After approval |
|---|---|---|---|
| Planable | Team + invited clients | 4 levels incl. multi-level | Auto-publishes at slot |
| Metricool | Assigned reviewers | Send-to-review | Auto-publishes at slot |
| Gain | Clients via email rounds | Sequential rounds | Auto-publishes at slot |
| My Digital Sevak | Client, in their own branded app | Required, with voice-note feedback + revision tracking | Auto-publishes at slot; late approvals reschedule per your policy |
Honest note: all four solve the core loop. The differences that matter for an Indian agency are whether the client experience is an app they'll actually open (versus another email login), whether revisions are tracked against the approved version, and whether the same system also does your reports and billing — the maths I lay out on the agency management software page.
Setting it up in one afternoon
- Convert every client account to an Instagram professional account and link its Facebook Page.
- Connect accounts to your tool via Meta login (the client authorizes their own account — no passwords).
- Turn on required approval for every client workspace. No exceptions — optional approval decays into no approval.
- Load the month's content with slots, send for approval in one batch, and let reminders chase the stragglers.
- Add the 48-hour deemed-approval clause to your next contract renewal.
FAQ
Can Instagram posts publish automatically without me pressing anything?
Yes — if the account is an Instagram professional account (Business or Creator) connected to a scheduling tool through Meta's official API. The tool holds the approved post until its scheduled time and publishes it server-side. Personal accounts can't do this; they only get reminder notifications.
What happens if the client never approves the post?
Nothing should publish. That's the entire point of a required-approval workflow: an unapproved post stays held even when its slot passes. Set a contract rule for it — for example, no response within 48 hours counts as approval — so one silent client doesn't stall the whole calendar.
Is approval-triggered publishing safe for the client's account?
Yes, when it runs on Meta's official Content Publishing API with the client connecting their own account via OAuth. No passwords change hands and access is revocable anytime. It's far safer than sharing logins, which violates Instagram's terms and breaks whenever a password or device changes.
The client taps. The post publishes.
My Digital Sevak gives every client a branded approval app — and every approved post publishes itself at its slot. 7-day free trial, from ₹999/month.
Start Free Trial