Skip to content

easypippin/voxpilot

Repository files navigation

VoxPilot

AI-powered cold calling platform. SaaS multi-tenant + turnkey deployment.

What is VoxPilot?

VoxPilot automates outbound cold calling using AI voice agents. Each tenant gets their own workspace with campaigns, prospect lists, call scripts, and analytics. The bot handles the entire call flow — greeting, qualification, pitch, objection handling, and closing — with natural conversation and real-time interruption handling.

Key Features

  • Multi-tenant SaaS — sign up, configure providers, run campaigns
  • 3 telephony providers — Telnyx ($0.005/min), Twilio, Plivo
  • 3 LLM providers — Ollama (local/free), OpenAI, Anthropic
  • 2 STT providers — Whisper (local/free), Deepgram (cloud)
  • 2 TTS providers — XTTS (local/free), ElevenLabs (cloud)
  • Campaign management — scheduling, pacing, retry logic, concurrent call limits
  • Prospect qualification — weighted scoring with configurable criteria
  • Objection handling — pattern-matched responses, customizable per script
  • Conversation stages — Greeting → Qualification → Pitch → Objection Handling → Closing
  • Real-time interruption handling — bot stops talking when caller speaks
  • Call analytics — success rates, duration, outcomes, objection tracking
  • CSV prospect import — bulk upload lead lists
  • API-first — full REST API with JWT + API key auth

Quick Start

Docker (recommended)

cp .env.example .env
# Edit .env with your secrets and provider keys

docker compose up -d

This starts: API server (:8000), Celery worker, PostgreSQL, Redis.

Local Development

# Prerequisites: Python 3.10+, PostgreSQL, Redis

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

# Start PostgreSQL and Redis (or use Docker for just those)
docker compose up -d postgres redis

# Run migrations
alembic upgrade head

# Start API server
uvicorn voxpilot.main:app --reload --port 8000

# Start worker (in another terminal)
celery -A voxpilot.worker.celery_app worker -l info

API Usage

1. Sign up

curl -X POST http://localhost:8000/api/v1/auth/signup \
  -H "Content-Type: application/json" \
  -d '{"email": "you@company.com", "password": "secure123", "full_name": "Your Name", "company_name": "Acme Inc"}'

Returns access_token — use as Authorization: Bearer <token> for all subsequent requests.

2. Configure telephony provider

curl -X POST http://localhost:8000/api/v1/tenants/me/provider-configs \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"provider_type": "telephony", "provider_name": "telnyx", "config": {"api_key": "your-telnyx-key"}}'

3. Create a call script

curl -X POST http://localhost:8000/api/v1/scripts/ \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Solar Sales Q2",
    "system_prompt": "You are Alex, a professional solar energy consultant...",
    "greeting_message": "Hi! This is Alex from Green Energy Solutions."
  }'

4. Create a campaign

curl -X POST http://localhost:8000/api/v1/campaigns/ \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Q2 Solar Push", "script_id": "<script-id>", "caller_id": "+15551234567"}'

5. Import prospects

curl -X POST http://localhost:8000/api/v1/prospects/import \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@prospects.csv" \
  -F "campaign_id=<campaign-id>"

CSV format: phone_number,first_name,last_name,email,company,timezone

6. Start the campaign

curl -X POST http://localhost:8000/api/v1/campaigns/<campaign-id>/start \
  -H "Authorization: Bearer $TOKEN"

7. View analytics

curl http://localhost:8000/api/v1/analytics/overview?days=30 \
  -H "Authorization: Bearer $TOKEN"

API Endpoints

Method Path Description
POST /api/v1/auth/signup Create tenant + user
POST /api/v1/auth/login Get JWT tokens
POST /api/v1/auth/api-keys Create API key
GET/PATCH /api/v1/tenants/me Tenant profile
POST /api/v1/tenants/me/provider-configs Configure providers
CRUD /api/v1/scripts/ Call scripts
CRUD /api/v1/campaigns/ Campaigns
POST /api/v1/campaigns/{id}/start Start campaign
CRUD /api/v1/prospects/ Prospects
POST /api/v1/prospects/import CSV import
POST /api/v1/calls/initiate Ad-hoc call
GET /api/v1/calls/{id}/transcript Call transcript
GET /api/v1/analytics/overview Tenant analytics
GET /api/v1/analytics/campaigns/{id} Campaign analytics

Architecture

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   Telnyx     │     │   Twilio     │     │    Plivo     │
│   Twilio     │────▶│  Webhooks    │────▶│  WebSocket   │
│   Plivo      │     │  /webhooks/* │     │  /ws/{id}    │
└──────────────┘     └──────┬───────┘     └──────┬───────┘
                            │                     │
                     ┌──────▼─────────────────────▼──────┐
                     │          BotEngine                  │
                     │  ┌─────────────────────────────┐   │
                     │  │    Pipecat Pipeline          │   │
                     │  │  STT → ConversationMgr →    │   │
                     │  │  LLM → TTS → Interruption   │   │
                     │  └─────────────────────────────┘   │
                     └──────────────┬──────────────────────┘
                                    │
              ┌─────────────────────┼─────────────────────┐
              │                     │                     │
       ┌──────▼──────┐     ┌───────▼──────┐     ┌───────▼──────┐
       │  PostgreSQL  │     │    Redis     │     │   Celery     │
       │  (tenants,   │     │  (rate limit │     │  (campaign   │
       │   calls...)  │     │   + broker)  │     │   dialer)    │
       └─────────────┘     └──────────────┘     └──────────────┘

Provider Support

Type Provider Cost Notes
Telephony Telnyx $0.005/min Recommended
Telephony Twilio $0.02+/min Higher cost
Telephony Plivo ~$0.01/min Mid-range
LLM Ollama Free Local, requires GPU
LLM OpenAI ~$0.01/call GPT-4.1
LLM Anthropic ~$0.01/call Claude Sonnet
STT Whisper Free Local
STT Deepgram $0.0043/min Cloud, low latency
TTS XTTS Free Local
TTS ElevenLabs $0.18/1K chars Premium voices

Cost Estimate

Minimum (all local): ~$5-20/month (telephony only) Cloud stack: ~$50-100/month for 1000 calls

Roadmap

  • XMTP messaging channel (post-call follow-up)
  • Dashboard web UI
  • CRM integrations (HubSpot, Salesforce)
  • A/B testing for scripts
  • Call recording + playback
  • Webhook notifications for call outcomes
  • Multi-language support

License

MIT

About

AI-powered cold calling platform — SaaS & turnkey

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages