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

  1. 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.
  2. 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.
  3. Amazon Connect abre un WebSocket al endpoint de ElevenLabs en el AccessUrl de la aplicación, autenticándose con la clave de API almacenada en AWS Secrets Manager.
  4. 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.
  5. Cuando el agente finaliza la llamada, ElevenLabs termina la sesión con el resultado Complete y el flujo continúa desde el bloque de Lex. El resultado Escalate, 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:

  1. 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.
  2. Un asistente de Amazon Q in Connect asociado a la instancia.
  3. 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.
  4. Un espacio de trabajo de ElevenLabs con el transporte de Amazon Connect habilitado.
  5. Un agente de ElevenLabs y una clave de API dedicada.
  6. 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

1

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.

2

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.

3

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.

4

Anota la URL de WebSocket

Amazon Connect se conecta a una URL que contiene el ID de tu agente:

EntornoAccessUrl
Predeterminadowss://api.elevenlabs.io/v1/convai/conversation/amazon-connect/<agent_id>
Residencia de datoswss://api.<region>.residency.elevenlabs.io/v1/convai/conversation/amazon-connect/<agent_id>

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:

export AWS_REGION=<REGION> # Region of your Amazon Connect instance
export ACCOUNT_ID=<ACCOUNT_ID>
export INSTANCE_ID=<INSTANCE_ID> # Amazon Connect instance ID
export INSTANCE_ARN=arn:aws:connect:$AWS_REGION:$ACCOUNT_ID:instance/$INSTANCE_ID
export AGENT_ID=<AGENT_ID> # ElevenLabs agent ID
1

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:

aws qconnect create-assistant --name elevenlabs-assistant --type AGENT --region $AWS_REGION
aws connect create-integration-association --instance-id $INSTANCE_ID \
--integration-type WISDOM_ASSISTANT --integration-arn <ASSISTANT_ARN> --region $AWS_REGION

Anota el ID y el ARN del asistente.

2

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.

kms-key-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AccountAdmin",
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::<ACCOUNT_ID>:root" },
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "AllowConnectDecrypt",
"Effect": "Allow",
"Principal": { "Service": "connect.amazonaws.com" },
"Action": ["kms:Decrypt", "kms:DescribeKey"],
"Resource": "*"
}
]
}

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:

KMS_KEY_ID=$(aws kms create-key --description "ElevenLabs agent API key" \
--policy file://kms-key-policy.json --region $AWS_REGION \
--query KeyMetadata.KeyId --output text)
SECRET_ARN=$(aws secretsmanager create-secret --name elevenlabs/agent-api-key \
--kms-key-id "$KMS_KEY_ID" --secret-string file://elevenlabs-api-key.txt \
--region $AWS_REGION --query ARN --output text)
rm elevenlabs-api-key.txt

Concede a Amazon Connect acceso de lectura al secreto:

secret-resource-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowConnectRead",
"Effect": "Allow",
"Principal": { "Service": "connect.amazonaws.com" },
"Action": ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"],
"Resource": "<SECRET_ARN>"
}
]
}
aws secretsmanager put-resource-policy --secret-id "$SECRET_ARN" \
--resource-policy file://secret-resource-policy.json --region $AWS_REGION

Secreto de Secrets Manager cifrado con la clave gestionada por el cliente y su política de recursos para
connect.amazonaws.com

3

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.

create-application.json
{
"Name": "elevenlabs-agent",
"Namespace": "elevenlabs-agent",
"Description": "ElevenLabs agent over the Amazon Connect A2A extension",
"ApplicationType": "A2A_SERVER",
"ApplicationSourceConfig": {
"ExternalUrlConfig": {
"AccessUrl": "wss://api.elevenlabs.io/v1/convai/conversation/amazon-connect/<AGENT_ID>"
}
},
"AuthConfig": {
"AuthType": "API_KEY",
"CredentialProviderIdentifier": "<SECRET_ARN>"
}
}
awscurl --service app-integrations --region $AWS_REGION -X POST \
-H 'Content-Type: application/json' --data @create-application.json \
"https://app-integrations.$AWS_REGION.amazonaws.com/applications"

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:

aws appintegrations get-application --arn "$APPLICATION_ARN" --region $AWS_REGION
4

Asocia la aplicación a tu instancia

awscurl --service connect --region $AWS_REGION -X PUT -H 'Content-Type: application/json' \
--data "{\"IntegrationArn\": \"$APPLICATION_ARN\", \"IntegrationType\": \"APPLICATION\"}" \
"https://connect.$AWS_REGION.amazonaws.com/instance/$INSTANCE_ID/integration-associations"
aws connect list-integration-associations --instance-id $INSTANCE_ID \
--integration-type APPLICATION --region $AWS_REGION
5

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.

SECURITY_PROFILE_ID=$(aws connect create-security-profile --instance-id $INSTANCE_ID \
--security-profile-name elevenlabs-a2a --permissions QConnectAIAgents.View Wisdom.View \
--region $AWS_REGION --query SecurityProfileId --output text)
awscurl --service connect --region $AWS_REGION -X POST -H 'Content-Type: application/json' \
--data "{\"AllowedAIAgents\": [{\"Arn\": \"$APPLICATION_ARN\", \"Type\": \"THIRD_PARTY\"}]}" \
"https://connect.$AWS_REGION.amazonaws.com/security-profiles/$INSTANCE_ID/$SECURITY_PROFILE_ID"

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.

Perfil de seguridad dedicado en el sitio web de administración de Amazon Connect con permisos de visualización
de agentes de IA

6

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.

create-ai-agent.json
{
"name": "elevenlabs-handoff",
"type": "ORCHESTRATION",
"visibilityStatus": "PUBLISHED",
"configuration": {
"orchestrationAIAgentConfiguration": {
"connectInstanceArn": "<INSTANCE_ARN>",
"locale": "en_US",
"multiAgentConfigurations": [
{
"handoffAgentConfiguration": {
"agentTarget": { "applicationId": "<APPLICATION_ARN>" },
"instruction": {
"instruction": "Immediately hand off every voice conversation to the ElevenLabs agent."
},
"audioStreamingEnabled": true,
"immediateHandoff": true
}
}
]
}
}
}
awscurl --service wisdom --region $AWS_REGION -X POST -H 'Content-Type: application/json' \
--data @create-ai-agent.json \
"https://wisdom.$AWS_REGION.amazonaws.com/assistants/<ASSISTANT_ID>/aiagents"
aws qconnect create-ai-agent-version --assistant-id <ASSISTANT_ID> \
--ai-agent-id <AI_AGENT_ID> --region $AWS_REGION

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:

for ARN in <AI_AGENT_ARN> <AI_AGENT_ARN>:1; do
aws connect associate-security-profiles --instance-id $INSTANCE_ID --entity-arn "$ARN" \
--entity-type AI_AGENT --security-profiles Id=$SECURITY_PROFILE_ID --region $AWS_REGION
done

Agente de IA de orquestación en el diseñador de agentes de IA con el perfil de seguridad dedicado
asociado

Crea el flujo de contactos

1

Crea el bot de Lex

  1. 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.
  2. 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.
  3. Permite que el rol IAM del bot use el asistente. Sin esto, la transferencia falla dentro de AWS con HTTP 403 antes de que ninguna solicitud llegue a ElevenLabs. Adjunta una política como esta:
lex-role-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["wisdom:CreateSession", "wisdom:GetAssistant"],
"Resource": ["<ASSISTANT_ARN>", "<ASSISTANT_ARN>/*"]
},
{
"Effect": "Allow",
"Action": ["wisdom:SendMessage", "wisdom:GetNextMessage"],
"Resource": "arn:aws:wisdom:<REGION>:<ACCOUNT_ID>:session/<ASSISTANT_ID>/*"
}
]
}
  1. Compila el bot, crea una versión y un alias, y asocia el alias a la instancia:
aws connect associate-bot --instance-id $INSTANCE_ID \
--lex-v2-bot AliasArn=<LEX_ALIAS_ARN> --region $AWS_REGION

Lista de intenciones del bot de Lex V2 con la intención de transferencia de Q in Connect y la intención
integrada de alternativa

2

Añade el asistente y el bloque de Lex

En el diseñador de flujos, añade estos bloques en orden:

  1. Establecer comportamiento de registro: habilitado. El registro del flujo te permite verificar la transferencia a continuación.
  2. Conectar asistente: selecciona tu asistente de Amazon Q in Connect.
  3. 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:
Clave de destinoValor
x-amz-lex:q-in-connect:ai-agent-arnEl ARN versionado del agente de orquestación (...:1).
x-amz-lex:qic-audio-passthroughtrue

Atributos de sesión del bloque Obtener información del cliente: el ARN versionado del agente de IA y la
marca de paso de audio

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.

3

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:

ValorSignificadoRuta sugerida
CompleteEl agente terminó la llamada, por ejemplo con la herramienta Finalizar llamada.Desconectar
EscalateEl agente pidió una persona (consulta Transferir a una persona).Establecer cola de trabajo → Transferir a cola

Bloque Comprobar atributos de contacto configurado con el atributo de sesión de Lex Tool y condiciones Es igual a
para cada 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.

Flujo de contactos con el bloque Obtener información del cliente que lleva a un bloque Comprobar atributos de contacto que
dirige Escalate a una cola y Complete a una
desconexión

El flujo anterior compara ambas grafías de cada resultado para que siga funcionando si cambia el uso de mayúsculas.

4

Publica y asigna

Publica el flujo y, después, asígnalo a un número de teléfono reclamado:

aws connect associate-phone-number-contact-flow --instance-id $INSTANCE_ID \
--phone-number-id <PHONE_NUMBER_ID> --contact-flow-id <CONTACT_FLOW_ID> --region $AWS_REGION

Para llamadas salientes, inicia el contacto con el mismo flujo; Amazon Connect llama al cliente y transfiere la llamada atendida a ElevenLabs:

aws connect start-outbound-voice-contact --instance-id $INSTANCE_ID \
--contact-flow-id <CONTACT_FLOW_ID> --destination-phone-number <E164_NUMBER> \
--source-phone-number <YOUR_CONNECT_NUMBER> --region $AWS_REGION

Prueba la integración

1

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.

2

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.

Pestaña Datos del cliente de una conversación de Amazon Connect que enumera las variables dinámicas de
Amazon Connect

3

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:

aws logs filter-log-events --log-group-name /aws/connect/<INSTANCE_ALIAS> \
--start-time $(( $(date +%s) - 600 ))000 --region $AWS_REGION \
--query 'events[].message' --output text | tr '\t' '\n' | grep -o '"Results": *"[A-Za-z_]*"'

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:

Variable dinámicaDescripción
system__caller_idEl número de teléfono del cliente (endpoint de cliente de Amazon Connect).
system__called_numberEl número de teléfono de Amazon Connect en el que está el contacto (endpoint del sistema).
system__call_idEl ID de contacto de Amazon Connect.
amazon_connect_system_attributes_channelEl canal de contacto, por ejemplo VOICE.
amazon_connect_system_attributes_customer_endpoint_addressLa dirección del endpoint de cliente tal como la envía Amazon Connect.
amazon_connect_system_attributes_system_endpoint_addressLa dirección del endpoint del sistema tal como la envía Amazon Connect.
amazon_connect_interaction_modeEl modo de colaboración, por ejemplo HANDOFF.
amazon_connect_contact_idEl ID de contacto de Amazon Connect.
amazon_connect_contact_arnEl ARN completo del contacto.
amazon_connect_context_idEl ID de sesión (contexto) A2A.
amazon_connect_instance_idEl ID de instancia.
amazon_connect_instance_arnEl ARN de instancia.

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_id como clave para contexto adicional, una herramienta de webhook que llame a UpdateContactAttributes para datos de enrutamiento y el webhook posterior a la llamada para todo lo demás.
  • Las anulaciones de configuración como system__override_first_message no 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 error se produce dentro de AWS antes de que ninguna solicitud llegue a ElevenLabs. Consulta CloudTrail para ver AccessDenied en wisdom:SendMessage desde el rol de servicio de Lex: el rol asociado al bot necesita wisdom:CreateSession, wisdom:GetAssistant, wisdom:SendMessage y wisdom:GetNextMessage en 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.
  • Amazon Connect da a la conexión WebSocket unos 20 segundos para establecerse. Confirma que la AccessUrl es 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.
  • 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-arn con el ARN del agente publicado y versionado, y x-amz-lex:qic-audio-passthrough establecido en true.
  • 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.
  • Confirma que la AccessUrl use wss://, 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.

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.

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.

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.