An AI receptionist that answers the phone and WhatsApp for a trades business, logs every lead, flags emergencies and emails the office a summary at the end of the day.
The problem
A drainage and heating firm misses calls all day. The engineers are on jobs, the office line rings out, and a blocked drain at 7pm goes to whoever picks up first. Customers also send photos of the problem on WhatsApp, and those sit unread until someone has a minute.
What I built
One receptionist that works on both channels. It answers calls in natural speech and replies on WhatsApp, using the same set of business tools on each: look up or create the customer, open or update a lead, request a callback or an appointment, check availability, escalate.
The office gets a dashboard with a lead queue, full transcripts with every tool call the agent made, call recordings, an emergency badge, and a knowledge base they edit themselves. Each new lead sends an email, with a red banner if it is urgent. A daily summary goes out every evening on London time.
How it works
The Go service decides per call what happens: ring the team, send it straight to the AI, or hand over to the AI when nobody answers or the office is closed. Calls come in over Twilio or Telnyx. The call audio is bridged over WebSocket into an AssemblyAI realtime voice session. The agent can be interrupted mid-sentence, and it uses short verbal fillers while a tool call runs so the line never goes silent. Calls have a hard 10-minute limit and the agent can hang up on its own.
The system prompt is built from the knowledge base and business hours at call time, with gas-safety guardrails so a reported gas leak gets the right instructions and an escalation.
WhatsApp webhooks are verified with HMAC-SHA256. Photos are saved with MIME and size checks. Each conversation runs a bounded tool loop of at most five turns, with idempotency so Meta's retries never create duplicate leads.
There is also a calling lab for outbound test calls: pick a caller profile, give it a number and an instruction, and read the transcript beside the dial form.
Outcome
The full stack runs in Docker with a 31-scenario end-to-end test suite covering routing, overflow, tools and WhatsApp. The remaining step is moving it onto the company's own phone number and WhatsApp Business account.
Need something like this built? contact@akhilsingh.in