Amazon Connect
Przekazuj połączenia głosowe Amazon Connect do ElevenAgents przez natywną integrację Amazon Connect z agentem AI innej firmy (A2A).
Integracja z Amazon Connect jest dostępna w ograniczonym zakresie. Obsługa agentów AI innych firm w Amazon Connect musi być włączona dla twojego konta AWS, a transport ElevenLabs jest włączany dla każdego obszaru roboczego. Skontaktuj się z przedstawicielem ElevenLabs, zanim skierujesz ruch klientów.
Omówienie
Integracja z Amazon Connect łączy przepływ kontaktu Amazon Connect bezpośrednio z agentem w ElevenAgents przez protokół agentów AI innych firm Amazon Connect, będący rozszerzeniem otwartego protokołu A2A. Amazon Connect obsługuje telefonię, routing i kolejkę; ElevenAgents obsługuje rozmowę. Nie potrzebujesz SIP trunk, numeru Twilio ani oprogramowania pośredniczącego. AWS opisuje tę funkcję w sekcji Współpraca agent-agent; ten przewodnik omawia szczegóły ElevenLabs i kroki AWS wymagane do połączenia z agentem ElevenLabs.
Ten sam przepływ obsługuje połączenia przychodzące i kontakty wychodzące uruchamiane za pomocą StartOutboundVoiceContact.
Gdy agent ElevenLabs zakończy pracę, Amazon Connect kontynuuje przepływ kontaktu i rozgałęzia go na podstawie
otrzymanego wyniku.
Jak działa integracja
- Przepływ kontaktu dociera do bloku Get customer input, który wywołuje bota Amazon Lex V2 z intencją
AMAZON.QInConnectIntent. - Agent AI orkiestrujący Amazon Connect natychmiast przekazuje rozmowę do aplikacji innej firmy zarejestrowanej dla ElevenLabs.
- Amazon Connect otwiera WebSocket do punktu końcowego ElevenLabs w
AccessUrlaplikacji, uwierzytelniając się kluczem API przechowywanym w AWS Secrets Manager. - Amazon Connect sygnalizuje, że kanał dzwoniącego jest aktywny, a następnie Amazon Connect i ElevenLabs wymieniają 16-bitowe liniowe audio PCM jako wiadomości A2A. Amazon Connect proponuje częstotliwość próbkowania, a ElevenLabs ją przyjmuje, więc agent nie wymaga zmian formatu audio.
- Gdy agent zakończy połączenie lub przekaże dzwoniącego do człowieka, ElevenLabs kończy sesję z wynikiem
CompletelubEscalate, a przepływ jest kontynuowany od bloku Lex; zobacz Przekazywanie do człowieka.
Wymagania
Przed rozpoczęciem upewnij się, że masz:
- Instancję Amazon Connect w warstwie Connect Customer z obsługą agentów AI innych firm włączoną dla konta i regionu.
- Asystenta Amazon Q in Connect powiązanego z instancją.
- Uprawnienia AWS do tworzenia kluczy KMS, sekretów Secrets Manager, aplikacji AppIntegrations, profili bezpieczeństwa Connect, agentów AI Amazon Q in Connect, botów Lex V2 i przepływów kontaktu.
- Obszar roboczy ElevenLabs z włączonym transportem Amazon Connect.
- Agenta ElevenLabs i dedykowany klucz API.
- AWS CLI v2 i awscurl (
pip install awscurl) dla wywołań, których struktury żądań nie są jeszcze dostępne w wydanych wersjach CLI.
Zachowaj wszystkie zasoby AWS na tym samym koncie i w tym samym regionie co instancja Amazon Connect. Poniższe kroki
używają AWS CLI tam, gdzie obsługuje ono dane wywołanie, oraz awscurl (żądania HTTP podpisanego SigV4) tam,
gdzie go nie obsługuje. Są zgodne z instrukcją AWS Skonfiguruj współpracę z zewnętrznym agentem AI
i dodają wartości specyficzne dla
ElevenLabs.
Skonfiguruj ElevenLabs
Utwórz lub wybierz agenta
Utwórz agenta w ElevenAgents. Dodaj mu pierwszą wiadomość, jeśli ma mówić zaraz po zakończeniu przekazania; Amazon Connect nie odtwarza niczego własnego podczas sesji.
Włącz End call
W Agent → Tools → System tools włącz End call, aby agent mógł zakończyć sesję, gdy
prośba dzwoniącego zostanie obsłużona. Amazon Connect kontynuuje wtedy przepływ z wynikiem Complete.
Dodaj regułę przekazania Amazon Connect (opcjonalnie)
Aby agent mógł przekazać dzwoniącego do człowieka, dodaj mu narzędzie systemowe Transfer to number z
regułą przekazania, której konfiguracja dostawcy to amazon_connect. Reguła nie ma miejsca docelowego:
sesja kończy się wynikiem Escalate, a kolejkę wybiera twój przepływ kontaktu. Reguły przekazania
konfiguruje się przez API. Dodaj narzędzie przez PATCH do agenta:
Wyślij pełny obiekt built_in_tools agenta, wraz z narzędziami, które już ma, takimi jak end_call.
Agent wybiera regułę według jej condition; opcja, którą zwraca, to stały token
amazon_connect, więc wystarczy jedna reguła Amazon Connect na narzędzie. Numery telefonów i identyfikatory URI SIP
skonfigurowane dla innych dostawców nie są oferowane podczas połączeń Amazon Connect.
Reguły przekazania są ustawieniem zarządzanym przez API. Narzędzie Transfer to number agenta, który z nich korzysta, konfiguruj i aktualizuj przez API, jak powyżej; edytor narzędzi w panelu działa z listą przekazań dla poszczególnych numerów.
Utwórz dedykowany klucz API
Utwórz klucz API w tym samym obszarze roboczym co agent i ogranicz jego zakres do ElevenAgents. W następnej sekcji zapiszesz go w AWS Secrets Manager; nie wklejaj go nigdzie indziej.
Zanotuj adres URL WebSocket
Amazon Connect łączy się z adresem URL zawierającym identyfikator agenta:
Jeśli twoje konto ElevenLabs działa w izolowanym środowisku rezydencji danych, zastąp <region>
kodem regionu. Dostępne regiony znajdziesz w rezydencji danych.
Zarejestruj aplikację ElevenLabs w AWS
Wszystko w tej sekcji to wywołanie API. Ustaw wartości, których użyjesz ponownie:
Utwórz asystenta Amazon Q in Connect
Pomiń ten krok, jeśli instancja ma już asystenta. W przeciwnym razie utwórz go i powiąż z instancją:
Zapisz identyfikator i ARN asystenta.
Zapisz klucz API
Amazon Connect odczytuje klucz z Secrets Manager przez własny podmiot usługi, więc sekret
musi być zaszyfrowany kluczem KMS zarządzanym przez klienta, który przyznaje connect.amazonaws.com dostęp do odszyfrowania. Nie można użyć domyślnego klucza aws/secretsmanager.
Zapisz klucz API ElevenLabs w pliku, aby nigdy nie pojawił się w historii powłoki, a potem utwórz klucz i sekret:
Przyznaj Amazon Connect dostęp do odczytu sekretu:

Utwórz aplikację zewnętrzną
Zarejestruj adres URL WebSocket ElevenLabs jako aplikację AppIntegrations typu A2A_SERVER.
AuthConfig jest wymagane dla tego typu.
Odpowiedź zawiera Id i Arn aplikacji; wyeksportuj je jako APPLICATION_ID oraz
APPLICATION_ARN. Konsola Amazon Connect nie wyświetla aplikacji A2A_SERVER, więc sprawdź je
przez API:
Zezwól na aplikację w profilu zabezpieczeń
Profil zabezpieczeń przypisany do agenta AI orkiestracji musi zawierać aplikację na liście dozwolonych agentów AI, inaczej przekazanie nie powiedzie się w trakcie działania.
Witryna administratora pokazuje profil i jego uprawnienia, ale nie dozwolonych agentów AI; są one widoczne tylko przez API.

Utwórz i opublikuj agenta AI orkiestracji
Agent orkiestracji natychmiast przekazuje każdą rozmowę głosową do aplikacji z włączonym
strumieniowaniem audio. Sesje głosowe wymagają natychmiastowego przekazania; strumieniowanie tekstu
(audioStreamingEnabled ustawione na false) i delegateAgentConfiguration nie są obsługiwane przez
ElevenLabs. Orkiestrator z natychmiastowym przekazaniem audio musi też zadeklarować zarezerwowane narzędzie
Complete typu RETURN_TO_CONTROL w toolConfigurations; bez niego żądanie utworzenia zakończy się błędem
An audio frontline orchestrator (with an audio immediate handoff) must configure the reserved 'Complete' RETURN_TO_CONTROL tool.
Publikacja zwraca wersjonowany ARN (<AI_AGENT_ARN>:1); odwołuje się do niego przepływ kontaktu. Przypisz
profil zabezpieczeń zarówno do agenta bez wersji, jak i do wersjonowanego:

Zbuduj przepływ kontaktu
Utwórz bota Lex
- Utwórz bota Lex V2, którego jedyną intencją jest wbudowana
AMAZON.QInConnectIntent, skonfigurowana z ARN asystenta. Nie dodawaj innych intencji. - Włącz mowę-mowę w ustawieniach regionalnych bota. Dwukierunkowe strumieniowanie audio działa tylko z botami Sonic obsługującymi mowę-mowę.
- Zezwól roli IAM bota na używanie asystenta. Bez tego przekazanie kończy się w AWS błędem
HTTP 403, zanim jakiekolwiek żądanie dotrze do ElevenLabs. Dołącz politykę podobną do tej:
- Zbuduj bota, utwórz wersję i alias, a następnie powiąż alias z instancją:

Dodaj asystenta i blok Lex
W projektancie przepływu dodaj te bloki w tej kolejności:
- Set logging behavior: włączone. Dziennik przepływu pozwala sprawdzić opisane niżej przekazanie.
- Connect assistant: wybierz swojego asystenta Amazon Q in Connect.
- Get customer input: na karcie Amazon Lex wybierz Enter an ARN i wklej ARN aliasu bota. Zostaw w prompcie zamiany tekstu na mowę pojedynczą spację, aby Amazon Connect nic nie odtworzył przed przekazaniem. W sekcji Session attributes dodaj dwa atrybuty ustawione ręcznie:

x-amz-lex:qic-audio-passthrough kontroluje ścieżkę głosową innej firmy w okresie przedpremierowym AWS.
AWS podaje, że atrybut nie będzie już potrzebny, gdy funkcja stanie się publiczna; pozostawienie go
nie szkodzi.
Rozgałęź przepływ według wyniku
Amazon Connect przekazuje wynik ElevenLabs do przepływu jako atrybut
$.Lex.SessionAttributes.Tool. Dodaj blok Check contact attributes po bloku Lex, ustaw Namespace na
Lex, Key na Session attributes i Session Attribute Key na Tool, a następnie dodaj po jednym
warunku Equals dla każdego wyniku oraz skieruj No Match do promptu błędu:

Amazon Connect zapisuje wynik wielkością tytułową (Escalate, Complete), a nie wielkimi literami
typu zakończenia wysyłanego przez połączenie, więc blok potrzebuje tylko tych dwóch warunków. Sesja,
która nie powiedzie się po przekazaniu, kończy się typem COMPLETE_WITH_ERROR; blok Lex przechodzi wtedy
na wyjście Error albo porównanie trafia do No Match, więc skieruj oba do promptu błędu. W wyeksportowanym
przepływie wyjście Default bloku Lex to przejście NoMatchingCondition; upewnij się, że prowadzi ono do
bloku porównania, a nie komunikatu błędu.

Przetestuj integrację
Wykonaj połączenie
Zadzwoń na numer. Pierwsza wiadomość agenta zostanie odtworzona kilka sekund po dotarciu przepływu do bloku Lex;
przekazanie wewnątrz AWS trwa około trzech sekund, zanim nastąpi kontakt z ElevenLabs. Przeprowadź
krótką rozmowę i pożegnaj się: agent wywoła End call, sesja ElevenLabs zakończy się
Complete, a przepływ będzie kontynuowany od bloku Lex. Jeśli dodałeś regułę przekazania, poproś zamiast tego
o człowieka: agent wywoła Transfer to number, sesja zakończy się Escalate, a przepływ wybierze tę gałąź.
Sprawdź rozmowę w ElevenLabs
Otwórz rozmowę w Conversations. Jej źródłem jest Amazon Connect, a karta Client data
zawiera dynamiczne zmienne amazon_connect_*, które otrzymała sesja.

Sprawdź dziennik przepływu w AWS
Przy włączonym logowaniu każdy blok zapisuje wpis w grupie dzienników przepływu instancji. Blok Get customer input rejestruje wynik otrzymany od ElevenLabs:
Dla bloku Lex oczekuj "Results": "Complete" lub po przekazaniu "Results": "Escalate",
a następnie bloków z danej gałęzi.
Zmienne dynamiczne
Amazon Connect wysyła atrybuty systemowe kontaktu przy każdej sesji. ElevenLabs udostępnia je wraz z identyfikatorami sesji jako zmienne dynamiczne:
W sesjach Amazon Connect system__caller_id zawsze oznacza klienta, a system__called_number
zawsze oznacza numer Amazon Connect — zarówno dla kontaktów przychodzących, jak i wychodzących.
Każdy inny element kontekstu kontaktu wysyłany przez Amazon Connect jest udostępniany tak samo: nazwy zagnieżdżone
są łączone podkreśleniami i konwertowane do snake case z prefiksem amazon_connect_.
Niestandardowe atrybuty kontaktu ustawione w przepływie za pomocą Set contact attributes nie należą obecnie do
kontekstu wysyłanego przez Amazon Connect, nawet jeśli profil zabezpieczeń agenta AI może wyświetlać atrybuty kontaktu;
jeśli AWS zacznie je uwzględniać, pojawią się automatycznie pod tym samym prefiksem. Nie możesz wybrać,
które dane kontaktu udostępnia Amazon Connect; AWS przekazuje stały zestaw kontekstu.
Aby przekazać dodatkowy kontekst, użyj
webhooka inicjującego rozmowę.
W sesjach Amazon Connect webhook jest wywoływany przed odezwaniem się agenta, z caller_id ustawionym na
numer klienta, called_number na numer Amazon Connect, a call_id na identyfikator kontaktu Amazon Connect,
dzięki czemu funkcja Lambda w przepływie może przechowywać atrybuty kontaktu z kluczem identyfikatora kontaktu,
a webhook może zwracać je jako zmienne dynamiczne i nadpisania konfiguracji.
Przekazanie do człowieka
Daj agentowi narzędzie systemowe Transfer to number z regułą przekazania amazon_connect, jak
pokazano w sekcji Skonfiguruj ElevenLabs. Gdy warunek reguły zostanie spełniony, agent
wywołuje narzędzie, a ElevenLabs kończy sesję wynikiem Escalate i powodem podanym przez agenta. Gałąź
Escalate w przepływie obsługuje wtedy kontakt przez Set working queue i Transfer to queue. Reguła
nie zawiera miejsca docelowego, więc kolejka jest wybierana w przepływie, a nie przez agenta; obsługa kolejki,
przepływy szeptane i wybór agenta pozostają w Amazon Connect.
Narzędzie End call zwraca wynik Complete. Analiza po rozmowie i webhook po rozmowie
działają jak zwykle po każdym z tych wyników.
Przekazywanie podsumowania agentowi
Amazon Connect udostępnia przepływowi tylko wynik: $.Lex.SessionAttributes.Tool (oraz nazwa intencji Lex)
zawierają Escalate, a nic innego z sesji ElevenLabs, w tym powód przekazania, nie trafia do przepływu.
Aby przekazać informacje człowiekowi odbierającemu rozmowę, samodzielnie zapisz podsumowanie przy kontakcie
oraz pozwól, by odczytał je przepływ szeptany agenta:
-
Udostępnij endpoint wywołujący API
UpdateContactAttributesAmazon Connect. Wystarczy minimalna funkcja Lambda za HTTP API; wywołujący musi mieć uprawnienieconnect:UpdateContactAttributesdo kontaktów instancji: -
Daj agentowi narzędzie webhook, które wysyła
POSTdo tego endpointu zcontact_idwypełnionym dynamiczną zmiennąamazon_connect_contact_idorazsummarynapisanym przez model. Zachowaj wspólny sekret w sekrecie obszaru roboczego i wyślij go jako nagłówek żądania. W prompcie systemowym poleć agentowi, by najpierw wywołał to narzędzie, a Transfer to number dopiero po jego zwróceniu; model, który emituje oba wywołania w jednej turze, powoduje wyścig między przekazaniem a podsumowaniem. W naszych testach, przy tej instrukcji, atrybut pojawiał się przy kontakcie około sekundę po żądaniu agenta, trzy sekundy przed wznowieniem przepływu przez Amazon Connect. -
W gałęzi
Escalateprzepływu kontaktu dodaj blok Set whisper flow przed **Transfer to queue **, wskazujący przepływ szeptany agenta, którego Play prompt odczytuje$.Attributes.handoff_summary. Amazon Connect odtwarza go agentowi podczas gdy dzwoniący słyszy obsługę kolejki, a potem łączy ich ze sobą. Nie ustawiaj ponowniehandoff_summaryw późniejszym bloku przepływu: pusta wartość zastąpi wtedy wartość zapisaną przez endpoint.
Ten sam atrybut jest dostępny w bloku Check contact attributes przy podejmowaniu decyzji o trasowaniu. Webhook po rozmowie uruchamia się dopiero po kontynuowaniu przepływu, więc nadaje się do aktualizacji CRM, a nie do decyzji o trasowaniu.
Ślady
Amazon Connect wymaga od agentów zewnętrznych wysyłania danych śledzenia dla każdej współpracy. Gdy Amazon Connect subskrybuje śledzenie w sesji, ElevenLabs wysyła ślad OpenTelemetry dla każdej tury agenta, zawierający transkrypcję rozmówcy, odpowiedź agenta, każde wywołanie narzędzia wraz z wynikiem oraz czas dla każdego zakresu. Amazon Connect przechowuje te ślady przy kontakcie; zobacz Ślady agenta AI, aby dowiedzieć się, jak je wyświetlić. Transkrypcje i wyniki narzędzi w tych śladach podlegają tym samym ustawieniom redakcji co pozostałe dane kontaktu w Amazon Connect, więc przed włączeniem integracji sprawdź wymagania dotyczące przetwarzania danych. Podobnie jak webhooki po rozmowie, ślady są dostarczane do własnych systemów: agenci w trybie zerowego przechowywania nadal je wysyłają, ponieważ zerowe przechowywanie określa, co przechowuje ElevenLabs, a nie to, co otrzymuje instancja Amazon Connect.
Audio
Amazon Connect proponuje dla każdej sesji 16-bitowy, monofoniczny liniowy PCM z częstotliwością 8, 16 lub 24 kHz, a ElevenLabs przyjmuje tę propozycję, więc skonfigurowane formaty audio agenta nie są używane w sesjach Amazon Connect. Przerywanie wypowiedzi rozmówcy jest wykrywane przez ElevenLabs i zgłaszane do Amazon Connect, dzięki czemu buforowane odtwarzanie jest natychmiast czyszczone. Dane wejściowe z klawiatury zebrane przez Amazon Connect są przekazywane agentowi jako cyfry DTMF. Własny znacznik ciszy Amazon Connect jest ignorowany; użyj limitu czasu tury agenta, aby ponownie zachęcić milczącego rozmówcę do odpowiedzi.
Ograniczenia i nieobsługiwane funkcje
- Narzędzia klienta oraz narzędzie systemowe Play keypad touch tone nie są obsługiwane. Transfer to number działa tylko przez regułę przekazania Amazon Connect: agent nie może wybrać numeru telefonu ani identyfikatora URI SIP w rozmowie Amazon Connect, a przepływ decyduje, która kolejka otrzyma eskalowanego rozmówcę.
- Wyniki zbierania danych nie są zwracane do przepływu, a Amazon Connect decyduje, które dane kontaktu udostępnia.
Użyj webhooka inicjującego rozmowę z kluczem
amazon_connect_contact_iddo przekazywania dodatkowego kontekstu, narzędzia webhook wywołującegoUpdateContactAttributesdo danych trasowania oraz webhooka po rozmowie do wszystkiego innego. - Nadpisania konfiguracji, takie jak
system__override_first_message, nie mogą być przekazywane z przepływu. Zwróć je zamiast tego z webhooka inicjującego rozmowę. - Sesje głosowe wymagają natychmiastowego przekazania. Kanał czatu Amazon Connect, strumieniowanie tekstu i
współpraca w tle (
delegateAgentConfiguration) nie są obsługiwane. - Ślady wysyłane do Amazon Connect obejmują transkrypcję rozmówcy, odpowiedzi agenta, wywołania narzędzi z ich wynikami oraz czas. Parametry wywołań narzędzi nie są uwzględniane.
- Obsługa agentów innych firm w Amazon Connect jest dostępna tylko tam, gdzie AWS ją włączyło, i może wiązać się z dodatkowymi opłatami AWS.
Rozwiązywanie problemów
Flow kończy się błędem „A2A WebSocket upgrade ... failed (HTTP 403)”
- Błąd pojawia się w AWS, zanim jakiekolwiek żądanie dotrze do ElevenLabs. Sprawdź CloudTrail pod kątem
AccessDenieddlawisdom:SendMessagez roli usługi Lex: rola przypisana do bota potrzebuje uprawnieńwisdom:CreateSession,wisdom:GetAssistant,wisdom:SendMessageiwisdom:GetNextMessagedla asystenta oraz jego sesji. - Sprawdź, czy profil zabezpieczeń zezwala na aplikację i jest powiązany z opublikowaną wersją agenta orkiestracji wskazaną w flow.
- Sprawdź, czy klucz KMS sekretu i polityka zasobów przyznają dostęp
connect.amazonaws.com.
Flow kończy się błędem „the hand-off to the target agent could not be completed”
- Amazon Connect daje połączeniu WebSocket około 20 sekund na uruchomienie. Sprawdź, czy
AccessUrljest dostępny z AWS:wss://, właściwy identyfikator agenta, brak listy dozwolonych sieci blokującej połączenie. - Jeśli kierujesz połączenie przez własną infrastrukturę, utrzymuj proxy w gotowości. Zimna instancja serverless może uruchamiać się dłużej niż trwa okno przekazania, a Amazon Connect rezygnuje, zanim ElevenLabs w ogóle zobaczy żądanie.
Blok Lex przechodzi do gałęzi Error, a dzwoniący nic nie słyszy
- Sprawdź, czy oba atrybuty sesji są ustawione w bloku Get customer input:
x-amz-lex:q-in-connect:ai-agent-arnz opublikowanym, wersjonowanym ARN agenta orazx-amz-lex:qic-audio-passthroughustawiony natrue. - Sprawdź, czy profil zabezpieczeń zezwalający na aplikację jest przypisany do tej wersji agenta.
- Sprawdź wpis bloku w logu flow — zawiera błąd napotkany przez Amazon Connect.
Sesja kończy się od razu po połączeniu
- Sprawdź, czy
AccessUrlużywawss://, zawiera właściwy identyfikator agenta i wskazuje region, w którym znajduje się twój workspace. - Sprawdź, czy klucz API jest aktywny, należy do workspace agenta i nie ma ograniczeń IP.
- Sprawdź, czy transport Amazon Connect jest włączony w twoim workspace.
Dzwoniący słyszy komunikat błędu flow po zakończeniu pracy agenta
W bloku Lex upewnij się, że wyjście Default prowadzi do bloku porównującego
$.Lex.SessionAttributes.Tool, a porównanie używa wartości zapisanych wielką literą: Escalate i
Complete.
Agent nigdy nie mówi, a sesja kończy się po kilku sekundach
Sprawdź, czy współpracownik ma ustawione audioStreamingEnabled na true. Przy streamingu tekstu
Amazon Connect wysyła tury tekstowe i oczekuje odpowiedzi tekstowych, których ElevenLabs nie
obsługuje; w logach ElevenLabs pojawia się INIT_SESSION carries no audio configuration.
Brakuje zmiennych dynamicznych
Amazon Connect udostępnia wymienione wyżej atrybuty systemowe kontaktu i identyfikatory. Niestandardowe atrybuty kontaktu ustawione w flow nie trafiają do agenta; przekaż je przez webhook inicjujący rozmowę. Jeśli pierwsza wiadomość lub prompt agenta odwołuje się do zmiennej, której nigdy nie przekazano, sesja kończy się błędem podczas uruchamiania.