An AI phone receptionist / virtual receptionist that answers calls 24/7, books appointments, takes restaurant orders, answers FAQs, and speaks 8+ languages β built with Claude, Twilio Voice and Next.js.
AI receptionist Β· voice agent Β· answering service Β· appointment booking bot Β· phone order automation Β· conversational IVR replacement
AIVA is a complete, self-hostable AI voice agent (think: AI answering service / AI front desk) for small businesses β clinics, salons, restaurants and hotels. A caller dials your number; AIVA answers in under a second, holds a natural conversation in the caller's language, and actually finishes the job: it books the appointment, takes the order, answers the question, or hands off to a human with full context.
Unlike a phone tree or IVR, there are no menus. Unlike most "AI receptionist" SaaS products, AIVA is open source, runs on your own infrastructure, and configures itself from a plain-English description of your business.
| Capability | What it does |
|---|---|
| π 24/7 call answering | Twilio Voice webhook β Claude conversation loop β natural spoken replies |
| π Appointment booking | Live availability checks, proactive free-slot suggestions, double-booking protection, SMS confirmations |
| π½οΈ Phone orders | Item-by-item capture validated against the live menu β no $0 mystery items, accurate totals |
| β FAQ answering | Answers from your business knowledge base; never invents prices or policies |
| π 8+ languages | Detects the caller's language mid-sentence and switches voice + speech recognition to match (English, Hindi, Spanish, French, German, Italian, Portuguese, Japanese) |
| π§ Post-call intelligence | Every call auto-analyzed: summary, sentiment, intent, resolution, staff action items, upsell opportunities |
| π Caller memory | Recognizes returning customers by number β greets them by name, knows their history |
| β¨ AI self-onboarding | Describe your business in a paragraph; Claude generates the entire receptionist configuration |
| π€ AI business reports | Aggregate reasoning across all calls: trends, risks, concrete revenue recommendations |
| β Action item queue | Callback requests and follow-ups become a live staff task list |
| π¬ SMS layer | Instant booking confirmations + a cron-able next-day reminder engine with dedup |
| π Analytics dashboard | Automation rate, sentiment, intents, languages, peak hours, upsell radar |
| π οΈ Live knowledge editing | Change services/FAQs in the dashboard; AIVA knows on the very next call |
| AIVA | Traditional IVR | Human answering service | Voicemail | |
|---|---|---|---|---|
| Answers instantly, 24/7 | β | β | β | |
| Natural conversation | β | β press 1β¦ | β | β |
| Books & orders end-to-end | β | β | β | |
| Speaks caller's language | β 8+ | β | β | |
| Remembers returning callers | β | β | β | β |
| Per-call analytics & sentiment | β | β | β | β |
| Cost | Free (MIT) β self-host | $$ | $$$$ | lost revenue |
git clone https://github.com/7XLabs/aiva.git
cd aiva
npm install
cp .env.example .env.local # add your ANTHROPIC_API_KEY
npm run devOpen http://localhost:3000 β then:
- / β product landing page
- /onboard β describe your business, get a working receptionist
- /demo β talk to AIVA in your browser (mic or keyboard); hang up to see post-call intelligence
- /dashboard β calls, appointments, orders, action items, analytics, knowledge editor
To connect a real phone number, see DEPLOYMENT.md.
Caller βββΆ Twilio Voice βββΆ /api/voice/incoming (greeting + <Gather> speech)
ββββΆ /api/voice/respond (speech β Claude β TwiML reply)
β
βΌ
lib/agent β Claude Opus 4.8 tool loop
ββ check_availability ββ find_free_slots
ββ book_appointment ββ take_order
ββ set_language ββ request_callback
ββ transfer_to_human
β
βΌ
lib/insights β post-call analysis (structured output)
lib/digest β cross-call business reports
β
βΌ
/dashboard β live operations view
The agent runs a bounded tool-use loop with server-side guardrails: bookings re-verify slot availability at write time, orders are validated against the live menu, out-of-hours and past-date requests are rejected with corrective feedback the model uses to recover β the model is never trusted to have validated anything.
app/
page.tsx # landing page
onboard/ # AI self-onboarding wizard
demo/ # in-browser voice demo (Web Speech API)
dashboard/ # overview, calls, appointments, orders, tasks, analytics, knowledge
api/chat # demo conversation endpoint
api/voice/* # Twilio webhooks
api/digest # AI business report
api/reminders/run # SMS reminder cron endpoint
lib/
agent/ # Claude brain: prompt, tools, hardened loop
insights.ts # post-call intelligence
digest.ts # cross-call aggregate reports
callerMemory.ts # returning-caller recognition
slots.ts # hours-aware free-slot computation
db.ts # JSON file store (swap for a DB in prod)
- Calendar sync (Google Calendar / Cal.com)
- Realtime voice (streaming STT/TTS) for sub-second turnarounds
- WhatsApp & web-chat channels sharing the same brain
- Postgres adapter
- Outbound campaigns (reminder & win-back calls)
- API reference β every endpoint and agent tool
- Architecture β how the pieces fit and why
- FAQ β common questions
- Deployment β Vercel + Twilio setup
- Changelog
npm test # unit tests (agent guardrails, scheduling, TwiML, i18n)
npm run typecheck # strict TypeScript
npm run build # production build
npm run doctor # check which integrations are configured
npm run seed:demo # fill the dashboard with realistic demo data
npm run eval # live agent behavior evals (needs ANTHROPIC_API_KEY)CI runs typecheck, tests and build on every push.
PRs welcome β see CONTRIBUTING.md.
MIT Β© 7XLabs