Certification Workflow — 8 Phases

Full interactive version: unlikely.fyi (Cert Flow tab) Source: Notion — Certification Workflow


Phase 1: Project Intake

  • Create Project — Account, address, permit linked
  • Permit Parsing — Number, date, expiration extracted
    • Expiry Tracking: T−30 day warning → T+24h auto-creates RFI to client
  • Build SOW Lines — One per product × project
    • Auto Dependencies: Push→Backfill, Slab→Patch, Anchor→Backfill, WM→WallSeal+SlabPatch

Phase 2: Scheduling

  • Create Site Visit — Assign SOW Lines to inspect
  • Assign Field Tech — WhatsApp notification via Kulu
  • Multi-Visit Loop — Partial inspection → reschedule remaining

Phase 3: Field Inspection

  • Tech Check-In — Visit status → In Progress
  • Inspect Products — Per SOW Line status update
    • As-Built Capture: Actual vs permitted quantity logged
  • Field Submissions — Photos, driving logs, voice notes
  • Tech Check-Out — Outcome + additional inspection flags

Phase 4: Deliverables (Crew Requests)

  • Gap Detection — Missing photos, logs identified automatically
  • Crew Requests — WhatsApp → Field Tech
    • Escalation Chain: 6h remind → 24h escalate to tech → 48h escalate to client (auto-RFI) → 72h block cert
    • Waiver Option: Skip with audit trail (reason + who + when)

Phase 5: RFIs (Client Info Requests)

  • Auto / Manual RFI — Permit, scope, or missing items
  • Priority Escalation — Standard (48h/96h/7d) / Urgent (24h/48h/72h) / Blocking (6h/24h/48h)
  • Response → Resolve — Updates project status

Phase 6: Certification

  • Pre-Cert Validation — All inspected, no open blocks
  • Scope Resolution — Permitted vs as-built reconciliation
  • Brand / Certifier — bh. vs UP branding + Diehl vs Valerio (by jurisdiction + date)
  • Generate Package — Certificate + Inspection Report + Photo Sheets + Driving Logs + County Forms
  • Upload — To /data/projects/{id}/CERTS/
  • Cert Package Record — Versioned: v1.0, v1.1, v2.0, v1.0-A

Phase 7: Invoicing (Stripe)

  • Build Line Items — SOW Line × Base Rate × Rate Multiplier
    • Production Days: Auto-calculated from field data
    • Admin Fees: Trip charges, no-show, emergency service
  • Create Invoice — Stripe API with project metadata
  • Payment Tracking — Webhooks → status updates

Phase 8: Delivery

  • Cert Email → Scheduler/coordinator
  • Invoice Email → Billing contact (via Stripe)
  • Revision Cycle — Re-open → new version → loop back

Project Lifecycle Statuses

StatusEntry TriggerWhat HappensExit Trigger
NewClient submitsRecord createdIntake review begins
IntakeReviewer opensPermit/plans parsed, draft SOWSOW Lines created
SOW DraftSOW Lines auto-createdAdmin reviews scopeAdmin confirms
SOW ConfirmedAll SOW Lines confirmedPermitted scope lockedClient provides date
SchedulingInspection date requestedCalendar checked, visit createdDate confirmed
ScheduledVisit with calendar eventTech sees on scheduleTech arrives
In ProgressTech checks inField work activeTech completes
Field CompleteTech ends visitCompleteness check runsAll deliverables received
Pending DeliverablesCrew requests existEscalation chain activeAll received
Pending RFIOpen RFIs existEscalation chain activeAll resolved
Partially InspectedSome SOW Lines doneSchedule next visitAll inspected
Ready for CertAll inspected, no blocksCert generation can proceedCertifier runs
CertifiedPackage generatedAwaiting approval/deliveryCert delivered
DeliveredCert + invoice sentCompletePayment received
Re-OpenedCrew returns / scope addedNew SOW LinesBack to Scheduling
On HoldAdmin pausesAll timers pausedAdmin resumes
CancelledProject cancelledTerminalNone

Escalation Timelines

Crew Deliverable Escalation

TimeActionChannel
T+0Request created and sentWhatsApp
T+6hrFirst reminderWhatsApp
T+24hrEscalate to tech + internal flagWhatsApp + Internal
T+48hrEscalate to client (auto-creates RFI)Portal
T+72hrBlock certificationInternal
Any timeOverride: waive deliverable (audit trail)Manual

Permit Expiration Escalation

TimeActionChannel
T−30 daysWarning flag setInternal
T+0Expired flag, cert blockedInternal
T+0 to T+24hrOverride window (exempt + reason)Manual
T+24hr (no override)Auto-escalate to client, RFI createdPortal
After renewalUpdated permit received, flags clearSystem

Role Summary (5 Roles, 88 Tasks)

RoleWhoTasks
Admin / CertifierDustin + Diehl + Valerio37
Field TechnicianUP inspection techs14
Office Staff / SchedulerContractor PMs, coordinators16
Field CrewForemen, installers8
Accounts PayableAP clerks, billing contacts7