Skip to main content
An AI receptionist on PyAI is one Omni session: the caller speaks, the agent hears, reasons, answers from your knowledge base, takes actions through your tools (book the appointment, look up the order), and speaks back at human conversational pace. There is no speech-to-text plus LLM plus text-to-speech pipeline to assemble; Omni is all of it in one model, over one WebSocket. You can go from API key to a live, ringing phone call in minutes. If you want a managed answering service with human agents backing up the AI (Smith.ai, Ruby, and similar), buy that instead. Build on PyAI when the receptionist is part of your product or your own front desk, when you want it answering from your knowledge base and booking into your systems, and when per-minute usage pricing beats per-call or per-seat service fees.

What you’re building

The PyAI stack for this build

Build order

1

Get a key and say hello

An instant sandbox key includes the omni:session scope. Open the socket and send one configure frame with a voice and a persona; the browser voice agent guide gets you talking to it from your machine in about ten minutes.
2

Give it your business knowledge

Point kb_endpoint at your own HTTP endpoint (hours, pricing, policies, FAQs) and Omni grounds its answers in it per turn. The session_label on the connect URL is echoed to your endpoint so you can branch per business or location.
3

Wire booking and lookups as tools

Declare functions in the configure frame (check availability, book a slot, look up an account); PyAI calls your signed webhook when the agent invokes one. Hosted tools (web search, datetime, math, and more) need no setup at all. See the Omni tools guide.
4

Set the greeting and the rules of escalation

Store greeting and consent_line on an agent profile so every call opens correctly and discloses recording. Decide when the agent hands off: transfer_to_human is built into the engine. The agent greeting guide covers profiles.
5

Put a phone number on it

Provision a managed number and route it to the agent, or point your existing Twilio trunk at the same session. This is the moment the phone actually rings.
6

Watch every call

Recap summarizes each call when it ends; Trace scores it against compliance packs. Both are in the console with no extra wiring.
No code? Agents Beta builds the same receptionist from the console: configure, test, and connect a number without writing the WebSocket client yourself.

FAQ

Can a PyAI receptionist book into my calendar or CRM?

Yes. Declare a booking function in the session’s tools and PyAI calls your signed webhook when the agent invokes it, so the agent can check real availability and write real appointments into any system you can reach over HTTP.

What happens when the agent does not know an answer?

You control the fallback in the persona and tools: offer to take a message, or transfer to a human with the built-in transfer_to_human call control. Trace and Recap records let you review every call where it happened.

Do I need to replace my existing phone system?

No. You can keep your current carrier or Twilio trunk and forward to a PyAI managed number, or port numbers over. Managed telephony is billed separately from the Omni session minutes.

How much does an AI receptionist cost on PyAI?

Everything is per-minute usage: the Omni session, plus managed telephony minutes if PyAI carries the call. No seats, no per-call service fees. Current rates are on the pricing page.

Start building

Get an instant sandbox key and follow the Twilio voice agent guide to make a real phone ring, or open Agents Beta and build it in the console.