Role-Based SOP v2.0 — Step-by-Step Workflow Instructions
Unlikely Professionals | Version 2.0 | March 2026
6 Roles · 9 Workflow Phases · 100+ Steps
Legend: A = Automated · H = Human · Portal = Entirely (entirely.it.com)
Role Overview
| Type | Role | Who | Primary Tools |
|---|
| INTERNAL | Owner / Certifier | Dustin + Diehl + Valerio | Entirely Portal (Command Center, Owner Review), Supabase, Stripe, Gmail |
| INTERNAL | Admin | Office staff | Entirely Portal (Workbench), Supabase, Stripe, Gmail |
| INTERNAL | Field Technician | Darius (lead) | WhatsApp + Kulu AI agent, Camera, /data/projects/ |
| EXTERNAL | Scheduler / Assistant | Contractor PMs, coordinators | Entirely Portal (Day View, Calendar, Schedule Changes) |
| EXTERNAL | General Operations (GOA) | Branch managers | Entirely Portal (Branch Dashboard, Calendar) |
| EXTERNAL | Triage | Stale project investigators | Entirely Portal (Triage Pipeline, Tracker, Archive) |
| EXTERNAL | Accounts Payable | AP clerks | AP Portal (invoice lookup, remittance upload) |
| EXTERNAL | Field Crew | Foremen, installers | On-site, WhatsApp |
1. Owner / Certifier (INTERNAL)
Phase 1: Project Intake
| Step | Action | Tool | A/H | Details |
|---|
| 1.1 | Receive inspection request | Gmail / Chat / Portal Intake | H | Site address, permit #, owner, scope, preferred date |
| 1.2 | Submit via Intake Wizard or create manually | Entirely Portal | H | Auto-enrichment: geocoding, jurisdiction, certifier, forms, timeline |
| 1.3 | Duplicate detection runs | Auto | A | Fuzzy address match against existing projects |
| 1.4 | Verify data completeness | Portal | H | Valid address, permit not expired, scope matches products |
| 1.5 | Look up or create Account | Supabase | H | Confirm Stripe Customer ID, deliverables email |
| 1.6 | Create project record | Supabase | H | Uses supabase_write_service.create_project(). Status → Intake |
| 1.7 | Create project folder, upload permits/plans | /data/projects/ | H | Auto-parsed: extract dates, numbers, forms detection |
| 1.8 | Build SOW lines | Supabase | H | One line per product. Auto-include dependencies (WTR/ENC → parent) |
| 1.9 | Request missing info from contractor | Gmail / Chat | H | If incomplete: flag for follow-up, create RFI |
| 1.10 | Mark intake complete | Supabase | H | Status → ready for scheduling |
Phase 2: Scheduling
| Step | Action | Tool | A/H | Details |
|---|
| 2.1 | Receive preferred date/time | Gmail / Chat / Portal | H | Client specifies date, time, access instructions |
| 2.2 | Check availability via Day View or Calendar | Entirely Portal | H | 24-hour timeline with hourly gridlines |
| 2.3 | Evaluate rush job status | Portal | H | <24hr notice → flag, internal approval, emergency fee |
| 2.4 | Create site visit record, link to project | Supabase | H | Date, time, tech assignment, access instructions |
| 2.5 | Update project status → Scheduled | Supabase | H | Visible on Calendar with status/branch color stripes |
| 2.6 | Send confirmation to contractor | Gmail | H | Confirm date, time, address, scope |
| 2.7 | Daily schedule auto-delivered to field tech | WhatsApp | A | 6:00 AM ET, next-day appointments |
Phase 3: Field Inspection Oversight
| Step | Action | Tool | A/H | Details |
|---|
| 3.1 | Monitor tech check-in | WhatsApp | H | Verify tech arrived and began inspection |
| 3.2 | Review field submissions | Portal / Files | H | Photos uploaded, notes entered, driving logs done |
| 3.3 | Identify missing deliverables | Portal | H | Compare SOW lines against submitted docs |
| 3.4 | Handle “unable to inspect” flags | Portal | H | Review reason, flag for trip charge, reschedule |
| 3.5 | Confirm all data received | Supabase | H | Status → Field Complete (triggers auto-validation) |
Phase 4: Auto-Validation & RFI
| Step | Action | Tool | A/H | Details |
|---|
| 4.1 | Auto-validation runs 10-point checklist | Auto | A | Photos, SOW lines, driving logs, permit data, notes |
| 4.2 | If pass: auto-advance to Ready for Cert | Auto | A | No human intervention needed |
| 4.3 | If gaps: RFI created automatically | Auto | A | Specifies exactly what’s missing |
| 4.4 | Send deliverable request to contractor | Gmail / Chat / Auto | H/A | RFI notification via portal + email |
| 4.5 | Track response timeline | Portal | H/A | Escalation: scheduler → office mgr → GM (6hr → 24hr → 48hr → 72hr) |
| 4.6 | Receive and review deliverables | Files / Portal | H | Upload to project folder, update SOW status |
| 4.7 | Resolve RFI, re-run validation | Portal | H | Project advances when all RFIs resolved |
Phase 5: Certification Generation
| Step | Action | Tool | A/H | Details |
|---|
| 5.1 | Pre-certification validation | Auto | A | All SOW lines have data, photos, no open RFIs |
| 5.2 | Resolve scope: permitted vs. as-built | Auto | A | Cert covers what was inspected |
| 5.3 | Determine certifier and brand | Auto | A | Jurisdiction → certifier; inspection date → brand |
| 5.4 | Generate certification package | Claude AI | A | Cert, photo sheets, driving logs, county forms (WeasyPrint + Jinja2) |
| 5.5 | Confidence routing evaluates guardrails | Auto | A | ≤$5K + no forms county → send direct; else → owner review |
| 5.6 | If queued: review in Owner Review or Workbench | Entirely Portal | H | 4-column Kanban: Not Started → Draft → Approved → Sent |
| 5.7 | Approve, request revision, or send direct | Entirely Portal | H | Revision creates v1.1+ |
| 5.8 | Upload approved cert PDF | Auto | A | /data/projects/{id}/CERTS/ |
| 5.9 | Create cert package record | Supabase | H/A | Version, cert date, certifier, scope summary |
| 5.10 | Update cert status → Approved | Supabase | H | Triggers delivery |
Phase 6: Invoicing
| Step | Action | Tool | A/H | Details |
|---|
| 6.1 | Look up Stripe Customer ID | Supabase → Stripe | H/A | From Account record |
| 6.2 | Check for existing invoice | Supabase | H/A | Don’t duplicate if Stripe Invoice ID exists |
| 6.3 | Build line items from SOW lines | Stripe API | H/A | One item per product, metadata with record IDs |
| 6.4 | Add production day charges | Stripe API | H/A | ~1 production day per 6-7 push piers |
| 6.5 | Add admin fees if applicable | Stripe API | H/A | Trip charge, emergency, no-show |
| 6.6 | Add custom fields | Stripe API | H/A | Permit, address, owner |
| 6.7 | Confidence routing: send direct or queue | Auto | A | Same guardrails as cert routing |
| 6.8 | If queued: review and approve | Entirely Portal | H | Approve and send |
| 6.9 | Invoice sent via Stripe | Stripe | A | Stripe emails client directly |
| 6.10 | Invoice PDF auto-uploads | Auto | A | /data/projects/{id}/INVOICES/ |
| 6.11 | Update invoice status → Sent | Supabase | A | Webhook-driven |
Phase 7: Delivery & Closeout
| Step | Action | Tool | A/H | Details |
|---|
| 7.1 | Verify cert PDF and record exist | Portal | H | Pre-flight check |
| 7.2 | Cert delivery triggered on Approved | Auto | A | Email with cert PDF attached |
| 7.3 | Delivery logged in Delivery Ledger | Supabase | A | Timestamp, recipient, cert version |
| 7.4 | Verify delivery email sent | Gmail | H | Confirm reached deliverables addresses |
| 7.5 | Update project status → Certified | Supabase | H/A | Status depends on invoice state |
| 7.6 | Handle revision requests | Claude AI | A/H | Generate v1.1+, re-upload, re-deliver |
| 7.7 | Payment receipt updates invoice → Paid | Auto | A | Stripe webhook |
| 7.8 | Close project | Supabase | H | All statuses terminal → Closed |
Phase 8: Reconciliation
| Step | Action | Tool | A/H | Details |
|---|
| 8.1 | Stripe webhook auto-matches payments | Auto | A | High-confidence matches close automatically |
| 8.2 | Review pending matches in Smart Recon | Entirely Portal | H | 3-tier: exact → fuzzy → manual |
| 8.3 | Upload remittance files for batch matching | Entirely Portal | H | CSV/PDF parser extracts invoice s and amounts |
| 8.4 | Reconciliation scanner catches stragglers | Auto | A | Cron-based catchup |
| 8.5 | Update invoice status → Paid | Supabase | A | Project advances toward Closed |
Phase 9: Pipeline Intelligence
| Step | Action | Tool | A/H | Details |
|---|
| 9.1 | Review Command Center metrics | Entirely Portal | H | Pipeline, unpaid invoices, pending review, RFI aging |
| 9.2 | Pipeline Shepherd runs daily at 7:45 AM ET | Auto | A | Scans all active projects, flags stuck items |
| 9.3 | Review Shepherd report | Entirely Portal | H | Projects needing attention, auto-actions taken |
| 9.4 | Use Friday AI for analysis | Entirely Portal | H | Full-page or floating bubble, Opus model |
| 9.5 | Review Audit Log for event trail | Entirely Portal | H | Category-filtered, timestamped |
| 9.6 | Review Delivery Ledger | Entirely Portal | H | All cert/invoice sends with status |
2. Admin (INTERNAL)
Admins share most Owner capabilities but work primarily from the Workbench — a 4-column Kanban for cert/invoice queue management.
Daily Workflow
| Step | Action | Tool | A/H | Details |
|---|
| 1.1 | Open Workbench | Entirely Portal | H | 4-column Kanban: Not Started → Draft → Approved → Sent |
| 1.2 | Process cert queue items | Workbench | H | Review confidence-routed items, approve or revise |
| 1.3 | Process invoice queue items | Workbench | H | Review line items, amounts, custom fields |
| 1.4 | Resolve open RFIs | Portal | H | Review RFI details, request deliverables, close when resolved |
| 1.5 | Monitor project pipeline | Portal | H | Check for bottlenecks, stalled projects |
| 1.6 | Handle schedule change requests | Portal | H | Approve, deny, or modify |
Cert/Invoice Processing (Workbench)
| Step | Action | Tool | A/H | Details |
|---|
| 2.1 | Item appears in “Not Started” column | Auto | A | From confidence routing or manual queue |
| 2.2 | Review cert/invoice details | Workbench | H | Click to expand: project data, SOW, photos, guardrails |
| 2.3 | Move to “Draft” while working | Workbench | H | Drag-and-drop Kanban |
| 2.4 | Approve → moves to “Approved” | Workbench | H | Triggers delivery |
| 2.5 | Request revision → returns to Draft | Workbench | H | Reason captured, new version generated |
| 2.6 | Sent items appear in “Sent” column | Auto | A | Delivery confirmed |
3. Field Technician (INTERNAL)
Pre-Visit
| Step | Action | Tool | Details |
|---|
| 1.1 | Receive daily schedule at 6:00 AM | WhatsApp (auto) | Addresses, scopes, contacts for each site |
| 1.2 | Ask Kulu for additional context | WhatsApp (Kulu AI) | Project history, prior visit notes, special instructions |
| 1.3 | Confirm equipment ready | Physical prep | Camera, measurement tools, driving log forms, PPE |
On-Site Inspection
| Step | Action | Tool | Details |
|---|
| 2.1 | Arrive and check in | WhatsApp | Notify admin, meet crew, verify access |
| 2.2 | Confirm scope with crew | In-person | Walk through installation, note differences |
| 2.3 | Inspect each product against SOW | Visual inspection | Verify quality, quantity, location, code compliance |
| 2.4 | Capture field photos | Camera / Phone | Overview + close-up per product, site conditions |
| 2.5 | Complete driving logs for piers | Paper / Phone | Pier location, depth, PSI, extensions, final load |
| 2.6 | Note issues or observations | Written notes | Incomplete work, safety, scope changes, crew info |
| 2.7 | Determine completion status | Assessment | Complete / Partial / Unable to inspect |
Check-Out & Post-Visit
| Step | Action | Tool | Details |
|---|
| 3.1 | Inform crew of outcome | In-person | Pass / partial / issues |
| 3.2 | Notify admin of outcome | WhatsApp | Complete / partial / unable + summary |
| 4.1 | Upload photos | /data/projects/ | Same day or next business day. Auto-optimized on upload |
| 4.2 | Submit driving log data | WhatsApp / Upload | Photo of form or typed data |
| 4.3 | Submit field notes | WhatsApp | Observations, discrepancies, crew info |
| 4.4 | Respond to follow-up requests | WhatsApp / Kulu | Additional photos, clarifications |
4. Scheduler / Assistant (EXTERNAL)
Schedulers use the Day View (24-hour timeline) as their default page. Assistants use the Calendar (month view).
| Phase | Step | Action | Tool | Details |
|---|
| Intake | 1.1 | Submit inspection request via Intake Wizard | Entirely Portal | Address, owner, permit #, scope, preferred date |
| Intake | 1.2 | Auto-enrichment populates jurisdiction, certifier, forms | Auto | Geocoding, timeline estimation |
| Intake | 1.3 | Provide site details | Portal | Access instructions, gate codes, contacts |
| Schedule | 2.1 | View availability in Day View | Entirely Portal | 24-hour timeline with time slots |
| Schedule | 2.2 | Create site visit with date/time | Entirely Portal | <24hr = rush fees flagged |
| Schedule | 2.3 | Receive confirmation | Portal / Email | Date, time, address, scope, tech |
| Schedule | 2.4 | Notify field crew | Internal | Ensure access, records, someone on site |
| Changes | 3.1 | Submit schedule change request | Entirely Portal | Reschedule, cancel, modify |
| Changes | 3.2 | Track approval/denial | Portal | Notification on status change |
| RFI | 4.1 | Receive deliverable request notification | Portal / Email | UP specifies what’s missing |
| RFI | 4.2 | Relay to field crew | Internal | Forward specifics |
| RFI | 4.3 | Collect and submit deliverables | Portal | Upload to project files |
5. General Operations Account — GOA (EXTERNAL)
Branch managers use the Branch Dashboard for branch-scoped oversight.
| Phase | Step | Action | Tool | Details |
|---|
| Monitor | 1.1 | Review Branch Dashboard | Entirely Portal | Branch-scoped metrics with sparklines |
| Monitor | 1.2 | Check “Needs Attention” alerts | Portal | Projects stalled, missing data, overdue |
| Monitor | 1.3 | Review Calendar for upcoming inspections | Portal | Branch-filtered, status/color coded |
| Coordinate | 2.1 | Review project list | Portal | Filter by status, branch, search |
| Coordinate | 2.2 | Submit schedule change requests | Portal | Reschedule or cancel |
| Coordinate | 2.3 | Coordinate with scheduler on intake | Portal / Email | New project submissions |
6. Triage (EXTERNAL)
Triage investigators handle stale or unassigned projects through a dedicated pipeline.
| Phase | Step | Action | Tool | Details |
|---|
| Investigate | 1.1 | Review Triage Pipeline | Entirely Portal | 5-column Kanban: Intake → Scheduled → Field Complete → Certification → Closed |
| Investigate | 1.2 | Submit new triage intake | Portal | Auto-enrichment applies |
| Investigate | 1.3 | Research project history | Portal / Tracker | Prior visits, notes, correspondence |
| Resolve | 2.1 | Determine resolution action | Portal | Reschedule, close, escalate |
| Resolve | 2.2 | Track resolution | Tracker | Status updates, resolution notes |
| Archive | 3.1 | Closed projects >90 days move to Archive | Portal | Read-only historical view |
7. Contractor Field Crew (EXTERNAL)
| Phase | Step | Action | Details |
|---|
| Pre-Inspection | 1.1 | Ensure work area accessible | Clear debris, open crawlspaces, products visible |
| Pre-Inspection | 1.2 | Have install records available | Pier logs, counts, specs |
| During | 2.1 | Provide site access to UP tech | Meet tech, show work areas, unlock spaces |
| During | 2.2 | Answer installation questions | Methods, quantities, difficulties |
| During | 2.3 | Point out scope changes vs. plans | Proactively inform of deviations |
| Post | 3.1 | Provide missing photos if requested | Via WhatsApp/text to office staff |
| Post | 3.2 | Provide driving log data | PSI, depths, extensions |
| Post | 3.3 | Confirm as-built quantities | If discrepancy found |
8. Contractor Accounts Payable (EXTERNAL)
AP has self-service access via the AP Portal for invoice lookup, remittance upload, and payment history.
| Phase | Step | Action | Tool | Details |
|---|
| Receipt | 1.1 | Receive invoice from Stripe | Email | Line items, custom fields, total |
| Receipt | 1.2 | Look up invoice in AP Portal | AP Portal | Search by invoice number or date |
| Receipt | 1.3 | Review for accuracy | AP Portal / Email | Products, address, amounts |
| Receipt | 1.4 | Route for internal approval | Internal | PO matching or management approval |
| Payment | 2.1 | Process payment via Stripe | Stripe portal | Credit card or ACH |
| Payment | 2.2 | Upload remittance file | AP Portal | CSV or PDF — auto-parsed for reconciliation |
| Payment | 2.3 | View payment history and reconciliation status | AP Portal | All invoices with payment state |
| Overdue | 3.1 | Receive payment reminder | Stripe (auto) | Automated reminders |