Features
Everything in the box
A short tour of what’s wired and shipping today. If it’s on this page, you can use it.
01
The voice loop
Every conversation runs end-to-end inside a single process: Twilio Media Streams in, Claude in the middle, ElevenLabs out. No queues, no buffering tricks.
Real-time STT (Deepgram)
µ-law 8 kHz streams transcribed with sub-300ms endpointing. Interim results power barge-in detection.
Claude-powered turn taking
Streaming Claude responses (Sonnet 4.6 by default) are chunked by sentence and spoken as soon as the first clause lands.
ElevenLabs TTS
Streamed ulaw_8000 synthesis with low-latency settings, framed at 20ms and piped to Twilio without buffering.
Barge-in handling
When the caller starts speaking again, the current reply is aborted mid-sentence and the conversation continues naturally.
02
Agent builder
Every agent is a small, inspectable config — not a model fork or a hidden setting.
System prompt + greeting
Edit the greeting the caller hears first and the system prompt the model follows. Iterate without redeploying.
Voice selection
Drop in any ElevenLabs voice ID per agent. Different teams, different voices, same dashboard.
Direction + max duration
Choose inbound, outbound, or both. Cap call duration to keep cost predictable and bail out of stuck conversations.
Number provisioning
Bind a Twilio number to an agent from the API; the voice webhook is configured automatically.
03
Telephony
Real numbers, real PSTN, real recordings.
Inbound + outbound
Inbound calls hit the agent immediately. Outbound calls launch from campaigns with a configurable from-number.
Outbound campaigns
Upload a CSV of leads, set concurrency, hit Start. An in-process dialer paces the calls and reports live status.
Call lifecycle tracking
Every Twilio status callback (initiated, ringing, answered, completed, busy, no-answer, failed) is reflected in the dashboard.
Transcripts and outcomes
Each call persists the full transcript, duration, outcome, and Twilio Call SID for forensic replay.
04
Integrations
Connect what you already use. Get out of the way for what you don't.
Google Calendar OAuth
One-click connect. Refresh tokens are AES-256-GCM encrypted at rest. Disconnect any time.
Outbound webhooks
POST signed payloads to your URLs on call.ended, call.failed, and campaign.completed. HMAC-SHA256, timestamp + version in the header.
Per-event filtering
Subscribe each webhook to specific events, or leave it open to fire on everything.
Replay-resistant signatures
x-receptionist-signature: t=…,v1=… so consumers can reject anything older than their tolerance window.
05
Operations and compliance
Multi-tenant from day one, with the legal and operational scaffolding a production phone-call product actually needs.
Multi-tenant organizations
Users → Organizations → Memberships. Switch workspaces from the dashboard header; data is scoped per-org.
Usage metering
Every call's duration becomes a UsageRecord. Per-period caps stop calls when a free or starter plan is exhausted.
Encryption at rest
OAuth refresh tokens and webhook secrets are encrypted with a server-side key. Database column types are sized for it.
Stripe billing
Checkout + Customer Portal + signature-verified webhooks. Subscription state, tier, and period are tracked locally.
Want to see it talk?
Sign up free and have a working agent on a real Twilio number in under five minutes.