Warm transfer voice
# support
l
{ "id": "404ae753-590b-4b9c-aa48-3125451d17b9", "createdAt": "2026-02-24T14:44:42.203Z", "updatedAt": "2026-03-12T11:54:10.660Z", "type": "transferCall", "function": { "name": "transfer_call_tool", "description": "Transfere para o humano, passando as informacoes coletadas ate o momento, como nome de loja, se é para entrega, produtos, dados relevantes mas que nao envolvam processos tecnicos, como ID das coisas" }, "messages": [ { "type": "request-start", "blocking": false } ], "orgId": "e652a0e8-76d6-4b92-9d0b-b6223ee34c06", "async": false, "destinations": [ { "type": "number", "number": "+5567996296060", "transferPlan": { "mode": "warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary", "sipVerb": "refer", "timeout": 50, "summaryPlan": { "enabled": true, "messages": [ { "role": "system", "content": "Você vai fazer um warm transfer para um atendente humano. Gere um resumo curto e objetivo em PT-BR (máx 6 bullets) com: motivo do contato, itens/pedido, endereço/entrega (se houver), urgência, e o que o cliente quer agora." }, { "role": "user", "content": "Transcrição da conversa (pode estar truncada):\n\n{{transcript}}\n\nSe a transcrição estiver vazia, use apenas o contexto disponível da conversa para resumir." } ], "timeoutSeconds": 20, "useAssistantLlm": true } }, "numberE164CheckEnabled": true } ] } This does have a default voice, how can i change it? Im on vapi dashboard
c
Hi there 👋 We’ll take a look at your setup as soon as we can. While you wait, you might find these resources helpful: • ⚙ [Configuration guide for assistant-based warm transfers](https://docs.vapi.ai/calls/assistant-based-warm-transfer#configuration) • 📘 [Full documentation for creating or updating a TransferCallTool](https://docs.vapi.ai/api-reference/tools/create#request.body.TransferCallTool) If you’re running into a specific issue, please include your Call ID (if you haven’t already) so we can investigate!
v
To change the warm transfer summary voice, update your
summaryPlan
in the transfer tool configuration by adding a
voice
property and setting
useAssistantLlm
to
false
. For example:
Copy code
json
"summaryPlan": {
  "enabled": true,
  "voice": {
    "provider": "azure",
    "voiceId": "pt-BR-FranciscaNeural"
  },
  "messages": [ /* your messages */ ],
  "timeoutSeconds": 20,
  "useAssistantLlm": false
}
This will use the specified voice for the summary instead of the default assistant voice. Sources: - [Vapi Workflows Overview](https://docs.vapi.ai/workflows/overview) - [Vapi Voices](https://docs.vapi.ai/providers/voice/vapi-voices) - [Custom Voices](https://docs.vapi.ai/customization/custom-voices/custom-voice)
r
That config is only for the transfer tool, so the voice isn’t set there. The default voice usually comes from the assistant voice settings in your Vapi dashboard. You can just open the assistant config and change the voice field to the one you want. Are you setting up the assistant directly in the dashboard or through the API? @Luiz Fernando Seibel Carrilho
l
Directly on the dashboard
r
Got it. Since you’re setting it up directly in the dashboard, the voice is controlled at the Assistant level, not in the transfer tool. Just open your Assistant settings and change the voice there, and it should apply to the transfer summary as well. If it doesn’t update, it’s usually because a fallback voice is set somewhere in the assistant config. If you’d like, we can go through your setup together, feel free to reach out privately. @Luiz Fernando Seibel Carrilho
c
The transfer mode you're using (
warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary
) speaks the summary using a default system voice. This mode doesn't inherit your assistant's configured voice, and there's currently no way to customize it directly from the Dashboard. The fix: Switch to
warm-transfer-experimental
mode, which lets you define a full
transferAssistant
object - including your own voice provider, voice ID, and model. Here's what your updated
transferPlan
would look like:
Copy code
{
  "transferPlan": {
    "mode": "warm-transfer-experimental",
    "sipVerb": "refer",
    "timeout": 50,
    "transferAssistant": {
      "voice": {
        "provider": "11labs",
        "voiceId": "your-portuguese-voice-id"
      },
      "model": {
        "provider": "openai",
        "model": "gpt-4o",
        "messages": [
          {
            "role": "system",
            "content": "Você vai fazer um warm transfer para um atendente humano. Gere um resumo curto e objetivo em PT-BR (máx 6 bullets) com: motivo do contato, itens/pedido, endereço/entrega (se houver), urgência, e o que o cliente quer agora."
          }
        ]
      }
    }
  }
}
You can use any supported voice provider (ElevenLabs, Azure, Deepgram, etc.) - just swap in the right
provider
and
voiceId
for the Portuguese voice you want. One heads-up: this needs to be applied via the API using
PATCH /tool/{toolId}
, since the Dashboard doesn't expose all
transferAssistant
options yet. Let me know if you'd like a ready-to-run request for that! Best, Vapi Support