WhatsApp Business → CRM

Webhook Cloud API → normalizar → upsert HubSpot/Pipedrive → Slack.
WhatsApp Cloud API → CRM con n8n: webhook Meta, normaliza mensaje y upsert Lead HubSpot/Pipedrive. JSON gratis para ventas B2B en España · Europe/Madrid.
Descarga el workflow
JSON listo para importar en n8n (Import from File). Sustituye solo REEMPLAZA_* y credenciales.
Qué resuelve este flujo WhatsApp → CRM
Un mensaje llega al WhatsApp Business de la empresa y el comercial se entera por el móvil, copia el teléfono a mano al CRM y a veces se olvida de registrar el contexto del chat. Ese hueco es donde se pierden leads calientes: el prospecto escribió a las 10:00 y la ficha aparece a las 16:00, o nunca. Este workflow de n8n cierra ese ciclo: recibe el webhook de WhatsApp Cloud API (Meta), normaliza wa_id, texto y nombre del perfil, crea o actualiza un Lead/contacto en HubSpot o Pipedrive por teléfono, responde 200 a Meta para que no reintente el evento y, si quieres, avisa en Slack en horario Europe/Madrid.
Está pensado para equipos B2B en España y la UE que ya usan (o van a usar) la Cloud API con un WABA propio o de un BSP, y que quieren que cada conversación entrante deje rastro en el CRM sin pegar datos desde el móvil. No sustituye un inbox de atención al cliente completo: su trabajo es abrir o enriquecer la ficha comercial con el primer contacto útil.
Para el marco completo de Cloud API frente a App, mapeo de campos, errores frecuentes y RGPD, lee la guía /integrar-whatsapp-business-crm-automatizacion.
Qué necesitas antes de importar
Necesitas una instancia de n8n accesible por HTTPS (Cloud o self-hosted con túnel/proxy), una app en Meta Developers con producto WhatsApp, un WhatsApp Business Account (WABA) y permiso para suscribir el campo messages. También un CRM de destino: HubSpot con Private App (scopes de contactos) o Pipedrive con token de API, y opcionalmente un Incoming Webhook de Slack para el aviso al comercial.
Prepara un verify token propio (cadena secreta que solo conocéis vosotros) y un número de prueba permitido en Meta para no disparar mensajes a clientes reales durante la puesta a punto. Guarda tokens Meta y CRM en el gestor de secretos o en credenciales de n8n, nunca pegados en el JSON exportado.
Si tu n8n está detrás de un firewall, abre solo la ruta del webhook hacia Meta y documenta la IP/URL pública. Sin HTTPS estable, la verificación del webhook en Meta fallará una y otra vez.
Cómo está construido el workflow
El lienzo empieza con una nota INSTRUCCIONES y el nodo Webhook WhatsApp (path whatsapp-cloud-inbound, responseMode por nodo de respuesta). Sigue Config WhatsApp CRM (Set) con metaVerifyToken, crmProvider, crmBaseUrl, crmToken placeholder, slackWebhookUrl y defaultPipelineStage. El Code Normalizar mensaje lee el payload Cloud API estándar, ignora statuses sin texto y deja listos teléfono, nombre y cuerpo del mensaje.
Un IF comprueba que hay teléfono usable; si no, responde sin tocar el CRM. Si sí, Upsert CRM HTTP hace la búsqueda/alta en HubSpot o Pipedrive según crmProvider. Opcionalmente Slack notifica, y el nodo Respond cierra el ciclo con 200 hacia Meta.
La zona horaria del workflow es Europe/Madrid, alineada con equipos comerciales en España. El JSON llega inactive: solo lo activas cuando Meta y el CRM ya responden bien en pruebas.
Conectar Meta: Callback URL y verify token
Importa el JSON (⋯ → Import from File), abre Webhook WhatsApp y copia la URL de producción. En Meta Developers → WhatsApp → Configuration → Webhook pega esa URL como Callback URL y el mismo valor de metaVerifyToken como Verify Token. Suscribe messages en el WABA correcto.
La verificación GET de Meta debe responder el hub.challenge; si tu instancia de n8n solo tiene el Webhook en POST, añade un nodo o ruta de verificación según la plantilla de instrucciones del sticky, o usa un proxy que responda el challenge. Sin verificación OK, Meta no entregará mensajes reales.
Cuando el webhook esté verde en Meta, envía un mensaje de prueba desde un número permitido y revisa la ejecución en n8n: deberías ver el payload en entry[].changes[].value.messages[] antes de tocar el CRM.
Conectar HubSpot o Pipedrive (upsert por teléfono)
En Config elige crmProvider = hubspot o pipedrive y apunta crmBaseUrl a la API correspondiente. Crea una credencial HTTP Header Auth / Bearer en n8n con el token real y enlázala en Upsert CRM HTTP; deja el placeholder del Set solo como recordatorio.
HubSpot: busca contacto por teléfono (o property phone) y crea/actualiza con firstname, phone y un campo de notas/última interacción con un extracto del mensaje. Pipedrive: busca person por phone y crea/actualiza; opcionalmente abre un Lead en defaultPipelineStage si tu proceso comercial lo pide.
Normaliza el teléfono (E.164 con prefijo, p. ej. +34…) antes del upsert: Meta suele enviar wa_id sin signos; si buscas con formatos distintos crearás duplicados. Prueba dos veces el mismo número: la segunda debe actualizar, no duplicar.
Probar, Slack, RGPD y puesta en producción
Haz al menos tres pruebas: (1) mensaje con texto → Lead nuevo; (2) mismo teléfono otra vez → actualización; (3) evento solo status → sin Lead vacío. Confirma respuesta 200 a Meta en todas. Si activas Slack, incluye teléfono, nombre, extracto y enlace a la ficha; limita el canal a quien vende.
RGPD: WhatsApp + CRM tratan datos de contacto. Documenta base jurídica, minimiza campos, define retención del texto del chat y quién rota tokens. No guardes el payload completo de Meta si trae metadatos innecesarios.
En Make/Zapier el equivalente es Catch Hook / Webhook Meta → Router (¿hay mensaje?) → HubSpot/Pipedrive create-or-update → Slack. El JSON de n8n te ahorra el esqueleto; tú pones credenciales y el mapeo fino. Cuando esté estable, Active el workflow y revisa la guía /integrar-whatsapp-business-crm-automatizacion ante errores de firma, duplicados o timeouts.
Importar, configurar y producción 24/7
En n8n: ⋯ → Import from File → el JSON de este recurso. El flujo llega inactive. Abre el sticky INSTRUCCIONES del lienzo y el nodo Config/Set: URLs, umbrales y placeholders. Enlaza credenciales reales (HTTP Header Auth, OAuth Google Sheets, Slack Incoming Webhook, CRM Private App) — nunca dejes tokens en el archivo versionado.
Prueba una ejecución Manual o un evento de test (formulario, webhook, cron forzado). Revisa CRM, Sheets o Slack. Solo entonces Active. Timezone del workflow: Europe/Madrid.
Para que corra solo hace falta n8n online. Self-hosted UE: VPS Hetzner/OVH/IONOS (o panel con Docker) → Ubuntu → Docker Compose (n8n + Postgres) → HTTPS con Caddy/Nginx → N8N_HOST, WEBHOOK_URL, GENERIC_TIMEZONE=Europe/Madrid, N8N_ENCRYPTION_KEY. Alternativa: n8n Cloud (importas, conectas credenciales y Active; vigila límites). Make/Zapier: mismo mapa mental; este JSON es el esqueleto n8n.
EU AI Act y RGPD: qué es y por qué tu empresa debe aplicarlo
El Reglamento (UE) 2024/1689 (EU AI Act) ya está en vigor. Si tu empresa usa n8n con nodos de IA (Gemini, OpenAI, Claude, etc.) en ventas o operaciones, actuáis como desplegadores (deployers): no hace falta ser el fabricante del modelo. Desde el 2 de febrero de 2025 el Artículo 4 exige alfabetización en IA del personal que opera estos sistemas; en agosto de 2026 se refuerza la supervisión (AESIA en España) y la trazabilidad.
En paralelo, el RGPD (AEPD) aplica porque el flujo trata datos de contacto B2B. Base jurídica, minimización y, si hay perfiles automatizados a escala, evaluación de impacto. AI Act y RGPD se acumulan: un fallo puede implicar ambas autoridades.
Este recurso ayuda en la práctica: placeholders sin secretos, Europe/Madrid, opción self-hosted en VPS UE (soberanía de datos), registro de ejecuciones en n8n (logs) y espacio para human-in-the-loop (aprobación antes de acciones sensibles). Detalle: /uso-responsable-de-ia-y-transparencia. Texto informativo, no asesoramiento legal.
Preguntas frecuentes
¿Sirve la app de WhatsApp Business del móvil o hace falta Cloud API?
Este JSON está pensado para WhatsApp Cloud API (webhook de Meta). La app móvil no expone ese webhook de forma fiable para CRM; usa Cloud API o un BSP compatible.
¿Por qué Meta no verifica mi Callback URL?
Casi siempre es HTTPS inestable, verify token distinto al de Config, o falta responder el hub.challenge en el GET de verificación. Revisa la URL de producción del Webhook y el sticky INSTRUCCIONES.
¿HubSpot o Pipedrive vienen listos sin tocar nada?
No: el nodo HTTP es una plantilla. Debes enlazar credenciales reales y ajustar URL/body al upsert por teléfono de tu CRM para no duplicar contactos.
¿Qué pasa con los eventos de solo 'status' (entregado/leído)?
El nodo Normalizar mensaje los ignora a propósito para no crear Leads vacíos. Solo avanza cuando hay un mensaje con texto (o payload útil) y teléfono.
¿Dónde está la guía larga de este recurso?
En el artículo /integrar-whatsapp-business-crm-automatizacion: Cloud API, mapeo, errores frecuentes, RGPD y checklist de puesta en marcha.