AI text responder
Customer texts, answered with the real schedule
Most auto-replies are a polite way of saying "we'll get back to you." That's fine at 2pm. At 7:45pm, when someone wants to move tomorrow's cleaning, it means the office starts the next morning with a pile of texts and a few annoyed customers.
This one reads the customer's actual appointment in ServiceTitan, checks what's really open, and answers the question they asked.
- Built for
- Carpet cleaning franchise (40+ locations)
- Status
- Running in testing on the live inbox
Example thread
Carpet cleaning office
Hi, can I move my cleaning to next week? Something came up
7:42 PMNo problem! I see you're on for Thursday 8-10am. Next week I have Tuesday 1-3pm or Wednesday 8-10am open. Want one of those?
7:42 PMWednesday morning is perfect
7:44 PMYou got it. I've passed that to the office to lock in Wednesday 8-10am, and you'll get a confirmation text once it's set.
7:44 PM15 sec
between inbox checks
19 sec
to pick up a test text in live testing
3 min
median human reply time it's measured against
128k
past texts studied for tone and answers
Look things up first, then write
The order matters. A model that writes first and checks later will happily tell a customer they're booked for Thursday when they aren't. So every reply starts with plain lookups in ServiceTitan, and the AI writes from those facts and nothing else.
What happens to one incoming text
Every 15 sec
Check the ServiceTitan inbox
Look up the facts first
Who is this?
Booked?
What's open?
Write
Claude drafts the reply
Guardrails
Checks, then sends
It learned from ten months of the office's own texts
We pulled every text the company sent and received in 2026 and scrubbed out names, numbers and addresses. What was left was a pretty clear picture of how good replies sound at this company: short, warm, and quick to offer an actual time.
The 833 objection and pricing examples got the most attention. "That seems expensive" is where texting threads die, and the office's best replies to it are now baked in.
What it learned from before it sent anything
texts from 2026, with personal info scrubbed
customer message and staff reply pairs
objection and pricing examples
Small rules that matter more than the AI
Customers reply "C" to confirm appointments. An AI that answers every "C" with a cheerful paragraph gets old by Wednesday, so it doesn't. Replies are capped at 500 characters. There's a daily send limit and an allowlist while it's in testing.
None of that is impressive. It's just the difference between a tool the office keeps turned on and one they quietly switch off after a week.
What it runs on
- ServiceTitan chat inbox
- Claude (Anthropic)
- Node.js
- Linux server (pm2)
Questions we get about this one
What stops it from making something up?+
It only gets facts we look up first: the customer record, their appointment, and the real openings. If the answer isn't in those facts, it says the office will follow up instead of guessing. Prices work the same way. It knows the published specials, and anything beyond that gets "the tech will give you an exact written quote on site."
Does it text people who didn't text first?+
No. It only replies inside threads the customer started. It also has a daily send limit, so a bug can't turn into a thousand texts.
Can my office jump into a conversation?+
Yes. The replies go through ServiceTitan's own chat, so the thread looks the same to your team as it always has. Anyone can step in.
Is this the same AI as the voice agent?+
Same brain, different channel. The texting side and Madison on the phones share the same ServiceTitan lookups and the same rules, so a customer gets the same answer whether they call or text.
More things we've built
See allWant one of these for your shop?
Most of what's on this page started as a 30-minute call about something that was bugging the owner. Tell us what's bugging you.