Voice calling agent

A multi-tenant agent that answers inbound calls and runs outbound campaigns to book appointments, in English and Hindi.

Architecture and build: API, queue workers, post-call processing, dashboard.

Dashboard

A Next.js dashboard for onboarding, campaign setup, contact upload and call logs.

Core API

Fastify and TypeScript: clients, campaigns, contacts, and the webhook that receives every call event. API keys for programs, sessions for dashboard users.

Store

PostgreSQL with five tables: clients, campaigns, contacts, calls and appointments.

Queues

BullMQ on Redis, one queue per concern: outbound calls, post-call processing and notifications.

Voice layer

Vapi handles speech in both directions and calls back into the API for the calendar tools.

Post-call processor

Turns the call-ended event into a stored transcript, an outcome, an email and a webhook call.