AI Voice Receptionist SaaS (Next.js + OpenAI) by Usman JabbarAI Voice Receptionist SaaS (Next.js + OpenAI) by Usman Jabbar

AI Voice Receptionist SaaS (Next.js + OpenAI)

Usman Jabbar

Usman Jabbar

A multi-tenant AI SaaS that answers every call in under a second, understands what the caller wants, and puts the appointment straight on the calendar — built end-to-end on Next.js, OpenAI, and WebRTC.

The Hook

Small businesses miss roughly 30% of their inbound calls — and nearly every one of those callers already cost money to acquire. They saw the ad, they clicked the listing, they picked up the phone… and got voicemail. Most never call back.
VAAM removes that gap entirely. It is an AI receptionist that picks up on the first ring, talks like a trained member of staff, follows the owner's business rules, and books the appointment itself — 24 hours a day, for every business on the platform at once.
Hands full, phone ringing on the counter. This is the missed call — and the customer — VAAM catches.
Hands full, phone ringing on the counter. This is the missed call — and the customer — VAAM catches.

The Challenge

Why the old options quietly bleed revenue
A human receptionist costs $3–4k a month, works one shift, takes holidays, and still can't answer two calls at once.
Voicemail is where leads go to die. Under one in five callers leave a message; callbacks convert at a fraction of a live answer.
Generic phone bots read menus. They don't know that Thursday afternoons are fully booked, that custom orders over $500 need the owner, or that an angry caller should never be left with a robot.
Off-the-shelf "AI receptionists" are black boxes: the owner can't see why the AI said what it said, can't change the logic without a support ticket, and can't prove it's safe in front of real customers.
The brief I set myself was harder than "make an AI answer the phone." It was: make an AI the owner can trust, understand, and reshape in minutes — and make it work for hundreds of businesses on one codebase.

The Solution

1 · Visual Node-Graph Routing — business rules the AI actually follows

Every VAAM tenant gets a flow graph, not a prompt box. A call enters, passes a safety screen, gets classified by intent, and is routed down the branch the owner drew — booking, pricing, support, or straight to a human.
Every branch is readable. Owners see the exact path each call took — which guard fired, which tool ran, how long it took.
Every run is replayable. Click any reply in a transcript and the graph lights up the steps that produced it.
New rule = new node. Hours change, a new service launches, a VIP list is added — no redeploy, no prompt surgery.
Guarded by design. Injection and abuse checks run before the model ever sees the message; output validation runs after.

2 · Live Transcripts with Reasoning Attached

Owners don't want a log. They want to know what the AI did and why. Every conversation streams in real time and carries its reasoning alongside it.
The front desk that never steps away — VAAM greets, answers and books while the team focuses on the room.
The front desk that never steps away — VAAM greets, answers and books while the team focuses on the room.
Sub-second transcription over WebRTC, finalised on silence — the text appears as the caller speaks.
Intent, entities and tool calls are pinned to every reply — book_appointment · 0.97 · calendar.create ✓ 212ms.
One-click human takeover. Type a reply and the AI steps back until it's handed the conversation back.
Cross-tenant search by intent, outcome, channel and date — the dashboard a franchise manager actually wants.

3 · Agent Persona Builder — configured, not coded

A receptionist should sound like the business it represents. VAAM compiles a persona from plain-English settings into a versioned system prompt — and every change is exam-tested before it goes live.
Name, voice, tone — warm / concise / formal — with instant audio preview.
Business rules as sentences. "Never quote custom orders above $500 — hand to a human." The rule becomes a guard node automatically.
Live sandbox. Test any message against the compiled brain; nothing reaches real customers until it's promoted.
Automated exams. Thirteen scripted scenarios (bookings, injections, escalations, after-hours) run on every prompt version. The current build passes 13 / 13.
VAAM was built as a product, not a demo. Plans are enforced where it matters — on the server.
Free / Pro / Team tiers with Stripe Checkout, Customer Portal and webhook-driven entitlement.
Row-level security in Postgres — one deploy, many businesses, zero data crossover.
Owner / editor roles per tenant, so an agency can manage clients without sharing logins.
Plan limits validated with Zod inside server actions — a downgraded account can't call a Pro-only tool, even by hand.

The Engineering

Voice in, booking out — in about 0.8 seconds, for every tenant.
Next.js 15 (App Router, Edge) — typed server actions, strict TypeScript, Zod at every boundary.
OpenAI Realtime + GPT — speech-to-text, reasoning and text-to-speech in one low-latency session, with tool calling for calendar, email and SMS.
WebRTC — Opus audio at sub-150 ms round trip; the same pipe serves the phone bridge and the embeddable web widget.
Prisma (Edge) + Supabase Postgres — typed queries, migrations, RLS-isolated tenants, Supabase Auth for roles.
Stripe — plan gating, webhooks, customer portal. Tailwind — the design system. Vercel — edge functions, preview deploys, one-line embed.
Typical turn budget — STT 180 ms → guard 30 ms → LLM 520 ms → tool 210 ms → TTS 140 ms. Every stage is timed and shown in the Step Inspector, so regressions are caught by looking, not by complaints.
Every conversation, logged with the AI's reasoning attached — real transcripts from the live dashboard.
Every conversation, logged with the AI's reasoning attached — real transcripts from the live dashboard.

The Outcome

8:00 AM: the appointments booked overnight, waiting with the coffee. That's the point of VAAM.
8:00 AM: the appointments booked overnight, waiting with the coffee. That's the point of VAAM.
Every call answered — no shifts, no queues, no sick days.
Under a second from the caller finishing a sentence to the AI replying.
13 / 13 automated exam scenarios passing on the production prompt.
Three tools replaced by one dashboard: answering service, booking page and call-log spreadsheet.
A real SaaS: multi-tenant, billed through Stripe, live at vaam-beta.vercel.app.

Let's build yours

If your business — or your client's — loses leads between "the phone rang" and "someone answered," this is the kind of system I build: custom AI agents with real guardrails, real observability, and real billing, shipped on Next.js.
I take on a small number of AI builds at a time. Message me on Contra with what you're trying to automate, and I'll reply within a few hours with how I'd approach it.
→ Start your custom AI build.
Like this project

Posted Aug 30, 2026

Multi-tenant AI voice receptionist on Next.js. Answers in under a second, books appointments itself, and shows its reasoning as a visual node-graph.