POST /v1/agents) and connect with session_label={agent_id}; the engine
loads persona, voice, and greeting from that profile.
Greeting playback is live on Omni Ultra (2026-06-24). The same field works
inline in a post-handshake
configure frame if you are not using agent profiles.Console (recommended)
Create or open an agent
In console.pyai.com → Agents → New agent
or open an existing profile.
Set the greeting message
Under Persona & Voice, fill in Greeting message — e.g.Pick a voice on the same tab. Save changes.
Test in the browser
Click Test greeting on the same tab. The console opens a short Omni
session with your agent profile and plays turn-0 audio in your speakers.
Recording disclosure (consent line)
When Record calls is enabled, set a Recording disclosure on the same tab. The engine speaks the consent line before recording starts, then plays your greeting. Required for TCPA-style compliance when capturing audio.API
Create or update an agent withgreeting (and optional voice_id):
Inline configure (no agent profile)
If you connect without session_label, pass greeting in the first
configure frame after the WebSocket opens:
configure surface.
Pre-roll alternative (client-side TTS)
Before native greeting shipped, apps synthesized the opening line with Speak and played it locally. That pattern still works but is optional now — prefer the nativegreeting field for one billing line and simpler wiring. Details:
Browser voice agent — Make the agent speak first.
Related
Browser voice agent
Full browser Omni walkthrough.
Twilio phone agent
Greeting on inbound PSTN calls.
Omni protocol
greeting, consent_line, and configure frames.Post-call extraction
Capture structured data after the greeting call.