⏱ Tiempo estimado: 24 minutos
🎯 Rama / Perfil: Automatización / negocios / marketers que quieren un caso de uso desplegable a usuarios reales, no solo a un servicio interno
🧠 Conocimiento previo necesario: Despliegue de la API en Railway (clase 17 del curso). Conceptos básicos de webhooks.
💡 ¿Qué vas a lograr? Un webhook funcional que recibe mensajes de WhatsApp y responde usando Claude, probado desde tu propio celular.
🛠 Lo que necesitas antes de empezar
- Cuenta de Twilio (gratuita para el sandbox) → 🔗 twilio.com/try-twilio
- Sandbox de WhatsApp de Twilio activado → 🔗 twilio.com/docs/whatsapp/sandbox
- Python 3.10+ con FastAPI y Uvicorn:
bash
pip install fastapi uvicorn anthropic
- ngrok para exponer tu servidor local a internet → 🔗 ngrok.com
- API key de Anthropic → 🔗 console.anthropic.com
📋 Pasos
Paso 1 — Activa el Sandbox de WhatsApp de Twilio
Sigue las instrucciones oficiales para unirte al sandbox: te dan un número de Twilio y un código que debes enviar por WhatsApp desde tu celular para conectar tu número al sandbox. 🔗 Guía oficial del Sandbox de WhatsApp
Paso 2 — Crea un servidor FastAPI con un endpoint de webhook
Crea un endpoint POST /webhook que reciba el payload que Twilio envía cada vez que alguien te escribe por WhatsApp. 🔗 Documentación de FastAPI
Paso 3 — Extrae el mensaje y llama a la Claude API
Del payload de Twilio, toma el campo Body (el texto que escribió el usuario) y pásaselo a client.messages.create(...), igual que en la clase 2 del curso, pero ahora disparado por un mensaje de WhatsApp en vez de un input de terminal.
Paso 4 — Responde usando TwiML
Devuelve la respuesta de Claude envuelta en TwiML (el formato XML que espera Twilio) para que se reenvíe como un mensaje de WhatsApp de vuelta al usuario.
Paso 5 — Expón tu servidor local con ngrok
bash
ngrok http 8000
Esto te da una URL pública temporal que apunta a tu servidor local.
Paso 6 — Configura el webhook en la consola de Twilio
Pega la URL de ngrok (terminada en /webhook) en la configuración del Sandbox de WhatsApp, en el campo "WHEN A MESSAGE COMES IN".
Paso 7 — Pruébalo desde tu WhatsApp
Escríbele algo a tu número de sandbox y verifica que Claude te responde en segundos.
✅ Resultado esperado
Un número de WhatsApp (sandbox) que responde en tiempo real usando la Claude API, corriendo sobre un servidor FastAPI expuesto con ngrok — la base para, más adelante, desplegar ese mismo servidor en Railway (como en la clase 17) y usar un número de WhatsApp de producción.
🔥 Tu reto (siguiente acción)
Agrega memoria de conversación por número de teléfono: guarda el historial de cada usuario (un diccionario simple indexado por su número basta para empezar) para que el bot recuerde el contexto de mensajes anteriores, igual que el chatbot con memoria de la clase 3, pero por cada número de WhatsApp distinto.
📚 Recursos para ir más lejos
- Documentación de WhatsApp de Twilio — Referencia completa de la API de WhatsApp de Twilio.
- Documentación de FastAPI — Cómo construir endpoints y manejar payloads de formularios.
- ngrok — Cómo exponer servidores locales a internet de forma segura.
Curso de Claude API
COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE