Every vendor in this category now has an AI story. Auto-reply, lead qualification, agents with human handoff. The technology works better than it did two years ago, which makes the question harder rather than easier — it is no longer 'can it', it is 'should it'.
Start from what the channel is for
A small business wins on this channel because the customer is talking to a person they have met, from a number they recognise. That is the entire competitive advantage — it is the one thing a national chain cannot buy. Automating it away to save fifteen minutes a day is a bad trade, and it is a trade many businesses make without noticing.
Good jobs for an AI
- Acknowledging an out-of-hours enquiry
- Answering opening hours, address, parking
- Collecting details before a human replies
- Routing a message to the right person
- Drafting a reply for a human to send
Bad jobs for an AI
- Quoting a price on custom work
- Handling a complaint
- Anything where being wrong costs money
- Pretending to be a named employee
- The whole conversation, unsupervised
Disclose it
Not because a regulation necessarily requires it in your jurisdiction, though it may. Because customers work it out, and discovering it after the fact feels like being tricked by a business they trusted. 'This is our automated assistant — a human will pick this up shortly' costs you nothing and protects the relationship.
Never give an AI a human's name
An agent introducing itself as 'Dave' when Dave is a real person at your shop is the version of this that generates genuine anger when discovered. If you would be embarrassed to explain the setup to the customer, do not ship it.
Handoff is the whole design
The failure mode is not a wrong answer, it is a customer trapped in a loop with no way to reach a person. Every automated thread needs an escape hatch that works on the first attempt.
const ESCALATE = /\b(human|person|agent|manager|speak to someone|real person)\b/i; export async function handleAgentTurn(thread: Thread, text: string) { // Explicit ask always wins, immediately. if (ESCALATE.test(text)) return escalate(thread, "customer_requested"); // Confidence floor: do not guess at a customer. const reply = await agent.respond(thread, text); if (reply.confidence < 0.7) return escalate(thread, "low_confidence"); // Anything emotional goes to a person, regardless of confidence. if (reply.sentiment === "negative") return escalate(thread, "negative_sentiment"); // Hard cap: no thread runs unsupervised forever. if (thread.agentTurns >= 4) return escalate(thread, "turn_limit"); return send(thread, reply.text);}The rule of thumb
Use AI to make sure nobody waits, not to make sure nobody is answered. Acknowledge instantly, gather context, draft the reply — then let a person send it. That combination gets you the response times of automation and the trust of a small business, which is the whole point.
And whatever the agent sends, do not let it compose its own URLs. Give it a tagging helper, or your attribution will drift within a week — see UTM tagging.
Next step
Generate a tagged link for whatever you send next with the UTM builder, see what this looks like in your industry, or compare the services that can send it on the providers page.