Hoppa till navigering

SMS OTP-verifiering

Skicka och verifiera engångskoder via SMS under en agentkonversation med Twilio Verify.

Agentkonversation som samlar in ett telefonnummer, en OTP-kod och lyckad verifiering

Översikt

Den här guiden visar hur du integrerar Twilio Verify med din ElevenLabs-agent så att du kan skicka en OTP till en uppringares telefonnummer och verifiera koden som personen läser upp under ett pågående röstsamtal.

Du får lära dig hur du:

  • Skapar en Twilio Verify-tjänst och Base64-kodar dina uppgifter för autentisering.
  • Konfigurerar två webhook-verktyg (send_SMS_verification och check_SMS_verification) i dashboarden, med Agents CLI eller med ElevenLabs API.
  • Autentiserar båda webhook-anropen med en Authorization-header med ett hemligt värde.
  • Aktiverar systemverktyget skip_turn så att agenten väntar när uppringaren ännu inte har fått koden.

Förutsättningar

  • Ett Twilio-konto med Twilio Verify aktiverat. Om Verify inte är tillgängligt i din Twilio Console kan du begära åtkomst via Twilio support eller ditt Twilio-kontoteam.
  • Om ditt Twilio-konto är i testläge måste mottagarens telefonnummer vara ett verifierat nummerpresentations-ID i Twilio.
1

Logga in på Twilio Console

Öppna Twilio Console.

2

Skapa en Authenticate-tjänst (Verify)

Välj Add + i vänstersidofältet och skapa en Authenticate-tjänst (Verify).

3

Namnge tjänsten

Ge den ett beskrivande namn (till exempel ElevenLabs OTP).
4

Kopiera Verify Service SID

Öppna tjänstens sida Settings och kopiera Verify Service SID. Den börjar med VA och skiljer sig från ditt Account SID.

Vanligt misstag: Använd ditt Verify Service SID (VA...) från Authenticate-tjänsten (Verify) i verktygs-URL:erna nedan. Lägg inte ditt Account SID (AC...) i sökvägen. Verify API förväntar sig tjänstens SID i URL:en; om du använder Account SID uppstår 4xx-fel för ogiltiga parametrar.

Du kan använda Twilio API Explorer i konsolen för att testa förfrågningar innan du kopplar dem till din agent.

Koda in autentiseringsuppgifter och konfigurera webhook-verktyg

1

Koda Twilio-autentiseringsuppgifter för Basic-autentisering

Twilio Verify använder HTTP Basic-autentisering med ditt Account SID som användarnamn och Auth Token som lösenord. Du hittar båda under Account Info på startsidan i Twilio Console.

Base64-koda ACCOUNT_SID:AUTH_TOKEN i ditt skal (separerade med kolon, utan mellanslag):

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

Kopiera utdata. Det fullständiga värdet för rubriken Authorization består av ordet Basic, ett enkelt mellanslag och Base64-strängen. Spara det som en verktygshemlighet i nästa steg.

Basic dkFDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==
2

Konfigurera verktygen send_SMS_verification och check_SMS_verification

send_SMS_verification anropar Twilio Verify för att skicka en SMS-OTP. check_SMS_verification skickar in siffrorna som uppringaren säger. Båda kräver samma Verify Service SID och samma Authorization-hemlighet.

send_SMS_verification

Agentsamtal som samlar in ett telefonnummer, en OTP-kod och lyckad verifiering

Välj Add Tool i avsnittet Agent i agentinställningarna och välj Webhook.

FältVärde
Namnsend_SMS_verification
BeskrivningSkickar en OTP-verifieringskod via SMS till det angivna telefonnumret
MetodPOST
URLhttps://verify.twilio.com/v2/Services/YOUR_VERIFY_SERVICE_SID/Verifications

Ersätt YOUR_VERIFY_SERVICE_SID med VA...-SID:t från det första steget.

Autentiseringsrubrik: Lägg till Authorization som typen Secret under Headers och klistra in det fullständiga värdet (Basic plus Base64). Se Webhook-verktyg.

Brödtextparametrar: Ange Content type till URL-encoded (application/x-www-form-urlencoded). Lägg till parametrar med LLM Prompt som värdetyp:

DatatypIdentifierareBeskrivning
stringToUppringarens telefonnummer i E.164-format (till exempel +14155552671)
stringChannelLeveranskanal; använd sms

check_SMS_verification

Lägg till ett andra webhook-verktyg:

FältVärde
Namncheck_SMS_verification
BeskrivningKontrollerar om OTP-koden som uppringaren anger är giltig
MetodPOST
URLhttps://verify.twilio.com/v2/Services/YOUR_VERIFY_SERVICE_SID/VerificationCheck

Använd samma Verify Service SID och samma Authorization-hemlighet som för send_SMS_verification.

Brödtextparametrar: URL-encoded. Lägg till To (E.164) och Code (OTP-siffror) med LLM Prompt.

Om du konfigurerar Channel som ett LLM-fyllt fält i kontrollpanelen, lägg till instruktioner i systemprompten så att modellen alltid skickar sms. CLI- och API-exemplen ovan låser sms med constant_value / constantValue, så modellen väljer inte kanal.

3

Aktivera systemverktyget skip_turn

Uppringare behöver ofta en stund för att ta emot SMS:et innan de kan läsa upp koden. Utan skip_turn kan agenten prata över pausen eller upprepa uppmaningar.

Välj Add Tool i Tools, välj System tool och aktivera Skip turn. Ingen ytterligare konfiguration krävs.

Lägg till vägledning i systemprompten så att modellen vet när den ska anropa verktyget, till exempel:

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.

Mer information finns i Skip turn.

4

Orkestrera flödet i systemprompten

Använd en systemprompt som tydligt ordnar verktygen i följd, till exempel:

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.

Felsökning

Twilio 60200 — Ogiltig parameter (HTTP 400)

Twilio kan returnera en brödtext som denna när förfrågnings-URL:en eller brödtexten inte stämmer överens med vad Verify API förväntar sig:

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

Detta ska du kontrollera: Sökvägen måste använda ditt Verify Service SID (VA...) från inställningarna för Authenticate-tjänsten (Verify). Att ange ditt Account SID (AC...) i .../Services/{Sid}/... är en vanlig orsak till 60200. Se Twilios dokumentation om 60200 för andra fall med ogiltiga parametrar.

Twilio 20003 — Autentiseringsfel — Inga autentiseringsuppgifter angavs (HTTP 401)

När rubriken Authorization saknas, är felaktigt formaterad eller inte skickas kan Twilio svara med:

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

Detta ska du kontrollera: Verktyget måste skicka en Authorization-rubrik vars värde är hela Basic <base64>-strängen (inklusive ordet Basic och ett enkelt mellanslag före Base64-utdata). Base64-indata måste vara exakt ACCOUNT_SID:AUTH_TOKEN utan extra mellanslag eller radbrytningar. Kontrollera att hemligheten är kopplad till den här rubriken i båda webhook-verktygen. Se 20003.

Andra problem

  • Nummer nekas i testläge: Öppna Verified phone numbers i Twilio Console och kontrollera att mottagarens nummer finns med innan du testar.
  • Agenten pratar över uppringaren: Kontrollera att Skip turn är aktiverat och att systemprompten instruerar modellen att använda skip_turn när uppringaren behöver tid.