Amazon Connect
Dirige contactos de voz de Amazon Connect a ElevenAgents mediante la integración nativa de agentes de IA de terceros (A2A) de Amazon Connect.
La integración con Amazon Connect tiene disponibilidad limitada. La compatibilidad con agentes de IA de terceros de Amazon Connect debe estar habilitada para tu cuenta de AWS, y el transporte de ElevenLabs se habilita por espacio de trabajo. Contacta con tu representante de ElevenLabs antes de enrutar tráfico de clientes.
Resumen
La integración con Amazon Connect conecta un flujo de contactos de Amazon Connect directamente con un agente de ElevenAgents mediante el protocolo de agentes de IA de terceros de Amazon Connect, una extensión del protocolo A2A abierto. Amazon Connect gestiona la telefonía, el enrutamiento y la cola; ElevenAgents gestiona la conversación. No se necesita ningún troncal SIP, número de Twilio ni middleware. AWS documenta esta función en Colaboración entre agentes; esta guía cubre los aspectos específicos de ElevenLabs y los pasos de AWS necesarios para llegar a un agente de ElevenLabs.
El mismo flujo sirve para llamadas entrantes y contactos salientes iniciados con StartOutboundVoiceContact.
Cuando el agente de ElevenLabs termina, Amazon Connect continúa con tu flujo de contactos y se bifurca según el
resultado recibido.
Cómo funciona la integración
- Un flujo de contactos llega a un bloque Obtener información del cliente que invoca un bot de Amazon Lex V2 con la
intención
AMAZON.QInConnectIntent. - El agente de IA de orquestación de Amazon Connect transfiere la conversación inmediatamente a la aplicación de terceros que registraste para ElevenLabs.
- Amazon Connect abre un WebSocket al endpoint de ElevenLabs en el
AccessUrlde la aplicación, autenticándose con la clave de API almacenada en AWS Secrets Manager. - Amazon Connect indica que el canal de la persona que llama está activo; después, Amazon Connect y ElevenLabs intercambian audio PCM lineal de 16 bits como mensajes A2A. Amazon Connect propone la frecuencia de muestreo y ElevenLabs la adopta, por lo que el agente no necesita cambios de formato de audio.
- Cuando el agente finaliza la llamada, ElevenLabs termina la sesión con el resultado
Completey el flujo continúa desde el bloque de Lex. El resultadoEscalate, que dirige a la persona que llama a una cola humana, es compatible a nivel de protocolo y se expondrá mediante la herramienta de transferencia; consulta Transferir a una persona.
Requisitos
Antes de empezar, asegúrate de tener:
- Una instancia de Amazon Connect en el nivel Connect Customer con la compatibilidad con agentes de IA de terceros habilitada para la cuenta y la región.
- Un asistente de Amazon Q in Connect asociado a la instancia.
- Permisos de AWS para crear claves KMS, secretos de Secrets Manager, aplicaciones de AppIntegrations, perfiles de seguridad de Connect, agentes de IA de Amazon Q in Connect, bots de Lex V2 y flujos de contactos.
- Un espacio de trabajo de ElevenLabs con el transporte de Amazon Connect habilitado.
- Un agente de ElevenLabs y una clave de API dedicada.
- AWS CLI v2 y awscurl (
pip install awscurl) para las llamadas cuyas estructuras de solicitud aún no están en las versiones publicadas de la CLI.
Mantén todos los recursos de AWS en la misma cuenta y región que la instancia de Amazon Connect. Los pasos
siguientes usan AWS CLI cuando admite la llamada y awscurl (una solicitud HTTP firmada con SigV4) cuando
no la admite. Siguen la guía de AWS Configurar la colaboración con un agente de IA
externo y añaden los
valores específicos de ElevenLabs.
Configura ElevenLabs
Crea o selecciona un agente
Crea el agente en ElevenAgents. Dale un primer mensaje si debe hablar en cuanto se complete la transferencia; Amazon Connect no reproduce nada por su cuenta durante la sesión.
Habilita Finalizar llamada
En Agente → Herramientas → Herramientas del sistema, habilita Finalizar llamada para que el agente pueda terminar la sesión cuando
se resuelva la solicitud de la persona que llama. Amazon Connect continuará entonces tu flujo con el resultado
Complete.
Crea una clave de API dedicada
Crea una clave de API en el mismo espacio de trabajo que el agente y asígnale el ámbito de ElevenAgents. La almacenarás en AWS Secrets Manager en la siguiente sección; no la pegues en ningún otro sitio.
Anota la URL de WebSocket
Amazon Connect se conecta a una URL que contiene el ID de tu agente:
Si tu cuenta de ElevenLabs está en un entorno de residencia aislado, sustituye <region> por el
código de tu región. Consulta residencia de datos para ver las regiones
disponibles.
Registra la aplicación de ElevenLabs en AWS
Todo lo que hay en esta sección es una llamada a la API. Define una vez los valores que reutilizarás:
Crea un asistente de Amazon Q in Connect
Omite este paso si la instancia ya tiene un asistente. De lo contrario, crea uno y asócialo con la instancia:
Anota el ID y el ARN del asistente.
Almacena la clave de API
Amazon Connect lee la clave de Secrets Manager con su propio principal de servicio, por lo que el secreto
se debe cifrar con una clave KMS gestionada por el cliente que conceda acceso de descifrado a connect.amazonaws.com.
No se puede usar la clave predeterminada aws/secretsmanager.
Guarda la clave de API de ElevenLabs en un archivo para que nunca aparezca en el historial de tu shell y, después, crea la clave y el secreto:
Concede a Amazon Connect acceso de lectura al secreto:

Crea la aplicación de terceros
Registra la URL de WebSocket de ElevenLabs como una aplicación de AppIntegrations de tipo A2A_SERVER.
AuthConfig es obligatorio para este tipo.
La respuesta contiene el Id y el Arn de la aplicación; expórtalos como APPLICATION_ID y
APPLICATION_ARN. La consola de Amazon Connect no muestra las aplicaciones A2A_SERVER, así que verifica
con la API:
Permite la aplicación en un perfil de seguridad
El perfil de seguridad asociado al agente de IA de orquestación debe incluir la aplicación entre sus agentes de IA permitidos; de lo contrario, la transferencia falla en tiempo de ejecución.
El sitio web de administración muestra el perfil y sus permisos, pero no los agentes de IA permitidos; estos solo son visibles mediante la API.

Crea y publica el agente de IA de orquestación
El agente de orquestación transfiere inmediatamente cada conversación de voz a la aplicación, con la transmisión de audio
activada. Las sesiones de voz requieren transferencia inmediata; la transmisión de texto
(audioStreamingEnabled establecido en false) y delegateAgentConfiguration no son compatibles con
ElevenLabs.
La publicación devuelve un ARN versionado (<AI_AGENT_ARN>:1); el flujo de contactos hace referencia a él. Asocia
el perfil de seguridad tanto al agente sin versión como al versionado:

Crea el flujo de contactos
Crea el bot de Lex
- Crea un bot de Lex V2 cuya única intención sea la integrada
AMAZON.QInConnectIntent, configurada con el ARN de tu asistente. No añadas otras intenciones. - Habilita voz a voz en la configuración regional del bot. La transmisión de audio bidireccional solo funciona con bots de voz a voz Sonic.
- Permite que el rol IAM del bot use el asistente. Sin esto, la transferencia falla dentro de AWS con
HTTP 403antes de que ninguna solicitud llegue a ElevenLabs. Adjunta una política como esta:
- Compila el bot, crea una versión y un alias, y asocia el alias a la instancia:

Añade el asistente y el bloque de Lex
En el diseñador de flujos, añade estos bloques en orden:
- Establecer comportamiento de registro: habilitado. El registro del flujo te permite verificar la transferencia a continuación.
- Conectar asistente: selecciona tu asistente de Amazon Q in Connect.
- Obtener información del cliente: en la pestaña Amazon Lex, elige Introducir un ARN y pega el ARN del alias del bot. Deja el prompt de texto a voz como un único espacio para que Amazon Connect no reproduzca nada antes de la transferencia. En Atributos de sesión, añade dos atributos configurados manualmente:

x-amz-lex:qic-audio-passthrough habilita la ruta de voz de terceros durante el periodo de prelanzamiento de AWS.
AWS indica que el atributo deja de ser necesario una vez que la función sea pública; dejarlo configurado es
inofensivo.
Bifúrcate según el resultado
Amazon Connect expone el resultado de ElevenLabs al flujo como el atributo
$.Lex.SessionAttributes.Tool. Añade un bloque Comprobar atributos de contacto después del bloque de Lex, establece Espacio de nombres en
Lex, Clave en Atributos de sesión y Clave de atributo de sesión en Tool; después, añade una
condición Es igual a por resultado:

Amazon Connect escribe estos valores en mayúscula inicial (Escalate, Complete), no como el tipo de
resultado en mayúsculas que envía el agente. En un flujo exportado, la salida Predeterminada del bloque de Lex es su
transición NoMatchingCondition; asegúrate de que lleve al bloque de comparación en lugar de a un mensaje de
error.

El flujo anterior compara ambas grafías de cada resultado para que siga funcionando si cambia el uso de mayúsculas.
Prueba la integración
Haz una llamada
Llama al número. El primer mensaje del agente se reproduce unos segundos después de que el flujo llegue al bloque de Lex;
la transferencia dentro de AWS tarda unos tres segundos antes de contactar con ElevenLabs. Mantén una
conversación breve y despídete: el agente llama a Finalizar llamada, la sesión de ElevenLabs termina con
Complete y tu flujo continúa desde el bloque de Lex.
Comprueba la conversación en ElevenLabs
Abre la conversación en Conversaciones. Su origen es Amazon Connect y la pestaña Datos del cliente
lista las variables dinámicas amazon_connect_* que recibió la sesión.

Comprueba el registro del flujo en AWS
Con el registro habilitado, cada bloque escribe una entrada en el grupo de registros de flujo de la instancia. El bloque Obtener información del cliente registra el resultado que recibió de ElevenLabs:
Deberías ver "Results": "Complete" para el bloque de Lex, seguido de los bloques de tu rama Complete.
Variables dinámicas
Amazon Connect envía los atributos del sistema del contacto en cada sesión. ElevenLabs los expone, junto con los identificadores de sesión, como variables dinámicas:
En las sesiones de Amazon Connect, system__caller_id siempre corresponde al cliente y system__called_number
siempre corresponde al número de Amazon Connect, tanto para contactos entrantes como salientes.
Todos los demás elementos del contexto de contacto que envía Amazon Connect se exponen del mismo modo: los
nombres anidados se unen con guiones bajos y se convierten a snake case con el prefijo amazon_connect_.
Los atributos de contacto personalizados que configures en tu flujo con Establecer atributos de contacto no forman parte del
contexto que Amazon Connect envía actualmente, aunque el perfil de seguridad del agente de IA pueda ver los
atributos de contacto; si AWS empieza a incluirlos, aparecerán automáticamente con el mismo prefijo. No
puedes elegir qué datos de contacto comparte Amazon Connect; AWS transmite un conjunto fijo de contexto.
Para pasar contexto adicional, usa el
webhook de inicio de conversación.
En las sesiones de Amazon Connect, el webhook se llama antes de que el agente hable con caller_id establecido en
el número del cliente, called_number en el número de Amazon Connect y call_id en el
ID de contacto de Amazon Connect, de modo que una Lambda en tu flujo puede almacenar atributos de contacto indexados por ID de contacto
y el webhook puede devolverlos como variables dinámicas y anulaciones de configuración.
Transferencia a una persona
Amazon Connect enruta un contacto a una cola humana cuando la sesión de ElevenLabs termina con un
resultado Escalate, que la rama Escalate de tu flujo gestiona con Establecer cola de trabajo y
Transferir a cola. Amazon Connect gestiona cualquier tratamiento de cola, flujo de susurro o selección de agente.
El activador del lado del agente para Escalate se está añadiendo a la herramienta Transferir a número como un
tipo de transferencia de Amazon Connect, para que una sola herramienta cubra la derivación a una persona en todos los proveedores. Hasta que
esté disponible, los agentes de ElevenLabs en Amazon Connect pueden finalizar la llamada (Complete), pero no escalarla a una
persona. Mantén la rama Escalate en tu flujo; empezará a funcionar sin más cambios en el flujo.
La herramienta Finalizar llamada genera un resultado Complete. El análisis posterior a la llamada y el webhook posterior a la llamada
se ejecutan como siempre tras cualquiera de los dos resultados.
Solo el tipo de resultado y una cadena con el motivo se transmiten de vuelta a Amazon Connect. Para entregar datos de enrutamiento al
flujo, proporciona al agente una herramienta de webhook
que llame a la API UpdateContactAttributes de Amazon Connect con amazon_connect_contact_id y los
valores que quieres almacenar, e indica al agente que la llame antes de finalizar la llamada. Después, el flujo puede leer
esos atributos con un bloque Comprobar atributos de contacto después del bloque de Lex. El webhook posterior a la llamada
se activa después de que el flujo ya haya continuado, por lo que es adecuado para actualizaciones de CRM en lugar de decisiones
de enrutamiento.
Trazas
Amazon Connect requiere que los agentes externos envíen datos de trazas para cada colaboración. Cuando Amazon Connect se suscribe al trazado de la sesión, ElevenLabs envía una traza de OpenTelemetry para cada turno del agente que contiene la transcripción de quien llama, la respuesta del agente, cada llamada de herramienta con su resultado y el tiempo por span. Amazon Connect almacena estas trazas con el contacto; consulta trazas de agentes de IA para saber cómo verlas. Las transcripciones y los resultados de herramientas de estas trazas están sujetos a la misma configuración de redacción que el resto de los datos de contacto en Amazon Connect, así que revisa tus requisitos de tratamiento de datos antes de activar la integración. Al igual que los webhooks posteriores a la llamada, las trazas se entregan a tus propios sistemas: los agentes en modo de retención cero siguen enviándolas, porque la retención cero regula lo que almacena ElevenLabs, no lo que recibe tu instancia de Amazon Connect.
Audio
Amazon Connect propone PCM lineal mono de 16 bits a 8, 16 o 24 kHz en cada sesión y ElevenLabs acepta la propuesta, por lo que los formatos de audio configurados para el agente no se utilizan en las sesiones de Amazon Connect. ElevenLabs detecta la interrupción por parte de quien llama y la comunica a Amazon Connect para que la reproducción almacenada en búfer se vacíe de inmediato. La entrada de teclado recopilada por Amazon Connect se entrega al agente como dígitos DTMF. Se ignora el marcador de silencio propio de Amazon Connect; usa el tiempo de espera de turno del agente para volver a preguntar a quien llama si permanece en silencio.
Limitaciones y funciones no compatibles
- Las herramientas de cliente y la herramienta de sistema Reproducir tono de teclas no son compatibles. Transferir a número aún no es compatible con Amazon Connect; la derivación a una persona llegará como un tipo de transferencia de Amazon Connect en esa herramienta.
- Los resultados de recopilación de datos no se devuelven al flujo, y Amazon Connect decide qué datos de contacto
comparte. Usa el webhook de inicio de conversación con
amazon_connect_contact_idcomo clave para contexto adicional, una herramienta de webhook que llame aUpdateContactAttributespara datos de enrutamiento y el webhook posterior a la llamada para todo lo demás. - Las anulaciones de configuración como
system__override_first_messageno se pueden pasar desde el flujo. Devuélvelas desde el webhook de inicio de conversación. - Las sesiones de voz requieren derivación inmediata. El canal de chat de Amazon Connect, el streaming de texto y la
colaboración en segundo plano (
delegateAgentConfiguration) aún no son compatibles. - Las trazas enviadas a Amazon Connect incluyen la transcripción de quien llama, las respuestas del agente, las llamadas a herramientas con sus resultados y el tiempo. No se incluyen los parámetros de las llamadas a herramientas.
- La compatibilidad de Amazon Connect con agentes de terceros solo está disponible donde AWS la haya activado y puede conllevar cargos adicionales de AWS.
Solución de problemas
El flujo falla con 'A2A WebSocket upgrade ... failed (HTTP 403)'
- El error se produce dentro de AWS antes de que ninguna solicitud llegue a ElevenLabs. Consulta CloudTrail para ver
AccessDeniedenwisdom:SendMessagedesde el rol de servicio de Lex: el rol asociado al bot necesitawisdom:CreateSession,wisdom:GetAssistant,wisdom:SendMessageywisdom:GetNextMessageen el asistente y sus sesiones. - Confirma que el perfil de seguridad permite la aplicación y está asociado a la versión publicada del agente de orquestación a la que hace referencia el flujo.
- Confirma que la clave KMS y la política de recursos del secreto conceden acceso a
connect.amazonaws.com.
El flujo falla con 'the hand-off to the target agent could not be completed'
- Amazon Connect da a la conexión WebSocket unos 20 segundos para establecerse. Confirma que la
AccessUrles accesible desde AWS:wss://, el ID de agente correcto y ninguna lista de permitidos de red bloqueándolo. - Si diriges la conexión a través de tu propia infraestructura, mantén ese proxy activo. Una instancia sin servidor en frío puede tardar más que la ventana de derivación, y Amazon Connect abandona antes de que ElevenLabs llegue a recibir la solicitud.
El bloque de Lex toma su rama Error y quien llama no oye nada
- Confirma que ambos atributos de sesión estén configurados en el bloque Obtener entrada del cliente:
x-amz-lex:q-in-connect:ai-agent-arncon el ARN del agente publicado y versionado, yx-amz-lex:qic-audio-passthroughestablecido entrue. - Confirma que el perfil de seguridad que permite la aplicación esté asociado a esa versión del agente.
- Lee la entrada del bloque en el registro de flujo; contiene el error que encontró Amazon Connect.
La sesión termina inmediatamente después de conectarse
- Confirma que la
AccessUrlusewss://, contenga el ID de agente correcto y apunte a la región en la que está tu espacio de trabajo. - Confirma que la clave de API esté activa, pertenezca al espacio de trabajo del agente y no tenga restricciones de IP.
- Confirma que el transporte de Amazon Connect esté activado para tu espacio de trabajo.
Quien llama oye el mensaje de error del flujo después de que termine el agente
En el bloque de Lex, asegúrate de que la salida Predeterminada lleve al bloque que compara
$.Lex.SessionAttributes.Tool, y compara con los valores con mayúscula inicial Escalate y
Complete.
El agente nunca habla y la sesión termina después de unos segundos
Confirma que el colaborador esté configurado con audioStreamingEnabled en true. Con streaming de
texto, Amazon Connect envía turnos de texto y espera respuestas de texto, algo que ElevenLabs no
admite; los registros de ElevenLabs muestran INIT_SESSION carries no audio configuration.
Faltan variables dinámicas
Amazon Connect proporciona los atributos e identificadores del sistema de contacto enumerados arriba. Los atributos de contacto personalizados configurados en el flujo no llegan al agente; pásalos mediante el webhook de inicio de conversación en su lugar. Si el primer mensaje o el prompt del agente hace referencia a una variable que nunca se proporciona, la sesión falla al iniciarse.