Case study  ·  Voice Agents

An AI receptionist that books jobs and puts emergencies straight through

A voice agent that answers calls for service businesses, books jobs from live availability, hands emergencies to a human with a private briefing, and logs every caller to the CRM.

The problem

Calls come in while the owner of a plumbing or heating company is under a sink, on a roof or driving between jobs. Most callers don't leave a voicemail. They ring the next company on the list. The ones who do leave a message get a call back hours later, often after they've already booked someone else. A burst pipe at 7pm goes to the same voicemail as a dripping tap.

The usual fixes have problems of their own. An answering service takes messages but can't book anything. A basic voice bot can talk, but its answers are hard-coded for one business, it can't see the calendar, and it can't tell an emergency from a routine call. We wanted one system that could do all three: book real jobs, recognise an emergency, and move to a new business without being rewritten.

Watch the demo

A walkthrough of the build: three live calls (a routine booking, a booking where the first time asked for was full, and an emergency), then the n8n workflows and data behind each one.

The full demo on YouTube.

How it works

The voice agent does the talking and nothing else. Behind it, an n8n gateway checks every request, loads that business's settings and passes the work to small, replaceable services for the calendar, the CRM and alerts. The demo business is fictional: Apex Plumbing & Heating.

Architecture diagram: caller to Retell voice agent to n8n gateway, which routes to calendar, CRM and alert adapters, with business config read on every call and post-call logging
Each call follows one path. The business's config row is read at the start of every call, so the agent's prompt holds nothing specific to any one company.
The live RCP Gateway workflow in n8n, showing a successful execution routed through authentication, the router and the CRM service, with a list of successful runs on the left
The live gateway in n8n during testing. This call was checked, routed to the CRM service and answered in about two seconds. Every run in the list on the left succeeded.

1. It sounds like a receptionist, not a menu

Ava greets callers by the business name, asks one question at a time and fills short pauses with small acknowledgements while she checks things. If a caller corrects her or interrupts, she changes course instead of starting over.

2. It books from real availability

When a caller asks for a time, the agent checks working hours, travel buffers, minimum notice and the service-area ZIP codes before it offers anything. If the time they asked for isn't free, it offers the nearest open slots and confirms the one they choose.

Call transcript: the caller asks for this afternoon, Ava says it's full, offers three alternative windows, and books Thursday 8–10 AM
A real test call. The requested window was full, so Ava offered the next openings and booked the caller's choice.

3. It never double-books

Every booking goes into one ledger that serves as the source of truth. The ledger records the reference, address, service, arrival window and the time it was booked. If a caller changes their mind on the same call, the booking is moved rather than duplicated.

The Calendar Service workflow in n8n: load the bookings ledger, plan the request, read and write the calendar provider, then record the booking in the ledger
The calendar service. It reads the bookings ledger before it offers a slot, and writes every booking back to it.

4. It puts emergencies through to a person

If a caller describes a burst pipe, a gas smell or no heat in winter, the agent warm-transfers them to the on-call number. Before the team member is connected, they hear a private whisper with the caller's name, address and problem. If nobody picks up within 25 seconds, the agent takes the details and sends an urgent alert straight away.

Transfer tool settings with a private whisper, next to an emergency alert for a burst pipe
Left: the transfer settings. Right: the alert that goes out if the transfer isn't answered.

5. It logs every caller to the CRM, once

Callers are matched by phone number, so a repeat caller updates their existing contact. The agent writes the name, address, city, ZIP, lead status and a short summary of the call to HubSpot. A small link table makes sure a second call doesn't create a duplicate before HubSpot's search has caught up.

The CRM Service workflow in n8n: one normalised lead goes to a HubSpot, Google Sheets or demo adapter, with a stub for CRMs not built yet
The CRM service. Every adapter takes the same lead and returns the same result, so swapping HubSpot for another CRM doesn't touch the agent.

6. It keeps a full record of each call

When the call ends, the summary, transcript, recording link, outcome and urgency are saved to a call log and attached to the CRM contact. The owner can see what happened on any call without listening to it.

The Post-Call Logging workflow in n8n: Retell's call webhook, a check for the analysed call, business lookup, authorisation, then logging
The post-call workflow. It waits for Retell's finished analysis, then writes the summary, transcript and recording link to the call log and the CRM.

7. It moves to a new business by changing one row

The business name, services, service area, hours, emergency keywords, transfer number, calendar, CRM and alert channels all live in a single config row. Adding a second business means adding a second row and pointing a phone number at it. The prompt and the workflows don't change.

Business config row with name, trade, service area, hours, timezone, transfer number, emergency keywords and provider settings
The config row for the demo business. The same build serves any other business with a row of its own.

What a person still handles

  • Emergency calls once they're transferred. The agent briefs the tech, but a person takes it from there.
  • Quotes and pricing questions. The agent takes the details and passes them to the office instead of naming a price.
  • Callbacks on messages taken when the transfer wasn't answered.

Built with

  • Retell
  • GPT-4.1 mini
  • n8n
  • HubSpot
  • Google Calendar
  • Google Sheets
  • Twilio

Retell runs the voice and the conversation, on GPT-4.1 mini. n8n handles the gateway, the booking logic and the logging. HubSpot is the CRM. The CRM, calendar and alert services can each be swapped without touching the agent: there's a ready Google Sheets adapter and a template for connecting any other CRM. The same build fits electricians, HVAC, roofing, cleaning or any trade that books visits by phone.

Your build starts with the arithmetic.

Bring a week of real examples to the free audit. We come back with the three worth doing first, what each is worth, and a fixed price. If a cheaper tool already covers it, we say so.

Book the free audit →