Lo que vas a construir
En esta guía construirás un chatbot de WhatsApp totalmente funcional que recibe mensajes vía webhook y responde de forma inteligente. A diferencia de los constructores de arrastrar y soltar, este enfoque te da control total sobre la lógica de conversación: conecta cualquier modelo de IA, CRM o base de datos que quieras.
Requisitos previos
Antes de empezar, necesitarás:
- Una cuenta de SocialHook con la WhatsApp Business API conectada
- Node.js 18+ y conocimientos básicos de Express
- Una URL pública para tu webhook (usa ngrok para desarrollo local)
Paso 1: configura tu servidor webhook
Primero, crea un servidor Express simple que reciba los payloads de webhook de SocialHook. Cada vez que un cliente envíe un mensaje de WhatsApp a tu número de empresa, SocialHook hará un POST con un payload JSON a este endpoint.
Paso 2: verifica las firmas del payload
Verifica siempre que las peticiones entrantes provienen realmente de SocialHook. Cada entrega incluye una cabecera X-SocialHook-Signature que contiene un hash HMAC-SHA256 del cuerpo del payload, firmado con tu clave secreta.
Rechaza cualquier petición cuya firma no coincida: esto protege tu servidor de llamadas de webhook falsificadas.
Paso 3: analiza el payload
Un payload típico de un mensaje de WhatsApp tiene este aspecto:
{"platform":"whatsapp","event":"message.received","from":"+1555001234","message":{"type":"text","body":"Hola!"}}
El campo platform siempre será whatsapp para los mensajes de WhatsApp. El campo event te indica si se trata de un nuevo mensaje o del inicio de una nueva conversación.
Paso 4: añade tu lógica de negocio
Ahora viene lo divertido. Puedes conectar cualquier servicio para responder a los mensajes. Para un bot simple basado en palabras clave, revisa message.body en busca de palabras desencadenantes. Para un bot impulsado por IA, reenvía el mensaje a la API de tu LLM preferido y devuelve la respuesta.
Paso 5: despliega y prueba
Cuando tu servidor funcione en local, despliégalo en cualquier proveedor de hosting de Node.js: Railway, Render, Fly.io o tu propio VPS. Actualiza la URL de webhook de SocialHook para que apunte a tu endpoint de producción y envía un mensaje de prueba desde WhatsApp para verificar que todo funciona de extremo a extremo.