Verificación OTP por SMS
Verificación OTP por SMS
Envía y verifica códigos de un solo uso por SMS durante una conversación con un agente mediante Twilio Verify.

Resumen
Esta guía te muestra cómo integrar Twilio Verify con tu agente de ElevenLabs para que puedas enviar un OTP al número de teléfono de quien llama y verificar el código que te proporciona durante una conversación de voz en directo.
Aprenderás a:
- Crear un servicio de Twilio Verify y codificar tus credenciales en Base64 para la autenticación.
- Configurar dos herramientas de webhook (
send_SMS_verificationycheck_SMS_verification) en el panel, con la CLI de Agents o mediante la API de ElevenLabs. - Autenticar ambas llamadas de webhook con una cabecera
Authorizationque incluya un valor secreto. - Habilitar la herramienta del sistema
skip_turnpara que el agente espere cuando quien llama aún no haya recibido el código.
Requisitos previos
- Una cuenta de Twilio con Twilio Verify activado. Si Verify no está disponible en tu consola de Twilio, solicita acceso a través del soporte de Twilio o de tu equipo de cuenta de Twilio.
- Si tu cuenta de Twilio está en modo de prueba, el número de teléfono de destino debe ser un identificador de llamada verificado en Twilio.
Crea un servicio Authenticate (Verify)
En la barra lateral izquierda, elige Add + y crea un servicio Authenticate (Verify).
Copia el SID del servicio Verify
Abre la página de Settings del servicio y copia el Verify Service SID. Empieza por VA y es distinto de tu Account SID.
Error habitual: utiliza el Verify Service SID (VA...) del servicio Authenticate (Verify) en las URL de herramientas que aparecen a continuación. No incluyas tu Account SID (AC...) en la ruta. La API de Verify espera el SID del servicio en la URL; usar el Account SID genera errores de parámetro no válido 4xx.
Puedes usar el explorador de API de Twilio en la consola para probar las solicitudes antes de vincularlas a tu agente.
Codifica las credenciales y configura las herramientas webhook
Codifica tus credenciales de Twilio para la autenticación Basic
Twilio Verify utiliza autenticación HTTP Basic con tu Account SID como nombre de usuario y tu Auth Token como contraseña. Encontrarás ambos en Account Info, en la página de inicio de la consola de Twilio.
En tu terminal, codifica en Base64 ACCOUNT_SID:AUTH_TOKEN (separados por dos puntos, sin espacios):
Copia el resultado. El valor completo de la cabecera Authorization es la palabra Basic, un solo espacio y esa cadena Base64. Guárdalo como secreto de herramienta en los siguientes pasos.
Configura las herramientas send_SMS_verification y check_SMS_verification
send_SMS_verification llama a Twilio Verify para enviar una OTP por SMS. check_SMS_verification envía los dígitos que dice la persona que llama. Ambas requieren el mismo Verify Service SID y el mismo secreto de Authorization.
Añadir desde el panel
Añadir desde la CLI
Añadir mediante la API
send_SMS_verification

En la sección Agent de los ajustes de tu agente, elige Add Tool y selecciona Webhook.
Sustituye YOUR_VERIFY_SERVICE_SID por el SID VA... del primer paso.
Cabecera de autenticación: en Headers, añade Authorization como tipo Secret y pega el valor completo (Basic más Base64). Consulta Herramientas webhook.
Parámetros del cuerpo: establece Content type en URL-encoded (application/x-www-form-urlencoded). Añade parámetros con LLM Prompt como tipo de valor:
check_SMS_verification
Añade una segunda herramienta webhook:
Utiliza el mismo Verify Service SID y el mismo secreto de Authorization que para send_SMS_verification.
Parámetros del cuerpo: URL-encoded. Añade To (E.164) y Code (dígitos de la OTP) con LLM Prompt.
Si configuras Channel como un campo rellenado por el LLM en el panel, añade instrucciones en tu prompt de sistema para que el modelo siempre pase sms. Los ejemplos de CLI y API anteriores fijan sms con constant_value / constantValue, por lo que el modelo no elige el canal.
Activa la herramienta de sistema skip_turn
Las personas que llaman suelen necesitar un momento para recibir el SMS antes de poder leer el código. Sin skip_turn, el agente podría hablar durante la pausa o repetir indicaciones.
Añadir desde el panel
Añadir desde la CLI
Añadir mediante la API
En Tools, elige Add Tool, selecciona System tool y activa Skip turn. No necesitas realizar más configuraciones.
Añade indicaciones al prompt de sistema para que el modelo sepa cuándo llamarla; por ejemplo:
Consulta Skip turn para obtener más información.
Resolución de problemas
Twilio 60200 — Parámetro no válido (HTTP 400)
Twilio puede devolver un cuerpo como este cuando la URL o el cuerpo de la solicitud no coinciden con lo que espera la API Verify:
Qué revisar: La ruta debe usar el SID del servicio Verify (VA...) de la configuración del servicio Authenticate (Verify). Incluir tu SID de cuenta (AC...) en .../Services/{Sid}/... es una causa habitual del error 60200. Consulta la documentación de Twilio sobre 60200 para ver otros casos de parámetros no válidos.
Twilio 20003 — Error de autenticación — No se proporcionaron credenciales (HTTP 401)
Cuando falta el encabezado Authorization, tiene un formato incorrecto o no se envía, Twilio puede responder con:
Qué revisar: La herramienta debe enviar un encabezado Authorization cuyo valor sea la cadena completa Basic <base64> (incluida la palabra Basic y un único espacio antes de la salida Base64). La entrada de Base64 debe ser exactamente ACCOUNT_SID:AUTH_TOKEN, sin espacios ni saltos de línea adicionales. Confirma que el secreto esté asociado a este encabezado en ambas herramientas de webhook. Consulta 20003.
Otros problemas
- Número rechazado en modo de prueba: En la consola de Twilio, abre Números de teléfono verificados y asegúrate de que el número de destino aparezca en la lista antes de hacer la prueba.
- El agente habla encima de la persona que llama: Confirma que Omitir turno esté activado y que el prompt del sistema indique al modelo que use
skip_turncuando la persona que llama necesite tiempo.