CatalogWhy PorsyncProcessWorkBook a consultation
Case Studies/Inbound Call Bottleneck — AI Voice Receptionist
Voice AIInbound ReceptionQA & Testing

Inbound Call Bottleneck — AI Voice Receptionist

An inbound voice receptionist that answers every call 24/7, books appointments, answers common questions, takes messages, and warm-transfers the calls that need a human. Configurable per business — one agent reconfigures from a handful of variables. QA-gated against 16 real-world call scenarios before going live.

Capability demonstration · Voice AI, Inbound Reception · Published 2026-06-05

Results

  • 15 / 16 QA scenarios passed before a live number was ever provisioned
  • Tested via conversation simulation — an AI played the caller and auto-graded each call pass/fail
  • Answers inbound calls 24/7 — no human availability required
  • Books appointments, answers FAQs, takes messages, and warm-transfers to a human when needed
  • Configurable: business name, services, hours, region, and agent name are swappable variables — one agent serves many deployments
  • Structured call summaries captured per call — caller, reason, resolution, and any callback needed

The Challenge

Every missed call is a missed customer. Most businesses can't staff the phone 24/7, and the calls that do get answered are mostly routine — opening hours, "do you do X?", booking a slot, leaving a message. A receptionist spends their day on repetitive questions and still misses the after-hours calls entirely. The bar for replacing that with AI isn't "can it talk" — it's "can it handle a real caller end-to-end and know when to hand off to a person."

What Was Built

A multi-state inbound voice agent built as a single conversational flow with five behaviours, each as its own state:

- **Greeter** — answers, identifies the business, and works out what the caller needs.
- **FAQ** — answers common questions (hours, services, location) from a knowledge base.
- **Booking** — captures the details and books an appointment.
- **Message taker** — records a structured message when no booking or answer applies.
- **Escalate / transfer** — warm-transfers to a human when wired, or takes a callback message when no one is available.

The whole agent is **configurable by design**: business name, services, opening hours, region, and the agent's own name are dynamic variables, so the same agent reconfigures per deployment without a rebuild. The stack is Retell for the voice transport and state machine — the same cloud voice platform behind the outbound agent — so inbound and outbound can run from one toolchain.

How It Was Tested — Before Any Real Call

The differentiator is how it was proven safe to ship. Every scenario ran through a conversation simulation API: a second AI played the caller, drove each conversation down a specific path, and graded the result pass/fail against defined criteria. No phone number was provisioned. No human sat through test calls. The whole QA gate ran programmatically and is fully reproducible — re-run it any time the prompt changes.

The Scenarios

Sixteen scenarios spanning greeting, FAQ, booking, message-taking, escalation, and edge cases. The simulator surfaced and forced fixes for two real bugs before launch: the agent had been guessing at caller phone numbers (now bound to the inbound caller ID), and the transfer state ended awkwardly when no transfer number was configured (now split into a warm-transfer variant and a message-only variant).

Outcome

Fifteen of sixteen scenarios passed — a documented, repeatable QA gate cleared before a live number was ever assigned. The one remaining scenario depends on a business-specific FAQ document being attached to the agent, which is a per-deployment configuration step rather than a build gap. The behaviours that matter for an unsupervised receptionist — answering naturally, booking, taking a clean message, and handing off to a human at the right moment — are proven, not assumed. Ready for a live number on the client's sign-off.