Plumbing · AI services
Plumbing chat that puts safety before sales
Panicked messages arrive at night. The chat either says nothing useful or pushes a booking form.
A triage chat that gives gas and flood safety steps first, never asks an emergency to pick a slot, and is honest about its service area.
This is a concept build. Copperline Plumbing is a fictional business. The code is real: open the demo and try the steps below.
The everyday problem
Safety steps come first, then a call-back, then a booking only when it can wait.
The hard part
- A gas smell mid-conversation
A gas rule interrupts any step after the greeting with leave-the-building steps. No booking is offered.
- A burst pipe at night
Stop-tap steps come first, then the request for a call-back number.
- An emergency asked to pick a slot
Emergencies skip slot picking, and the chat says why.
- A ZIP outside the area
The chat says it won't promise a time it can't keep, and ends with a call-back request instead of a booking.
- A price that quietly adds a surcharge
The estimate follows the company's own 'no after-hours surcharge' rule.
How it runs
How a plumbing chat puts safety before the booking.
Sample run- Step 1: Message in chat.
- Step 2: Safety check on every turn. Gas and water rules from the knowledge base.
- Step 3: Read the problem. Urgency and service from the wording.
- Step 4: Check the area. ZIP against the service area.If this fails: Out of area: an honest answer, a call-back request, no booking.
- Step 5: Pull out contact details. Name and phone from free text.If this fails: No phone: asks again.
- Step 6: Offer a time. Routine jobs pick a slot.If this fails: Emergency: slot skipped, logged for the on-call path.
- Step 7: Office board. Logged with every step.
Tap “On fail” to see what happens when a step breaks.
Edge cases we handled
| When | What the system does | Try it |
|---|---|---|
| A visitor writes 'I smell gas in the kitchen'. | Leave-the-building steps first. No booking is offered. | I smell gas in the kitchen |
| A visitor writes 'a pipe burst under the sink'. | Stop-tap steps first, then a call-back number. | a pipe burst under the sink |
| The ZIP is outside the service area. | An honest 'I won't promise a time we can't keep', then a call-back request, not a booking. | No phrase to try |
| The reply has no phone number. | The chat asks for it again. | No phrase to try |
| An emergency comes in at 2am. | Priced the same as at 2pm. No surcharge is added. | No phrase to try |
Guardrails and hand-off
Guardrails
- Safety rules can override any step after the greeting.
- Emergencies are never asked to pick a time slot.
- Out-of-area visitors are not promised a time; they end with a call-back request.
- The estimate follows the company's own surcharge rule.
When a person takes over
Gas and flood messages end in a request for a call-back number, not a booking. Out-of-area requests are noted as call-back requests on the office board for a person to follow up.
Not in this build yet
We would rather you hear it from us.
- No live AI model is connected.
- On-call alerts are logged only. No one is contacted, and the chat says so.
- The safety interrupt is wired for gas and water rules on this site only.
- The ZIP step does not yet check the format.
Try it yourself
Type:
I smell gas in the kitchenExpect: Leave-the-building steps first. No booking is offered.
Type:
a pipe burst under the sinkExpect: Stop-tap steps first.
Open the chat on the demo site. The chat button appears once you have scrolled a little, or after about 20 seconds. Please don't type real personal details.
Built with
- TypeScript
- Next.js
- React
- n8n