Amazon Connect
Överlämna röstkontakter från Amazon Connect till ElevenAgents via Amazon Connects inbyggda A2A-integration för AI-agenter från tredje part.
Amazon Connect-integrationen har begränsad tillgänglighet. Amazon Connects stöd för AI-agenter från tredje part måste vara aktiverat för ditt AWS-konto, och ElevenLabs-transporten aktiveras per arbetsyta. Kontakta din kontaktperson på ElevenLabs innan du dirigerar kundtrafik.
Översikt
Amazon Connect-integrationen ansluter ett Amazon Connect-kontaktflöde direkt till en agent i ElevenAgents via Amazon Connects protokoll för AI-agenter från tredje part, en utökning av det öppna A2A-protokollet. Amazon Connect hanterar telefoni, dirigering och kön; ElevenAgents hanterar konversationen. Ingen SIP trunk, inget Twilio-nummer eller mellanprogram krävs. AWS dokumenterar funktionen under Agent-till-agent-samarbete; den här guiden beskriver detaljerna för ElevenLabs och de AWS-steg som krävs för att nå en ElevenLabs-agent.
Samma flöde hanterar inkommande samtal och utgående kontakter som startas med StartOutboundVoiceContact.
När ElevenLabs-agenten avslutar fortsätter Amazon Connect ditt kontaktflöde och förgrenar utifrån det
resultat som den tog emot.
Så fungerar integrationen
- Ett kontaktflöde når ett Get customer input-block som anropar en Amazon Lex V2-bot med
avsikten
AMAZON.QInConnectIntent. - Amazon Connects orkestreringsagent för AI överlämnar omedelbart konversationen till tredjepartsapplikationen som du har registrerat för ElevenLabs.
- Amazon Connect öppnar en WebSocket till ElevenLabs-slutpunkten i applikationens
AccessUrl, och autentiserar med API-nyckeln som lagras i AWS Secrets Manager. - Amazon Connect signalerar att uppringarens kanal är aktiv, sedan utbyter Amazon Connect och ElevenLabs 16-bitars linjärt PCM-ljud som A2A-meddelanden. Amazon Connect föreslår samplingsfrekvensen och ElevenLabs använder den, så inga ändringar av ljudformat krävs för agenten.
- När agenten avslutar samtalet eller överlämnar uppringaren till en människa avslutar ElevenLabs sessionen med
resultatet
CompleteellerEscalate, och flödet fortsätter från Lex-blocket. Se Överföra till en människa.
Krav
Innan du börjar kontrollerar du att du har:
- En Amazon Connect-instans på nivån Connect Customer där stöd för AI-agenter från tredje part är aktiverat för kontot och regionen.
- En Amazon Q in Connect-assistent kopplad till instansen.
- AWS-behörigheter för att skapa KMS-nycklar, Secrets Manager-hemligheter, AppIntegrations-applikationer, Connect-säkerhetsprofiler, Amazon Q in Connect AI-agenter, Lex V2-botar och kontaktflöden.
- En ElevenLabs-arbetsyta där Amazon Connect-transporten är aktiverad.
- En ElevenLabs-agent och en särskild API-nyckel.
- AWS CLI v2 och awscurl (
pip install awscurl) för de anrop vars begärandeformat ännu inte finns i släppta CLI-versioner.
Behåll alla AWS-resurser i samma konto och region som Amazon Connect-instansen. Stegen nedan
använder AWS CLI där det stöder anropet och awscurl (en SigV4-signerad HTTP-begäran) där
det inte gör det. De följer AWS:s Konfigurera samarbete med en extern AI-
agent och lägger till
ElevenLabs-specifika värden.
Konfigurera ElevenLabs
Skapa eller välj en agent
Skapa agenten i ElevenAgents. Ge den ett första meddelande om den ska börja tala så snart överlämningen är klar; Amazon Connect spelar inte upp något eget under sessionen.
Aktivera Avsluta samtal
I Agent → Tools → System tools aktiverar du End call så att agenten kan avsluta sessionen när
uppringarens begäran har lösts. Amazon Connect fortsätter sedan ditt flöde med resultatet Complete.
Lägg till en överföringsregel för Amazon Connect (valfritt)
För att låta agenten överlämna uppringaren till en människa ger du den systemverktyget Transfer to number med en
överföringsregel vars leverantörskonfiguration är amazon_connect. Regeln har ingen destination: sessionen
avslutas med resultatet Escalate och ditt kontaktflöde väljer kön. Överföringsregler
konfigureras via API:et. Lägg till verktyget med en PATCH på agenten:
Skicka agentens kompletta built_in_tools-objekt, inklusive verktyg som den redan har, såsom end_call.
Agenten väljer regeln med dess condition; alternativet som den returnerar är den fasta tokenen
amazon_connect, så en Amazon Connect-regel per verktyg räcker. Telefonnummer och SIP-URI:er
som konfigurerats för andra leverantörer erbjuds inte i Amazon Connect-samtal.
Överföringsregler är en inställning som hanteras via API:et. Konfigurera och uppdatera Transfer to number-verktyget för en agent som använder dem via API:et, enligt ovan; dashboardens verktygsredigerare fungerar med överföringslistan per nummer.
Skapa en särskild API-nyckel
Skapa en API-nyckel i samma arbetsyta som agenten och begränsa den till ElevenAgents. Du lagrar den i AWS Secrets Manager i nästa avsnitt; klistra inte in den någon annanstans.
Notera WebSocket-URL:en
Amazon Connect ansluter till en URL som innehåller ditt agent-ID:
Om ditt ElevenLabs-konto finns i en isolerad miljö för datahemvist ersätter du <region> med din
რეგიონkod. Se datahemvist för tillgängliga
regioner.
Registrera ElevenLabs-applikationen i AWS
Allt i det här avsnittet är ett API-anrop. Ange de värden du kommer att återanvända en gång:
Skapa en Amazon Q in Connect-assistent
Hoppa över det här steget om instansen redan har en assistent. Annars skapar du en och kopplar den till instansen:
Notera assistentens ID och ARN.
Lagra API-nyckeln
Amazon Connect läser nyckeln från Secrets Manager med sin egen tjänsthuvudidentitet, så hemligheten
måste krypteras med en kundhanterad KMS-nyckel som ger connect.amazonaws.com åtkomst för
dekryptering. Standardnyckeln aws/secretsmanager kan inte användas.
Spara ElevenLabs API-nyckel i en fil så att den aldrig visas i ditt shell-historik, och skapa sedan nyckeln och hemligheten:
Ge Amazon Connect läsåtkomst till hemligheten:

Skapa tredjepartsapplikationen
Registrera ElevenLabs WebSocket-URL som en AppIntegrations-applikation av typen A2A_SERVER.
AuthConfig är obligatoriskt för den här typen.
Svaret innehåller applikationens Id och Arn; exportera dem som APPLICATION_ID och
APPLICATION_ARN. Amazon Connect-konsolen listar inte A2A_SERVER-applikationer, så verifiera
med API:et:
Tillåt applikationen i en säkerhetsprofil
Säkerhetsprofilen som är kopplad till orkestrerings-AI-agenten måste lista applikationen bland sina tillåtna AI-agenter, annars misslyckas överlämningen vid körning.
Administrationswebbplatsen visar profilen och dess behörigheter, men inte de tillåtna AI-agenterna; de visas endast via API:et.

Skapa och publicera orkestrerings-AI-agenten
Orkestreringsagenten överlämnar varje röstsamtal till applikationen direkt, med ljudströmning
aktiverad. Röstsessioner kräver omedelbar överlämning; textströmning
(audioStreamingEnabled inställt på false) och delegateAgentConfiguration stöds inte av
ElevenLabs. En orkestrerare med omedelbar överlämning av ljud måste också deklarera det reserverade
verktyget Complete av typen RETURN_TO_CONTROL i toolConfigurations; utan det misslyckas
skapandeanropet med An audio frontline orchestrator (with an audio immediate handoff) must configure the reserved 'Complete' RETURN_TO_CONTROL tool.
Publicering returnerar en versionshanterad ARN (<AI_AGENT_ARN>:1); kontaktflödet refererar till
den. Koppla säkerhetsprofilen till både den oversionshanterade och den versionshanterade agenten:

Bygg kontaktflödet
Skapa Lex-boten
- Skapa en Lex V2-bot vars enda intent är den inbyggda
AMAZON.QInConnectIntent, konfigurerad med din assistent-ARN. Lägg inte till andra intents. - Aktivera tal-till-tal i botens språkinställning. Dubbelriktad ljudströmning fungerar endast med Sonic-tal-till-tal-botar.
- Tillåt att botens IAM-roll använder assistenten. Utan detta misslyckas överlämningen i AWS med
HTTP 403innan någon begäran når ElevenLabs. Lägg till en policy som denna:
- Bygg boten, skapa en version och ett alias och koppla aliaset till instansen:

Lägg till assistenten och Lex-blocket
I flödesdesignern lägger du till dessa block i följande ordning:
- Ange loggningsbeteende: aktiverat. Flödesloggen är hur du verifierar överlämningen nedan.
- Anslut assistent: välj din Amazon Q in Connect-assistent.
- Hämta kundinmatning: på fliken Amazon Lex väljer du Ange en ARN och klistrar in botaliasets ARN. Lämna Text to Speech-prompten som ett enda blanksteg så att Amazon Connect inte spelar upp något före överlämningen. Under Sessionsattribut lägger du till två attribut som anges manuellt:

x-amz-lex:qic-audio-passthrough styr tredjepartsröstvägen under AWS förlanseringsperiod.
AWS uppger att attributet inte längre behövs när funktionen är offentlig; det är ofarligt att låta
det vara kvar.
Förgrena utifrån resultatet
Amazon Connect visar ElevenLabs-resultatet för flödet som attributet $.Lex.SessionAttributes.Tool.
Lägg till ett block för Kontrollera kontaktattribut efter Lex-blocket, ange Namnrymd till
Lex, Nyckel till Sessionsattribut och Sessionsattributnyckel till Tool, och lägg
sedan till ett Lika med-villkor per resultat och dirigera Ingen träff till en felprompt:

Amazon Connect skriver resultatet med inledande versal (Escalate, Complete), inte som den
versala avslutningstyp som skickas över anslutningen, så dessa två villkor är allt blocket behöver.
En session som misslyckas efter överlämningen avslutas med typen COMPLETE_WITH_ERROR; Lex-blocket
använder då utdata Fel eller jämförelsen faller tillbaka till Ingen träff, så dirigera båda
till felprompten. I ett exporterat flöde är Lex-blockets utdata Standard dess
NoMatchingCondition-övergång; se till att den leder till jämförelseblocket i stället för ett
felmeddelande.

Testa integrationen
Ring ett samtal
Ring numret. Agentens första meddelande spelas upp några sekunder efter att flödet når Lex-
blocket; överlämningen inom AWS tar ungefär tre sekunder innan ElevenLabs kontaktas. Ha ett kort
samtal och säg hej då: agenten anropar Avsluta samtal, ElevenLabs-sessionen avslutas med
Complete och ditt flöde fortsätter från Lex-blocket. Om du lade till en överföringsregel kan du
i stället be om en människa: agenten anropar Överför till nummer, sessionen avslutas med
Escalate och flödet tar den grenen.
Kontrollera samtalet i ElevenLabs
Öppna samtalet i Conversations. Dess källa är Amazon Connect och fliken Klientdata listar de
amazon_connect_* dynamiska variabler som sessionen tog emot.

Kontrollera flödesloggen i AWS
Med loggning aktiverad skriver varje block en post i instansens flödeslogggrupp. Blocket Hämta kundinmatning registrerar resultatet som det tog emot från ElevenLabs:
Förvänta dig "Results": "Complete", eller "Results": "Escalate" efter en överföring, för Lex-
blocket, följt av blocken i den grenen.
Dynamiska variabler
Amazon Connect skickar kontaktens systemattribut med varje session. ElevenLabs exponerar dem, tillsammans med sessionsidentifierarna, som dynamiska variabler:
I Amazon Connect-sessioner är system__caller_id alltid kunden och system__called_number alltid
Amazon Connect-numret, både för inkommande och utgående kontakter.
Alla andra delar av kontaktkontexten som Amazon Connect skickar exponeras på samma sätt: kapslade
namn sammanfogas med understreck och konverteras till snake case under prefixet amazon_connect_.
Anpassade kontaktattribut som anges i flödet med Ange kontaktattribut ingår inte i den kontext
som Amazon Connect för närvarande skickar, även när AI-agentens säkerhetsprofil kan visa
kontaktattribut. Om AWS börjar inkludera dem visas de automatiskt under samma prefix. Du kan inte
välja vilka kontaktdata Amazon Connect delar; AWS skickar en fast uppsättning kontext.
Om du vill skicka ytterligare kontext använder du
webhooken för samtalsinitiering.
För Amazon Connect-sessioner anropas webhooken innan agenten talar, med caller_id satt till
kundens nummer, called_number satt till Amazon Connect-numret och call_id satt till Amazon
Connects kontakt-ID. En Lambda i ditt flöde kan därför lagra kontaktattribut nycklade efter
kontakt-ID, och webhooken kan returnera dem som dynamiska variabler och konfigurationsåsidosättningar.
Överföra till en människa
Ge agenten systemverktyget Överför till nummer med en amazon_connect-överföringsregel, enligt
Konfigurera ElevenLabs. När regelns villkor uppfylls anropar agenten
verktyget och ElevenLabs avslutar sessionen med resultatet Escalate och den anledning som agenten
angav. Flödets Escalate-gren hanterar sedan kontakten med Ange arbetskö och Överför till kö.
Regeln innehåller ingen destination, så kön väljs i flödet, inte av agenten; köhantering,
viskningsflöden och agentval stannar i Amazon Connect.
Verktyget Avsluta samtal ger resultatet Complete. Efteranalyssamtal och webhooken efter samtal
körs som vanligt efter båda resultaten.
Ge den mänskliga agenten en sammanfattning
Amazon Connect exponerar endast resultatet för ditt flöde: $.Lex.SessionAttributes.Tool (och Lex-
intentnamnet) innehåller Escalate, och inget annat från ElevenLabs-sessionen, inte heller
överföringsorsaken, når flödet. Om du vill informera människan som tar samtalet måste du själv lagra
sammanfattningen på kontakten och låta ett agentviskningsflöde läsa upp den:
-
Exponera en slutpunkt som anropar Amazon Connects
UpdateContactAttributesAPI. En minimal Lambda bakom ett HTTP API räcker; anroparen måste ha behörighetenconnect:UpdateContactAttributesför instansens kontakter: -
Ge agenten ett webhookverktyg som skickar
POSTtill slutpunkten medcontact_idifyllt från den dynamiska variabelnamazon_connect_contact_idoch ensummarysom modellen skriver. Behåll den delade hemligheten i en arbetsytehemlighet och skicka den som en begärandeheader. I systemprompten instruerar du agenten att anropa detta verktyg först och att anropa Överför till nummer först efter att det har returnerat; en modell som skickar båda anropen i samma tur låter överföringen konkurrera med sammanfattningen. Med den instruktionen fanns attributet på kontakten ungefär en sekund efter agentens begäran i våra tester, tre sekunder innan Amazon Connect återupptog flödet. -
Lägg i kontaktflödets
Escalate-gren till ett block för Ange viskningsflöde före Överför till kö som pekar på ett agentviskningsflöde vars Spela upp prompt läser$.Attributes.handoff_summary. Amazon Connect läser upp den för den mänskliga agenten medan uppringaren hör köhanteringen och kopplar sedan samman dem. Ange intehandoff_summaryigen i ett senare block i flödet: ett tomt värde där ersätter det som slutpunkten skrev.
Samma attribut är tillgängligt för ett block för Kontrollera kontaktattribut vid routingbeslut. Webhooken efter samtal utlöses efter att flödet redan har fortsatt, så den passar för CRM-uppdateringar snarare än routingbeslut.
Spårningar
Amazon Connect kräver att externa agenter skickar spårningsdata för varje samarbete. När Amazon Connect prenumererar på spårning för sessionen skickar ElevenLabs en OpenTelemetry-spårning för varje agenttur som innehåller uppringarens transkription, agentens svar, varje verktygsanrop med resultat samt tidsangivelser per spann. Amazon Connect lagrar dessa spårningar med kontakten; se AI-agentspårningar för hur du visar dem. Transkriptioner och verktygsresultat i dessa spårningar omfattas av samma maskeringsinställningar som resten av dina kontaktdata i Amazon Connect, så granska dina krav för uppgiftshantering innan du aktiverar integrationen. Precis som webhooks efter samtal levereras spårningar till dina egna system: agenter i nollagringsläge skickar dem fortfarande, eftersom nolllagring styr vad ElevenLabs lagrar, inte vad din Amazon Connect-instans tar emot.
Ljud
Amazon Connect föreslår 16-bitars mono linjär PCM vid 8, 16 eller 24 kHz för varje session och ElevenLabs använder förslaget, så agentens konfigurerade ljudformat används inte för Amazon Connect-sessioner. Avbrott från uppringaren identifieras av ElevenLabs och rapporteras till Amazon Connect så att buffrad uppspelning töms direkt. Knappsatsinmatning som samlas in av Amazon Connect levereras till agenten som DTMF-siffror. Amazon Connects egen tystnadsmarkör ignoreras; använd agentens turtidsgräns för att uppmana en tyst uppringare igen.
Begränsningar och funktioner som inte stöds
- Klientverktyg och systemverktyget Spela upp knappsatston stöds inte. Överför till nummer fungerar endast genom en Amazon Connect-överföringsregel: agenten kan inte ringa ett telefonnummer eller en SIP-URI från ett Amazon Connect-samtal, och flödet avgör vilken kö som tar emot en eskalerad uppringare.
- Resultat från datainsamling returneras inte till flödet och Amazon Connect avgör vilka kontaktdata
som delas. Använd webhooken för samtalsinitiering nycklad med
amazon_connect_contact_idför ytterligare kontext, ett webhookverktyg som anroparUpdateContactAttributesför routningsdata och webhooken efter samtal för allt annat. - Konfigurationsåsidosättningar som
system__override_first_messagekan inte skickas från flödet. Returnera dem från webhooken för samtalsinitiering i stället. - Röstsessioner kräver omedelbar överlämning. Amazon Connects chattkanal, textströmning och
samarbete i bakgrunden (
delegateAgentConfiguration) stöds inte. - Spårningar som skickas till Amazon Connect omfattar uppringarens transkription, agentens svar, verktygsanrop med resultat och tidsangivelser. Verktygsanropsparametrar ingår inte.
- Amazon Connects stöd för tredjepartsagenter är endast tillgängligt där AWS har aktiverat det och kan medföra ytterligare AWS-kostnader.
Felsökning
Flödet misslyckas med 'A2A WebSocket upgrade ... failed (HTTP 403)'
- Felet uppstår inom AWS innan någon begäran når ElevenLabs. Kontrollera CloudTrail efter
AccessDeniedpåwisdom:SendMessagefrån Lex-tjänstrollen: rollen som är kopplad till boten behöverwisdom:CreateSession,wisdom:GetAssistant,wisdom:SendMessageochwisdom:GetNextMessageför assistenten och dess sessioner. - Bekräfta att säkerhetsprofilen tillåter applikationen och är kopplad till den publicerade versionen av orkestreringsagenten som flödet refererar till.
- Bekräfta att hemlighetens KMS-nyckel och resurspolicy ger
connect.amazonaws.comåtkomst.
Flödet misslyckas med 'the hand-off to the target agent could not be completed'
- Amazon Connect ger WebSocket-anslutningen ungefär 20 sekunder att upprättas. Bekräfta att
AccessUrlkan nås från AWS:wss://, rätt agent-ID och ingen nätverksbaserad tillåtelselista i vägen. - Om du proxar anslutningen via din egen infrastruktur ska proxyn hållas varm. En kall serverlös instans kan ta längre tid än överlämningsfönstret, och Amazon Connect ger upp innan ElevenLabs ens ser begäran.
Lex-blocket följer sin Error-gren och den som ringer hör ingenting
- Bekräfta att båda sessionsattributen är inställda i blocket Get customer input:
x-amz-lex:q-in-connect:ai-agent-arnmed den publicerade, versionshanterade agentens ARN ochx-amz-lex:qic-audio-passthroughinställd påtrue. - Bekräfta att säkerhetsprofilen som tillåter applikationen är kopplad till den agentversionen.
- Läs blockets post i flödesloggen; den innehåller felet som Amazon Connect stötte på.
Sessionen avslutas direkt efter anslutning
- Bekräfta att
AccessUrlanvänderwss://, innehåller rätt agent-ID och pekar på regionen där din workspace finns. - Bekräfta att API-nyckeln är aktiv, tillhör agentens workspace och inte har några IP-begränsningar.
- Bekräfta att Amazon Connect-transporten är aktiverad för din workspace.
Den som ringer hör flödets felmeddelande när agenten är klar
Kontrollera i Lex-blocket att utdata från Default leder till blocket som jämför
$.Lex.SessionAttributes.Tool, och jämför med värdena Escalate och Complete med stor
begynnelsebokstav.
Agenten säger aldrig något och sessionen avslutas efter några sekunder
Bekräfta att medarbetaren är konfigurerad med audioStreamingEnabled inställd på true. Med text-
streaming skickar Amazon Connect textturer och förväntar sig textsvar, vilket ElevenLabs inte
stöder; ElevenLabs-loggarna visar INIT_SESSION carries no audio configuration.
Dynamiska variabler saknas
Amazon Connect tillhandahåller systemattributen och identifierarna för kontakten som anges ovan. Anpassade kontakt- attribut som ställs in i flödet når inte agenten; skicka dem via webhooken för att initiera konversationen i stället. Om agentens första meddelande eller prompt refererar till en variabel som aldrig tillhandahålls, misslyckas sessionen vid start.