Visual Workflow (Owner/Admin)
Live project pipeline — click any stage to act. This is an interactive SVG-based dashboard at unlikely.guide/workflow that auto-refreshes every 60 seconds.
Pipeline Stages
The owner/admin view shows the full 8-stage pipeline with live counts:
INTAKE ──> SCHEDULED ──> IN PROGRESS ──> INSPECTIONS COMPLETE ──> DRAFT CERT + INVOICE
│
┌──────────┼──────────┐
v v v
INVOICED OWNER CERTIFIED
│ REVIEW │
v QUEUE v
INVOICE CERT
SENT SENT
│ │
└────── CLOSED ──────┘
Stage Details
| Stage | Color | Click Opens |
|---|---|---|
| Intake | Black (filled) | ActionCenter |
| Scheduled | Black (outline) | Calendar |
| In Progress | Black (heavy outline) | Workbench |
| Inspections Complete | Blue | CertPipeline Post-Production |
| Draft Cert + Invoice | Blue (filled) | CertPipeline Drafting |
| OwnerReviewQueue | Purple (dashed circle) | Owner Review |
| Invoiced | Green | Payments |
| Certified | Gold | CertPipeline Send |
| Closed | Green (filled) | Workbench |
| Open RFIs | Red (dashed circle) | ActionCenter RFIs tab |
Needs Attention
Below the pipeline, an alerts section shows:
- Items in OwnerReviewQueue awaiting decision
- Stalled projects by status
- Certified projects >3 days without invoice
- Open RFIs aging >3 business days
- pipeline-shepherd actions (WhatsApp sent, notifications)
- Triage alerts (30-40 day warning, 41-45 day critical, >45 day overdue)
Data Sources
The workflow page fetches from these API endpoints:
/api/ops/pipeline-summary— status counts/api/ops/rfi-aging?days=3— open RFI count/api/ops/stalled-projects— stalled by status/api/ops/invoice-aging?threshold_days=3— cert-to-invoice delay/api/ops/triage-alert?threshold_days=30— triage thresholds/api/portal/cert-invoice/review-queue— owner review items/api/ops/shepherd-report— pipeline-shepherd daily report
Legend
| Color | Meaning |
|---|---|
| Black | Gate (entry points) |
| Blue | Ready for Cert pipeline |
| Gold | Certified |
| Green | Invoice track |
| Dark Green | Complete |
| Red circle | Open RFI |
| Purple circle | OwnerReviewQueue |