Amazon Connect

Leiten Sie Amazon-Connect-Sprachkontakte über die native Integration für KI-Agenten von Drittanbietern (A2A) von Amazon Connect an ElevenAgents weiter.

Die Amazon-Connect-Integration ist nur eingeschränkt verfügbar. Die Unterstützung von Amazon Connect für KI-Agenten von Drittanbietern muss für Ihr AWS-Konto aktiviert sein. Der ElevenLabs-Transport wird pro Workspace aktiviert. Wenden Sie sich an Ihren ElevenLabs-Ansprechpartner, bevor Sie Kundentraffic weiterleiten.

Überblick

Die Amazon-Connect-Integration verbindet einen Amazon-Connect-Kontaktfluss direkt mit einem Agenten in ElevenAgents über das Protokoll für KI-Agenten von Drittanbietern von Amazon Connect, eine Erweiterung des offenen A2A-Protokolls. Amazon Connect übernimmt Telefonie, Routing und die Warteschlange; ElevenAgents übernimmt die Unterhaltung. Es sind kein SIP-Trunk, keine Twilio-Nummer und keine Middleware erforderlich. AWS dokumentiert die Funktion unter Agent-to-Agent-Zusammenarbeit; dieser Leitfaden behandelt die ElevenLabs-spezifischen Aspekte und die AWS-Schritte, die erforderlich sind, um einen ElevenLabs-Agenten zu erreichen.

Derselbe Ablauf dient für eingehende Anrufe und ausgehende Kontakte, die mit StartOutboundVoiceContact gestartet werden. Wenn der ElevenLabs-Agent fertig ist, setzt Amazon Connect Ihren Kontaktfluss fort und verzweigt anhand des empfangenen Ergebnisses.

So funktioniert die Integration

  1. Ein Kontaktfluss erreicht einen Block Kundeneingabe abrufen, der einen Amazon Lex V2-Bot mit dem Intent AMAZON.QInConnectIntent aufruft.
  2. Der Orchestrierungs-KI-Agent von Amazon Connect übergibt die Unterhaltung sofort an die Drittanbieteranwendung, die Sie für ElevenLabs registriert haben.
  3. Amazon Connect öffnet einen WebSocket zum ElevenLabs-Endpunkt in der AccessUrl der Anwendung und authentifiziert sich mit dem in AWS Secrets Manager gespeicherten API-Schlüssel.
  4. Amazon Connect signalisiert, dass der Kanal des Anrufers aktiv ist. Anschließend tauschen Amazon Connect und ElevenLabs 16-Bit-lineares PCM-Audio als A2A-Nachrichten aus. Amazon Connect schlägt die Abtastrate vor und ElevenLabs übernimmt sie, daher sind für den Agenten keine Änderungen am Audioformat erforderlich.
  5. Wenn der Agent den Anruf beendet, schließt ElevenLabs die Sitzung mit dem Ergebnis Complete ab und der Fluss wird ab dem Lex-Block fortgesetzt. Das Ergebnis Escalate, das den Anrufer an eine menschliche Warteschlange weiterleitet, wird über das Protokoll unterstützt und über das Übergabetool verfügbar sein; siehe An einen Menschen übergeben.

Voraussetzungen

Stellen Sie vor Beginn sicher, dass Sie über Folgendes verfügen:

  1. Eine Amazon Connect-Instance im Tarif Connect Customer mit aktivierter Unterstützung für Drittanbieter-KI-Agenten für das Konto und die Region.
  2. Einen Amazon Q in Connect-Assistenten, der mit der Instance verknüpft ist.
  3. AWS-Berechtigungen zum Erstellen von KMS-Schlüsseln, Secrets in Secrets Manager, AppIntegrations-Anwendungen, Connect-Sicherheitsprofilen, Amazon Q in Connect-KI-Agenten, Lex V2-Bots und Kontaktflüssen.
  4. Einen ElevenLabs-Workspace mit aktiviertem Amazon Connect-Transport.
  5. Einen ElevenLabs-Agenten und einen dedizierten API-Schlüssel.
  6. AWS CLI v2 und awscurl (pip install awscurl) für Aufrufe, deren Anfrageschemas noch nicht in veröffentlichten CLI-Versionen enthalten sind.

Bewahren Sie alle AWS-Ressourcen im selben Konto und derselben Region wie die Amazon Connect-Instance auf. Die Schritte unten verwenden die AWS CLI, wo sie den Aufruf unterstützt, und awscurl (eine mit SigV4 signierte HTTP-Anfrage), wo dies nicht der Fall ist. Sie folgen der AWS-Anleitung Zusammenarbeit mit einem externen KI- Agenten einrichten und ergänzen die ElevenLabs-spezifischen Werte.

ElevenLabs konfigurieren

1

Agenten erstellen oder auswählen

Erstellen Sie den Agenten in ElevenAgents. Geben Sie ihm eine erste Nachricht, wenn er sprechen soll, sobald die Übergabe abgeschlossen ist; Amazon Connect spielt während der Sitzung keine eigenen Inhalte ab.

2

Anruf beenden aktivieren

Aktivieren Sie unter Agent → Tools → Systemtools Anruf beenden, damit der Agent die Sitzung abschließen kann, wenn die Anfrage des Anrufers gelöst ist. Amazon Connect setzt Ihren Fluss dann mit dem Ergebnis Complete fort.

3

Dedizierten API-Schlüssel erstellen

Erstellen Sie einen API-Schlüssel im selben Workspace wie der Agent und beschränken Sie ihn auf ElevenAgents. Sie speichern ihn im nächsten Abschnitt in AWS Secrets Manager; fügen Sie ihn nirgendwo anders ein.

4

WebSocket-URL notieren

Amazon Connect verbindet sich mit einer URL, die Ihre Agenten-ID enthält:

UmgebungAccessUrl
Standardwss://api.elevenlabs.io/v1/convai/conversation/amazon-connect/<agent_id>
Datenresidenzwss://api.<region>.residency.elevenlabs.io/v1/convai/conversation/amazon-connect/<agent_id>

Wenn sich Ihr ElevenLabs-Konto in einer isolierten Datenresidenzumgebung befindet, ersetzen Sie <region> durch Ihren Regionscode. Verfügbare Regionen finden Sie unter Datenresidenz.

ElevenLabs-Anwendung in AWS registrieren

Alles in diesem Abschnitt ist ein API-Aufruf. Legen Sie die Werte, die Sie wiederverwenden, einmalig fest:

export AWS_REGION=<REGION> # Region of your Amazon Connect instance
export ACCOUNT_ID=<ACCOUNT_ID>
export INSTANCE_ID=<INSTANCE_ID> # Amazon Connect instance ID
export INSTANCE_ARN=arn:aws:connect:$AWS_REGION:$ACCOUNT_ID:instance/$INSTANCE_ID
export AGENT_ID=<AGENT_ID> # ElevenLabs agent ID
1

Amazon Q in Connect-Assistenten erstellen

Überspringen Sie diesen Schritt, wenn die Instance bereits über einen Assistenten verfügt. Erstellen Sie andernfalls einen und verknüpfen Sie ihn mit der Instance:

aws qconnect create-assistant --name elevenlabs-assistant --type AGENT --region $AWS_REGION
aws connect create-integration-association --instance-id $INSTANCE_ID \
--integration-type WISDOM_ASSISTANT --integration-arn <ASSISTANT_ARN> --region $AWS_REGION

Notieren Sie die Assistenten-ID und den ARN.

2

API-Schlüssel speichern

Amazon Connect liest den Schlüssel mit seinem eigenen Service-Prinzipal aus Secrets Manager. Das Secret muss daher mit einem kundenseitig verwalteten KMS-Schlüssel verschlüsselt werden, der connect.amazonaws.com Entschlüsselungszugriff gewährt. Der Standardschlüssel aws/secretsmanager kann nicht verwendet werden.

kms-key-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AccountAdmin",
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::<ACCOUNT_ID>:root" },
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "AllowConnectDecrypt",
"Effect": "Allow",
"Principal": { "Service": "connect.amazonaws.com" },
"Action": ["kms:Decrypt", "kms:DescribeKey"],
"Resource": "*"
}
]
}

Speichern Sie den ElevenLabs-API-Schlüssel in einer Datei, damit er nie im Shell-Verlauf erscheint. Erstellen Sie dann Schlüssel und Secret:

KMS_KEY_ID=$(aws kms create-key --description "ElevenLabs agent API key" \
--policy file://kms-key-policy.json --region $AWS_REGION \
--query KeyMetadata.KeyId --output text)
SECRET_ARN=$(aws secretsmanager create-secret --name elevenlabs/agent-api-key \
--kms-key-id "$KMS_KEY_ID" --secret-string file://elevenlabs-api-key.txt \
--region $AWS_REGION --query ARN --output text)
rm elevenlabs-api-key.txt

Gewähren Sie Amazon Connect Lesezugriff auf das Secret:

secret-resource-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowConnectRead",
"Effect": "Allow",
"Principal": { "Service": "connect.amazonaws.com" },
"Action": ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"],
"Resource": "<SECRET_ARN>"
}
]
}
aws secretsmanager put-resource-policy --secret-id "$SECRET_ARN" \
--resource-policy file://secret-resource-policy.json --region $AWS_REGION

In Secrets Manager mit dem kundenseitig verwalteten Schlüssel verschlüsseltes Secret und dessen Ressourcenrichtlinie für
connect.amazonaws.com

3

Drittanbieteranwendung erstellen

Registrieren Sie die ElevenLabs-WebSocket-URL als AppIntegrations-Anwendung vom Typ A2A_SERVER. AuthConfig ist für diesen Typ erforderlich.

create-application.json
{
"Name": "elevenlabs-agent",
"Namespace": "elevenlabs-agent",
"Description": "ElevenLabs agent over the Amazon Connect A2A extension",
"ApplicationType": "A2A_SERVER",
"ApplicationSourceConfig": {
"ExternalUrlConfig": {
"AccessUrl": "wss://api.elevenlabs.io/v1/convai/conversation/amazon-connect/<AGENT_ID>"
}
},
"AuthConfig": {
"AuthType": "API_KEY",
"CredentialProviderIdentifier": "<SECRET_ARN>"
}
}
awscurl --service app-integrations --region $AWS_REGION -X POST \
-H 'Content-Type: application/json' --data @create-application.json \
"https://app-integrations.$AWS_REGION.amazonaws.com/applications"

Die Antwort enthält die Id und den Arn der Anwendung. Exportieren Sie sie als APPLICATION_ID und APPLICATION_ARN. Die Amazon Connect-Konsole listet A2A_SERVER-Anwendungen nicht auf. Prüfen Sie daher über die API:

aws appintegrations get-application --arn "$APPLICATION_ARN" --region $AWS_REGION
4

Anwendung mit Ihrer Instance verknüpfen

awscurl --service connect --region $AWS_REGION -X PUT -H 'Content-Type: application/json' \
--data "{\"IntegrationArn\": \"$APPLICATION_ARN\", \"IntegrationType\": \"APPLICATION\"}" \
"https://connect.$AWS_REGION.amazonaws.com/instance/$INSTANCE_ID/integration-associations"
aws connect list-integration-associations --instance-id $INSTANCE_ID \
--integration-type APPLICATION --region $AWS_REGION
5

Anwendung in einem Sicherheitsprofil erlauben

Das Sicherheitsprofil, das dem Orchestrierungs-KI-Agenten zugewiesen ist, muss die Anwendung unter seinen zulässigen KI-Agenten aufführen, sonst schlägt die Übergabe zur Laufzeit fehl.

SECURITY_PROFILE_ID=$(aws connect create-security-profile --instance-id $INSTANCE_ID \
--security-profile-name elevenlabs-a2a --permissions QConnectAIAgents.View Wisdom.View \
--region $AWS_REGION --query SecurityProfileId --output text)
awscurl --service connect --region $AWS_REGION -X POST -H 'Content-Type: application/json' \
--data "{\"AllowedAIAgents\": [{\"Arn\": \"$APPLICATION_ARN\", \"Type\": \"THIRD_PARTY\"}]}" \
"https://connect.$AWS_REGION.amazonaws.com/security-profiles/$INSTANCE_ID/$SECURITY_PROFILE_ID"

Die Admin-Website zeigt das Profil und seine Berechtigungen, aber nicht die zulässigen KI-Agenten. Diese sind nur über die API sichtbar.

Dediziertes Sicherheitsprofil auf der Amazon Connect-Admin-Website mit Berechtigungen zum Anzeigen von KI-
Agenten

6

Orchestrierungs-KI-Agenten erstellen und veröffentlichen

Der Orchestrierungsagent übergibt jede Sprachunterhaltung sofort an die Anwendung, wobei Audio- Streaming aktiviert ist. Sprachsitzungen erfordern eine sofortige Übergabe; Text-Streaming (audioStreamingEnabled auf false gesetzt) und delegateAgentConfiguration werden von ElevenLabs nicht unterstützt.

create-ai-agent.json
{
"name": "elevenlabs-handoff",
"type": "ORCHESTRATION",
"visibilityStatus": "PUBLISHED",
"configuration": {
"orchestrationAIAgentConfiguration": {
"connectInstanceArn": "<INSTANCE_ARN>",
"locale": "en_US",
"multiAgentConfigurations": [
{
"handoffAgentConfiguration": {
"agentTarget": { "applicationId": "<APPLICATION_ARN>" },
"instruction": {
"instruction": "Immediately hand off every voice conversation to the ElevenLabs agent."
},
"audioStreamingEnabled": true,
"immediateHandoff": true
}
}
]
}
}
}
awscurl --service wisdom --region $AWS_REGION -X POST -H 'Content-Type: application/json' \
--data @create-ai-agent.json \
"https://wisdom.$AWS_REGION.amazonaws.com/assistants/<ASSISTANT_ID>/aiagents"
aws qconnect create-ai-agent-version --assistant-id <ASSISTANT_ID> \
--ai-agent-id <AI_AGENT_ID> --region $AWS_REGION

Die Veröffentlichung gibt einen versionierten ARN zurück (<AI_AGENT_ARN>:1), auf den der Kontaktfluss verweist. Weisen Sie das Sicherheitsprofil sowohl dem nicht versionierten als auch dem versionierten Agenten zu:

for ARN in <AI_AGENT_ARN> <AI_AGENT_ARN>:1; do
aws connect associate-security-profiles --instance-id $INSTANCE_ID --entity-arn "$ARN" \
--entity-type AI_AGENT --security-profiles Id=$SECURITY_PROFILE_ID --region $AWS_REGION
done

Orchestrierungs-KI-Agent im KI-Agenten-Designer mit zugewiesenem dediziertem Sicherheitsprofil

Kontaktfluss erstellen

1

Lex-Bot erstellen

  1. Erstellen Sie einen Lex V2-Bot, dessen einziger Intent der integrierte AMAZON.QInConnectIntent ist, konfiguriert mit Ihrem Assistenten-ARN. Fügen Sie keine weiteren Intents hinzu.
  2. Aktivieren Sie Speech-to-Speech für das Bot-Gebietsschema. Bidirektionales Audio-Streaming funktioniert nur mit Sonic-Speech-to-Speech-Bots.
  3. Erlauben Sie der IAM-Rolle des Bots, den Assistenten zu verwenden. Andernfalls schlägt die Übergabe innerhalb von AWS mit HTTP 403 fehl, bevor eine Anfrage ElevenLabs erreicht. Fügen Sie eine Richtlinie wie diese hinzu:
lex-role-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["wisdom:CreateSession", "wisdom:GetAssistant"],
"Resource": ["<ASSISTANT_ARN>", "<ASSISTANT_ARN>/*"]
},
{
"Effect": "Allow",
"Action": ["wisdom:SendMessage", "wisdom:GetNextMessage"],
"Resource": "arn:aws:wisdom:<REGION>:<ACCOUNT_ID>:session/<ASSISTANT_ID>/*"
}
]
}
  1. Erstellen Sie den Bot, erstellen Sie eine Version und einen Alias und verknüpfen Sie den Alias mit der Instance:
aws connect associate-bot --instance-id $INSTANCE_ID \
--lex-v2-bot AliasArn=<LEX_ALIAS_ARN> --region $AWS_REGION

Liste der Lex V2-Bot-Intents mit dem Übergabe-Intent für Q in Connect und dem integrierten Fallback-
Intent

2

Assistenten und Lex-Block hinzufügen

Fügen Sie im Fluss-Designer diese Blöcke in der folgenden Reihenfolge hinzu:

  1. Protokollierungsverhalten festlegen: aktiviert. Über das Flussprotokoll prüfen Sie die Übergabe weiter unten.
  2. Assistent verbinden: Wählen Sie Ihren Amazon Q in Connect-Assistenten aus.
  3. Kundeneingabe abrufen: Wählen Sie auf dem Tab Amazon Lex ARN eingeben und fügen Sie den Bot- Alias-ARN ein. Lassen Sie den Text-to-Speech-Prompt als einzelnes Leerzeichen, damit Amazon Connect vor der Übergabe nichts abspielt. Fügen Sie unter Sitzungsattribute zwei manuell festgelegte Attribute hinzu:
ZielschlüsselWert
x-amz-lex:q-in-connect:ai-agent-arnDer versionierte Orchestrierungsagent-ARN (...:1).
x-amz-lex:qic-audio-passthroughtrue

Sitzungsattribute des Blocks „Kundeneingabe abrufen“: der versionierte KI-Agenten-ARN und das Audio-
Passthrough-Flag

x-amz-lex:qic-audio-passthrough aktiviert während der Prelaunch-Phase von AWS den Drittanbieter-Sprachpfad. AWS gibt an, dass das Attribut nicht mehr benötigt wird, sobald das Feature öffentlich verfügbar ist. Es kann jedoch bedenkenlos bestehen bleiben.

3

Nach Ergebnis verzweigen

Amazon Connect stellt das ElevenLabs-Ergebnis im Fluss als Attribut $.Lex.SessionAttributes.Tool bereit. Fügen Sie nach dem Lex-Block einen Block Kontaktattribute prüfen hinzu, setzen Sie Namespace auf Lex, Schlüssel auf Sitzungsattribute und Sitzungsattributschlüssel auf Tool. Fügen Sie dann pro Ergebnis eine Gleich-Bedingung hinzu:

WertBedeutungEmpfohlene Route
CompleteDer Agent hat den Anruf beendet, beispielsweise mit dem Tool Anruf beenden.Trennen
EscalateDer Agent hat einen Menschen angefordert (siehe An einen Menschen übergeben).Arbeitswarteschlange festlegen → An Warteschlange übergeben

Block „Kontaktattribute prüfen“, konfiguriert für das Lex-Sitzungsattribut Tool mit Gleich-
Bedingungen für jedes Ergebnis

Amazon Connect schreibt diese Werte in Titelschreibweise (Escalate, Complete), nicht als den großgeschriebenen Ergebnistyp, den der Agent sendet. In einem exportierten Fluss ist die Standard-Ausgabe des Lex-Blocks dessen Übergang NoMatchingCondition. Stellen Sie sicher, dass sie zum Vergleichsblock führt und nicht zu einer Fehlermeldung.

Kontaktfluss, bei dem der Block „Kundeneingabe abrufen“ zu einem Block „Kontaktattribute prüfen“ führt, der
Escalate an eine Warteschlange und Complete an eine
Trennung weiterleitet

Der obige Fluss vergleicht beide Schreibweisen jedes Ergebnisses, damit er auch bei einer Änderung der Groß- und Kleinschreibung weiter funktioniert.

4

Veröffentlichen und zuweisen

Veröffentlichen Sie den Fluss und weisen Sie ihm dann eine beanspruchte Telefonnummer zu:

aws connect associate-phone-number-contact-flow --instance-id $INSTANCE_ID \
--phone-number-id <PHONE_NUMBER_ID> --contact-flow-id <CONTACT_FLOW_ID> --region $AWS_REGION

Starten Sie bei ausgehenden Anrufen den Kontakt mit demselben Fluss. Amazon Connect ruft den Kunden an und übergibt den angenommenen Anruf an ElevenLabs:

aws connect start-outbound-voice-contact --instance-id $INSTANCE_ID \
--contact-flow-id <CONTACT_FLOW_ID> --destination-phone-number <E164_NUMBER> \
--source-phone-number <YOUR_CONNECT_NUMBER> --region $AWS_REGION

Integration testen

1

Anruf tätigen

Rufen Sie die Nummer an. Die erste Nachricht des Agenten wird einige Sekunden abgespielt, nachdem der Fluss den Lex- Block erreicht hat. Die Übergabe innerhalb von AWS dauert etwa drei Sekunden, bevor ElevenLabs kontaktiert wird. Führen Sie eine kurze Unterhaltung und verabschieden Sie sich: Der Agent ruft Anruf beenden auf, die ElevenLabs-Sitzung endet mit Complete und Ihr Fluss wird ab dem Lex-Block fortgesetzt.

2

Unterhaltung in ElevenLabs prüfen

Öffnen Sie die Unterhaltung unter Unterhaltungen. Als Quelle ist Amazon Connect angegeben und der Tab Clientdaten führt die dynamischen Variablen amazon_connect_* auf, die die Sitzung empfangen hat.

Tab „Clientdaten“ einer Amazon Connect-Unterhaltung mit den dynamischen Variablen von Amazon Connect

3

Flussprotokoll in AWS prüfen

Bei aktivierter Protokollierung schreibt jeder Block einen Eintrag in die Flussprotokollgruppe der Instance. Der Block Kunden- eingabe abrufen zeichnet das Ergebnis auf, das er von ElevenLabs erhalten hat:

aws logs filter-log-events --log-group-name /aws/connect/<INSTANCE_ALIAS> \
--start-time $(( $(date +%s) - 600 ))000 --region $AWS_REGION \
--query 'events[].message' --output text | tr '\t' '\n' | grep -o '"Results": *"[A-Za-z_]*"'

Für den Lex-Block erwarten Sie "Results": "Complete", gefolgt von den Blöcken in Ihrem Zweig Complete.

Dynamische Variablen

Amazon Connect sendet die Systemattribute des Kontakts mit jeder Sitzung. ElevenLabs stellt sie zusammen mit den Sitzungskennungen als dynamische Variablen bereit:

Dynamische VariableBeschreibung
system__caller_idDie Telefonnummer des Kunden (Kundenendpunkt von Amazon Connect).
system__called_numberDie Amazon-Connect-Telefonnummer des Kontakts (Systemendpunkt).
system__call_idDie Amazon-Connect-Kontakt-ID.
amazon_connect_system_attributes_channelDer Kontaktkanal, zum Beispiel VOICE.
amazon_connect_system_attributes_customer_endpoint_addressDie von Amazon Connect gesendete Kundenendpunktadresse.
amazon_connect_system_attributes_system_endpoint_addressDie von Amazon Connect gesendete Systemendpunktadresse.
amazon_connect_interaction_modeDer Kollaborationsmodus, zum Beispiel HANDOFF.
amazon_connect_contact_idDie Amazon-Connect-Kontakt-ID.
amazon_connect_contact_arnDie vollständige Kontakt-ARN.
amazon_connect_context_idDie A2A-Sitzungs-ID (Kontext-ID).
amazon_connect_instance_idDie Instanz-ID.
amazon_connect_instance_arnDie Instanz-ARN.

In Amazon-Connect-Sitzungen ist system__caller_id immer der Kunde und system__called_number immer die Amazon-Connect-Nummer – sowohl für eingehende als auch für ausgehende Kontakte.

Jedes weitere Element des von Amazon Connect gesendeten Kontaktkontexts wird auf dieselbe Weise bereitgestellt: Verschachtelte Namen werden mit Unterstrichen verbunden und im Snake Case unter dem Präfix amazon_connect_ ausgegeben. Benutzerdefinierte Kontaktattribute, die Sie in Ihrem Flow mit Kontaktattribute festlegen setzen, sind nicht Teil des Kontexts, den Amazon Connect derzeit sendet – auch dann nicht, wenn das Sicherheitsprofil des KI-Agenten Kontaktattribute anzeigen kann. Falls AWS sie künftig einschließt, erscheinen sie automatisch unter demselben Präfix. Sie können nicht auswählen, welche Kontaktdaten Amazon Connect teilt; AWS übergibt einen festen Kontextsaz.

Um zusätzlichen Kontext zu übergeben, verwenden Sie den Webhook zur Gesprächsinitiierung. Für Amazon-Connect-Sitzungen wird der Webhook aufgerufen, bevor der Agent spricht. Dabei ist caller_id auf die Nummer des Kunden, called_number auf die Amazon-Connect-Nummer und call_id auf die Amazon-Connect-Kontakt-ID gesetzt. So kann eine Lambda-Funktion in Ihrem Flow Kontaktattribute nach Kontakt-ID speichern und der Webhook sie als dynamische Variablen und Konfigurationsüberschreibungen zurückgeben.

An einen Menschen weiterleiten

Amazon Connect leitet einen Kontakt an eine menschliche Warteschlange weiter, wenn die ElevenLabs-Sitzung mit dem Ergebnis Escalate endet. Den Zweig Escalate Ihres Flows verarbeiten Sie mit Arbeitswarteschlange festlegen und **An Warteschlange weiterleiten **. Jede Warteschlangenbehandlung, Whisper-Flow oder Agentenauswahl übernimmt Amazon Connect.

Der agentenseitige Auslöser für Escalate wird als Amazon-Connect-Übertragungstyp zum Tool An Nummer weiterleiten hinzugefügt, damit ein Tool die Übergabe an einen Menschen bei jedem Anbieter abdeckt. Bis es verfügbar ist, können ElevenLabs-Agenten in Amazon Connect den Anruf beenden (Complete), aber nicht an einen Menschen eskalieren. Behalten Sie den Zweig Escalate in Ihrem Flow bei; er funktioniert ohne weitere Flow-Änderungen, sobald die Funktion verfügbar ist.

Das Tool Anruf beenden erzeugt das Ergebnis Complete. Die Analyse nach dem Anruf und der Webhook nach dem Anruf werden nach beiden Ergebnissen wie gewohnt ausgeführt.

Nur der Ergebnistyp und eine Zeichenfolge mit dem Grund werden an Amazon Connect zurückgegeben. Um Routingdaten an den Flow zu übergeben, geben Sie dem Agenten ein Webhook-Tool, das die UpdateContactAttributes-API von Amazon Connect mit amazon_connect_contact_id und den zu speichernden Werten aufruft. Weisen Sie den Agenten an, es vor dem Beenden des Anrufs aufzurufen. Der Flow kann diese Attribute dann nach dem Lex-Block mit einem Kontaktattribute prüfen-Block lesen. Der Webhook nach dem Anruf wird ausgelöst, nachdem der Flow bereits fortgesetzt wurde. Er eignet sich daher für CRM-Aktualisierungen statt für Routingentscheidungen.

Traces

Amazon Connect verlangt von externen Agenten das Senden von Trace-Daten für jede Kollaboration. Wenn Amazon Connect Trace-Daten für die Sitzung abonniert, sendet ElevenLabs für jeden Agententurn einen OpenTelemetry-Trace mit dem Transkript des Anrufers, der Antwort des Agenten, jedem Tool-Aufruf mit Ergebnis und dem Timing pro Span. Amazon Connect speichert diese Traces mit dem Kontakt. Informationen zum Anzeigen finden Sie unter KI-Agenten-Traces. Transkripte und Tool-Ergebnisse in diesen Traces unterliegen denselben Schwärzungseinstellungen wie Ihre übrigen Kontaktdaten in Amazon Connect. Prüfen Sie daher Ihre Anforderungen zur Datenverarbeitung, bevor Sie die Integration aktivieren. Wie Webhooks nach dem Anruf werden Traces an Ihre eigenen Systeme übermittelt: Agenten im Zero-Retention-Modus senden sie weiterhin, da Zero Retention regelt, was ElevenLabs speichert, nicht was Ihre Amazon-Connect-Instanz empfängt.

Audio

Amazon Connect schlägt in jeder Sitzung lineares 16-Bit-Mono-PCM mit 8, 16 oder 24 kHz vor. ElevenLabs übernimmt den Vorschlag, daher werden die konfigurierten Audioformate des Agenten für Amazon-Connect-Sitzungen nicht verwendet. Unterbrechungen durch Anrufer erkennt ElevenLabs und meldet sie an Amazon Connect, damit gepufferte Wiedergabe sofort geleert wird. Von Amazon Connect erfasste Tastatureingaben werden als DTMF-Ziffern an den Agenten übermittelt. Der eigene Stillemarker von Amazon Connect wird ignoriert; verwenden Sie das Turn-Timeout des Agenten, um einen stillen Anrufer erneut anzusprechen.

Einschränkungen und nicht unterstützte Funktionen

  • Client-Tools und das Systemtool Tastenton wiedergeben werden nicht unterstützt. An Nummer weiterleiten unterstützt Amazon Connect noch nicht; die Übergabe an einen Menschen wird in diesem Tool als Amazon-Connect-Übertragungstyp verfügbar sein.
  • Ergebnisse der Datenerfassung werden nicht an den Flow zurückgegeben und Amazon Connect entscheidet, welche Kontaktdaten es teilt. Verwenden Sie für zusätzlichen Kontext den nach amazon_connect_contact_id geschlüsselten Webhook zur Gesprächsinitiierung, für Routingdaten ein Webhook-Tool, das UpdateContactAttributes aufruft, und für alles andere den Webhook nach dem Anruf.
  • Konfigurationsüberschreibungen wie system__override_first_message können nicht vom Flow übergeben werden. Geben Sie sie stattdessen über den Webhook zur Gesprächsinitiierung zurück.
  • Sprachsitzungen erfordern eine sofortige Übergabe. Der Amazon-Connect-Chatkanal, Text-Streaming und Kollaboration im Hintergrund (delegateAgentConfiguration) werden noch nicht unterstützt.
  • An Amazon Connect gesendete Traces umfassen das Transkript des Anrufers, Antworten des Agenten, Tool-Aufrufe mit ihren Ergebnissen und Timing. Tool-Aufrufparameter sind nicht enthalten.
  • Die Unterstützung von Drittanbieter-Agenten in Amazon Connect ist nur verfügbar, wenn AWS sie aktiviert hat, und kann zusätzliche AWS-Gebühren verursachen.

Fehlerbehebung

  • Der Fehler wird innerhalb von AWS ausgelöst, bevor eine Anfrage ElevenLabs erreicht. Prüfen Sie CloudTrail auf AccessDenied für wisdom:SendMessage von der Lex-Service-Rolle: Die dem Bot zugewiesene Rolle benötigt wisdom:CreateSession, wisdom:GetAssistant, wisdom:SendMessage und wisdom:GetNextMessage für den Assistenten und seine Sitzungen.
  • Bestätigen Sie, dass das Sicherheitsprofil die Anwendung zulässt und mit der veröffentlichten Orchestrierungs-Agentenversion verknüpft ist, auf die der Flow verweist.
  • Bestätigen Sie, dass der KMS-Schlüssel und die Ressourcenrichtlinie des Secrets connect.amazonaws.com Zugriff gewähren.
  • Amazon Connect gibt der WebSocket-Verbindung etwa 20 Sekunden Zeit für den Verbindungsaufbau. Bestätigen Sie, dass AccessUrl von AWS erreichbar ist: wss://, die richtige Agenten-ID und keine Netzwerk-Allowlist, die den Zugriff blockiert.
  • Wenn Sie die Verbindung über Ihre eigene Infrastruktur proxyen, halten Sie diesen Proxy warm. Eine kalte serverlose Instanz kann länger als das Übergabefenster benötigen, und Amazon Connect gibt auf, bevor ElevenLabs die Anfrage überhaupt sieht.
  • Bestätigen Sie, dass beide Sitzungsattribute im Block Kundeneingabe abrufen festgelegt sind: x-amz-lex:q-in-connect:ai-agent-arn mit der veröffentlichten, versionierten Agenten-ARN und x-amz-lex:qic-audio-passthrough auf true gesetzt.
  • Bestätigen Sie, dass das Sicherheitsprofil, das die Anwendung zulässt, dieser Agentenversion zugewiesen ist.
  • Lesen Sie den Eintrag des Blocks im Flow-Protokoll; er enthält den Fehler, auf den Amazon Connect gestoßen ist.
  • Bestätigen Sie, dass AccessUrl wss:// verwendet, die korrekte Agenten-ID enthält und auf die Region verweist, in der sich Ihr Workspace befindet.
  • Bestätigen Sie, dass der API-Schlüssel aktiv ist, zum Workspace des Agenten gehört und keine IP-Beschränkungen hat.
  • Bestätigen Sie, dass der Amazon-Connect-Transport für Ihren Workspace aktiviert ist.

Stellen Sie im Lex-Block sicher, dass die Ausgabe Default zum Block führt, der $.Lex.SessionAttributes.Tool vergleicht, und vergleichen Sie mit den Werten in Title Case Escalate und Complete.

Bestätigen Sie, dass der Collaborator mit audioStreamingEnabled auf true konfiguriert ist. Bei Text- Streaming sendet Amazon Connect Textturns und erwartet Textantworten, die ElevenLabs nicht unterstützt. Die ElevenLabs-Protokolle zeigen INIT_SESSION carries no audio configuration.

Amazon Connect stellt die oben aufgeführten Systemattribute und Kennungen des Kontakts bereit. Im Flow gesetzte benutzerdefinierte Kontaktattribute erreichen den Agenten nicht; übergeben Sie sie stattdessen über den Webhook zur Gesprächsinitiierung. Wenn die erste Nachricht oder der Prompt des Agenten auf eine Variable verweist, die nie bereitgestellt wird, schlägt die Sitzung beim Start fehl.