Drafts and post approvals
A draft is a post you saved without sending. An approval is a human check before a draft goes out. In the dashboard, you save a draft in the composer, optionally submit it for approval, and someone with approval rights publishes or rejects it. For the code equivalent, read Drafts.
How do I save a draft in Socifyr?
In the composer, click Save Draft. It keeps your text, media, accounts, per-account options, and schedule. Find it on Content with a Draft badge. Click Edit to continue, or Publish to send it now. Drafts can be deleted, and they can be archived.
The composer button reads Update Draft after the first save.
How do I submit a draft for approval?
- Open the draft from Content (click it).
- Click Submit for approval. You need
post.create, so every role can. - A toast says "Submitted for approval". The post status becomes
pending_approval.
How do I approve or reject a post?
Open the pending post. People with post.approve (Owner, Admin, Editor) see two buttons:
- Approve & publish: toasts "Approved - publishing now" and sends the post to its accounts.
- Reject: toasts "Sent back to draft". The post returns to Draft so the author can change it.
There is no comment field on reject, so tell the author in your team chat what to fix. The dashboard has no inbox or filter for pending approvals. Open posts from Content to find them, and note that the list's status filter does not include a pending-approval option.
If a post is not pending approval, approving or rejecting it returns a 409 "Content is not pending approval".
How do API keys send posts to approval?
Create or edit an API key and turn on Require approval. Every post created with that key lands in pending_approval instead of publishing, and the API response says "This API key requires approval - the post is pending review before it publishes." A teammate reviews it as above. This is how you let an AI agent draft safely. See API keys and guardrails.
Who can do what?
| Action | Permission | Roles |
|---|---|---|
| Create a post or draft, submit for approval | post.create | Owner, Admin, Editor, Contributor |
| Publish a draft, Publish Now, Retry | post.publish | Owner, Admin, Editor |
| Approve or reject | post.approve | Owner, Admin, Editor |
| Archive, unarchive | post.archive, post.unarchive | Owner, Admin, Editor |
| Delete | post.delete | Owner, Admin, Editor |
A Contributor can create posts but cannot publish a saved draft or approve. In practice that makes a Contributor a drafter whose work an Editor reviews.
Which surfaces support approvals?
| Surface | Submit for approval | Approve and reject |
|---|---|---|
| Dashboard | Yes | Yes |
| REST | POST /api/content/:id/submit-for-approval | POST /api/content/:id/approve, POST /api/content/:id/reject |
| CLI, SDK, MCP | Not exposed as a command or tool | Not exposed |
A key with Require approval can only submit posts for approval. The API refuses it if it tries to approve, reject, or publish a draft directly. Approving is a human action.
Common problems
| Symptom | Fix |
|---|---|
| No Approve button | You need post.approve. Editors, Admins, and Owners have it. |
| 409 "Content is not pending approval" | Someone already approved or rejected it. Refresh. |
| Agent posts never publish | The key has Require approval on. Approve them, or turn it off. |