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.