Drafts & Approvals
UniPulse provides a structured workflow for managing draft content and routing posts through team approval before they go live. This is essential for teams, agencies, and any workspace where content quality control matters.
Drafts
Any post saved without scheduling or publishing receives the DRAFT status. Drafts are your content workspace — a place to develop ideas, iterate on captions, and prepare posts for review.
What You Can Do with Drafts
| Action | Description |
|---|---|
| Edit | Open in the Composer to refine caption, media, and hashtags |
| Schedule | Convert to a scheduled post — status changes from DRAFT to SCHEDULED |
| Publish | Publish immediately — status goes DRAFT → PUBLISHING → PUBLISHED |
| Submit for Approval | Create an ApprovalRequest and enter the review workflow |
| Duplicate | Clone the post as a new draft for repurposing or A/B variations |
| Delete | Permanently remove the draft |
Accessing Drafts
Navigate to the Drafts page to see all posts with status: DRAFT in your workspace. Each draft shows:
- Caption preview and media thumbnail
- Creation date and last modified date
- Author (
userId) - Approval status (if submitted for review)
Approval Workflow
For teams and agencies, UniPulse supports a structured approval process. When enabled, content must be reviewed and approved before it can be published or scheduled.
The ApprovalRequest Model
ApprovalRequest
├── status → PENDING_APPROVAL | APPROVED | REJECTED | CHANGES_REQUESTED
├── reviewNote → Feedback from the reviewer
├── requestedBy → User ID of the person who submitted for approval
├── reviewedBy → User ID of the reviewer who took action
├── postId → The post under review
└── createdAt → When the request was submitted
Approval Status Flow
PENDING_APPROVAL → APPROVED → Post can be scheduled/published
→ REJECTED → Post returns to creator
→ CHANGES_REQUESTED → Creator revises, resubmits
How the Approval Process Works
Step 1 — Submit for Approval
An Editor (or any role that requires approval) creates a post in the Composer and clicks Submit for Approval instead of publishing directly. This:
- Keeps the post in
DRAFTstatus - Creates an
ApprovalRequestwithstatus: PENDING_APPROVAL - Sets
requestedByto the submitting user's ID - Notifies eligible reviewers
Step 2 — Review
An Admin or Owner receives a notification and opens the post for review. They can:
| Action | ApprovalRequest Status | What Happens Next |
|---|---|---|
| Approve | APPROVED | Post can be published or scheduled |
| Reject | REJECTED | Post returns to creator with reviewNote feedback |
| Request Changes | CHANGES_REQUESTED | Creator is notified to revise specific aspects |
The reviewer's user ID is recorded in the reviewedBy field, and any feedback goes into reviewNote.
Step 3 — Act on Feedback
If the post was rejected or changes were requested:
- The creator receives a notification with the reviewer's
reviewNote - They open the post in the Composer and make revisions
- They resubmit for approval — a new
ApprovalRequestis created
Step 4 — Publish
Once approved, the creator (or the reviewer) can:
- Publish immediately — Post enters the
publishqueue - Schedule — Post gets a
Schedulerecord and enters theschedulequeue
Approved posts are not auto-published. Approval grants permission to publish — the actual publish or schedule action is a separate step.
Setting Up Approvals
Go to Settings > Workspace > Approval Settings to configure:
| Setting | Description |
|---|---|
| Enable approvals | Toggle approval requirements on/off for the workspace |
| Roles requiring approval | Select which roles (e.g., Editor) must submit for review |
| Notification preferences | How reviewers are notified (in-app, email, or both) |
Agency Workflows 🏢
Agencies managing multiple client workspaces benefit from approval workflows in several ways:
- Client approval — Require clients to approve content before it goes live on their accounts
- Multi-tier review — Editors draft, account managers review, clients give final approval
- Audit trail — Every
ApprovalRequestrecords who submitted, who reviewed, and what feedback was given
Agencies can require client approval before publishing. See Agency Mode for role-based workflows and permission configuration.
Approval Status Quick Reference
| Status | Icon | Meaning |
|---|---|---|
PENDING_APPROVAL | 🟡 | Waiting for a reviewer to take action |
APPROVED | 🟢 | Ready to publish or schedule |
REJECTED | 🔴 | Reviewer declined — check reviewNote for feedback |
CHANGES_REQUESTED | 🟠 | Reviewer wants specific revisions before re-review |
Behind the Scenes
The approval system is decoupled from the publishing pipeline. An ApprovalRequest is a standalone record that references a Post — it does not modify the post's status field. This means:
- A post stays in
DRAFTstatus throughout the approval process - Only after approval does the user choose to schedule (→
SCHEDULED) or publish (→PUBLISHING) - Multiple approval rounds create separate
ApprovalRequestrecords, preserving the full review history
Related Pages
- Post Composer — Create and submit posts for approval
- Scheduler — Schedule approved posts
- Content Calendar — See approval status on the calendar (purple = pending)