Skip to content

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:

  1. Stores the post in pending state.
  2. Generates a secure token.
  3. Builds a magic URL: /approve/<token>.
  4. 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