Voice AI product
AI Voice Receptionist
Zallo Receptionist—multi-tenant AI phone agent with NestJS APIs, Supabase, Vapi/Twilio, Stripe billing, and dual Next.js portals.

The challenge
SMBs needed always-on inbound call handling that books and answers from real business data—while a platform team needed safe multi-tenant onboarding, billing, and ops tooling. Without a coherent voice ai product foundation, AI Voice Receptionist stakeholders faced fragmented tools, slow handoffs, and limited visibility—classic failure modes Tekvers designs against.
The solution
AI Voice Receptionist: Zallo Receptionist—multi-tenant AI phone agent with NestJS APIs, Supabase, Vapi/Twilio, Stripe billing, and dual Next.js portals. Always-on front-desk model that books against real availability and FAQs. Tekvers delivered a maintainable voice ai product system for AI Voice Receptionist using NestJS, Next.js, Supabase, TypeScript, with phased rollout, operator workflows, and documentation suited to long-term ownership.
Approach
Tenant isolation & dual surfaces
Platform users (`platform_users`) manage tenants, phone numbers, applications, billing catalog, and voice-ops via admin-api/portal. Tenant members use client-api/portal with granular permissions for calendar, CRM, FAQs, calls, team, and branding—statuses spanning onboarding / active / suspended.
Voice tool-calling against live data
Inbound Twilio/Vapi calls hit `POST /api/webhooks/vapi`. The API resolves the tenant by phone number, builds per-tenant assistant config (`VapiAssistantBuilder`), and executes tools: `listServices`, `listProviders`, `checkAvailability`, `bookAppointment`, `findAppointments`, `cancelAppointment`, `rescheduleAppointment`, `searchFaqs`, plus transfer/unavailable handling. End-of-call reports persist transcripts and outcomes.
Billing, CRM, and suite-ready modules
Stripe plans/features/addons with tenant checkout and customer portal; contacts with import/export, tags, segments, and lead stages; public booking links; Google/Microsoft calendar OAuth connectors; marketing site apply → `POST /api/public/tenant-applications`.
Deliverables
- ▸Multi-tenant admin-api + client-api (NestJS 11 CQRS) with documented route catalog
- ▸Admin and client Next.js portals for platform ops and tenant configuration
- ▸Supabase PostgreSQL schema with Auth JWT and RLS policies
- ▸Vapi webhook pipeline with dynamic per-tenant assistant and booking/FAQ tools
- ▸Twilio SMS/voicemail webhook paths and phone-number assignment flows
- ▸Stripe subscription catalog, entitlements, and tenant self-serve sessions
- ▸CRM, scheduling, FAQ knowledge base, SMS/email, API keys, and webhooks modules
- ▸Docker Compose + Caddy deploy path; marketing site with apply/pricing/industries
Outcomes
- ▸Always-on front-desk model that books against real availability and FAQs
- ▸Centralized tenant lifecycle for platform operators (applications → phones → active)
- ▸Monetization path via Stripe plans and feature entitlements
- ▸Clear SKU boundary: Receptionist compose stack vs sibling ERP code in-repo
Impact
Businesses stop losing inbound demand to missed calls—Zallo Receptionist handles the first conversation with tool-backed booking and FAQ answers, while humans take over on transfer. Platform teams run many tenants from one Tekvers-built multi-tenant voice product.
Tech stack
Want something similar?
I build production systems like AI Voice Receptionist—from architecture through launch. Tell me what you need.
Contact me →