CLI command
content social-review
Approval before a social account's posts go out: what a queued post holds is requested, approved or rejected with who did it, and only approved content is scheduled or published.
Invocation#
echo-cli content social-review require --account <social-account-id> --by <who>
echo-cli content social-review waive --account <social-account-id>
echo-cli content social-review policies
echo-cli content social-review request|approve|reject --post <post-id> --by <who> [--note <text>]
echo-cli content social-review history --post <post-id>Inputs and output#
require writes the policy (social_account_id, required_by, required_at), waive the policy removed, policies { policies } of every account requiring review. request, approve and reject write the transition: id, post_id, content_digest (the SHA-256 of the post's caption, media and thumbnail as they are now), state (requested, approved or rejected), actor, note and at. history writes { history }: the post's transitions, oldest first.
State effect#
The verbs call Echo Web's authenticated /api/analytics/reviews-social with ECHO_INTERNAL_BEARER at ECHO_WEB_BASE_URL; the Review before posts go out section of the content queue page and of Echo Desktop's GEO screen do the same, and echo-mcp runs them as echo_social_review_require, echo_social_review_waive, echo_social_review_policies, echo_social_request, echo_social_approve, echo_social_reject and echo_social_review_history. Policies are kept in social_review_policies, transitions in content_post_reviews. A queued post of an account requiring review is scheduled or published through /api/content-queue only while its latest transition for the content it will hold approves it; editing its caption, media or thumbnail after approval needs a new approval, and it cannot be queued straight as scheduled — it is queued as a draft, approved, then scheduled. An evergreen requeue of such an account's post needs the post's approval too. Accounts without a policy are not held.
Refusals#
- A wrong invocation is refused before anything is sent: "content social-review takes …; got <word>", "content social-review <verb> does not take <flag>; …", "<flag> needs a value" and "content social-review <verb> needs <flag>".
- Echo Web answers a bad request with "social_account_id is required: …", "post_id is required: the queued post under review", "note is required to reject: what has to change before the post can be approved" or "<field>_by is required: an internal caller has no signed-in user, so it names who is acting"; not found with "no queued post has id <id>" or "account <id> does not require review; echo-cli content social-review policies lists those that do"; and a conflict with "what post <id> holds now is already <state> by <who>". Scheduling an unapproved post answers "not scheduled: post <id> is <never reviewed | requested by … | rejected by … | changed since it was approved by …>, and account <id> requires approval; echo-cli content social-review approve --post <id> --by <who> approves it". The command prints Echo Web's sentence and exits 1.