Tutorial técnico14 mayo 2026 · 15 min lectura

Cómo construir un bot de WhatsApp con n8n, Supabase y Google Gemini

Tutorial paso a paso para implementar un asistente IA en WhatsApp usando WAHA (bridge open source sin pagar a Meta), n8n para orquestar el flujo, Supabase para persistir el historial y Google Gemini para generar respuestas en español colombiano.

Stack del proyecto

  • Bridge: WAHA (Docker)
  • Orquestador: n8n self-hosted
  • IA: Google Gemini 1.5 Flash
  • DB: Supabase PostgreSQL
  • Costo mensual: ~$0 (open source)
  • Tiempo de setup: 3–5 horas

El problema: responder WhatsApp consume 3 horas diarias

En Colombia, el 78% de los clientes prefiere contactar negocios por WhatsApp antes que por email o teléfono. El problema: atender 50–100 mensajes diarios de forma manual consume entre 2 y 4 horas del equipo, introduce errores humanos y deja clientes esperando fuera del horario laboral.

La solución obvia es la API oficial de WhatsApp Business (Meta). El problema: requiere aprobación de Meta, cuesta entre $0.06 y $0.15 USD por conversación, y en Colombia muchos negocios pequeños no cumplen los requisitos de verificación. WAHA resuelve todo esto conectándose directamente al protocolo de WhatsApp Web.

Paso 1 — Instalar WAHA con Docker

WAHA (WhatsApp HTTP API) es un proyecto open source que expone una REST API sobre WhatsApp Web. Necesitas un servidor Linux con Docker instalado — un VPS de $6/mes en DigitalOcean o un droplet en AWS Lightsail es suficiente.

# Levantar WAHA
docker run -d \
  --name waha \
  -p 3000:3000 \
  --restart unless-stopped \
  devlikeapro/waha

# Verificar que está corriendo
curl http://localhost:3000/api/health

Una vez activo, abre http://tu-servidor:3000/api/ en el navegador. Verás la interfaz Swagger. Para vincular tu número:

  1. POST /api/sessions/start con body {"name":"default"}
  2. GET /api/sessions/default/auth/qr — descarga la imagen QR
  3. Escanea el QR con tu WhatsApp (igual que en WhatsApp Web)
  4. GET /api/sessions/default — el campo status debe ser "WORKING"

Paso 2 — Configurar el webhook hacia n8n

Cada vez que alguien te envíe un mensaje, WAHA hará un POST a la URL que configures. Esta URL debe apuntar al webhook de tu workflow en n8n.

# Activar webhook en la sesión WAHA
curl -X POST http://localhost:3000/api/sessions/default/webhooks \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://tu-n8n.com/webhook/whatsapp",
    "events": ["message"],
    "retries": {"attempts": 3, "delaySeconds": 2}
  }'

El payload que WAHA envía a n8n incluye: event (siempre "message"), payload.from (número del remitente con formato 573145655236@c.us) y payload.body (texto del mensaje).

Paso 3 — Workflow en n8n: de mensaje a respuesta IA

El workflow en n8n tiene 6 nodos en secuencia. La lógica completa tarda menos de 2 segundos en ejecutarse:

01

Webhook trigger

Recibe el POST de WAHA. Filtra mensajes vacíos y mensajes enviados por el bot mismo (payload.fromMe === true).

02

Supabase — leer historial

SELECT * FROM conversaciones_wa WHERE numero = $numero ORDER BY created_at DESC LIMIT 20. Esto da a Gemini contexto de la conversación anterior.

03

HTTP Request — Google Gemini

POST a https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent con el sistema prompt + historial + mensaje nuevo.

04

Supabase — guardar mensaje del cliente

INSERT en conversaciones_wa con rol='user', el mensaje recibido y el timestamp.

05

Supabase — guardar respuesta del bot

INSERT con rol='assistant' y la respuesta generada por Gemini.

06

HTTP Request — WAHA enviar mensaje

POST a http://localhost:3000/api/sendText con chatId (el número del cliente) y el texto de respuesta.

Paso 4 — El prompt de sistema para Gemini

El prompt de sistema es lo que define cómo se comporta el bot. Debe ser específico, incluir los servicios y precios reales, y delimitar claramente qué puede y qué no puede hacer el bot.

Eres Alcabot, el asistente comercial de Alcanet, agencia digital
en Medellín, Colombia. Tu objetivo es ayudar a los clientes a
entender los servicios y agendar una consulta gratuita.

SERVICIOS:
- Páginas web: desde $800 USD (1-2 semanas)
- ERP a medida: desde $3.500 USD (8-16 semanas)
- Automatizaciones n8n: desde $500 USD (1-2 semanas)
- Bots WhatsApp: desde $400 USD (1 semana)

REGLAS:
- Responde SIEMPRE en español colombiano, informal pero profesional
- Nunca inventes precios distintos a los indicados arriba
- Si no sabes algo, di "déjame consultarlo con el equipo"
- Al detectar interés real, pide: nombre, empresa, necesidad
- Máximo 3 oraciones por respuesta

HISTORIAL DE CONVERSACIÓN:
{{historial}}

Paso 5 — Tablas en Supabase

Solo necesitas dos tablas. Supabase las crea con una sola migración SQL:

-- Historial de conversaciones
CREATE TABLE conversaciones_wa (
  id          uuid DEFAULT gen_random_uuid() PRIMARY KEY,
  numero      text NOT NULL,
  rol         text CHECK (rol IN ('user','assistant')) NOT NULL,
  mensaje     text NOT NULL,
  created_at  timestamptz DEFAULT now()
);

CREATE INDEX idx_conversaciones_numero
ON conversaciones_wa(numero, created_at DESC);

-- Leads capturados por el bot
CREATE TABLE leads_wa (
  id              uuid DEFAULT gen_random_uuid() PRIMARY KEY,
  numero          text NOT NULL,
  nombre          text,
  empresa         text,
  servicio_interes text,
  clasificacion   text CHECK (clasificacion IN ('frio','tibio','caliente')),
  created_at      timestamptz DEFAULT now()
);

El índice en conversaciones_wa es crítico para la performance: sin él, consultar las últimas 20 interacciones de un número específico haría un full table scan. Con el índice, la consulta tarda menos de 5ms incluso con millones de filas.

Resultados en implementaciones reales

73%

reducción en tiempo de respuesta

4h

ahorradas por día en atención

24/7

disponibilidad sin costo adicional

¿Quieres que implementemos esto en tu empresa?

En Alcanet lo configuramos en 1–2 semanas. Consulta gratuita, sin compromiso.

💬 Cotizar bot WhatsApp
Luis Alcalá — Fundador de Alcanet, agencia digital en Medellín

Escrito por

Luis Alcalá

Fundador & CEO — Alcanet

Desarrollador de software especializado en Next.js, automatización con n8n e IA aplicada a negocios. 6+ años construyendo webs, ERP y sistemas para PYMEs en Colombia y Latinoamérica.