Un lead al CRM automático es un flujo que recoge cada formulario de la web en el momento en que se envía, lo limpia, lo busca en el CRM para no duplicarlo, lo crea o actualiza con su origen (campaña, canal, página) y avisa al comercial por Slack o correo. En n8n se monta con seis nodos y tarda menos de diez segundos de punta a punta.
Es el primer flujo que montamos en casi todas las pymes, porque es el que menos herramientas conecta y el que más se nota. Sin él, el lead llega a un buzón, alguien lo copia al CRM horas después, el campo «origen» se queda vacío y el comercial se entera cuando ya ha contestado la competencia.
Este artículo es el paso a paso: qué preparar antes, qué nodo hace cada cosa, cómo guardar el origen UTM, cómo evitar duplicados, qué falla y cómo se reintenta, y lo que cuesta. Vale para HubSpot, Pipedrive y Holded; con otros CRM cambia un nodo.
¿Qué es un lead al CRM automático y por qué diez segundos?
Un lead al CRM automático es la conexión directa entre el formulario de tu web y tu CRM, sin que nadie copie nada. El formulario envía los datos a n8n en el instante del envío; n8n los normaliza, consulta el CRM, crea o actualiza el contacto y avisa a la persona que tiene que llamar. Diez segundos es lo que tarda ese recorrido cuando las API responden con normalidad.
El número importa por lo que viene después. Si el contacto está en el CRM a los diez segundos, el aviso al comercial sale a los once y el primer correo útil puede salir solo en el minuto uno; cómo hacerlo está en responder a un lead en menos de un minuto. Si el lead entra a mano por la tarde, nada de eso es posible.
Lo montamos con n8n porque se puede alojar en tu servidor, no cobra por ejecución y tiene nodos nativos para HubSpot y Pipedrive; la comparación completa está en n8n vs Make vs Zapier. Es el mismo criterio que explicamos en la guía completa de n8n para marketing: primero el flujo que más horas devuelve con menos piezas.
¿Qué hace falta antes de abrir n8n?
Antes de abrir n8n hacen falta cuatro cosas: un formulario que pueda enviar sus datos a una URL (webhook), campos ocultos para el origen, un CRM con una propiedad donde guardar ese origen y un canal donde avisar. Sin esto, el flujo funciona pero el dato llega incompleto y se pierde la mitad del valor.
El formulario es lo primero. Bricks, WPForms, Gravity Forms o Fluent Forms en WordPress, y los formularios de Shopify, pueden enviar cada envío a una URL mediante una acción o un complemento de webhook. Al formulario se le añaden cinco campos ocultos: utm_source, utm_medium, utm_campaign, pagina y referrer. Un script de diez líneas los rellena leyendo la URL cuando el visitante llega y los guarda en una cookie para que sobrevivan si navega antes de rellenar el formulario.
En el CRM se crean las propiedades que van a recibir ese dato. En HubSpot, propiedades de contacto personalizadas (origen, campaña, página de entrada); en Pipedrive, campos personalizados de persona; en Holded, campos a medida del contacto. Conviene también decidir quién recibe el aviso y por dónde: un canal de Slack para el equipo o el Gmail del comercial que toca. Si vendes a empresas industriales, el canal suele ser uno por comercial y zona; lo describimos en industria y B2B: del lead frío al CRM.
La cuarta pieza es n8n. Puede estar en la nube de n8n o en tu servidor. Es la base de la automatización con n8n para pymes que montamos, y la elección depende de si quieres pagar una cuota o mantener un servidor. Con eso hecho, el flujo se monta en una mañana.
¿Cómo se monta el flujo paso a paso en n8n?
El flujo tiene seis nodos en línea y una bifurcación: Webhook recibe el formulario, Edit Fields normaliza los datos, un IF descarta spam y envíos sin correo, el nodo del CRM busca y crea o actualiza el contacto, un segundo IF distingue contacto nuevo de existente, y Slack o Gmail avisa al comercial. Cada nodo hace una sola cosa, lo que facilita ver dónde falla.
| Paso | Nodo de n8n | Qué hace | Ajuste que importa |
|---|---|---|---|
| 1 | Webhook | Recibe el POST del formulario | Método POST, respuesta «Immediately», autenticación por cabecera con un secreto compartido |
| 2 | Edit Fields (Set) | Renombra y limpia campos: correo en minúsculas, teléfono con prefijo, origen «directo» si viene vacío | Un campo de salida por propiedad del CRM, con el mismo nombre |
| 3 | IF | Descarta si el honeypot tiene texto o si no hay correo ni teléfono | Rama «false» a un nodo Google Sheets como buzón de descartes |
| 4 | HubSpot o Pipedrive | Busca por correo; crea o actualiza el contacto con el origen | HubSpot: «Contact → Create or Update»; Pipedrive: «Person → Search» y luego «Create» |
| 5 | IF | ¿Es nuevo o ya existía? | Compara la fecha de creación con la fecha actual |
| 6 | Slack o Gmail | Avisa con nombre, empresa, origen y enlace directo a la ficha | Mensaje distinto para «nuevo» y para «ha vuelto a escribir» |
El Webhook es la puerta. Se configura con método POST, una ruta propia y respuesta inmediata, para que el formulario no espere a que termine el flujo. La URL de producción se pega en la acción de webhook del formulario; la URL de pruebas se usa solo mientras se construye. La cabecera con un secreto compartido evita que cualquiera que descubra la URL te meta contactos falsos.
Edit Fields es donde se decide cómo entra el dato en el CRM. Correo en minúsculas y sin espacios, teléfono con el prefijo +34 si no lo trae, nombre y apellidos separados si el formulario los junta, y el origen con un valor por defecto cuando las UTM vienen vacías. Aquí se gana o se pierde la calidad del CRM durante años. Si usas HubSpot y quieres que, además, el propio CRM haga cosas al crear el contacto (asignar propietario, meterlo en una lista), eso se configura con los workflows de HubSpot (en inglés) y no en n8n.
El nodo del CRM varía. Con HubSpot, la operación «Create or Update» del recurso Contact usa el correo como clave y resuelve el duplicado por ti. Con Pipedrive hacen falta dos nodos: «Person → Search» por correo y, según el resultado, «Create» o «Update»; la referencia de campos es la API de Pipedrive (en inglés). Con Holded no hay nodo nativo: se usa un nodo HTTP Request con la clave de API en la cabecera, siguiendo la API de Holded. Si además vendes online y quieres que los pedidos entren por el mismo camino, lo explicamos en conectar Shopify con HubSpot o Holded.
El aviso cierra el flujo. Un mensaje de Slack al canal del equipo o un correo al comercial, con nombre, empresa, qué pedía, de dónde viene y el enlace a la ficha del CRM. El enlace es lo que hace que el comercial actúe desde el móvil sin buscar nada. Si el contacto ya existía, el mensaje lo dice: «Marta, de Talleres X, ha vuelto a escribir; última actividad hace 40 días».
¿Cómo se guarda el origen UTM sin perderlo?
El origen se guarda leyendo las UTM de la URL en la primera visita, almacenándolas en una cookie de 30 días y volcándolas en los campos ocultos del formulario en el momento del envío. Así el CRM recibe la campaña que trajo al visitante aunque haya entrado por un anuncio, se haya ido y haya vuelto días después escribiendo la web en el navegador.
Sin la cookie, solo se registra el origen de quien rellena el formulario en la misma visita en que llegó, que es una minoría. Sin el valor por defecto, el campo se queda vacío y el informe de «de dónde vienen los leads» dice «sin datos» en la mitad de las filas. Nosotros usamos tres valores por defecto: «directo» cuando no hay UTM ni referrer, «orgánico» cuando el referrer es un buscador, y «referido» con el dominio cuando viene de otra web.
Además de las UTM, guardamos la página en la que estaba el formulario. Un lead desde la página de precios y otro desde un artículo del blog se tratan de forma distinta, y el comercial quiere saberlo antes de llamar. Son dos campos más en Edit Fields y dos propiedades más en el CRM; el coste es cero y el informe mensual mejora mucho.
¿Cómo se evitan duplicados en el CRM?
Los duplicados se evitan usando el correo como clave única, buscando siempre antes de crear y actualizando el contacto existente en vez de crear otro. HubSpot lo hace de serie con la operación «Create or Update»; en Pipedrive y Holded hay que montar la búsqueda previa en n8n. Y hay que decidir qué pasa con el origen cuando el contacto ya existía.
Esa última decisión es la que más se discute. Si Marta llegó hace un año desde Google y hoy vuelve desde una campaña de LinkedIn, ¿cuál es su origen? Nuestra regla: el origen original no se toca y se guarda el «último origen» en otra propiedad. Así el informe puede decir qué canal trae contactos nuevos y qué canal reactiva a los antiguos, que son dos preguntas distintas.
Hay dos casos que la clave por correo no resuelve. El mismo contacto con dos correos distintos (personal y de empresa) se detecta añadiendo una segunda búsqueda por teléfono normalizado, y por eso el prefijo +34 en Edit Fields importa. Y el doble clic en el botón de enviar, que manda dos POST en un segundo, se corta en el propio formulario deshabilitando el botón tras el primer envío; si llega igual, la operación «Create or Update» lo deja en un solo contacto.
¿Qué falla y cómo se reintenta?
Lo que falla casi siempre es externo al flujo: la API del CRM no responde unos segundos, el token de acceso ha caducado, el formulario cambia el nombre de un campo o llega un correo mal escrito. n8n lo cubre con tres ajustes: reintento automático en el nodo del CRM, un flujo de error que avisa a quien mantiene el sistema y un buzón donde no se pierde ningún envío.
| Fallo | Cómo se detecta | Cómo se resuelve |
|---|---|---|
| El CRM no responde o devuelve error 5xx | El nodo del CRM falla | «Retry On Fail» activado en el nodo: 3 intentos con 5 segundos de espera |
| Token de HubSpot o Pipedrive caducado | Error 401 en el nodo | Credenciales OAuth que n8n renueva solas; si es clave de API, alerta y renovación manual |
| El formulario cambia un nombre de campo | Edit Fields produce campos vacíos | Un IF que comprueba que correo o teléfono existen y manda el resto al buzón de descartes |
| Correo con errata o dominio falso | El CRM lo acepta pero rebota el primer envío | Validar formato en Edit Fields; el resto lo gestiona el correo transaccional |
| Spam del formulario | Honeypot con texto, envíos cada pocos segundos desde la misma IP | IF de descarte; si crece, reCAPTCHA o Turnstile en el formulario |
| n8n caído o en mantenimiento | El webhook no responde y el formulario recibe error | El formulario guarda el envío en su propia base de datos (WordPress lo hace) y se reprocesa a mano |
El reintento se configura en los ajustes del nodo del CRM: «Retry On Fail», tres intentos, espera de unos segundos entre ellos. Cubre los cortes breves, que son la mayoría. Para lo que no se arregla con tres intentos, en los ajustes del flujo se indica un «Error Workflow»: un segundo flujo con un nodo Error Trigger que recibe el fallo y manda un correo a quien mantiene el sistema con el nombre del flujo, el nodo que falló y los datos del lead. Ese lead no se pierde: está en el correo y se mete a mano.
El buzón es la red de seguridad barata. Un nodo Google Sheets justo después del Webhook guarda cada envío en bruto antes de que nada pueda fallar. Si un día el CRM está caído tres horas, la hoja tiene todos los leads y un flujo de una tarde los reprocesa. El tutorial oficial de n8n enseña el patrón de disparador, transformación y acción que seguimos aquí; si quieres añadir IA al flujo más adelante, el tutorial oficial de n8n (en inglés) es el punto de partida.
¿Cuánto cuesta y cuándo no compensa?
Un flujo como este cuesta desde 450 € de montaje según las herramientas que conecte, más la licencia de n8n si se usa la nube (20-60 € al mes) o nada si lo alojas tú. El CRM va aparte; HubSpot tiene plan gratuito y Pipedrive y Holded cobran por usuario. El mantenimiento es bajo: una revisión cuando cambia el formulario o el CRM.
El coste se recupera con horas. Si alguien tarda tres minutos en copiar un lead al CRM y entran veinte a la semana, son cuatro horas al mes, y eso sin contar los leads que nunca se copian ni los campos de origen que nadie rellena. Lo que no se cuenta en horas es lo otro: el comercial que llama a los once segundos en vez de al día siguiente. Para decidir a quién llama primero cuando entran muchos, el siguiente paso es el scoring de leads con IA.
Cuándo no compensa: si recibes menos de cinco leads al mes, un aviso por correo del propio formulario y copiarlos a mano te sale más barato que el flujo. Si tu CRM ya tiene una integración nativa con tu formulario que guarda el origen (HubSpot con sus propios formularios, por ejemplo), úsala y no montes nada. Y si no tienes CRM, el flujo no es el primer paso; el primer paso es elegir uno y decidir qué campos importan.
Hay más sobre esto en la sección de automatización y agentes del blog.
Preguntas frecuentes
¿Sirve este flujo si uso Zoho, Salesforce u otro CRM?
Sí. n8n tiene nodos nativos para Zoho CRM y Salesforce, y para cualquier otro con API se usa el nodo HTTP Request, como con Holded. Cambia el nodo 4 y la forma de buscar el contacto; el resto del flujo (webhook, normalización, descartes, aviso) es el mismo.
¿Qué pasa con la protección de datos?
El lead ha rellenado un formulario con casilla de consentimiento y política de privacidad, y los datos viajan de tu web a tu CRM pasando por n8n. Si n8n está en tu servidor, no sale de tu infraestructura; si está en la nube de n8n, hay que incluirlo como encargado del tratamiento en tu registro. La hoja de Google del buzón también cuenta como tratamiento y conviene vaciarla cada mes.
¿Puedo montarlo yo sin saber programar?
Sí, si tienes paciencia con el formulario y con las credenciales del CRM, que es donde se pierde el tiempo. El flujo en sí son seis nodos configurados desde la interfaz, sin código. Lo que cuesta más es decidir bien los campos, los valores por defecto y qué hacer con los contactos que ya existían; eso es criterio, no técnica.
¿Cuánto tarda en estar funcionando?
Con el formulario y el CRM preparados, el flujo se monta y se prueba en una mañana. Preparar el formulario con los campos ocultos y la cookie de UTM, crear las propiedades en el CRM y conseguir las credenciales suele llevar otro medio día. En una semana está en producción con los primeros leads reales revisados.
—
Diego lleva las automatizaciones de We Love SEO: conecta formularios, CRM, tiendas e informes con n8n, y documenta lo que falla. Más sobre él en el equipo.



