Pipeline stages
Stage flow
Accessing Pipeline
Navigate to/team/pipeline in the admin console.
Pipeline board
Kanban view
Brands displayed as cards in columns by stage:- Drag-drop to move between stages
- Card shows brand name, operator, metrics
- Visual indicators for overdue items
Filtering
Filter by:- Assigned operator
- Search by brand name
- Date ranges
Stage automation
First post → Active
When first placement is posted:- Brand moves from Onboarding or Renewed/Relaunch to Active
- Triggered inline during post ingestion
14 days → Ending Soon
When contract has 14 days remaining:- Brand moves to Ending Soon
- Triggered by daily
PipelineAutoAdvanceJob
Completion → Up for Renewal
When contract placement target is met:- Brand moves to Up for Renewal
- OpsAlert created for operator
Manual transitions
Some moves require explicit action:Renewed/Relaunch timer
When brand enters Renewed/Relaunch:- 4-day timer starts automatically
- Shows countdown on card
- Overdue state displays in red
- Manual move required to proceed
Pipeline vs Mission Control
Pipeline and Mission Control share the same status field:
Changes in either view affect the same underlying status.
API endpoints
Backend implementation
Key files:app/controllers/api/internal/pipeline_controller.rbapp/services/brands/pipeline_status_change.rbapp/jobs/brands/pipeline_auto_advance_job.rb
Single write path
All status changes go throughBrands::PipelineStatusChange:
Notifications
Pipeline changes trigger notifications:- Email to brand’s creators
- Chat message in brand channel
- Push notification
- Bell notification
- Active
- Paused
- Ending Soon
- Up for Renewal
- Potential Renewal
- Renewed/Relaunch
Best practices
- Don’t skip stages - Follow natural progression
- Clear Up for Renewal - Make decisions promptly
- Use Paused intentionally - Not for long-term holds
- Document off-boarding - Add reason codes when removing