Appearance
Approval Workflows
When a piece of content needs the client's sign-off before publishing, you send it through the Approval workflow. The client gets an email with a token-secured link they can open without signing in, reviews the post, and approves, requests revisions, or rejects.
The flow has two surfaces: the agency-side approval queue (/approvals) and the client-side public approval page (/approve/:token).
Per-entry approval
Approval is decided per calendar entry: when creating or editing a post, toggle Send for approval instead of Schedule directly. A per-profile default mode (None / First N then auto / Always) is on the Roadmap.
Sending a post for approval
When creating or editing a calendar entry, toggle Send for approval instead of Schedule directly.
On save, the platform:
- Stores the post in
pendingstate. - Generates a secure token.
- Builds a magic URL:
/approve/<token>. - Emails the post's contact (set on the profile) with the link.
Email subject and body use platform defaults today. Per-org configurable email templates are on the Roadmap.
What the client sees
The public approval page renders:
- The post text exactly as it would appear.
- The image with the brand watermark applied.
- The scheduled publish time.
- The list of platforms (GBP, Facebook, Instagram).
- Three buttons: Approve, Request Revision, Reject.
Mobile-optimized. No sign-in.
See Approving Posts for the client-side write-up.
Handling the three outcomes
Approve
- Status →
approved. The post enters the scheduled queue. - Your team is notified.
- Post publishes at the scheduled time.
Request revision
- Status →
changes_requested. The client's feedback is attached to the entry. - The agency team gets an email + dashboard notification.
- An assigned team member edits the post and clicks Resubmit for Approval.
- A new email goes to the client; the prior-round feedback is shown on the approval page so the client knows what changed.
You can iterate any number of rounds. Each round has its own token. A side-by-side Round 1 vs Round 2 visual comparison view is on the Roadmap.
Reject
- Status →
rejected. Post will not publish. - Notification to agency.
- Post stays archived for reference — useful for understanding what didn't resonate.
Approval queue (agency-side)
Sidebar → Approvals: every post currently awaiting client action, across all clients. Filter by:
- Profile
- Days since sent
- Current round
- Status (pending, changes-requested)
Re-notifying
If the client lost the email, you can manually send them the approval link from the calendar entry. One-click Send Reminder and Re-send Approval Email buttons surfaced in the approval queue are on the Roadmap.
Token security
- Tokens are 256-bit random with a 30-day expiry (the approval document is auto-deleted by TTL after expiry).
- The link itself is the authorization — anyone with it can act. Don't post in semi-public channels.
- Each token is single-action per round (once approved/rejected, that token is consumed).
Approval timeout
If a post's scheduled publish time arrives while still awaiting approval:
- Post does not publish.
- The approval document expires via TTL after 30 days. The associated calendar entry stays pending until you take action on it.
- Team is notified.
- You can either reschedule (sends a fresh email) or cancel.
Brand watermark on approval images
When showing the image to the client, the platform overlays the brand watermark configured on the brand profile (position + shape + background color). The same watermark settings apply to both the approval preview and the published image.
Next: Reports