SMS-OTP-Verifizierung

Senden und verifizieren Sie Einmalpasscodes per SMS während einer Agentenkonversation mit Twilio Verify.

Agentenkonversation zur Erfassung einer Telefonnummer, eines OTP-Codes und einer erfolgreichen Verifizierung

Übersicht

In diesem Leitfaden erfahren Sie, wie Sie Twilio Verify in Ihren ElevenLabs-Agenten integrieren, damit Sie ein OTP an die Telefonnummer eines Anrufers senden und den Code verifizieren können, den dieser während einer Live-Sprachkonversation nennt.

Sie erfahren, wie Sie:

  • einen Twilio-Verify-Service erstellen und Ihre Anmeldedaten für die Authentifizierung Base64-kodieren.
  • zwei Webhook-Tools (send_SMS_verification und check_SMS_verification) im Dashboard, mit der Agents CLI oder über die ElevenLabs API konfigurieren.
  • beide Webhook-Aufrufe mit einem Authorization-Header und einem geheimen Wert authentifizieren.
  • das System-Tool skip_turn aktivieren, damit der Agent wartet, wenn der Anrufer den Code noch nicht erhalten hat.

Voraussetzungen

  • Ein Twilio-Konto mit aktiviertem Twilio Verify. Falls Verify in Ihrer Twilio Console nicht verfügbar ist, beantragen Sie Zugriff über den Twilio-Support oder Ihr Twilio-Kontoteam.
  • Befindet sich Ihr Twilio-Konto im Testmodus, muss die Zieltelefonnummer eine verifizierte Anrufer-ID in Twilio sein.
1

Bei der Twilio Console anmelden

Öffnen Sie die Twilio Console.

2

Authenticate-(Verify)-Service erstellen

Wählen Sie in der linken Seitenleiste Add + und erstellen Sie einen Authenticate-Service (Verify).

3

Service benennen

Geben Sie ihm einen aussagekräftigen Namen, z. B. ElevenLabs OTP.
4

Verify Service SID kopieren

Öffnen Sie die Seite Settings des Service und kopieren Sie die Verify Service SID. Sie beginnt mit VA und unterscheidet sich von Ihrer Account SID.

Häufiger Fehler: Verwenden Sie in den untenstehenden Tool-URLs die Verify Service SID (VA...) des Authenticate-(Verify)-Service. Tragen Sie nicht Ihre Account SID (AC...) in den Pfad ein. Die Verify API erwartet die Service SID in der URL; mit der Account SID entstehen ungültige Parameterfehler vom Typ 4xx.

Mit dem Twilio API Explorer in der Console können Sie Anfragen testen, bevor Sie sie mit Ihrem Agenten verknüpfen.

Zugangsdaten codieren und Webhook-Tools konfigurieren

1

Twilio-Zugangsdaten für die Basic-Authentifizierung codieren

Twilio Verify verwendet HTTP-Basic-Authentifizierung mit Ihrer Account SID als Benutzername und Ihrem Auth Token als Passwort. Beide finden Sie unter Account Info auf der Startseite der Twilio Console.

Codieren Sie in Ihrer Shell ACCOUNT_SID:AUTH_TOKEN mit Base64 (durch Doppelpunkt getrennt, ohne Leerzeichen):

printf '%s' 'YOUR_ACCOUNT_SID:YOUR_AUTH_TOKEN' | base64

Kopieren Sie die Ausgabe. Der vollständige Wert des Headers Authorization besteht aus dem Wort Basic, einem einzelnen Leerzeichen und diesem Base64-String. Speichern Sie ihn in den nächsten Schritten als Tool-Secret.

Basic dkFDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==
2

Tools send_SMS_verification und check_SMS_verification konfigurieren

send_SMS_verification ruft Twilio Verify auf, um ein SMS-OTP zu senden. check_SMS_verification übermittelt die Ziffern, die der Anrufer nennt. Beide benötigen dieselbe Verify Service SID und dasselbe Authorization-Secret.

send_SMS_verification

Agentengespräch zur Erfassung einer Telefonnummer, eines OTP-Codes und der erfolgreichen Verifizierung

Wählen Sie im Bereich Agent Ihrer Agenteneinstellungen Add Tool und anschließend Webhook.

FeldWert
Namesend_SMS_verification
BeschreibungSendet einen OTP-Bestätigungscode per SMS an die angegebene Telefonnummer
MethodePOST
URLhttps://verify.twilio.com/v2/Services/YOUR_VERIFY_SERVICE_SID/Verifications

Ersetzen Sie YOUR_VERIFY_SERVICE_SID durch die VA...-SID aus dem ersten Schritt.

Authentifizierungs-Header: Fügen Sie unter Headers Authorization als Typ Secret hinzu und fügen Sie den vollständigen Wert ein (Basic plus Base64). Siehe Webhook-Tools.

Body-Parameter: Setzen Sie Content type auf URL-encoded (application/x-www-form-urlencoded). Fügen Sie Parameter mit LLM Prompt als Werttyp hinzu:

DatentypBezeichnerBeschreibung
stringToTelefonnummer des Anrufers im E.164-Format (z. B. +14155552671)
stringChannelZustellkanal; verwenden Sie sms

check_SMS_verification

Fügen Sie ein zweites Webhook-Tool hinzu:

FeldWert
Namecheck_SMS_verification
BeschreibungPrüft, ob der vom Anrufer angegebene OTP-Code gültig ist
MethodePOST
URLhttps://verify.twilio.com/v2/Services/YOUR_VERIFY_SERVICE_SID/VerificationCheck

Verwenden Sie dieselbe Verify Service SID und dasselbe Authorization-Secret wie für send_SMS_verification.

Body-Parameter: URL-encoded. Fügen Sie To (E.164) und Code (OTP-Ziffern) mit LLM Prompt hinzu.

Wenn Sie Channel im Dashboard als vom LLM ausgefülltes Feld konfigurieren, fügen Sie Ihrem System-Prompt Anweisungen hinzu, damit das Modell immer sms übergibt. Die obigen CLI- und API-Beispiele setzen sms mit constant_value / constantValue fest, sodass das Modell den Kanal nicht auswählt.

3

System-Tool skip_turn aktivieren

Anrufer benötigen oft einen Moment, um die SMS zu erhalten, bevor sie den Code vorlesen können. Ohne skip_turn kann der Agent in die Pause hineinsprechen oder Aufforderungen wiederholen.

Wählen Sie unter Tools Add Tool, dann System tool, und aktivieren Sie Skip turn. Weitere Konfiguration ist nicht erforderlich.

Fügen Sie dem System-Prompt Hinweise hinzu, damit das Modell weiß, wann es das Tool aufrufen soll, zum Beispiel:

When the caller indicates they are still waiting to receive the OTP code — for example,
"hold on", "I haven't received it yet", or "give me a second" — use the skip_turn tool
to wait silently rather than speaking. Do not repeat the prompt or ask for the code again
until the caller indicates they are ready.

Weitere Informationen finden Sie unter Skip turn.

4

Ablauf im System-Prompt orchestrieren

Verwenden Sie einen System-Prompt, der die Tools klar in Reihenfolge bringt, zum Beispiel:

You are a secure verification agent. When you need to verify a caller's identity:
1. Ask for their phone number if you do not already have it.
2. Standardize the number to E.164 for tool calls: a leading plus, country code, then digits only, no spaces (for example +14155552671).
3. Call send_SMS_verification with their number and Channel set to "sms".
4. Tell the caller: "I've sent a verification code to your phone. Please read it out when you're ready."
5. If the caller says they haven't received the code yet or asks for a moment, use skip_turn to wait silently.
6. Once the caller provides the code, call check_SMS_verification with their number and the code.
7. If the response status is "approved", proceed with the verified flow.
8. If the code is invalid, let the caller know and offer to resend.

Fehlerbehebung

Twilio 60200 — Ungültiger Parameter (HTTP 400)

Twilio gibt möglicherweise einen solchen Text zurück, wenn die Anfrage-URL oder der -Text nicht den Erwartungen der Verify API entspricht:

{
"code": 60200,
"message": "Invalid parameter",
"more_info": "https://www.twilio.com/docs/errors/60200",
"status": 400
}

Prüfen Sie Folgendes: Der Pfad muss Ihre Verify Service SID (VA...) aus den Einstellungen des Authenticate-(Verify-)Dienstes verwenden. Wenn Sie Ihre Account SID (AC...) in .../Services/{Sid}/... einfügen, ist das eine häufige Ursache für 60200. Weitere Fälle ungültiger Parameter finden Sie in der Twilio-Dokumentation zu 60200.

Twilio 20003 — Authentifizierungsfehler — Keine Zugangsdaten angegeben (HTTP 401)

Wenn der Header Authorization fehlt, fehlerhaft formatiert ist oder nicht gesendet wird, kann Twilio Folgendes zurückgeben:

{
"code": 20003,
"message": "Authentication Error - No credentials provided",
"more_info": "https://www.twilio.com/docs/errors/20003",
"status": 401
}

Prüfen Sie Folgendes: Das Tool muss einen Authorization-Header senden, dessen Wert der vollständige String Basic <base64> ist (einschließlich des Worts Basic und eines einzelnen Leerzeichens vor der Base64-Ausgabe). Die Base64-Eingabe muss exakt ACCOUNT_SID:AUTH_TOKEN entsprechen, ohne zusätzliche Leerzeichen oder Zeilenumbrüche. Stellen Sie sicher, dass das Secret bei beiden Webhook-Tools diesem Header zugeordnet ist. Siehe 20003.

Weitere Probleme

  • Nummer im Testmodus abgelehnt: Öffnen Sie in der Twilio Console Verified phone numbers und stellen Sie vor dem Test sicher, dass die Zielnummer aufgeführt ist.
  • Der Agent spricht über den Anrufer hinweg: Stellen Sie sicher, dass Skip turn aktiviert ist und der System-Prompt das Modell anweist, skip_turn zu verwenden, wenn der Anrufer Zeit braucht.