Amazon Connect
Draag spraakcontacten van Amazon Connect over aan ElevenAgents via de ingebouwde integratie voor externe AI-agents (A2A) van Amazon Connect.
De Amazon Connect-integratie is beperkt beschikbaar. Ondersteuning voor externe AI-agents van Amazon Connect moet zijn ingeschakeld voor je AWS-account en het ElevenLabs-transport wordt per workspace ingeschakeld. Neem contact op met je ElevenLabs-contactpersoon voordat je klantverkeer routeert.
Overzicht
De Amazon Connect-integratie verbindt een Amazon Connect-contactflow rechtstreeks met een agent in ElevenAgents via het protocol voor externe AI-agents van Amazon Connect, een uitbreiding van het open A2A-protocol. Amazon Connect beheert telefonie, routering en de wachtrij; ElevenAgents beheert het gesprek. Er is geen SIP-trunk, Twilio-nummer of middleware vereist. AWS documenteert de functie onder Agent-to-agent collaboration; deze handleiding behandelt de ElevenLabs-specifieke aspecten en de AWS-stappen die nodig zijn om een ElevenLabs-agent te bereiken.
Dezelfde flow bedient inkomende gesprekken en uitgaande contacten die zijn gestart met StartOutboundVoiceContact.
Wanneer de ElevenLabs-agent klaar is, vervolgt Amazon Connect je contactflow en vertakt op basis van de
ontvangen uitkomst.
Zo werkt de integratie
- Een contactflow bereikt een blok Get customer input dat een Amazon Lex V2-bot aanroept met de
intent
AMAZON.QInConnectIntent. - De orkestratie-AI-agent van Amazon Connect draagt het gesprek direct over aan de externe applicatie die je voor ElevenLabs hebt geregistreerd.
- Amazon Connect opent een WebSocket naar het ElevenLabs-endpoint in de
AccessUrlvan de applicatie, en verifieert met de API-sleutel die is opgeslagen in AWS Secrets Manager. - Amazon Connect geeft aan dat het kanaal van de beller actief is. Vervolgens wisselen Amazon Connect en ElevenLabs 16-bits lineaire PCM-audio uit als A2A-berichten. Amazon Connect stelt de samplefrequentie voor en ElevenLabs neemt die over, dus er zijn geen wijzigingen aan het audioformaat nodig op de agent.
- Wanneer de agent het gesprek beëindigt of de beller overdraagt aan een medewerker, beëindigt ElevenLabs de sessie met
een
Complete- ofEscalate-uitkomst en gaat de flow verder vanaf het Lex-blok; zie Overdragen aan een medewerker.
Vereisten
Controleer voordat je begint of je het volgende hebt:
- Een Amazon Connect-instance op de Connect Customer-tier met ondersteuning voor externe AI-agents ingeschakeld voor het account en de Region.
- Een Amazon Q in Connect-assistent die is gekoppeld aan de instance.
- AWS-machtigingen om KMS-sleutels, Secrets Manager-secrets, AppIntegrations-applicaties, Connect-beveiligingsprofielen, Amazon Q in Connect AI-agents, Lex V2-bots en contactflows te maken.
- Een ElevenLabs-workspace met het Amazon Connect-transport ingeschakeld.
- Een ElevenLabs-agent en een speciale API-sleutel.
- AWS CLI v2 en awscurl (
pip install awscurl) voor de aanroepen waarvan de requeststructuur nog niet in uitgebrachte CLI-versies staat.
Houd elke AWS-resource in hetzelfde account en dezelfde Region als de Amazon Connect-instance. De stappen
hieronder gebruiken de AWS CLI wanneer deze de aanroep ondersteunt en awscurl (een SigV4-ondertekende HTTP-request) wanneer
dat niet zo is. Ze volgen AWS’ Set up collaboration with an external AI
agent en voegen de
ElevenLabs-specifieke waarden toe.
ElevenLabs configureren
Een agent maken of selecteren
Maak de agent in ElevenAgents. Geef de agent een eerste bericht als deze moet spreken zodra de overdracht is voltooid; Amazon Connect speelt tijdens de sessie zelf niets af.
Gesprek beëindigen inschakelen
Schakel in Agent → Tools → Systeemtools Gesprek beëindigen in, zodat de agent de sessie kan afronden wanneer
het verzoek van de beller is afgehandeld. Amazon Connect vervolgt dan je flow met de uitkomst Complete.
Een overdrachtsregel voor Amazon Connect toevoegen (optioneel)
Als je de agent de beller wilt laten overdragen aan een medewerker, geef je deze de systeemtool Overdragen naar nummer met een
overdrachtsregel waarvan de providerconfiguratie amazon_connect is. De regel heeft geen bestemming: de
sessie eindigt met de uitkomst Escalate en je contactflow kiest de wachtrij. Overdrachtsregels worden
via de API geconfigureerd. Voeg de tool toe met een PATCH op de agent:
Verzend het volledige object built_in_tools van de agent, inclusief tools die deze al heeft, zoals end_call.
De agent kiest de regel op basis van de condition; de optie die deze terugstuurt is de vaste token
amazon_connect, dus één Amazon Connect-regel per tool is voldoende. Telefoonnummers en SIP-URI’s
geconfigureerd voor andere providers worden niet aangeboden tijdens Amazon Connect-gesprekken.
Overdrachtsregels zijn een instelling die via de API wordt beheerd. Configureer en werk de tool Overdragen naar nummer van een agent die deze gebruikt via de API bij, zoals hierboven; de tooleditor van het dashboard werkt met de overdrachtslijst per nummer.
Een speciale API-sleutel maken
Maak een API-sleutel in dezelfde workspace als de agent en beperk deze tot ElevenAgents. Je slaat deze in het volgende gedeelte op in AWS Secrets Manager; plak deze nergens anders.
Noteer de WebSocket-URL
Amazon Connect maakt verbinding met een URL die je agent-ID bevat:
Als je ElevenLabs-account zich in een geïsoleerde residencyomgeving bevindt, vervang je <region> door je
regiocode. Zie dataresidentie voor de beschikbare
regio’s.
Registreer de ElevenLabs-applicatie in AWS
Alles in deze sectie is een API-aanroep. Stel de waarden die je opnieuw gebruikt één keer in:
Maak een Amazon Q in Connect-assistent
Sla deze stap over als de instance al een assistent heeft. Maak er anders een en koppel deze aan de instance:
Noteer de assistent-ID en ARN.
Sla de API-sleutel op
Amazon Connect leest de sleutel uit Secrets Manager met een eigen serviceprincipal. Het geheim
moet daarom worden versleuteld met een door de klant beheerde KMS-sleutel die connect.amazonaws.com
toegang verleent om te ontsleutelen. De standaard aws/secretsmanager-sleutel kan niet worden gebruikt.
Sla de ElevenLabs API-sleutel op in een bestand, zodat deze nooit in je shellgeschiedenis verschijnt, en maak vervolgens de sleutel en het geheim:
Verleen Amazon Connect leestoegang tot het geheim:

Maak de externe applicatie
Registreer de ElevenLabs WebSocket-URL als een AppIntegrations-applicatie van het type A2A_SERVER.
AuthConfig is verplicht voor dit type.
Het antwoord bevat de Id en Arn van de applicatie. Exporteer deze als APPLICATION_ID en
APPLICATION_ARN. De Amazon Connect-console toont geen A2A_SERVER-applicaties, dus controleer dit
via de API:
Sta de applicatie toe in een beveiligingsprofiel
Het beveiligingsprofiel dat is gekoppeld aan de orkestratie-AI-agent moet de applicatie vermelden onder de toegestane AI-agents, anders mislukt de overdracht tijdens de uitvoering.
De beheerwebsite toont het profiel en de bijbehorende machtigingen, maar niet de toegestane AI-agents; die zijn alleen zichtbaar via de API.

Maak en publiceer de orkestratie-AI-agent
De orkestratieagent draagt elk spraakgesprek onmiddellijk over aan de applicatie, met audio-
streaming ingeschakeld. Spraaksessies vereisen onmiddellijke overdracht; tekststreaming
(audioStreamingEnabled ingesteld op false) en delegateAgentConfiguration worden niet ondersteund door
ElevenLabs. Een orchestrator voor onmiddellijke audio-overdracht moet ook de gereserveerde tool Complete
van het type RETURN_TO_CONTROL declareren in toolConfigurations; zonder deze tool mislukt het create-request met
An audio frontline orchestrator (with an audio immediate handoff) must configure the reserved 'Complete' RETURN_TO_CONTROL tool.
Publiceren geeft een ARN met versie terug (<AI_AGENT_ARN>:1); de contactflow verwijst hiernaar. Koppel
het beveiligingsprofiel aan zowel de agent zonder versie als de versiegebonden agent:

Bouw de contactflow
Maak de Lex-bot
- Maak een Lex V2-bot waarvan de enige intent de ingebouwde
AMAZON.QInConnectIntentis, geconfigureerd met je assistent-ARN. Voeg geen andere intents toe. - Schakel speech-to-speech in voor de botlocale. Bidirectionele audiostreaming werkt alleen met Sonic speech-to-speech-bots.
- Sta toe dat de IAM-rol van de bot de assistent gebruikt. Zonder deze toestemming mislukt de overdracht binnen AWS met
HTTP 403voordat een request ElevenLabs bereikt. Koppel een beleid als volgt:
- Bouw de bot, maak een versie en een alias, en koppel de alias aan de instance:

Voeg de assistent en het Lex-blok toe
Voeg in de flowontwerper deze blokken in deze volgorde toe:
- Logginggedrag instellen: ingeschakeld. Via het flowlog controleer je de overdracht hieronder.
- Assistent verbinden: selecteer je Amazon Q in Connect-assistent.
- Klantinvoer ophalen: kies op het tabblad Amazon Lex voor Een ARN invoeren en plak de ARN van de botalias. Laat de text-to-speech-prompt als één spatie staan, zodat Amazon Connect vóór de overdracht niets afspeelt. Voeg onder Sessieattributen twee handmatig ingestelde attributen toe:

x-amz-lex:qic-audio-passthrough regelt tijdens de prelaunchperiode van AWS het externe spraakpad.
AWS geeft aan dat het attribuut niet langer nodig is zodra de functie openbaar is; het kan geen kwaad
om het te laten staan.
Vertak op basis van de uitkomst
Amazon Connect toont de ElevenLabs-uitkomst in de flow als het attribuut $.Lex.SessionAttributes.Tool.
Voeg na het Lex-blok een blok Contactattributen controleren toe, stel Namespace in op
Lex, Sleutel op Sessieattributen en Sessieattribuutsleutel op Tool, voeg vervolgens voor elke
uitkomst één voorwaarde Is gelijk aan toe en leid Geen overeenkomst naar een foutprompt:

Amazon Connect schrijft de uitkomst met een hoofdletter aan het begin (Escalate, Complete), niet als het type in hoofdletters
dat via de verbinding wordt verzonden. Deze twee voorwaarden zijn dus alles wat het blok nodig heeft. Een sessie die
na de overdracht mislukt, eindigt met het type COMPLETE_WITH_ERROR; het Lex-blok gebruikt dan de uitvoer
Fout, of de vergelijking valt terug op Geen overeenkomst, dus leid beide naar de foutprompt.
In een geëxporteerde flow is de uitvoer Standaard van het Lex-blok de overgang NoMatchingCondition;
zorg dat deze naar het vergelijkingsblok leidt en niet naar een foutmelding.

Test de integratie
Voer een gesprek
Bel het nummer. Het eerste bericht van de agent wordt enkele seconden afgespeeld nadat de flow het Lex-
blok bereikt; de overdracht binnen AWS duurt ongeveer drie seconden voordat ElevenLabs wordt gecontacteerd. Voer een
kort gesprek en neem afscheid: de agent roept Gesprek beëindigen aan, de ElevenLabs-sessie eindigt met
Complete, en je flow gaat verder vanaf het Lex-blok. Als je een overdrachtsregel hebt toegevoegd, vraag dan
in plaats daarvan om een persoon: de agent roept Overdragen naar nummer aan, de sessie eindigt met Escalate, en de
flow volgt die vertakking.
Controleer het gesprek in ElevenLabs
Open het gesprek in Gesprekken. De bron is Amazon Connect en op het tabblad Clientgegevens
staan de dynamische variabelen amazon_connect_* die de sessie heeft ontvangen.

Controleer het flowlog in AWS
Wanneer logging is ingeschakeld, schrijft elk blok een item naar de flowloggroep van de instance. Het blok Klantinvoer ophalen registreert de uitkomst die het van ElevenLabs heeft ontvangen:
Verwacht "Results": "Complete", of "Results": "Escalate" na een overdracht, voor het Lex-blok,
gevolgd door de blokken in die vertakking.
Dynamische variabelen
Amazon Connect verzendt de systeemattributen van het contact bij elke sessie. ElevenLabs maakt deze, samen met de sessie-ID’s, beschikbaar als dynamische variabelen:
In Amazon Connect-sessies is system__caller_id altijd de klant en system__called_number
altijd het Amazon Connect-nummer, voor zowel inkomende als uitgaande contacten.
Elk ander lid van de contactcontext dat Amazon Connect verzendt, wordt op dezelfde manier beschikbaar gemaakt: geneste
namen worden met underscores samengevoegd en omgezet naar snake case onder het voorvoegsel amazon_connect_.
Aangepaste contactattributen die je in je flow instelt met Contactattributen instellen, maken geen deel uit van de
context die Amazon Connect momenteel verzendt, zelfs niet wanneer het beveiligingsprofiel van de AI-agent contact-
attributen mag bekijken; als AWS deze gaat opnemen, verschijnen ze automatisch onder hetzelfde voorvoegsel. Je
kunt niet kiezen welke contactgegevens Amazon Connect deelt; AWS geeft een vaste set context door.
Gebruik voor aanvullende context de
webhook voor gespreksinitiatie.
Voor Amazon Connect-sessies wordt de webhook aangeroepen voordat de agent spreekt, met caller_id ingesteld op
het nummer van de klant, called_number ingesteld op het Amazon Connect-nummer en call_id ingesteld op de Amazon
Connect-contact-ID. Een Lambda in je flow kan contactattributen dus opslaan op basis van de contact-ID,
en de webhook kan ze teruggeven als dynamische variabelen en configuratieoverschrijvingen.
Overdragen aan een persoon
Geef de agent de systeemtool Overdragen naar nummer met een amazon_connect-overdrachtsregel, zoals
weergegeven in ElevenLabs configureren. Wanneer aan de voorwaarde van de regel is voldaan, roept de agent
de tool aan en beëindigt ElevenLabs de sessie met de uitkomst Escalate en de reden die de
agent heeft opgegeven. De vertakking Escalate van je flow verwerkt het contact vervolgens met Werkqueue instellen en
Overdragen naar queue. De regel bevat geen bestemming, dus de queue wordt in de flow gekozen en niet door
de agent; queuebehandeling, whisperflows en agentselectie blijven in Amazon Connect.
De tool Gesprek beëindigen geeft de uitkomst Complete. Analyse na het gesprek en de webhook na het gesprek
worden na beide uitkomsten zoals gebruikelijk uitgevoerd.
De menselijke agent een samenvatting geven
Amazon Connect maakt alleen de uitkomst beschikbaar voor je flow: $.Lex.SessionAttributes.Tool (en de Lex-
intentnaam) bevatten Escalate, en niets anders van de ElevenLabs-sessie, ook de overdrachtsreden niet,
bereikt de flow. Om de persoon die het gesprek aanneemt te informeren, sla je de samenvatting zelf op bij het contact
en laat je een agent-whisperflow deze voorlezen:
-
Maak een endpoint dat de
UpdateContactAttributes-API van Amazon Connect aanroept. Een minimale Lambda achter een HTTP API volstaat; de aanroeper moetconnect:UpdateContactAttributesmogen gebruiken voor de contacten van de instance: -
Geef de agent een webhooktool die een
POSTuitvoert naar dat endpoint metcontact_idingevuld vanuit de dynamische variabeleamazon_connect_contact_iden eensummarydie het model schrijft. Bewaar het gedeelde geheim in een workspacegeheim en verstuur dit als requestheader. Geef de agent in de systeemprompt de instructie om deze tool eerst aan te roepen en Overdragen naar nummer pas aan te roepen nadat deze is teruggekeerd; een model dat beide aanroepen in één beurt uitvoert, laat de overdracht concurreren met de samenvatting. Met deze instructie stond het attribuut in onze tests ongeveer een seconde na het request van de agent op het contact, drie seconden voordat Amazon Connect de flow hervatte. -
Voeg in de vertakking
Escalatevan de contactflow vóór Overdragen naar queue een blok Whisperflow instellen toe dat verwijst naar een agent-whisperflow waarvan Prompt afspelen$.Attributes.handoff_summaryvoorleest. Amazon Connect spreekt dit uit voor de menselijke agent terwijl de beller de queuebehandeling hoort, en verbindt vervolgens beide. Stelhandoff_summaryniet opnieuw in een later blok van de flow in: een lege waarde daar vervangt wat het endpoint heeft geschreven.
Hetzelfde attribuut is beschikbaar voor een blok Contactattributen controleren voor routeringsbeslissingen. De webhook na het gesprek wordt geactiveerd nadat de flow al verder is gegaan, en is daarom geschikt voor CRM-updates in plaats van routeringsbeslissingen.
Traces
Amazon Connect vereist dat externe agents tracedata verzenden voor elke samenwerking. Wanneer Amazon Connect zich abonneert op tracing voor de sessie, verzendt ElevenLabs voor elke agentbeurt een OpenTelemetry-trace met het transcript van de beller, de reactie van de agent, elke toolaanroep met het resultaat en de timing per span. Amazon Connect slaat deze traces op bij het contact; zie AI-agenttraces voor informatie over hoe je deze kunt bekijken. Transcripten en toolresultaten in deze traces vallen onder dezelfde redactie-instellingen als de rest van je contactgegevens in Amazon Connect. Controleer daarom je vereisten voor gegevensverwerking voordat je de integratie inschakelt. Net als webhooks na het gesprek worden traces geleverd aan je eigen systemen: agents in zero retention mode verzenden ze nog steeds, omdat zero retention bepaalt wat ElevenLabs opslaat en niet wat je Amazon Connect-instance ontvangt.
Audio
Amazon Connect stelt voor elke sessie 16-bits mono lineaire PCM op 8, 16 of 24 kHz voor en ElevenLabs accepteert het voorstel. De geconfigureerde audioformaten van de agent worden dus niet gebruikt voor Amazon Connect- sessies. Onderbreking door de beller wordt gedetecteerd door ElevenLabs en gemeld aan Amazon Connect, zodat gebufferde afspeelcontent onmiddellijk wordt gewist. Toetsenbordinvoer die Amazon Connect verzamelt, wordt als DTMF-cijfers aan de agent geleverd. De eigen stiltemarkering van Amazon Connect wordt genegeerd; gebruik de beurt-time-out van de agent om een stille beller opnieuw te vragen.
Beperkingen en niet-ondersteunde functies
- Clienttools en de systeemtool Toetstoontje afspelen worden niet ondersteund. Overdragen naar nummer werkt alleen via een Amazon Connect-overdrachtsregel: de agent kan vanuit een Amazon Connect-gesprek geen telefoonnummer of SIP-URI bellen en de flow bepaalt welke queue een geëscaleerde beller ontvangt.
- Resultaten van gegevensverzameling worden niet teruggestuurd naar de flow, en Amazon Connect bepaalt welke contact-
gegevens het deelt. Gebruik voor aanvullende context de webhook voor gespreksinitiatie op basis van
amazon_connect_contact_id, een webhooktool dieUpdateContactAttributesaanroept voor routeringsgegevens, en de webhook na het gesprek voor al het overige. - Configuratieoverschrijvingen zoals
system__override_first_messagekunnen niet vanuit de flow worden doorgegeven. Geef deze in plaats daarvan terug via de webhook voor gespreksinitiatie. - Spraaksessies vereisen onmiddellijke overdracht. Het Amazon Connect-chatkanaal, tekststreaming en
samenwerking op de achtergrond (
delegateAgentConfiguration) worden niet ondersteund. - Traces die naar Amazon Connect worden verzonden, omvatten het transcript van de beller, reacties van de agent, toolaanroepen met hun resultaten en timing. Parameters van toolaanroepen zijn niet opgenomen.
- Ondersteuning voor externe agents van Amazon Connect is alleen beschikbaar waar AWS deze heeft ingeschakeld en kan extra AWS-kosten met zich meebrengen.
Problemen oplossen
De flow mislukt met 'A2A WebSocket upgrade ... failed (HTTP 403)'
- De fout treedt op binnen AWS voordat een request ElevenLabs bereikt. Controleer CloudTrail op
AccessDeniedvoorwisdom:SendMessagevanuit de Lex-servicerol: de rol die aan de bot is gekoppeld, heeftwisdom:CreateSession,wisdom:GetAssistant,wisdom:SendMessageenwisdom:GetNextMessagenodig voor de assistent en de sessies daarvan. - Controleer of het beveiligingsprofiel de applicatie toestaat en is gekoppeld aan de gepubliceerde versie van de orchestration agent waarnaar de flow verwijst.
- Controleer of de KMS-sleutel en het resourcebeleid van het secret
connect.amazonaws.comtoegang verlenen.
De flow mislukt met 'the hand-off to the target agent could not be completed'
- Amazon Connect geeft de WebSocket-verbinding ongeveer 20 seconden om tot stand te komen. Controleer of de
AccessUrlbereikbaar is vanuit AWS:wss://, de juiste agent-ID en geen netwerk-allowlist die in de weg staat. - Als je de verbinding via je eigen infrastructuur proxy’t, houd die proxy dan warm. Een koude serverless-instance kan langer duren dan het hand-off-venster, waardoor Amazon Connect opgeeft voordat ElevenLabs het request ziet.
Het Lex-blok volgt de Error-tak en de beller hoort niets
- Controleer of beide sessieattributen zijn ingesteld in het blok Get customer input:
x-amz-lex:q-in-connect:ai-agent-arnmet de gepubliceerde agent-ARN met versie enx-amz-lex:qic-audio-passthroughingesteld optrue. - Controleer of het beveiligingsprofiel dat de applicatie toestaat, is gekoppeld aan die agentversie.
- Lees de vermelding van het blok in het flowlogboek; deze bevat de fout die Amazon Connect heeft aangetroffen.
De sessie eindigt direct na het verbinden
- Controleer of de
AccessUrlwss://gebruikt, de juiste agent-ID bevat en verwijst naar de regio waarin je workspace zich bevindt. - Controleer of de API-sleutel actief is, bij de workspace van de agent hoort en geen IP-beperkingen heeft.
- Controleer of Amazon Connect-transport is ingeschakeld voor je workspace.
De beller hoort de foutmelding van de flow nadat de agent klaar is
Zorg er in het Lex-blok voor dat de uitvoer Default naar het blok leidt dat
$.Lex.SessionAttributes.Tool vergelijkt, en vergelijk met de waarden met hoofdletter Escalate en
Complete.
De agent spreekt nooit en de sessie eindigt na een paar seconden
Controleer of de collaborator is geconfigureerd met audioStreamingEnabled ingesteld op true. Met tekst-
streaming stuurt Amazon Connect tekstbeurten en verwacht het tekstreacties, wat ElevenLabs niet
ondersteunt; in de ElevenLabs-logboeken staat INIT_SESSION carries no audio configuration.
Dynamische variabelen ontbreken
Amazon Connect levert de hierboven vermelde systeemattributen en ID’s van contacten. Aangepaste contact- attributen die in de flow zijn ingesteld, bereiken de agent niet; geef ze in plaats daarvan door via de webhook voor gespreksinitiatie. Als het eerste bericht of de prompt van de agent verwijst naar een variabele die nooit wordt meegegeven, mislukt de sessie bij het opstarten.