An AI receptionist that never sleeps.
When the desk is busy, on lunch, or closed, Night Watcher answers on a real phone number, books the appointment by voice, emails the owner, and logs the full transcript — turning your after-hours phone into a booking engine.
Missed calls are missed revenue
After hours, during the rush, or when staff are busy, callers hit voicemail and never call back. Night Watcher answers, captures, and books — so the lead never walks to the practice next door.
Never miss a call
An always-on AI receptionist answers on a real number, greets callers by your business name, and works even at 3 AM.
Leads in seconds
The instant a caller confirms, a Gmail notification hits your inbox and the lead writes to your dashboard with a link to the call.
Secure by design
RLS isolates every workspace, each assistant carries its own 256-bit webhook secret, and every callback is signature-verified.
Realtime everything
Calls, transcripts, recordings, leads, and KPIs stream into a live dashboard over Supabase Realtime — no refresh required.
A production-grade voice agent, not a chatbot
AI voice on a real number
Each business provisions an inbound number from Vapi's pool — or brings its own Twilio number — and attaches a configured voice assistant that answers automatically.
Natural lead capture
Collects name, date of birth, and phone conversationally, reads the number back digit by digit to confirm, then repeats everything before saving.
15 voices, 5 languages
Pick from curated ElevenLabs voices (warm, professional, British, mature) and serve callers in English (US/UK), French, Spanish, or German — per assistant.
Knowledge base grounding
Upload PDFs, text, or markdown; files push to the assistant's knowledge base so it answers from your real business documents.
Calls & transcripts
Browse every inbound call by number, duration, cost, and status; open any for its turn-by-turn transcript, audio recording, AI summary, and sentiment.
Leads pipeline
Captured callers land in a filterable Leads view with inline new / contacted status and date-range filters for fast follow-up triage.
Idempotent booking
Lead saves dedupe on the call and tool-call IDs via a unique index with race recovery, so Vapi retries collapse to one lead and never double-email you.
Bring-your-own inbox
Connect your own Google account so notifications send from your business address — requesting only the gmail.send scope.
Guided onboarding
A stepper sets up the business, assistant, phone number, and email sender, then drops new owners into a ready-to-use dashboard.
A conversation that actually confirms the details
Night Watcher doesn't just deflect calls — it talks. It greets callers by your business name, collects what you need, reads the phone number back digit by digit, and repeats everything for a final confirmation before saving the lead. No fumbled numbers, no half-captured leads.
- Greets with your business name
- Confirms the phone number digit by digit
- Repeats all details before saving
- Saves the lead and tells the caller you'll follow up
From dial to booked lead, automatically
A caller dials
Vapi answers on your provisioned inbound number with your configured voice, greeting the caller by your business name.
Details captured
It collects the caller's name, DOB, and phone conversationally, reads the number back, and repeats everything for confirmation.
Lead saved & verified
On confirmation the signed webhook is verified and the lead is written idempotently — Vapi retries collapse to a single row.
You're notified
A Gmail notification hits your inbox with the caller's details and a link to the full call, transcript, recording, and summary.
A realtime dashboard for every call & lead
KPIs, transcripts, recordings, and leads stream in the instant a call ends — and email lands in the owner's inbox.
Everything from one call, in one place
Open any call for its started time, duration, cost, end reason, an audio recording player, an AI summary with sentiment, and the full turn-by-turn transcript — with the lead it captured attached.
The owner's email, the moment it ends
Live in four guided steps
New owners are routed through a stepper that configures the business, assistant, phone number, and email sender before first use.
Engineered for production from day one
RLS tenant isolation
Every domain table enforces row-level security via a current_org_id() helper, so tenants can only ever read their own calls, leads, and analytics.
Per-assistant secrets
Each assistant carries its own server-generated 256-bit webhook secret on a unique URL path, so a leaked key only ever affects one business.
HMAC-verified webhooks
Every Vapi callback is authenticated by HMAC-SHA256 of the raw body or a shared secret header, always compared with constant-time timingSafeEqual.
Idempotent capture
A partial unique index on (call_id, tool_call_id) with explicit race recovery prevents duplicate leads and duplicate emails.
Rate limiting
Postgres fixed-window counters throttle webhook and tool traffic per tenant, per IP, and per call — and fall open on transport errors.
Audit & observability
Every config mutation is recorded in a per-workspace audit log, with Sentry error capture and PostHog analytics across server and browser.
Night Watcher questions
What does the assistant actually do on a call?
How do I get a phone number?
Will I get duplicate leads if Vapi retries?
Can notifications come from my own email address?
Can I upload my own documents for the assistant?
Give your business a receptionist that never sleeps
Provision a number, pick a voice, and go live. Book a demo and hear a real AI booking call on your own scenario.