Skip to main content

Maintenance Overview

Maintenance is the beachhead. It's where the agency loses the most time today, and where AI compresses that time the most.

The inbox

Maintenance in the sidebar is a single filterable queue of every incoming request across your agency. Each row shows:

  • Property address
  • Tenant name (if present)
  • Channel — APP / WEB_FORM / EMAIL / MANUAL
  • Status — see below
  • Urgency — once triaged
  • SLA countdown — once triaged
  • Age — how long the request has been open

Filters: status, urgency, property, channel, date range.

Statuses

StatusMeaning
NEWJust came in. No triage yet.
TRIAGEDCategory + urgency assigned. SLA clock running.
ASSIGNEDConverted to a work order; contractor dispatched.
AWAITING_QUOTEOver approval threshold; waiting for owner sign-off.
AWAITING_OWNERSimilar — owner consent or approval blocker.
IN_PROGRESSContractor on-site or scheduled.
COMPLETEDWork finished, request closed.
BLOCKEDSomething's in the way — explicit PM action needed.
OVERDUESLA breached. Red chip on the row.
ESCALATEDRe-triaged upward or flagged by AI sentiment (coming).

Channels

ChannelWhere it comes from
WEB_FORMTenant scanned the QR sticker and submitted via /report/{token}
EMAIL(Planned) inbound mail parser
APP(Planned) React Native tenant app
MANUALPM keyed it in from a phone call

The flow

Tenant submits → NEW


PM clicks "Suggest triage" ─── Claude AI triage (or heuristic fallback)
│ returns category + urgency + next actions

PM reviews / edits → "Apply triage" → TRIAGED (SLA starts)


"Convert to work order" ─── Two paths:
│ ├─ Convert as-is (raw tenant text = scope)
│ └─ Draft scope with AI (Claude writes tradie-facing
│ scope + cost ceiling)

Pick contractor (ranked picker) → Dispatch (magic link)


Contractor statuses flow back → IN_PROGRESS → COMPLETED

Pages in this section