Amazon Connect

Encaminhe contatos de voz do Amazon Connect para o ElevenAgents pela integração nativa de agente de IA de terceiros (A2A) do Amazon Connect.

A integração com o Amazon Connect tem disponibilidade limitada. O suporte do Amazon Connect a agentes de IA de terceiros deve estar ativado para sua conta AWS, e o transporte da ElevenLabs é ativado por workspace. Entre em contato com seu representante da ElevenLabs antes de encaminhar o tráfego de clientes.

Visão geral

A integração com o Amazon Connect conecta um fluxo de contato do Amazon Connect diretamente a um agente no ElevenAgents pelo protocolo de agente de IA de terceiros do Amazon Connect, uma extensão do protocolo A2A aberto. O Amazon Connect é responsável pela telefonia, pelo roteamento e pela fila; o ElevenAgents é responsável pela conversa. Não é necessário tronco SIP, número da Twilio nem middleware. A AWS documenta o recurso em Colaboração entre agentes; este guia, abordamos as particularidades da ElevenLabs e as etapas da AWS necessárias para acessar um agente da ElevenLabs.

O mesmo fluxo atende chamadas recebidas e contatos de saída iniciados com StartOutboundVoiceContact. Quando o agente da ElevenLabs finaliza, o Amazon Connect continua seu fluxo de contato e cria ramificações com base no resultado recebido.

Como funciona a integração

  1. Um fluxo de contato chega a um bloco Obter entrada do cliente que invoca um bot do Amazon Lex V2 com a intenção AMAZON.QInConnectIntent.
  2. O agente de IA de orquestração do Amazon Connect transfere imediatamente a conversa para o aplicativo de terceiros que você registrou para a ElevenLabs.
  3. O Amazon Connect abre um WebSocket para o endpoint da ElevenLabs no AccessUrl do aplicativo, autenticando-se com a chave de API armazenada no AWS Secrets Manager.
  4. O Amazon Connect sinaliza que o canal do chamador está ativo e, em seguida, o Amazon Connect e a ElevenLabs trocam áudio PCM linear de 16 bits como mensagens A2A. O Amazon Connect propõe a taxa de amostragem, e a ElevenLabs a adota, portanto não são necessárias alterações no formato de áudio no agente.
  5. Quando o agente encerra a chamada, a ElevenLabs finaliza a sessão com o resultado Complete, e o fluxo continua a partir do bloco Lex. O resultado Escalate, que encaminha o chamador para uma fila humana, é compatível no protocolo e será disponibilizado pela ferramenta de transferência; consulte Transferir para uma pessoa.

Requisitos

Antes de começar, confira se você tem:

  1. Uma instância do Amazon Connect no nível Connect Customer, com suporte a agentes de IA de terceiros ativado para a conta e a região.
  2. Um assistente do Amazon Q in Connect associado à instância.
  3. Permissões da AWS para criar chaves KMS, segredos do Secrets Manager, aplicativos do AppIntegrations, perfis de segurança do Connect, agentes de IA do Amazon Q in Connect, bots do Lex V2 e fluxos de contato.
  4. Um workspace da ElevenLabs com o transporte Amazon Connect ativado.
  5. Um agente da ElevenLabs e uma chave de API exclusiva.
  6. AWS CLI v2 e awscurl (pip install awscurl) para as chamadas cujos formatos de solicitação ainda não estão nas versões lançadas da CLI.

Mantenha todos os recursos da AWS na mesma conta e região da instância do Amazon Connect. As etapas abaixo usam a AWS CLI onde ela é compatível com a chamada e awscurl (uma solicitação HTTP assinada com SigV4) onde não é. Elas seguem a configuração de colaboração com um agente de IA externo da AWS e adicionam os valores específicos da ElevenLabs.

Configure a ElevenLabs

1

Crie ou selecione um agente

Crie o agente no ElevenAgents. Defina uma primeira mensagem caso ele deva falar assim que a transferência for concluída; o Amazon Connect não reproduz nada por conta própria durante a sessão.

2

Ative Encerrar chamada

Em Agente → Ferramentas → Ferramentas do sistema, ative Encerrar chamada para que o agente possa finalizar a sessão quando a solicitação do chamador for resolvida. O Amazon Connect então continua seu fluxo com o resultado Complete.

3

Crie uma chave de API exclusiva

Crie uma chave de API no mesmo workspace do agente e limite-a ao ElevenAgents. Você vai armazená-la no AWS Secrets Manager na próxima seção; não a cole em nenhum outro lugar.

4

Anote a URL do WebSocket

O Amazon Connect se conecta a uma URL que contém o ID do seu agente:

AmbienteAccessUrl
Padrãowss://api.elevenlabs.io/v1/convai/conversation/amazon-connect/<agent_id>
Residência de dadoswss://api.<region>.residency.elevenlabs.io/v1/convai/conversation/amazon-connect/<agent_id>

Se sua conta da ElevenLabs estiver em um ambiente isolado de residência, substitua <region> pelo código da sua região. Consulte residência de dados para ver as regiões disponíveis.

Registre o aplicativo da ElevenLabs na AWS

Tudo nesta seção é uma chamada de API. Defina uma vez os valores que você reutilizará:

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

Crie um assistente do Amazon Q in Connect

Ignore esta etapa se a instância já tiver um assistente. Caso contrário, crie um e associe-o à instância:

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

Anote o ID e o ARN do assistente.

2

Armazene a chave de API

O Amazon Connect lê a chave do Secrets Manager usando seu próprio principal de serviço, portanto o segredo precisa ser criptografado com uma chave KMS gerenciada pelo cliente que conceda acesso de descriptografia a connect.amazonaws.com. A chave padrão aws/secretsmanager não pode ser usada.

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": "*"
}
]
}

Salve a chave de API da ElevenLabs em um arquivo para que ela nunca apareça no histórico do shell e, em seguida, crie a chave e o segredo:

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

Conceda ao Amazon Connect acesso de leitura ao segredo:

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

Segredo do Secrets Manager criptografado com a chave gerenciada pelo cliente e sua política de recurso para
connect.amazonaws.com

3

Crie o aplicativo de terceiros

Registre a URL do WebSocket da ElevenLabs como um aplicativo AppIntegrations do tipo A2A_SERVER. AuthConfig é obrigatório para esse 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"

A resposta contém o Id e o Arn do aplicativo; exporte-os como APPLICATION_ID e APPLICATION_ARN. O console do Amazon Connect não lista aplicativos A2A_SERVER, então confirme com a API:

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

Associe o aplicativo à sua instância

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

Permita o aplicativo em um perfil de segurança

O perfil de segurança associado ao agente de IA de orquestração precisa listar o aplicativo entre os agentes de IA permitidos, ou a transferência falhará durante a execução.

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"

O site de administração mostra o perfil e suas permissões, mas não os agentes de IA permitidos; eles só ficam visíveis pela API.

Perfil de segurança exclusivo no site de administração do Amazon Connect com permissões de visualização
de agente de IA

6

Crie e publique o agente de IA de orquestração

O agente de orquestração transfere imediatamente todas as conversas por voz para o aplicativo, com streaming de áudio ativado. As sessões de voz exigem transferência imediata; o streaming de texto (audioStreamingEnabled definido como false) e delegateAgentConfiguration não são compatíveis com a 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

A publicação retorna um ARN versionado (<AI_AGENT_ARN>:1); o fluxo de contato faz referência a ele. Associe o perfil de segurança ao agente sem versão e ao agente 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 orquestração no designer de agentes de IA com o perfil de segurança exclusivo
associado

Crie o fluxo de contato

1

Crie o bot Lex

  1. Crie um bot Lex V2 cuja única intenção seja a AMAZON.QInConnectIntent integrada, configurada com o ARN do seu assistente. Não adicione outras intenções.
  2. Ative a conversão de fala em fala na localidade do bot. O streaming de áudio bidirecional funciona apenas com bots Sonic de fala em fala.
  3. Permita que a função IAM do bot use o assistente. Sem isso, a transferência falha dentro da AWS com HTTP 403 antes de qualquer solicitação chegar à ElevenLabs. Anexe uma 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. Compile o bot, crie uma versão e um alias, e associe o alias à instância:
aws connect associate-bot --instance-id $INSTANCE_ID \
--lex-v2-bot AliasArn=<LEX_ALIAS_ARN> --region $AWS_REGION

Lista de intenções do bot Lex V2 com a intenção de transferência do Q in Connect e a intenção de fallback
integrada

2

Adicione o assistente e o bloco Lex

No designer de fluxo, adicione estes blocos nesta ordem:

  1. Definir comportamento de registro: ativado. O registro do fluxo permite verificar a transferência abaixo.
  2. Conectar assistente: selecione seu assistente do Amazon Q in Connect.
  3. Obter entrada do cliente: na aba Amazon Lex, escolha Inserir um ARN e cole o ARN do alias do bot. Deixe o prompt de conversão de texto em fala como um único espaço para que o Amazon Connect não reproduza nada antes da transferência. Em Atributos de sessão, adicione dois atributos definidos manualmente:
Chave de destinoValor
x-amz-lex:q-in-connect:ai-agent-arnO ARN do agente de orquestração versionado (...:1).
x-amz-lex:qic-audio-passthroughtrue

Atributos de sessão do bloco Obter entrada do cliente: o ARN do agente de IA versionado e a flag de
passagem de áudio

x-amz-lex:qic-audio-passthrough habilita o caminho de voz de terceiros durante o período de pré-lançamento da AWS. A AWS informa que o atributo não será mais necessário quando o recurso estiver disponível publicamente; mantê-lo não causa problemas.

3

Crie ramificações conforme o resultado

O Amazon Connect disponibiliza o resultado da ElevenLabs para o fluxo como o atributo $.Lex.SessionAttributes.Tool. Adicione um bloco Verificar atributos de contato após o bloco Lex, defina Namespace como Lex, Chave como Atributos de sessão e Chave de atributo de sessão como Tool; em seguida, adicione uma condição Igual a para cada resultado:

ValorSignificadoRota sugerida
CompleteO agente encerrou a chamada, por exemplo, com a ferramenta Encerrar chamada.Desconectar
EscalateO agente solicitou uma pessoa (consulte Transferir para uma pessoa).Definir fila de trabalho → Transferir para fila

Bloco Verificar atributos de contato configurado no atributo de sessão Lex Tool com condições Igual a
para cada resultado

O Amazon Connect grava esses valores com inicial maiúscula (Escalate, Complete), e não como o tipo de resultado em letras maiúsculas enviado pelo agente. Em um fluxo exportado, a saída Padrão do bloco Lex é a transição NoMatchingCondition; verifique se ela leva ao bloco de comparação, e não a uma mensagem de erro.

Fluxo de contato com o bloco Obter entrada do cliente levando a um bloco Verificar atributos de contato que
encaminha Escalate para uma fila e Complete para uma
desconexão

O fluxo acima compara as duas grafias de cada resultado para continuar funcionando caso a capitalização mude.

4

Publique e atribua

Publique o fluxo e direcione um número de telefone reivindicado para ele:

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 chamadas de saída, inicie o contato com o mesmo fluxo; o Amazon Connect liga para o cliente e transfere a chamada atendida para 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

Teste a integração

1

Faça uma chamada

Ligue para o número. A primeira mensagem do agente é reproduzida alguns segundos depois que o fluxo chega ao bloco Lex; a transferência dentro da AWS leva cerca de três segundos antes de a ElevenLabs ser contatada. Tenha uma conversa breve e diga adeus: o agente chama Encerrar chamada, a sessão da ElevenLabs termina com Complete, e seu fluxo continua a partir do bloco Lex.

2

Confira a conversa na ElevenLabs

Abra a conversa em Conversas. A origem dela é o Amazon Connect, e a aba Dados do cliente lista as variáveis dinâmicas amazon_connect_* recebidas pela sessão.

Aba Dados do cliente de uma conversa do Amazon Connect listando as variáveis dinâmicas do Amazon Connect

3

Confira o registro do fluxo na AWS

Com o registro ativado, cada bloco grava uma entrada no grupo de logs de fluxo da instância. O bloco Obter entrada do cliente registra o resultado que recebeu da 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_]*"'

Espere "Results": "Complete" para o bloco Lex, seguido pelos blocos na sua ramificação Complete.

Variáveis dinâmicas

O Amazon Connect envia os atributos do sistema do contato em cada sessão. A ElevenLabs os disponibiliza, junto com os identificadores da sessão, como variáveis dinâmicas:

Variável dinâmicaDescrição
system__caller_idO número de telefone do cliente (endpoint do cliente no Amazon Connect).
system__called_numberO número do Amazon Connect em que está o contato (endpoint do sistema).
system__call_idO ID do contato do Amazon Connect.
amazon_connect_system_attributes_channelO canal de contato, por exemplo, VOICE.
amazon_connect_system_attributes_customer_endpoint_addressO endereço do endpoint do cliente enviado pelo Amazon Connect.
amazon_connect_system_attributes_system_endpoint_addressO endereço do endpoint do sistema enviado pelo Amazon Connect.
amazon_connect_interaction_modeO modo de colaboração, por exemplo, HANDOFF.
amazon_connect_contact_idO ID do contato do Amazon Connect.
amazon_connect_contact_arnO ARN completo do contato.
amazon_connect_context_idO ID da sessão A2A (contexto).
amazon_connect_instance_idO ID da instância.
amazon_connect_instance_arnO ARN da instância.

Em sessões do Amazon Connect, system__caller_id é sempre o cliente e system__called_number é sempre o número do Amazon Connect, tanto para contatos de entrada quanto de saída.

Todos os outros membros do contexto de contato enviados pelo Amazon Connect são disponibilizados da mesma forma: nomes aninhados são unidos com sublinhados e convertidos para snake case sob o prefixo amazon_connect_. Atributos de contato personalizados definidos no seu fluxo com Definir atributos de contato não fazem parte do contexto que o Amazon Connect envia atualmente, mesmo quando o perfil de segurança do agente de IA pode visualizar os atributos de contato. Se a AWS começar a incluí-los, eles aparecerão automaticamente sob o mesmo prefixo. Você não pode escolher quais dados de contato o Amazon Connect compartilha; a AWS envia um conjunto fixo de contexto.

Para enviar contexto adicional, use o webhook de início da conversa. Para sessões do Amazon Connect, o webhook é chamado antes que o agente fale, com caller_id definido como o número do cliente, called_number definido como o número do Amazon Connect e call_id definido como o ID de contato do Amazon Connect. Assim, uma Lambda no seu fluxo pode armazenar atributos de contato usando o ID do contato como chave, e o webhook pode retorná-los como variáveis dinâmicas e substituições de configuração.

Transferência para uma pessoa

O Amazon Connect encaminha um contato para uma fila humana quando a sessão da ElevenLabs termina com um resultado Escalate, que a ramificação Escalate do seu fluxo processa com Definir fila de trabalho e Transferir para fila. Qualquer tratamento de fila, fluxo de sussurro ou seleção de agente é gerenciado pelo Amazon Connect.

O gatilho no lado do agente para Escalate está sendo adicionado à ferramenta Transferir para número como um tipo de transferência do Amazon Connect, para que uma única ferramenta cubra a transferência para uma pessoa em todos os provedores. Até que isso seja lançado, agentes da ElevenLabs no Amazon Connect podem encerrar a chamada (Complete), mas não podem encaminhá-la para uma pessoa. Mantenha a ramificação Escalate no seu fluxo; ela começará a funcionar sem outras alterações no fluxo.

A ferramenta Encerrar chamada gera um resultado Complete. A análise pós-chamada e o webhook pós-chamada são executados normalmente após qualquer um dos resultados.

Apenas o tipo de resultado e uma string de motivo retornam ao Amazon Connect. Para passar dados de roteamento ao fluxo, forneça ao agente uma ferramenta de webhook que chame a API UpdateContactAttributes do Amazon Connect com amazon_connect_contact_id e os valores a armazenar, e instrua o agente a chamá-la antes de encerrar a chamada. O fluxo pode então ler esses atributos com um bloco Verificar atributos de contato após o bloco Lex. O webhook pós-chamada é acionado depois que o fluxo já continuou, portanto é mais adequado para atualizações de CRM do que para decisões de roteamento.

Rastreamentos

O Amazon Connect exige que agentes externos enviem dados de rastreamento para cada colaboração. Quando o Amazon Connect assina o rastreamento na sessão, a ElevenLabs envia um rastreamento OpenTelemetry para cada turno do agente contendo a transcrição do chamador, a resposta do agente, cada chamada de ferramenta com seu resultado e o tempo de cada span. O Amazon Connect armazena esses rastreamentos com o contato; consulte rastreamentos de agentes de IA para saber como visualizá-los. As transcrições e os resultados de ferramentas nesses rastreamentos estão sujeitos às mesmas configurações de redação que o restante dos seus dados de contato no Amazon Connect. Portanto, revise seus requisitos de tratamento de dados antes de ativar a integração. Assim como os webhooks pós-chamada, os rastreamentos são entregues aos seus próprios sistemas: agentes no modo de retenção zero ainda os enviam, porque a retenção zero rege o que a ElevenLabs armazena, e não o que sua instância do Amazon Connect recebe.

Áudio

O Amazon Connect propõe PCM linear mono de 16 bits a 8, 16 ou 24 kHz em cada sessão, e a ElevenLabs adota a proposta. Portanto, os formatos de áudio configurados do agente não são usados em sessões do Amazon Connect. A interrupção do chamador é detectada pela ElevenLabs e informada ao Amazon Connect para que a reprodução em buffer seja interrompida imediatamente. A entrada pelo teclado coletada pelo Amazon Connect é entregue ao agente como dígitos DTMF. O próprio marcador de silêncio do Amazon Connect é ignorado; use o tempo limite de turno do agente para solicitar novamente a um chamador silencioso.

Limitações e recursos não compatíveis

  • As ferramentas de cliente e a ferramenta do sistema Reproduzir tom de tecla do teclado não são compatíveis. Transferir para número ainda não é compatível com o Amazon Connect; a transferência para uma pessoa chegará como um tipo de transferência do Amazon Connect nessa ferramenta.
  • Os resultados da coleta de dados não são retornados ao fluxo, e o Amazon Connect decide quais dados de contato compartilha. Use o webhook de início da conversa identificado por amazon_connect_contact_id para contexto adicional, uma ferramenta de webhook que chame UpdateContactAttributes para dados de roteamento e o webhook pós-chamada para todo o resto.
  • Substituições de configuração, como system__override_first_message, não podem ser transmitidas pelo fluxo. Em vez disso, retorne-as pelo webhook de início da conversa.
  • As sessões de voz exigem transferência imediata. O canal de chat do Amazon Connect, o streaming de texto e a colaboração em segundo plano (delegateAgentConfiguration) ainda não são compatíveis.
  • Os rastreamentos enviados ao Amazon Connect abrangem a transcrição do chamador, as respostas do agente, chamadas de ferramentas com seus resultados e tempos. Os parâmetros das chamadas de ferramentas não são incluídos.
  • O suporte do Amazon Connect a agentes de terceiros está disponível apenas onde a AWS o habilitou e pode gerar cobranças adicionais da AWS.

Solução de problemas

  • O erro é gerado dentro da AWS antes que qualquer solicitação chegue à ElevenLabs. Verifique o CloudTrail em busca de AccessDenied em wisdom:SendMessage da função de serviço do Lex: a função anexada ao bot precisa de wisdom:CreateSession, wisdom:GetAssistant, wisdom:SendMessage e wisdom:GetNextMessage no assistente e em suas sessões.
  • Confirme se o perfil de segurança permite o aplicativo e está associado à versão publicada do agente de orquestração referenciada pelo fluxo.
  • Confirme se a chave KMS e a política de recursos do segredo concedem acesso a connect.amazonaws.com.
  • O Amazon Connect dá à conexão WebSocket cerca de 20 segundos para ser estabelecida. Confirme se a AccessUrl está acessível pela AWS: wss://, o ID correto do agente, nenhuma lista de permissões de rede bloqueando o acesso.
  • Se você fizer proxy da conexão pela sua própria infraestrutura, mantenha esse proxy ativo. Uma instância serverless inativa pode levar mais tempo do que a janela de transferência, e o Amazon Connect desiste antes que a ElevenLabs sequer veja a solicitação.
  • Confirme se ambos os atributos de sessão estão definidos no bloco Obter entrada do cliente: x-amz-lex:q-in-connect:ai-agent-arn com o ARN do agente publicado e versionado e x-amz-lex:qic-audio-passthrough definido como true.
  • Confirme se o perfil de segurança que permite o aplicativo está anexado a essa versão do agente.
  • Leia a entrada do bloco no log do fluxo; ela contém o erro encontrado pelo Amazon Connect.
  • Confirme se a AccessUrl usa wss://, contém o ID correto do agente e aponta para a região onde está seu workspace.
  • Confirme se a chave de API está ativa, pertence ao workspace do agente e não tem restrições de IP.
  • Confirme se o transporte do Amazon Connect está ativado para seu workspace.

No bloco Lex, verifique se a saída Padrão leva ao bloco que compara $.Lex.SessionAttributes.Tool e compare com os valores em caixa de título Escalate e Complete.

Confirme se o colaborador está configurado com audioStreamingEnabled definido como true. Com streaming de texto, o Amazon Connect envia turnos de texto e espera respostas em texto, o que a ElevenLabs não suporta; os logs da ElevenLabs mostram INIT_SESSION carries no audio configuration.

O Amazon Connect fornece os atributos e identificadores do sistema de contato listados acima. Atributos de contato personalizados definidos no fluxo não chegam ao agente; transmita-os pelo webhook de início da conversa. Se a primeira mensagem ou o prompt do agente fizer referência a uma variável que nunca é fornecida, a sessão falhará na inicialização.