Goal: an issue gets reported, the maintenance person prices it, the price is either auto-approved or sent to the owner, the work is completed with photos + receipts, and the owner's invoice is created automatically.
You need two brand-new email addresses:
Then, as the company: Clients → Add Client with repair approval threshold = 250 → add a property under that client → Give Owner Portal Access (use any third inbox you have) and accept it.
Use two browser windows (regular + incognito) so you can watch the company and the maintenance person at the same time.
| # | Who | Do this | Must happen |
|---|---|---|---|
| 1 | Company | Maintenance Requests → New Request on that property | Shows Reported + the owner's $250 authority line. No price field anywhere. |
| 2 | Company | Dispatch → assign the maintenance account, pick a date | Card shows Waiting on estimate; job + email reach the maintenance account |
| 3 | Maintenance | Maintenance Jobs → open job → estimate $150 → Send Estimate | Instantly approved automatically; upload + Mark Complete controls unlock; owner is NOT emailed |
| 4 | Maintenance | Upload 1 before photo, 1 after photo, 1 receipt → final cost $165 → Mark Complete | Success names an invoice number; request = Resolved; work order = completed |
| 5 | Company | Invoices | New invoice for that client, $165 (final cost, not the estimate), with the receipt attached |
| 6 | Company | Re-open the request | Already-billed; no way to bill it twice |
| # | Who | Do this | Must happen |
|---|---|---|---|
| 1 | Company | New request on the same property → dispatch to maintenance | Waiting on estimate |
| 2 | Maintenance | Estimate $900 → Send Estimate | "With the property owner — hold off"; completion stays locked |
| 3 | Owner | Approval email → Owner Portal → Approve | Maintenance unlocks; company sees who approved and when |
| 4 | Maintenance | Complete it with photos/receipt + final cost | Invoice created as in Run A |
Then repeat once and hit Decline instead: maintenance must see "do not carry out the work" and must not be able to complete it.
Change the client's settings and re-submit one estimate each time:
| Setting | Estimate | Expected |
|---|---|---|
| Threshold 250 | $250 exactly | Auto-approved |
| Threshold 250 | $250.01 | Owner approval |
| Threshold blank / 0 | $10 | Owner approval |
| "Always require approval" ON | $50 | Owner approval (toggle beats the threshold) |
| Property with no client | any | Proceeds internally, no owner invoice |
Log for each run: property, threshold, estimate, who approved, final cost, invoice number. A completed job on a client property with no invoice number is 🔴 Critical.