Every work order in TradelyHQ moves through four statuses. The transitions are tracked in audit_log so you can answer "who changed what and when" without SSH'ing into a database.
Open
The default state when a WO is created. No tech assigned yet. Visible to:
- Admin (assigning tech)
- Client (knows you've received their request)
Move out of Open by assigning a tech and changing status to progress (Active in the UI).
Hold
Use this for "we know about it, we're not actively working it" — waiting on parts, waiting on access, weather delay, client-side approval pending. Visible to all parties; counts as "in progress" but flags differently in dashboards.
WOs on Hold for > 7 days get surfaced in the admin Reports tab as a "needs attention" rollup.
Active (status='progress')
Tech is en route, on-site, or working. Tech-portal flow on this status:
- Pre-arrival: optional intake photos, drive directions
- Arrival: GPS check-in stamps lat/lng + timestamp on the WO
- On-site: completion diagnosis + fix fields, expense capture, photo upload
- Departure: customer signature capture, final completion photos, optional payment-link amount
- Flag (optional): "Quote Needed" if the work will exceed NTE
Complete
Tech has marked the work done. Triggers:
completed_attimestamp set- If the tech's pay-model is "payment_link" and they entered a final amount, an auto-draft invoice is created in Pending Review for the owner to authorize
- Otherwise, the WO appears in your Invoice Pending queue for manual draft
- Customer has 3 business days to sign the completion report (signature pad in their portal). After that, the WO auto-locks; client can no longer reopen it
Cancelled (separate boolean, not a status)
If a job is cancelled before completion, set cancelled=true with a reason. The WO stays in the audit trail (you don't delete it) but drops out of active queues.
Reopened
A client can request a re-visit on a completed WO if it's within 3 business days. This sets reopened_at + reopened_reason and flips status back to progress. After 3 business days, the WO is locked and a request would have to be a brand-new WO instead.
Why the 3-business-day lock?
To prevent the "client never signs the completion report → indefinite limbo" failure mode. Without the lock, an unhappy customer could leave a WO in a never-confirmed state forever, blocking invoicing and tying up audit reporting. After 3 business days, TradelyHQ automatically marks the signature as waived and treats the WO as fully closed.