One owner
Assign one accountable owner per brand and one named reviewer per item. A group inbox is not ownership.
Approval is not a comment saying “looks good”. It is a control that binds a named reviewer to the exact caption, asset, destination, account and publication time. This guide shows how a small team or multi-brand operator can design that boundary without turning every post into a meeting.
The method below separates product configuration from provider permission and real delivery. Adapt the roles and retention period to your organisation, contracts and regulated obligations.
Assign one accountable owner per brand and one named reviewer per item. A group inbox is not ownership.
Freeze the exact asset, caption, link, account and time that were reviewed. Material edits invalidate approval.
Keep the provider response, remote identifier or explicit manual evidence separate from the scheduled intention.
Use states that answer an operational question: idea, briefed, in production, ready for review, changes requested, approved, scheduled, published, failed or manual action required. “Done” is too vague because it can mean the asset exists, the reviewer agreed or the provider accepted the post. Each state needs one owner and one condition for entry.
Write the transition rules in plain language. A contributor can submit but cannot approve their own sensitive item. A reviewer can request changes. Scheduling requires a valid approval when the workspace demands one. Publishing success requires evidence from the provider or a reconciled remote object. This state model matters more than a colourful calendar.
The review screen should expose the rendered media, final caption, first comment, destination URL, tracking parameters, account identity, network, format, timezone and scheduled time. If any of those fields can change after approval without invalidating it, the system approves an idea rather than a publication.
Use a stable version or fingerprint for the approved payload. When an asset, caption, destination or account changes, return the item to review and record why. Minor spelling corrections can follow a documented exception, but silent edits weaken the audit trail and create uncertainty when a client challenges what was authorised.
A practical model has contributor, reviewer and publisher responsibilities even when two people cover all three. Contributors create drafts. Reviewers check claims, rights, brand fit and destination. Publishers hold account permission and inspect failures. High-risk posts may need a product, legal or customer owner, but routine content should not inherit an enterprise committee.
Apply least privilege by brand and account. A contractor working on one client should not browse another client’s drafts or tokens. Removing a user should revoke future access without erasing attribution from past approvals. Test role removal, expired sessions and disconnected accounts before relying on the workflow in production.
Rejection needs a reason, an owner and a next action. Keep the rejected version so the team can understand what changed. Approvals should expire when the campaign date, offer, price, legal claim or account context becomes stale. A scheduled post that misses its window should not publish later without a deliberate policy.
Run adversarial tests: replace the media after approval, change the destination, remove the reviewer, disconnect the account, let the token expire and simulate an ambiguous provider timeout. The safe outcome is blocked or visibly unresolved. Automatic retry is dangerous when the provider may have created the post but failed to return a response.
Track review turnaround, change-request rate, unapproved publication attempts, failed handoffs, manual interventions and delivery reconciliation time. These measures show whether the operating system is improving. Reach, engagement and revenue measure distribution and business outcomes, not approval quality.
Review exceptions weekly at first. If most items wait on the same reviewer, reduce scope or add a delegate. If approvals are frequently invalidated, move fact checking and brand context earlier. If manual evidence is common, document the unsupported network and format combinations instead of presenting them as automatic delivery.
Separate the source asset from editable working files, review exports and final destination files. The source may be a recorded interview, product screenshot or design master. A working file changes. A review export is what a reviewer actually sees. A delivery variant includes the exact crop, duration, compression, cover and text required for one destination.
Assign stable identifiers to the campaign and asset family, then a version to each meaningful change. Filenames can remain human-readable, but they should not be the only identity. Store language, aspect ratio, destination and approval state as fields so “final-final” never carries operational meaning.
Create a new version when visible pixels, audio, subtitles, caption, destination, disclosure, link or schedule changes materially. Record the reason and author. A technical re-encode with identical visible output can follow a documented minor path, but the delivered checksum should still identify the actual bytes.
Do not overwrite an approved export. Place the new candidate beside it, mark the old version superseded and route the new package through the required review. This preserves the decision trail and avoids asking whether a reviewer saw the file before or after a silent replacement.
The approval record should reference the rendered media, caption, first comment, destination URL, account, network, timezone, scheduled time and required notices. Create a stable fingerprint from that package where the system allows it. If any material field changes, invalidate approval automatically or visibly.
Give reviewers a preview close to the destination while keeping access to the source and change summary. Record identity, decision time, reason for rejection and expiry. Approval should answer “which exact publication did this person authorise?” without requiring reconstruction from chat messages.
The calendar references an approved version, not a mutable path. If the file disappears, account disconnects or approval expires, block the slot and expose the responsible action. Moving a slot should follow the policy for time-sensitive offers and event content.
After delivery, store provider or manual evidence against the same version. An ambiguous timeout does not justify creating a new version and retrying blindly. Reconcile the destination first. Version control reduces confusion, while idempotency and remote-state checks address duplicate delivery risk.
Define retention for source media, working files, rejected exports, approvals and publication evidence. Keep what is needed for reuse, client obligations, rights and corrections. Delete temporary renders and duplicated exports through a controlled rule, never by guessing from filename age.
Audit a small sample monthly. Ask whether the approved package can be reproduced, whether the published object maps back to it and whether a removed collaborator still has access. Improve naming and automation only where the audit reveals repeated ambiguity.
The workflow is grounded in Cascads public methodology, capability boundaries and a narrow reproducible delivery study. It does not claim that configuration alone proves a customer outcome.
At minimum: a named owner, exact version, reviewer, decision time, destination account, scheduled time and delivery evidence. Rejection, expiry and post-approval edits need explicit rules.
Not necessarily. Low-risk work can use sampling or pre-approved templates. Sensitive claims, paid offers, client accounts and regulated topics deserve blocking review.
A very small team may accept that tradeoff for low-risk content, but it should remain visible. Separate review is safer for client, legal, pricing or reputation-sensitive work.
No. Scheduling records intent. Publication needs a provider response, a reconciled remote object or explicit manual evidence.
Validate the workflow, permissions and evidence before expanding the scope.
Create a Cascads workspace