Five9

Transfiere llamadas de Five9 VCC a ElevenAgents con Five9 AI Agent Connect.

Antes de seguir esta guía, te recomendamos leer la guía de troncales SIP para entender cómo ElevenLabs admite troncales SIP y cabeceras SIP personalizadas.

Descripción general

Esta guía explica cómo integrar ElevenAgents con Five9 Virtual Contact Center (VCC) mediante Five9 AI Agent Connect. Five9 transfiere una llamada en curso a un número de teléfono de ElevenLabs, el agente de ElevenLabs gestiona la conversación y ElevenLabs devuelve datos de enrutamiento o disposición a Five9 para que el flujo de Five9 pueda continuar.

Cómo funciona la integración con Five9

Five9 AI Agent Connect utiliza una transferencia externa a través de SIP, con el contexto de la llamada intercambiado mediante cabeceras SIP X- personalizadas en ambas direcciones:

  1. Transferencia entrante: El módulo de transferencia externa de IVR de Five9 transfiere la llamada a un número de teléfono de ElevenLabs y envía el contexto de la llamada como cabeceras SIP X- en la INVITE.
  2. Conversación: ElevenLabs responde la llamada y la dirige al agente correcto, opcionalmente mediante un agente enrutador, y después gestiona la conversación con la persona que llama.
  3. Ruta de retorno: Cuando termina la conversación, ElevenLabs adjunta datos de enrutamiento y disposición al SIP BYE como cabeceras X-.
  4. Enrutamiento posterior a la IA: Five9 asigna las cabeceras devueltas a variables de llamada y continúa el flujo de llamadas, por ejemplo, transfiriendo a un agente humano, finalizando la llamada o registrando una disposición.

Requisitos

Antes de configurar la integración con Five9, asegúrate de tener:

  1. Un dominio de Five9 VCC activo con AI Agent Connect habilitado.
  2. Acceso de administrador a la configuración de Five9 o un equipo de implementación de Five9 que pueda realizar los cambios.
  3. Una cuenta de ElevenLabs y un agente para gestionar las llamadas transferidas.
  4. Un número de teléfono de troncal SIP importado en ElevenLabs para usarlo como destino de transferencia de Five9.

AI Agent Connect es un complemento de pago de Five9 VCC y no está habilitado de forma predeterminada. Ponte en contacto con tu gestor de cuenta de Five9 para habilitarlo en tu dominio antes de iniciar esta integración.

Ambos equipos deben acordar el número de teléfono de transferencia, los nombres de las cabeceras enviadas en cada dirección, los valores de enrutamiento y el plan de pruebas antes de empezar la configuración.

Configuración de ElevenLabs

1

Importa el número de teléfono de transferencia

Sigue la guía de troncales SIP para importar el número de teléfono al que Five9 transferirá las llamadas. Las cabeceras SIP personalizadas y las cabeceras BYE requieren un número de teléfono de troncal SIP.

Importa el número en formato E.164 con el código de país +1 (por ejemplo, +18005550100). Five9 envía la transferencia en este formato y una discrepancia hará que la transferencia falle.

2

Asigna un agente

Si un único agente gestiona todas las llamadas de Five9, asígnalo directamente al número de teléfono en el panel de números de teléfono.

Si varios agentes comparten un número de transferencia, asigna un agente enrutador y sigue Enrutamiento de varios agentes a través de un número.

3

Configura las cabeceras devueltas

Asigna las variables dinámicas que establece tu agente durante la conversación a los nombres de cabecera SIP BYE que espera Five9. Consulta Configuración de cabeceras BYE.

4

Realiza llamadas de prueba

Realiza llamadas de prueba con Five9 y confirma que las cabeceras entrantes llegan como variables dinámicas y que las cabeceras BYE se devuelven como se espera. Los valores de las cabeceras entrantes se muestran en el historial de conversaciones, en la pestaña Llamada telefónica.

Enrutamiento de varios agentes a través de un número

Para dirigir llamadas a varios agentes de ElevenLabs a través de un único número de transferencia de Five9, asigna un agente enrutador al número de teléfono y haz que Five9 envíe el agente de destino en una cabecera como X-AgentID.

Las cabeceras X- entrantes se exponen como variables dinámicas, por lo que X-AgentID está disponible para el agente enrutador como {{sip_agentid}}. Configura el agente enrutador con la herramienta de transferencia de agentes y añade una regla de transferencia para cada valor de X-AgentID que esperes, asignándolo al agente que debe atender la llamada.

Esto evita tener que aprovisionar un número de teléfono independiente para cada agente.

Cabeceras enviadas de Five9 a ElevenLabs

Five9 puede enviar metadatos de llamada como cabeceras SIP X- en la INVITE. Los nombres de las cabeceras se normalizan eliminando el prefijo X-, convirtiéndolos a minúsculas, sustituyendo los guiones por guiones bajos y añadiendo el prefijo sip_.

CabeceraVariable dinámicaDescripción
X-CallANI{{sip_callani}}El número de teléfono de quien llama.
X-CallDNIS{{sip_calldnis}}El número de teléfono marcado.
X-CallID{{sip_callid}}Identificador único de llamada de Five9.
X-CallSessionID{{sip_callsessionid}}Identificador de la sesión actual.
X-CallCampaign{{sip_callcampaign}}Nombre de la campaña de Five9.
X-AgentID{{sip_agentid}}Agente de ElevenLabs de destino, usado para enrutar mediante un agente enrutador.

Utiliza estas variables en los prompts de los agentes, los primeros mensajes y las herramientas para personalizar la conversación.

Las cabeceras reservadas X-Call-ID y X-Caller-ID se asignan a las variables dinámicas del sistema system__call_sid y system__caller_id. Five9 envía las cabeceras sin guion X-CallID y X-CallANI, que se normalizan como sip_callid y sip_callani. Confirma qué variables se completan durante las llamadas de prueba antes de hacer referencia a ellas en los prompts.

Cabeceras devueltas de ElevenLabs a Five9

ElevenLabs devuelve datos de enrutamiento e informes en el SIP BYE. Los siguientes nombres de cabecera son la convención recomendada para Five9 AI Agent Connect:

CabeceraDescripción
X-RouteTypeLa acción que debe realizar Five9, por ejemplo, SkillTransfer.
X-RouteValueEl destino de la acción, por ejemplo, el nombre de una habilidad de Five9.
X-RouteReasonContexto de la decisión de enrutamiento, como la intención del cliente.
X-ConversationIdEl identificador de conversación de ElevenLabs, para correlacionar registros.

Puedes devolver cualquier cabecera X- adicional que necesite tu flujo de Five9. Cada valor de cabecera procede de una variable dinámica del agente, por lo que el agente debe establecer estas variables durante la conversación.

Configuración de cabeceras BYE

Las cabeceras BYE devuelven a Five9 los valores finales de las variables dinámicas del agente. Asigna cada nombre de variable dinámica a un nombre de cabecera mediante attributes_to_headers en inbound_trunk_config del número de teléfono. Se pueden asignar tanto las variables que establece tu agente como las variables dinámicas del sistema, como system__conversation_id:

import os
from dotenv import load_dotenv
from elevenlabs import ElevenLabs, InboundSipTrunkConfigRequestModel
load_dotenv()
elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))
elevenlabs.conversational_ai.phone_numbers.update(
phone_number_id="phnum_8901k4t9z5defmb8vh3e9361y7nj",
inbound_trunk_config=InboundSipTrunkConfigRequestModel(
attributes_to_headers={
"route_type": "X-RouteType",
"route_value": "X-RouteValue",
"route_reason": "X-RouteReason",
"system__conversation_id": "X-ConversationId",
}
),
)

El valor de la cabecera es el valor de la variable dinámica al final de la conversación, incluidos los valores establecidos durante la llamada mediante herramientas del agente o anulaciones de webhook. Una llamada que termina con el agente estableciendo route_type en SkillTransfer y route_value en billing_support genera las siguientes cabeceras BYE:

X-RouteType: SkillTransfer
X-RouteValue: billing_support
X-RouteReason: Customer needs help with an invoice
X-ConversationId: conv_7401k6a2b8cxyzmn9pq3r5s7t1uv

Five9 dirige entonces a quien llama a la habilidad billing_support.

Valores de enrutamiento recomendados

Mantén los valores de X-RouteType sencillos y predecibles para que el flujo de Five9 pueda ramificarse directamente según ellos.

X-RouteTypeEjemplo de X-RouteValueDescripción
SkillTransferbilling_supportTransfiere la llamada a una cola de habilidad específica de Five9.
PhoneTransfer+18005550199Transfiere la llamada a un número de teléfono externo.
HangupVacíoFinaliza la llamada después de la interacción con la IA.
DispositionOnlyResolvedFinaliza la llamada y registra una disposición específica.

Configuración de Five9

Normalmente, tu equipo de implementación de Five9 hará lo siguiente:

  1. Habilitar AI Agent Connect para tu dominio de Five9.
  2. Configurar el flujo de transferencia de IVR de Five9.
  3. Añadir el número de teléfono de ElevenLabs como destino de transferencia.
  4. Configurar el módulo de transferencia externa.
  5. Configurar las cabeceras X- salientes enviadas a ElevenLabs.
  6. Configurar las cabeceras X- entrantes devueltas por ElevenLabs.
  7. Asignar las cabeceras devueltas a variables de llamada de Five9.
  8. Configurar la lógica de enrutamiento posterior a la IA que se ramifica según esas variables.
  9. Probar las llamadas de principio a fin.

Solución de problemas

  • Confirma que el número de teléfono de ElevenLabs se ha importado como número de troncal SIP y tiene un agente asignado.
  • Verifica que el destino de transferencia configurado en el módulo de transferencia externa de Five9 coincide con el número importado.
  • Comprueba que tu firewall permite el tráfico de señalización SIP en el transporte y el puerto configurados, y que los puertos RTP no están bloqueados.
  • Confirma que Five9 envía las cabeceras con un prefijo X- en la INVITE.
  • Comprueba el nombre de variable normalizado. X-AgentID se convierte en {{sip_agentid}}, no en {{X-AgentID}} ni {{agent_id}}.
  • Inspecciona el historial de conversaciones en la pestaña Llamada telefónica para ver qué cabeceras llegaron.
  • Las cabeceras personalizadas no pueden anular las variables del sistema system__call_sid y system__caller_id.
  • Verifica que attributes_to_headers esté configurado en inbound_trunk_config para el número de teléfono que recibe la llamada.
  • Confirma que las claves son nombres de variables dinámicas y los valores son nombres de cabecera, no al revés.
  • Asegúrate de que el agente realmente establezca esas variables dinámicas durante la conversación. Una variable sin establecer no genera ningún valor de cabecera.
  • Confirma que Five9 envía X-AgentID en cada llamada transferida.
  • Comprueba que cada valor de X-AgentID tenga una regla de transferencia correspondiente en el agente enrutador.
  • Verifica que las reglas de transferencia del agente enrutador hagan referencia a {{sip_agentid}}.

Enlaces útiles