When a tech updates their status from /portal/tech, the customer gets a branded SMS in real time — same pattern Domino's, Uber, and Amazon trained homeowners to expect.
What fires when
| Tech taps "Leaving" | Branded SMS: "Plumb Vine: your drain cleaning tech (Kyle) is on the way. ETA 9:00 AM." |
| Tech taps "Late" + minutes | "Plumb Vine: heads up — your tech (Kyle) is running ~15 min late. Sorry for the wait!" |
| Tech taps "Arrived" | No SMS — the customer can already see the truck. Recorded internally only. |
| Tech taps "Completed" | Thank-you SMS, plus tells the customer to expect a quick rating link in a couple hours. |
How to turn it off
Each channel can be toggled per-shop in Settings → Notifications. Default is everything on except the arrival ping. Some shops with chatty customer bases prefer to leave completion SMS off and let the review request (2hrs later) be the first follow-up.
How dedup works
If a tech accidentally taps "Leaving" twice — only one SMS goes out. Every send is logged with a unique key on (appointment_id, kind, channel) so duplicate triggers silently no-op. The activity surfaces under each appointment's audit log if you ever want to confirm what fired.
Customers see the truck pull up. A ping at the same moment feels redundant — early feedback said it made the system feel chatty without adding value. Toggle it on if your customer base specifically wants it (some commercial customers route maintenance through gate guards who like the heads-up).