Amazon Connect
Trasferisci i contatti vocali di Amazon Connect a ElevenAgents tramite l’integrazione nativa di Amazon Connect con agenti IA di terze parti (A2A).
L’integrazione con Amazon Connect è disponibile in modo limitato. Il supporto di Amazon Connect per gli agenti IA di terze parti deve essere abilitato per il tuo account AWS e il trasporto ElevenLabs viene abilitato per ciascun workspace. Contatta il tuo referente ElevenLabs prima di instradare il traffico dei clienti.
Panoramica
L’integrazione con Amazon Connect collega direttamente un flusso di contatto Amazon Connect a un agente in ElevenAgents tramite il protocollo per agenti IA di terze parti di Amazon Connect, un’estensione del protocollo aperto A2A. Amazon Connect gestisce telefonia, instradamento e coda; ElevenAgents gestisce la conversazione. Non sono necessari trunk SIP, numeri Twilio o middleware. AWS documenta la funzionalità in Collaborazione agente-agente; questa guida tratta gli aspetti specifici di ElevenLabs e i passaggi AWS necessari per raggiungere un agente ElevenLabs.
Lo stesso flusso gestisce le chiamate in entrata e i contatti in uscita avviati con StartOutboundVoiceContact.
Quando l’agente ElevenLabs termina, Amazon Connect continua il flusso di contatto e crea un ramo in base
all’esito ricevuto.
Come funziona l’integrazione
- Un flusso di contatto raggiunge un blocco Ottieni input del cliente che invoca un bot Amazon Lex V2 con
l’intent
AMAZON.QInConnectIntent. - L’agente IA di orchestrazione di Amazon Connect passa immediatamente la conversazione all’applicazione di terze parti registrata per ElevenLabs.
- Amazon Connect apre un WebSocket verso l’endpoint ElevenLabs nell’
AccessUrldell’applicazione, autenticandosi con la chiave API archiviata in AWS Secrets Manager. - Amazon Connect segnala che il canale del chiamante è attivo, quindi Amazon Connect ed ElevenLabs scambiano audio PCM lineare a 16 bit come messaggi A2A. Amazon Connect propone la frequenza di campionamento ed ElevenLabs la adotta, quindi non sono necessarie modifiche al formato audio nell’agente.
- Quando l’agente termina la chiamata o trasferisce il chiamante a un operatore, ElevenLabs conclude la sessione con
un esito
CompleteoEscalatee il flusso continua dal blocco Lex; consulta Trasferimento a un operatore.
Requisiti
Prima di iniziare, assicurati di avere:
- Un’istanza Amazon Connect nel piano Connect Customer con supporto per agenti IA di terze parti abilitato per l’account e la regione.
- Un assistente Amazon Q in Connect associato all’istanza.
- Autorizzazioni AWS per creare chiavi KMS, segreti Secrets Manager, applicazioni AppIntegrations, profili di sicurezza Connect, agenti IA Amazon Q in Connect, bot Lex V2 e flussi di contatto.
- Un workspace ElevenLabs con il trasporto Amazon Connect abilitato.
- Un agente ElevenLabs e una chiave API dedicata.
- AWS CLI v2 e awscurl (
pip install awscurl) per le chiamate le cui request shape non sono ancora presenti nelle versioni CLI rilasciate.
Mantieni tutte le risorse AWS nello stesso account e nella stessa regione dell’istanza Amazon Connect. I passaggi
seguenti usano AWS CLI quando supporta la chiamata e awscurl (una richiesta HTTP firmata SigV4) quando
non la supporta. Seguono la procedura AWS Configurare la collaborazione con un agente IA
esterno e aggiungono i
valori specifici di ElevenLabs.
Configura ElevenLabs
Crea o seleziona un agente
Crea l’agente in ElevenAgents. Assegnagli un primo messaggio se deve parlare non appena il trasferimento viene completato; Amazon Connect non riproduce alcun audio proprio durante la sessione.
Abilita Termina chiamata
In Agente → Strumenti → Strumenti di sistema, abilita Termina chiamata affinché l’agente possa terminare la sessione quando
la richiesta del chiamante è stata risolta. Amazon Connect continua quindi il tuo flusso con l’esito Complete.
Aggiungi una regola di trasferimento Amazon Connect (facoltativo)
Per consentire all’agente di trasferire il chiamante a un operatore, assegnagli lo strumento di sistema Trasferisci a numero con una
regola di trasferimento la cui configurazione del provider sia amazon_connect. La regola non ha una destinazione: la
sessione termina con l’esito Escalate e il tuo flusso di contatto sceglie la coda. Le regole di trasferimento sono
configurate tramite API. Aggiungi lo strumento con un PATCH sull’agente:
Invia l’intero oggetto built_in_tools dell’agente, inclusi gli strumenti già presenti come end_call.
L’agente seleziona la regola in base alla relativa condition; l’opzione che restituisce è il token fisso
amazon_connect, quindi è sufficiente una regola Amazon Connect per strumento. Numeri di telefono e URI SIP
configurati per altri provider non vengono offerti nelle chiamate Amazon Connect.
Le regole di trasferimento sono un’impostazione gestita tramite API. Configura e aggiorna tramite API, come sopra, lo strumento Trasferisci a numero di un agente che le utilizza; l’editor degli strumenti della dashboard funziona con l’elenco di trasferimento per numero.
Crea una chiave API dedicata
Crea una chiave API nello stesso workspace dell’agente e limitane l’ambito a ElevenAgents. La archivierai in AWS Secrets Manager nella sezione successiva; non incollarla altrove.
Annota l'URL WebSocket
Amazon Connect si connette a un URL che contiene l’ID dell’agente:
Se il tuo account ElevenLabs si trova in un ambiente di residenza isolato, sostituisci <region> con il codice
della tua regione. Consulta la residenza dei dati per le regioni
disponibili.
Registra l’applicazione ElevenLabs in AWS
Tutto in questa sezione è una chiamata API. Imposta una sola volta i valori che riutilizzerai:
Crea un assistente Amazon Q in Connect
Salta questo passaggio se l’istanza ha già un assistente. Altrimenti, creane uno e associalo all’istanza:
Annota l’ID e l’ARN dell’assistente.
Archivia la chiave API
Amazon Connect legge la chiave da Secrets Manager usando il proprio service principal, quindi il secret
deve essere crittografato con una chiave KMS gestita dal cliente che conceda a connect.amazonaws.com
l’accesso per la decrittografia. Non puoi usare la chiave predefinita aws/secretsmanager.
Salva la chiave API di ElevenLabs in un file affinché non compaia mai nella cronologia della shell, poi crea la chiave e il secret:
Concedi ad Amazon Connect l’accesso in lettura al secret:

Crea l'applicazione di terze parti
Registra l’URL WebSocket di ElevenLabs come applicazione AppIntegrations di tipo A2A_SERVER.
AuthConfig è obbligatorio per questo tipo.
La risposta contiene Id e Arn dell’applicazione; esportali come APPLICATION_ID e
APPLICATION_ARN. La console Amazon Connect non elenca le applicazioni A2A_SERVER, quindi verifica
con l’API:
Consenti l'applicazione in un profilo di sicurezza
Il profilo di sicurezza associato all’agente IA di orchestrazione deve elencare l’applicazione tra i propri agenti IA consentiti, altrimenti il passaggio di consegne non riesce in fase di runtime.
Il sito di amministrazione mostra il profilo e le relative autorizzazioni, ma non gli agenti IA consentiti; questi sono visibili solo tramite l’API.

Crea e pubblica l'agente IA di orchestrazione
L’agente di orchestrazione passa subito ogni conversazione vocale all’applicazione, con lo streaming
audio abilitato. Le sessioni vocali richiedono un passaggio di consegne immediato; lo streaming di testo
(audioStreamingEnabled impostato su false) e delegateAgentConfiguration non sono supportati da
ElevenLabs. Un orchestratore con passaggio di consegne audio immediato deve inoltre dichiarare lo strumento
riservato Complete di tipo RETURN_TO_CONTROL in toolConfigurations; senza di esso, la richiesta di
creazione non riesce con An audio frontline orchestrator (with an audio immediate handoff) must configure the reserved 'Complete' RETURN_TO_CONTROL tool.
La pubblicazione restituisce un ARN con versione (<AI_AGENT_ARN>:1); il flusso di contatto vi fa riferimento.
Associa il profilo di sicurezza sia all’agente senza versione sia a quello con versione:

Crea il flusso di contatto
Crea il bot Lex
- Crea un bot Lex V2 il cui unico intent sia l’
AMAZON.QInConnectIntentintegrato, configurato con l’ARN del tuo assistente. Non aggiungere altri intent. - Abilita speech-to-speech nelle impostazioni locali del bot. Lo streaming audio bidirezionale funziona solo con bot Sonic speech-to-speech.
- Consenti al ruolo IAM del bot di usare l’assistente. Senza questo, il passaggio di consegne non riesce in AWS con
HTTP 403prima che una richiesta raggiunga ElevenLabs. Associa una policy come questa:
- Crea il bot, poi crea una versione e un alias, quindi associa l’alias all’istanza:

Aggiungi l'assistente e il blocco Lex
Nel designer del flusso, aggiungi questi blocchi nell’ordine indicato:
- Imposta comportamento di logging: abilitato. Il log del flusso consente di verificare il passaggio di consegne riportato di seguito.
- Connetti assistente: seleziona il tuo assistente Amazon Q in Connect.
- Ottieni input del cliente: nella scheda Amazon Lex scegli Inserisci un ARN e incolla l’ARN dell’alias del bot. Lascia il prompt Text to Speech come singolo spazio affinché Amazon Connect non riproduca nulla prima del passaggio di consegne. In Attributi di sessione, aggiungi manualmente due attributi:

x-amz-lex:qic-audio-passthrough abilita il percorso vocale di terze parti durante il periodo di pre-lancio di AWS.
AWS dichiara che l’attributo non sarà più necessario quando la funzionalità sarà pubblica; lasciarlo attivo è
innocuo.
Crea rami in base all'esito
Amazon Connect espone al flusso l’esito di ElevenLabs come attributo
$.Lex.SessionAttributes.Tool. Dopo il blocco Lex, aggiungi un blocco Controlla attributi di contatto,
imposta Namespace su Lex, Chiave su Attributi di sessione e Chiave attributo di sessione su Tool, quindi aggiungi una condizione
Uguale a per ogni esito e instrada Nessuna corrispondenza a un prompt di errore:

Amazon Connect scrive l’esito con iniziale maiuscola (Escalate, Complete), non come tipo di
completamento tutto maiuscolo inviato tramite il collegamento, quindi queste due condizioni sono tutto ciò che serve al blocco. Una sessione che
non riesce dopo il passaggio di consegne termina con il tipo COMPLETE_WITH_ERROR; il blocco Lex segue quindi il
relativo output Errore oppure il confronto passa a Nessuna corrispondenza, quindi instrada entrambi al prompt di
errore. In un flusso esportato, l’output Predefinito del blocco Lex è la sua transizione NoMatchingCondition;
assicurati che conduca al blocco di confronto anziché a un messaggio di errore.

Testa l’integrazione
Effettua una chiamata
Chiama il numero. Il primo messaggio dell’agente viene riprodotto pochi secondi dopo che il flusso raggiunge il blocco
Lex; il passaggio di consegne in AWS richiede circa tre secondi prima che ElevenLabs venga contattato. Fai una
breve conversazione e saluta: l’agente chiama Termina chiamata, la sessione ElevenLabs termina con
Complete e il flusso prosegue dal blocco Lex. Se hai aggiunto una regola di trasferimento, chiedi invece un
operatore umano: l’agente chiama Trasferisci a numero, la sessione termina con Escalate e il
flusso segue quel ramo.
Controlla la conversazione in ElevenLabs
Apri la conversazione in Conversazioni. La relativa origine è Amazon Connect e la scheda Dati client
elenca le variabili dinamiche amazon_connect_* ricevute dalla sessione.

Controlla il log del flusso in AWS
Con il logging abilitato, ogni blocco scrive una voce nel gruppo di log del flusso dell’istanza. Il blocco Ottieni input del cliente registra l’esito ricevuto da ElevenLabs:
Per il blocco Lex, aspettati "Results": "Complete" oppure "Results": "Escalate" dopo un trasferimento,
seguito dai blocchi di quel ramo.
Variabili dinamiche
Amazon Connect invia gli attributi di sistema del contatto con ogni sessione. ElevenLabs li espone, insieme agli identificatori della sessione, come variabili dinamiche:
Nelle sessioni Amazon Connect, system__caller_id è sempre il cliente e system__called_number
è sempre il numero Amazon Connect, sia per i contatti in entrata sia per quelli in uscita.
Ogni altro elemento del contesto del contatto inviato da Amazon Connect viene esposto allo stesso modo: i nomi
annidati vengono uniti con trattini bassi e convertiti in snake case con il prefisso amazon_connect_.
Gli attributi di contatto personalizzati impostati nel flusso con Imposta attributi di contatto non fanno parte del
contesto che Amazon Connect invia attualmente, anche quando il profilo di sicurezza dell’agente IA può visualizzare gli attributi di contatto;
se AWS inizierà a includerli, appariranno automaticamente con lo stesso prefisso. Non puoi scegliere quali dati di contatto Amazon Connect condivide; AWS trasmette un set fisso di contesto.
Per trasmettere contesto aggiuntivo, usa il
webhook di avvio della conversazione.
Per le sessioni Amazon Connect, il webhook viene chiamato prima che l’agente parli con caller_id impostato sul
numero del cliente, called_number impostato sul numero Amazon Connect e call_id impostato sull’ID del contatto Amazon
Connect, quindi una Lambda nel flusso può archiviare attributi di contatto indicizzati per ID contatto e il webhook può
restituirli come variabili dinamiche e override della configurazione.
Trasferimento a un operatore umano
Fornisci all’agente lo strumento di sistema Trasferisci a numero con una regola di trasferimento amazon_connect, come
mostrato in Configura ElevenLabs. Quando viene soddisfatta la condizione della regola, l’agente
chiama lo strumento e ElevenLabs conclude la sessione con l’esito Escalate e il motivo fornito
dall’agente. Il ramo Escalate del flusso gestisce poi il contatto con Imposta coda di lavoro e
Trasferisci alla coda. La regola non contiene una destinazione, quindi la coda viene scelta nel flusso, non
dall’agente; gestione della coda, whisper flow e selezione dell’agente restano in Amazon Connect.
Lo strumento Termina chiamata produce un esito Complete. L’analisi post-chiamata e il webhook post-chiamata
vengono eseguiti come di consueto dopo entrambi gli esiti.
Fornire un riepilogo all’operatore umano
Amazon Connect espone al flusso solo l’esito: $.Lex.SessionAttributes.Tool (e il nome dell’intent Lex)
contiene Escalate, e nient’altro della sessione ElevenLabs, incluso il motivo del trasferimento,
raggiunge il flusso. Per aggiornare l’operatore umano che prende la chiamata, salva tu stesso il riepilogo sul contatto
e lascia che un agent whisper flow lo legga:
-
Esponi un endpoint che chiama l’API
UpdateContactAttributesdi Amazon Connect. È sufficiente una Lambda minima dietro un’API HTTP; il chiamante deve avere il permessoconnect:UpdateContactAttributessui contatti dell’istanza: -
Fornisci all’agente uno strumento webhook che esegua un
POSTverso quell’endpoint concontact_idcompilato dalla variabile dinamicaamazon_connect_contact_ide unsummaryscritto dal modello. Conserva il segreto condiviso in un secret del workspace e invialo come header della richiesta. Nel prompt di sistema, indica all’agente di chiamare prima questo strumento e di chiamare Trasferisci a numero solo dopo il suo ritorno; un modello che emette entrambe le chiamate nello stesso turno mette in competizione il trasferimento con il riepilogo. Con questa istruzione, nei nostri test l’attributo era sul contatto circa un secondo dopo la richiesta dell’agente, tre secondi prima che Amazon Connect riprendesse il flusso. -
Nel ramo
Escalatedel flusso di contatto, aggiungi un blocco Imposta whisper flow prima di **Trasferisci alla coda **, che punti a un agent whisper flow il cui Riproduci prompt legge$.Attributes.handoff_summary. Amazon Connect lo riproduce all’operatore umano mentre il chiamante ascolta la gestione della coda, quindi collega i due. Non impostare di nuovohandoff_summaryin un blocco successivo del flusso: un valore vuoto sostituisce quello scritto dall’endpoint.
Lo stesso attributo è disponibile per un blocco Controlla attributi di contatto per le decisioni di instradamento. Il webhook post-chiamata si attiva dopo che il flusso è già proseguito, quindi è adatto agli aggiornamenti CRM anziché alle decisioni di instradamento.
Tracce
Amazon Connect richiede agli agenti esterni di inviare dati di traccia per ogni collaborazione. Quando Amazon Connect si iscrive al tracciamento della sessione, ElevenLabs invia una traccia OpenTelemetry per ogni turno dell’agente contenente la trascrizione del chiamante, la risposta dell’agente, ogni chiamata di strumento con il relativo risultato e la temporizzazione per span. Amazon Connect archivia queste tracce con il contatto; consulta Tracce dell’agente IA per sapere come visualizzarle. Le trascrizioni e i risultati degli strumenti in queste tracce sono soggetti alle stesse impostazioni di redazione degli altri dati di contatto in Amazon Connect, quindi esamina i requisiti di gestione dei dati prima di abilitare l’integrazione. Come i webhook post-chiamata, le tracce vengono inviate ai tuoi sistemi: gli agenti in modalità zero retention le inviano comunque, perché zero retention regola ciò che ElevenLabs archivia, non ciò che riceve l’istanza Amazon Connect.
Audio
Amazon Connect propone PCM lineare mono a 16 bit a 8, 16 o 24 kHz per ogni sessione, e ElevenLabs adotta la proposta, quindi i formati audio configurati dall’agente non vengono usati per le sessioni Amazon Connect. L’interruzione da parte del chiamante viene rilevata da ElevenLabs e segnalata ad Amazon Connect affinché la riproduzione in buffer venga svuotata immediatamente. L’input da tastierino raccolto da Amazon Connect viene inviato all’agente come cifre DTMF. Il marker di silenzio di Amazon Connect viene ignorato; usa il timeout di turno dell’agente per richiedere nuovamente una risposta a un chiamante silenzioso.
Limitazioni e funzionalità non supportate
- Gli strumenti client e lo strumento di sistema Riproduci tono del tastierino non sono supportati. Trasferisci a numero funziona solo tramite una regola di trasferimento Amazon Connect: l’agente non può chiamare un numero di telefono o un URI SIP da una chiamata Amazon Connect e il flusso decide quale coda riceve un chiamante per cui è stata effettuata un’escalation.
- I risultati della raccolta dati non vengono restituiti al flusso e Amazon Connect decide quali dati di contatto condividere. Usa il
webhook di avvio della conversazione indicizzato tramite
amazon_connect_contact_idper contesto aggiuntivo, uno strumento webhook che chiamaUpdateContactAttributesper i dati di instradamento e il webhook post-chiamata per tutto il resto. - Gli override di configurazione come
system__override_first_messagenon possono essere trasmessi dal flusso. Restituiscili invece dal webhook di avvio della conversazione. - Le sessioni vocali richiedono un passaggio di consegne immediato. Il canale chat di Amazon Connect, lo streaming di testo e
la collaborazione in background (
delegateAgentConfiguration) non sono supportati. - Le tracce inviate ad Amazon Connect includono la trascrizione del chiamante, le risposte dell’agente, le chiamate degli strumenti con i relativi risultati e la temporizzazione. I parametri delle chiamate degli strumenti non sono inclusi.
- Il supporto di Amazon Connect per gli agenti di terze parti è disponibile solo dove AWS lo ha abilitato e può comportare costi AWS aggiuntivi.
Risoluzione dei problemi
Il flusso non riesce con 'A2A WebSocket upgrade ... failed (HTTP 403)'
- L’errore si verifica all’interno di AWS prima che qualsiasi richiesta raggiunga ElevenLabs. Controlla CloudTrail per verificare la presenza di
AccessDeniedsuwisdom:SendMessagedal service role Lex: il ruolo associato al bot richiedewisdom:CreateSession,wisdom:GetAssistant,wisdom:SendMessageewisdom:GetNextMessagesull’assistente e sulle relative sessioni. - Verifica che il profilo di sicurezza consenta l’applicazione e sia associato alla versione pubblicata dell’agente di orchestrazione a cui fa riferimento il flusso.
- Verifica che la chiave KMS e la policy delle risorse del segreto concedano l’accesso a
connect.amazonaws.com.
Il flusso non riesce con 'the hand-off to the target agent could not be completed'
- Amazon Connect concede alla connessione WebSocket circa 20 secondi per stabilirsi. Verifica che
AccessUrlsia raggiungibile da AWS:wss://, l’ID agente corretto e nessuna allow-list di rete che interferisca. - Se instradi la connessione tramite la tua infrastruttura, mantieni attivo il proxy. Un’istanza serverless inattiva può richiedere più tempo della finestra di hand-off e Amazon Connect rinuncia prima che ElevenLabs riceva la richiesta.
Il blocco Lex segue il ramo Error e il chiamante non sente nulla
- Verifica che entrambi gli attributi di sessione siano impostati nel blocco Acquisisci input del cliente:
x-amz-lex:q-in-connect:ai-agent-arncon l’ARN dell’agente pubblicato e versionato ex-amz-lex:qic-audio-passthroughimpostato sutrue. - Verifica che il profilo di sicurezza che autorizza l’applicazione sia associato a quella versione dell’agente.
- Leggi la voce del blocco nel log del flusso: contiene l’errore riscontrato da Amazon Connect.
La sessione termina subito dopo la connessione
- Verifica che
AccessUrlutilizziwss://, contenga l’ID agente corretto e punti alla regione in cui risiede il tuo workspace. - Verifica che la chiave API sia attiva, appartenga al workspace dell’agente e non abbia restrizioni IP.
- Verifica che il trasporto Amazon Connect sia abilitato per il tuo workspace.
Il chiamante sente il messaggio di errore del flusso al termine dell'agente
Nel blocco Lex, assicurati che l’output Default conduca al blocco che confronta
$.Lex.SessionAttributes.Tool e confrontalo con i valori in maiuscolo iniziale Escalate e
Complete.
L'agente non parla mai e la sessione termina dopo pochi secondi
Verifica che il collaboratore sia configurato con audioStreamingEnabled impostato su true. Con lo streaming
di testo, Amazon Connect invia turni di testo e si aspetta risposte testuali, che ElevenLabs non
supporta; nei log di ElevenLabs viene visualizzato INIT_SESSION carries no audio configuration.
Mancano variabili dinamiche
Amazon Connect fornisce gli attributi di sistema e gli identificatori del contatto elencati sopra. Gli attributi di contatto personalizzati impostati nel flusso non raggiungono l’agente; passali invece tramite il webhook di avvio della conversazione. Se il primo messaggio o il prompt dell’agente fa riferimento a una variabile che non viene mai fornita, la sessione non si avvia.