#tengo problemas con transfer_to_number no consigo que funcione.

1 messages · Page 1 of 1 (latest)

flint citrusBOT
#
AI-generated Answer for ivanglezngi

Puedo ayudarte, pero antes: “transfer_to_number” solo funciona en llamadas telefónicas (no en el chat widget). Si lo intentas desde chat, no hará nada. (elevenlabs.io)

Checklist rápido de causas frecuentes y cómo validarlas:

  • Herramienta habilitada: En tu agente, añade el system tool “Transfer to Human” y crea reglas de transferencia. El número de destino debe estar listado en esas reglas; el parámetro transfer_number que mandes debe coincidir exactamente con uno de los números configurados. (elevenlabs.io)
  • Formato del destino: Usa números en formato E.164 (ej. +12125551234) o un SIP URI válido si usas SIP. (elevenlabs.io)
  • Vía de telefonía:
    • Con números Twilio “nativos”, solo puedes transferir a otros números alojados en Twilio. Para transferir a externos, usa SIP trunking (p. ej., Twilio Elastic SIP Trunking hacia ElevenLabs por SIP) en lugar de la integración Twilio directa. (elevenlabs.io)
    • Si eliges “SIP REFER”, la llamada debe estar cursada por SIP y tu trunk debe permitir REFER; si no, usa el modo “Conference” (por defecto). (elevenlabs.io)
  • Cómo disparas la acción:
    • Con LLM propio: llama a la función transfer_to_number con los argumentos exactos: reason (opcional), transfer_number (obligatorio y debe coincidir con una regla), client_message y agent_message. (elevenlabs.io)
    • Vía WebSocket de monitoreo: envía command_type: "transfer_to_number" con parameters.phone_number. Requiere que el system tool esté ya configurado en el agente. Útil para probar si el enrutamiento funciona independientemente del LLM. (11lab.toolsmeen.com)
  • Ámbito: Esta herramienta solo aplica a llamadas telefónicas; no funciona en el widget de chat. (elevenlabs.io)

Ejemplo de llamada (LLM/function calling):
{name:"transfer_to_number", arguments:"{"reason":"Escalado a humano","transfer_number":"+15551234567","client_message":"Te voy a transferir con un agente humano.","agent_message":"Cliente solicita hablar con facturación."}"} (elevenlabs.io)

Si sigues con problemas, dime:

  • ¿La conversación es telefónica (no chat)?
  • ¿Qué número exacto intentas marcar y cómo está configurada la regla?
  • ¿Usas Twilio directo o SIP trunking? ¿Intentas transferir a un número externo a Twilio?
  • ¿Modo Conference o SIP REFER? (elevenlabs.io)

Referencias:

  • Transfer to Human (transfer_to_number): requisitos, tipos de transferencia, configuración y limitaciones Twilio/SIP. (elevenlabs.io)
  • System tools: parámetros y formato del function call transfer_to_number.
opal nest
#

pero entonces el número al que transfiero la llamada debo tenerlo añadido como número de teléfono?

flint citrusBOT
#
AI-generated Answer for ivanglezngi

Casi: no tienes que “añadirlo” como Phone Number en el dashboard, pero sí debes configurarlo como destino permitido en la herramienta Transfer to Human (transfer_to_number). La transferencia solo se realizará si transfer_number coincide con uno de los destinos definidos en esas reglas. (elevenlabs.io)

Matices importantes:

  • Con integración nativa de Twilio, solo puedes transferir a números alojados en tu propia cuenta de Twilio. Para transferir a números externos, usa SIP trunking. (elevenlabs.io)
  • Si usas el flujo “register call” (manteniendo tu infraestructura Twilio y pidiendo TwiML a ElevenLabs), las transferencias no están disponibles. (elevenlabs.io)
  • Asegúrate de configurar los destinos en formato E.164 (+1…, etc.) o como SIP URI, según corresponda. (elevenlabs.io)

En resumen: no hace falta dar de alta el número como Phone Number, pero sí declararlo previamente como destino en las reglas de Transfer to Human (y respetar las limitaciones de Twilio vs. SIP). (elevenlabs.io)

Sources:
Transfer to human | ElevenLabs Documentation
Transfer to human | ElevenLabs Documentation
Register Twilio calls | ElevenLabs Documentation
Transfer to human | ElevenLabs Documentation
Transfer to human | ElevenLabs Documentation

opal nest
#

donde se configuran los números de teléfono permitidos?
Mi llamada no es twilio es SIP TRUNK y en la herramienta he puesto el número para que llame siempre al mismo para probar.
en concreto este es mi JSON (he cambiado el número de teléfono por x)
{
"type": "system",
"name": "transfer_to_number",
"description": "",
"response_timeout_secs": 20,
"disable_interruptions": false,
"force_pre_tool_speech": false,
"assignments": [],
"tool_call_sound": null,
"tool_call_sound_behavior": "auto",
"params": {
"system_tool_type": "transfer_to_number",
"transfers": [
{
"transfer_destination": {
"type": "phone",
"phone_number": "+34xxxxxxxxx"
},
"phone_number": "+34xxxxxxxxx",
"condition": "Cuando pidan hablar con un humano, usa este número.",
"transfer_type": "conference"
}
],
"enable_client_message": true
}
}

flint citrusBOT
#
AI-generated Answer for ivanglezngi

Corto y al grano:

  • Dónde se configuran los “números permitidos”

    • En el agente, dentro de la herramienta de sistema “Transfer to Human”. En el Dashboard: Agent → Tools → Transfer to Human → Define transfer rules. Ahí añades cada destino (Phone o SIP URI), el tipo de transferencia (conference o sip_refer) y la condición. El LLM solo puede transferir a números que estén en esa lista. Además, cuando el LLM invoca la función, el parámetro transfer_number debe coincidir con uno de los números configurados. (elevenlabs.io)
  • Formato y soporte con SIP trunk

    • Para “Phone”, usa formato E.164 (+34…, etc.). Con SIP trunk puedes transferir a números externos y también a SIP URIs si usas transferencia SIP REFER y tu trunk lo permite. (elevenlabs.io)
    • Asegúrate de tener configurada la salida (Outbound settings) del número SIP en ElevenLabs: en Phone Numbers/SIP Trunking establece la “Address” (hostname/IP de terminación de tu trunk) y, si aplica, autenticación y cifrado. Sin esa terminación, las transferencias salientes no podrán cursarse. (elevenlabs.io)
  • Sobre tu JSON

    • La estructura esperada para permitir un destino es listar reglas en params.transfers con transfer_destination { type: "phone", phone_number: "+34…" }, condition y transfer_type. Durante la llamada, el tool call debe pasar transfer_number con ese mismo número “permitido”. (elevenlabs.io)
  • Opcional (pruebas)

    • Si ya tienes la herramienta configurada, también puedes forzar una transferencia durante la llamada vía WebSocket de “Real-time monitoring” con el comando transfer_to_number. (elevenlabs.io)

Notas recientes:

  • Existe el parámetro enable_client_message para controlar si se reproduce un mensaje al cliente durante la transferencia. (elevenlabs.io)

Si algo sigue sin funcionar, revisa: que el número esté en la lista de reglas del tool, que esté en E.164, y que el trunk tenga configurada la terminación para salientes. (elevenlabs.io)

Sources:
Transfer to human | ElevenLabs Documentation
Transfer to human | ElevenLabs Documentation
SIP trunking | ElevenLabs Documentation
Transfer to human | ElevenLabs Documentation
Real-time monitoring | ElevenLabs Documentation
June 8, 2025 | ElevenLabs Documentation
Transfer to human | ElevenLabs Documentation

opal nest
#

el mensaje que me da es:
El agente no pudo transferir la llamada a Número desconocido

Failed to transfer the call. Please reach out to support if this issue persists.
Mostrar más

es como si no usase el número que le digo

flint citrusBOT
#
AI-generated Answer for ivanglezngi

Gracias por los detalles. Ese mensaje suele aparecer cuando el agente intenta transferir a un número que no coincide exactamente con ninguna “regla de transferencia” configurada en la herramienta Transfer to Human o cuando el trunk SIP no tiene salida (outbound) correctamente configurada. En ElevenLabs, el LLM solo puede transferir a números previamente definidos en esa herramienta; si el número no coincide, la transferencia falla y verás un error genérico de “Failed to transfer…/Número desconocido”. (elevenlabs.io)

Respondiendo a tus preguntas:

  • ¿Debes “añadirlo” como Phone Number en ElevenLabs? No. Para transferencias a un humano basta con definir el destino en las reglas de la herramienta Transfer to Human; no es necesario importarlo como número gestionado. Asegúrate, eso sí, de que tu trunk SIP permite llamadas salientes. (elevenlabs.io)
  • ¿Dónde se configuran los números permitidos? En el propio agente, en Tools → Transfer to Human, añadiendo reglas con el número en formato E.164 (+34…). El LLM solo podrá transferir a esos destinos “permitidos”. (elevenlabs.io)

Puntos a verificar en tu caso (SIP Trunk):

  1. Formato y coincidencia exacta del número: usa E.164 (+34XXXXXXXXX) y que coincida exactamente con el definido en la regla; el parámetro que el LLM envía (“transfer_number”) debe ser idéntico a uno de los configurados. (elevenlabs.io)
  2. Estructura de la regla: utiliza la forma documentada con transfer_destination. Por ejemplo, una regla mínima es:
  • transfer_destination: { "type": "phone", "phone_number": "+34XXXXXXXXX" }
  • transfer_type: "conference" (por defecto)
  • condition: texto en español con la condición
    Evita campos no documentados fuera de transfer_destination. (elevenlabs.io)
  1. Salida por SIP: en el número SIP importado configura “Outbound settings” (Address/hostname de tu carrier) y confirma con tu proveedor que admite originación PSTN. Si no hay salida, las transferencias fallan. (elevenlabs.io)
  2. Prueba la salida con la API: puedes iniciar una llamada saliente vía SIP trunk con /v1/convai/sip-trunk/outbound-call para comprobar que tu trunk origina llamadas correctamente. (elevenlabs.io)
  3. Revisa el motivo exacto del fallo en Call History: ahí verás el error detallado si la plataforma lo registró. (help.elevenlabs.io)

Notas adicionales:

  • Con SIP trunk sí puedes transferir a números externos; la limitación de transferir solo dentro de Twilio aplica cuando usas la integración nativa de Twilio, no SIP. (elevenlabs.io)
  • “conference” es válido para PSTN; “sip_refer” requiere que toda la conversación sea SIP y que tu proveedor acepte REFER. (elevenlabs.io)

Si tras estos pasos sigue fallando, comparte el error concreto de Call History y el valor exacto de transfer_number que aparece en la llamada de herramienta del LLM; con eso podremos afinar el

opal nest
#

yo he probado a hacer llamadas con el agente usando ese número por lo que la salida está bien configurada. Pero puede ser que si el origen es PSTN falle?