Overview
Theai_assistant_start command lets you attach a pre-configured AI assistant to an active call. The assistant takes over the conversation, handles speech recognition, and responds using a voice of your choice — no additional infrastructure required.
This is different from Gather using AI, which is purpose-built for collecting structured data. ai_assistant_start is for open-ended, conversational AI experiences.
Prerequisites
- A Telnyx account with an active call in progress. Follow the Voice API getting started guide if you haven’t set that up.
- An AI assistant. You can create one:
- No-code via the Portal: AI Assistants guide
- Via the API: Create an assistant
id (format: assistant-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
Start an AI Assistant on a Call
Send aPOST request to ai_assistant_start with the call_control_id of the active call:
Webhooks
Once started, the assistant emits the following webhooks:| Event | Description |
|---|---|
call.conversation.ended | The AI conversation has ended |
call.conversation_insights.generated | Conversation summary and insights are available |
Stop the Assistant
To stop the assistant and return control to your application:Add a Participant to an Existing Conversation
Once an AI assistant conversation is running, you can bring additional call legs into it usingai_assistant_join. For example, you can dial out to a new destination, wait for the person to answer, then add them to the ongoing conversation.
Prerequisites
- An active AI assistant conversation with a known
conversation_id. Theconversation_idis returned in the200response ofai_assistant_start.
Example: Dial a new participant and add them to the conversation
Step 1 — Dial the new destination:call_control_id for the outbound leg.
Step 2 — Wait for the call.answered webhook:
When Telnyx sends a call.answered event for the new call leg, extract its call_control_id.
Step 3 — Add the participant to the conversation:
Join the Conversation
Once you have the newcall_control_id:
id must be the call_control_id of the call being added. The only supported role is "user".
Optional Participant Fields
| Field | Type | Description |
|---|---|---|
name | string | Display name for the participant |
on_hangup | string | What happens when this participant hangs up: "continue_conversation" (default) or "end_conversation" |
Next Steps
- Explore the full AI Assistant API reference
- Configure your assistant in the Portal
- Collect structured data mid-call with Gather using AI