# Content Approval Workflow ## Status Active ## Goal Support the primary workflow from draft preparation through review, revision, approval decision, and readiness for publishing handoff. ## Actors - Content contributor - Provider - Internal reviewer - Manager - Client approver ## Preconditions - user is authenticated when acting as an internal team member - work is scoped to a workspace - content item exists inside a workspace context ## Trigger A team member wants to send a content item through review and approval. ## Main Flow 1. A team member creates or updates a content item. 2. Assets are linked to the content item, including Google Drive references when appropriate. 3. The content item includes the relevant metadata: - title - publication message or caption - networks - channels - due date - notes 4. The item enters internal review or client review. 5. Reviewers leave comments and record decisions. 6. If changes are requested, the team links a new revision and continues the workflow. 7. Once required review is complete, the item can move to `Ready to publish`. ## Alternate Flows - If a reviewer requests changes, the item should not be treated as approved. - If the actor lacks required workspace access, the workflow action must be denied. - If assets are missing, the item may still exist, but review readiness should remain explicit. ## Business Rules - approvals and comments must remain attached to the content item context - workflow state changes must be traceable - revisions must not overwrite history invisibly - “Ready to publish” must correspond to explicit workflow completion, not optimistic UI state ## Data / Entities - Workspace - ContentItem - Asset - AssetRevision - CommentThread - ApprovalRequest - ApprovalDecision - NotificationEvent ## API / UI Surface ### Frontend - `/app/content` - `/app/content/:id` - `/app/reviews` ### Backend - content item handlers - asset linkage / revision handlers - approval handlers - comment handlers - notification handlers ## Acceptance Criteria - [ ] a content item can carry the metadata needed for review - [ ] assets and revisions are visible in the item history - [ ] reviewers can leave comments and decisions in one place - [ ] the audit trail makes status transitions understandable - [ ] the approved state is distinguishable from changes-requested and rejected states - [ ] the workflow supports internal review before client approval ## Open Questions - Should external review be account-based, magic-link-based, or both in version 1? - Which approval states are mandatory before transition to `Ready to publish`? - Should required approvers be modeled in version 1 or phase 2?