The Post Pipeline
Every post moves through a Kanban pipeline. Each column is a lifecycle status, and posts advance as authors and reviewers act on them.
Lifecycle stages
| Stage | Meaning |
|---|---|
| Draft | Freshly created or generated; the author is still working on it. |
| In Review | Submitted for review; reviewers approve or request revisions. |
| Revision Requested | A reviewer asked for changes; the comment explaining what to fix is required. The author reworks the content and resubmits. |
| Approved | Cleared for scheduling. Eligible for an auto-assigned slot. |
| Scheduled | Assigned a publish date/time (auto-assigned or a per-post override). |
| Published | Sent to Zoho Social for posting to LinkedIn. |
| Archived | Removed from the active pipeline. Reachable from most other stages. |
A reviewer requesting revisions moves a post from In Review to Revision
Requested (not directly back to Draft); the author then moves it from Revision
Requested back to In Review (or down to Draft to rework it first). See
posts_service.ALLOWED_TRANSITIONS for the full transition table, including which
moves are and aren't allowed between every pair of stages.
Versioning
Each meaningful save creates a post version, so you can compare drafts and restore an earlier one. GenAI generation and canvas iterations are captured as versions too, giving a full history from first draft to published copy.
Auto-proofreading
Before submitting for review, an author can run auto-proofreading, which uses Bedrock Nova Pro to flag grammar, clarity, and tone issues and suggest fixes inline — without overwriting the author's text unless accepted.
Scheduling
Approved posts without a slot are auto-assigned a scheduled_at of roughly one day
out by the daily scheduler job, or an author can set a per-post override
date/time. A single daily EventBridge cron (06:00 CET) drives auto-scheduling,
reminders, and missed-schedule detection. Publication itself is handed off to Zoho
Social, which owns the LinkedIn API integration.
See Scheduling & Publishing in the architecture docs for the full flow.