customers
All customer stories
Top Voice AI companies are building with Assembly.
resources
Latest Release
Voice Agent API
Voice agents that get it right, respond instantly, and ship the same day with our new Voice Agent API
resources
Replace hold music with instant answers. AI voice agents handle appointment scheduling, caller routing, intake forms, and FAQs — so your front desk team focuses on the patients, clients, and customers who walk through the door.
Front desk agent
4 calls handledMaria Jensen
Reschedule cleaning — Tue 2pm
David Kim
Insurance verification question
Rachel Park
New patient intake — Dr. Patel
Tom Walsh
Confirm Fri appointment + directions
The average medical or professional office misses 30% of inbound calls. Patients and clients hit voicemail, hang up, and book with the competitor. Staff juggle ringing phones, walk-ins, and paperwork — leading to scheduling errors, long hold times, and burned-out receptionists. Every unanswered call is a missed appointment, missed revenue, and a worse first impression. AssemblyAI gives every office an always-on AI front desk.
End-to-end response — callers never wait on hold.
Better alphanumeric accuracy on names, dates, phone numbers, and insurance IDs.
Always-on for nights, weekends, holidays, and after-hours overflow.
No busy signals, no hold queues — every caller answered on the first ring.
Two ways to build
Ship a working front-desk agent in an afternoon, or drop best-in-class streaming STT into your existing PBX or IVR.
Our proprietary voice stack via one WebSocket. Run a managed front-desk agent that schedules, routes, and answers — zero infra to manage, ship in a single afternoon.
Best for
Free tier available · No credit card required
Drop best-in-class speech recognition into your existing PBX or IVR stack. Bring your own LLM and TTS for full control over routing logic and voice.
Best for
No concurrency caps · Autoscaling included
Caller reaches the voice agent instantly
No hold queue, no phone tree. The agent greets by name when caller ID matches your records, asks how it can help, and starts the conversation in under a second.
Transcribed with name and date accuracy
Universal-3 Pro Streaming nails proper nouns, insurance IDs, phone numbers, and appointment times — 43% fewer alphanumeric errors than alternatives. No more callbacks to verify what the caller said.
Agent takes action via tool calling
Books or reschedules appointments, routes to the right department, verifies insurance, or collects new patient intake — all mid-conversation through JSON Schema function calls.
Confirms and follows up automatically
Reads back the appointment details, sends an SMS confirmation, and pushes the structured record to the EHR, practice management system, or CRM — without staff lifting a finger.
Front desk pipeline
Caller reaches the voice agent instantly
Transcribe with name + date accuracy
Take action via tool calling
Confirm + follow up automatically
Voice Agent API — front desk agent for a medical practice
# Voice Agent API: front desk agent for a medical practice
import asyncio, json, websockets
API_KEY = "YOUR_API_KEY"
async def run_front_desk():
async with websockets.connect(
"wss://agents.assemblyai.com/v1/ws",
additional_headers={"Authorization": f"Bearer {API_KEY}"},
) as ws:
await ws.send(json.dumps({
"type": "session.update",
"session": {
"system_prompt": (
"You are the front desk agent for Lakewood Family Practice. "
"Schedule, reschedule, and cancel appointments. Route urgent "
"calls to on-call staff. Collect new-patient info: name, DOB, "
"insurance, reason for visit. Always confirm details before "
"booking. Never give medical advice."
),
"greeting": "Thanks for calling Lakewood Family Practice — how can I help?",
"input": {"keyterms": ["Dr. Patel", "panoramic x-ray", "deep cleaning", "Lakewood office", "Downtown office"]},
"output": {"voice": "ivy"},
"tools": [{
"type": "function",
"name": "book_appointment",
"description": "Book an appointment in the practice management system.",
"parameters": {
"type": "object",
"properties": {
"patient_name": {"type": "string"},
"dob": {"type": "string"},
"provider": {"type": "string"},
"appointment_time": {"type": "string"},
"reason": {"type": "string"},
},
"required": ["patient_name", "appointment_time"],
},
}],
},
}))
async for msg in ws:
handle(json.loads(msg)) # transcript.user, reply.audio, tool.call, ...
LiveKit + Universal-3 Pro Streaming — multi-location routing
# LiveKit + AssemblyAI Universal-3 Pro Streaming: multi-location routing
from livekit.agents import Agent, AgentSession, TurnHandlingOptions
from livekit.plugins import assemblyai, cartesia, openai, silero
from livekit.plugins.turn_detector.multilingual import MultilingualModel
class FrontDeskAgent(Agent):
def __init__(self):
super().__init__(
instructions=(
"You are a front desk receptionist for a multi-location dental "
"group. Identify which office the caller needs. Check availability "
"across all locations. Book appointments, collect insurance details, "
"and route complex billing questions to the office manager."
),
)
async def entrypoint(ctx):
session = AgentSession(
stt=assemblyai.STT(
model="u3-rt-pro",
keyterms_prompt=["Dr. Patel", "panoramic x-ray", "deep cleaning",
"Lakewood office", "Downtown office"],
),
llm=openai.LLM(model="gpt-4o"),
tts=cartesia.TTS(),
vad=silero.VAD.load(activation_threshold=0.3),
turn_handling=TurnHandlingOptions(
turn_detection=MultilingualModel(),
endpointing={"min_delay": 0.5, "max_delay": 3.0},
),
)
await session.start(room=ctx.room, agent=FrontDeskAgent())
Universal-3 Pro captures dates, times, provider names, and insurance IDs with 43% fewer alphanumeric errors than alternatives — no more "was that the 13th or the 30th?" callbacks. Keyterm prompting boosts recognition of your provider list and procedure vocabulary.
Book appointments, check provider availability, verify insurance, and route calls — all through JSON Schema function calls that execute mid-conversation without dropping the caller. Native integrations with LiveKit, Pipecat, Twilio, and standard WebSocket clients.
Universal-3 Pro Streaming has unlimited concurrency at $0.45/hr per stream — no busy signals, no hold queues. Auto-scales for Monday morning rushes, lunch-hour spikes, and after-hours volume so every caller gets answered on the first ring.
Calabrio replaced its legacy on-premise transcription solution with AssemblyAI's API, gaining extensive language support to power its enterprise workforce and conversation intelligence platform across global markets.
Calabrio
Aloware's AloAi Voice Analytics platform processes 200 million calls and texts on AssemblyAI's API — converting half its client base to AI-powered packages and lifting lead-to-close rate by 27%.
Aloware
Read more