title | sidebarTitle | description |
---|---|---|
Configuring Inbound and Outbound Calls for Squads |
Example |
Configuring assistants for inbound/outbound calls. |
This guide details how to set up and manage inbound and outbound call functionality within Squads, leveraging AI assistants.
- Transient Assistant: A temporary assistant configuration passed directly in the request payload.
- Assistant ID: A unique identifier referring to a pre-existing assistant configuration.
When using Assistant IDs, ensure the name
property in the payload matches the associated assistant's name accurately.
When your server receives a request of type assistant-request
, respond with a JSON payload structured as follows:
{
"squad": {
"members": [
{
"assistant": {
"name": "Emma",
"model": { "model": "gpt-4o", "provider": "openai" },
"voice": { "voiceId": "emma", "provider": "azure" },
"transcriber": { "provider": "deepgram" },
"firstMessage": "Hi, I am Emma, what is your name?",
"firstMessageMode": "assistant-speaks-first"
},
"assistantDestinations": [
{
"type": "assistant",
"assistantName": "Mary",
"message": "Please hold on while I transfer you to our appointment booking assistant Mary.",
"description": "Transfer the user to the appointment booking assistant."
}
]
},
{
"assistantId": "your-assistant-id"
}
]
}
}
In this example:
- The first
members
entry is a transient assistant (full configuration provided). - The second
members
entry uses an Assistant ID. assistantDestinations
defines how to transfer the call to another assistant.
To initiate an outbound call, send a POST request to the API endpoint /call/phone with a JSON payload structured as follows:
{
"squad": {
"members": [
{
"assistant": {
"name": "Emma",
"model": { "model": "gpt-4o", "provider": "openai" },
"voice": { "voiceId": "emma", "provider": "azure" },
"transcriber": { "provider": "deepgram" },
"firstMessage": "Hi, I am Emma, what is your name?",
"firstMessageMode": "assistant-speaks-first"
},
"assistantDestinations": [
{
"type": "assistant",
"assistantName": "Mary",
"message": "Please hold on while I transfer you to our appointment booking assistant Mary.",
"description": "Transfer the user to the appointment booking assistant."
}
]
},
{
"assistantId": "your-assistant-id"
}
]
},
"customer": {
"number": "your-phone-number"
},
"phoneNumberId": "your-phone-number-id"
}
Key points:
customer.number
is the phone number to call.phoneNumberId
is a unique identifier for the phone number (obtain this from your provider).