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
- 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. - 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.
- O Amazon Connect abre um WebSocket para o endpoint da ElevenLabs no
AccessUrldo aplicativo, autenticando-se com a chave de API armazenada no AWS Secrets Manager. - 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.
- 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 resultadoEscalate, 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:
- 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.
- Um assistente do Amazon Q in Connect associado à instância.
- 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.
- Um workspace da ElevenLabs com o transporte Amazon Connect ativado.
- Um agente da ElevenLabs e uma chave de API exclusiva.
- 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
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.
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.
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.
Anote a URL do WebSocket
O Amazon Connect se conecta a uma URL que contém o ID do seu agente:
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á:
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:
Anote o ID e o ARN do assistente.
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.
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:
Conceda ao Amazon Connect acesso de leitura ao segredo:

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.
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:
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.
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.

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.
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:

Crie o fluxo de contato
Crie o bot Lex
- Crie um bot Lex V2 cuja única intenção seja a
AMAZON.QInConnectIntentintegrada, configurada com o ARN do seu assistente. Não adicione outras intenções. - 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.
- Permita que a função IAM do bot use o assistente. Sem isso, a transferência falha dentro da AWS com
HTTP 403antes de qualquer solicitação chegar à ElevenLabs. Anexe uma política como esta:
- Compile o bot, crie uma versão e um alias, e associe o alias à instância:

Adicione o assistente e o bloco Lex
No designer de fluxo, adicione estes blocos nesta ordem:
- Definir comportamento de registro: ativado. O registro do fluxo permite verificar a transferência abaixo.
- Conectar assistente: selecione seu assistente do Amazon Q in Connect.
- 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:

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.
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:

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.

O fluxo acima compara as duas grafias de cada resultado para continuar funcionando caso a capitalização mude.
Teste a integração
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.
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.

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:
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:
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_idpara contexto adicional, uma ferramenta de webhook que chameUpdateContactAttributespara 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 fluxo falha com 'A2A WebSocket upgrade ... failed (HTTP 403)'
- O erro é gerado dentro da AWS antes que qualquer solicitação chegue à ElevenLabs. Verifique o CloudTrail em busca de
AccessDeniedemwisdom:SendMessageda função de serviço do Lex: a função anexada ao bot precisa dewisdom:CreateSession,wisdom:GetAssistant,wisdom:SendMessageewisdom:GetNextMessageno 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 fluxo falha com 'the hand-off to the target agent could not be completed'
- O Amazon Connect dá à conexão WebSocket cerca de 20 segundos para ser estabelecida. Confirme se a
AccessUrlestá 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.
O bloco Lex segue pela ramificação Error e o chamador não ouve nada
- 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-arncom o ARN do agente publicado e versionado ex-amz-lex:qic-audio-passthroughdefinido comotrue. - 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.
A sessão termina imediatamente após a conexão
- Confirme se a
AccessUrlusawss://, 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.
O chamador ouve o prompt de erro do fluxo depois que o agente termina
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.
O agente nunca fala e a sessão termina após alguns segundos
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.
Variáveis dinâmicas estão ausentes
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.