Módulo 6: CRM con HubSpot

Contactos

Descripción de la cápsula

El Contacto es el objeto central de HubSpot. Todo lo demás — empresas, deals, actividades — existe alrededor de personas. Un deal sin un contacto asociado es una venta sin comprador; una empresa sin contactos es un directorio vacío. Por eso empezamos aquí: dominar contactos es dominar el 50% del CRM.

Un contacto en HubSpot es, conceptualmente, lo que ya conoces: un registro en una base de datos relacional (Módulo 5). Tiene propiedades (nombre, email, teléfono, etiqueta de ciclo de vida...) y un ID estable. Si entendiste records de Airtable y páginas de Notion, los contactos de HubSpot te van a resultar familiares — con una diferencia importante que esta cápsula trata con cuidado: en HubSpot, el email tiene un rol especial, casi de clave primaria, y eso cambia cómo aplicas el patrón "buscar antes de actuar".

Esta cápsula cubre las operaciones core sobre contactos (crear, buscar, actualizar), las propiedades, y por qué los CRMs odian los duplicados más que cualquier otra herramienta que has visto.


Lo que vas a aprender

Al terminar esta cápsula serás capaz de:

  • Crear contactos (leads) desde un workflow
  • Buscar contactos por email y otras propiedades
  • Actualizar contactos existentes
  • Trabajar con las propiedades de un contacto
  • Entender el rol especial del email como identificador
  • Evitar duplicados — el pecado capital de un CRM

Las operaciones core sobre contactos

El nodo HubSpot, con Resource: Contact, ofrece:

OperaciónQué hace
Create / Create or UpdateCrear un contacto (o crear/actualizar)
GetTraer un contacto por su ID
Get ManyListar contactos
SearchBuscar contactos por propiedades
UpdateModificar un contacto existente
DeleteEliminar un contacto

Si hiciste los Módulos 1 y 5, el repertorio te suena: son las mismas operaciones de cualquier base de datos. Lo propio de HubSpot está en los detalles — y el primero es el email.


El rol especial del email

En HubSpot, el email funciona casi como una clave primaria del contacto. HubSpot lo usa para deduplicar: si intentas crear un contacto con un email que ya existe, HubSpot lo reconoce como la misma persona.

Esto es distinto de lo que viste antes. En Sheets, dos filas con el mismo email eran dos filas (tú tenías que evitar el duplicado). En HubSpot, el sistema sabe que el email identifica a la persona — y eso es a la vez una ayuda y algo que tienes que manejar bien.

Consecuencia práctica: la operación Create or Update (a veces llamada upsert) usa el email para decidir. Si el email no existe → crea el contacto. Si ya existe → actualiza ese contacto. Es el "buscar antes de actuar" del Módulo 1, pero HubSpot lo hace por ti usando el email como clave.


Crear un contacto

  • Resource: Contact
  • Operation: Create (o Create or Update)
  • Mapea las propiedades del contacto

Las propiedades más comunes de un contacto:

PropiedadQué es
emailEl email — el identificador clave
firstname / lastnameNombre y apellido
phoneTeléfono
companyNombre de la empresa (texto)
lifecyclestageLa etapa del ciclo de vida: lead, marketingqualifiedlead, customer...
hs_lead_statusEl estado del lead

Recomendación fuerte: usa Create or Update, no Create a secas. Si usas Create y el contacto ya existe (mismo email), tienes un problema — o un error, o un intento de duplicado. Create or Update resuelve esto: si existe, actualiza; si no, crea. Para el 90% de los workflows de captura de leads, es la operación correcta.


Buscar contactos

  • Operation: Search
  • Defines filtros sobre propiedades

El caso más común: buscar por email.

Propiedad: email
Operador: igual a
Valor: {{ $json.email }}

También puedes buscar por otras propiedades (estado del lead, ciclo de vida, fecha de creación) y combinar filtros. HubSpot Search es expresivo — soporta varios operadores (igual, contiene, mayor que, etc.).

Como en todos los módulos: mira el output real. Un contacto leído llega con su id y sus propiedades. Las propiedades vienen dentro de una estructura — confírmala ejecutando el nodo, no la adivines.


Actualizar un contacto

  • Operation: Update
  • Contact ID: {{ $json.id }} — el contacto a modificar
  • Mapea solo las propiedades que cambian

El Update quirúrgico de siempre: toca solo lo que mapeas. Necesita el Contact ID — obtenlo de un Search, de un Create previo, o de donde lo guardaste.

Detalle de HubSpot: muchas operaciones aceptan identificar el contacto por ID o por email. Como el email es casi una clave, a veces puedes actualizar "el contacto con este email" directamente. Pero el ID sigue siendo la forma más inequívoca — un email podría, en teoría, escribirse mal; el ID no.


Por qué los CRMs odian los duplicados

Esta es la idea que tienes que llevarte de la cápsula.

Un duplicado en una hoja de cálculo es molesto. Un duplicado en un CRM es un problema de negocio real: dos vendedores contactan a la misma persona sin saberlo, el historial de la relación se parte en dos registros, los reportes de ventas mienten, el cliente recibe comunicación contradictoria.

Por eso un CRM se diseña para evitar duplicados — y por eso HubSpot usa el email como clave. Tu trabajo al automatizar:

  1. Usa Create or Update en vez de Create para captura de leads — deja que HubSpot deduplique por email
  2. Si el flujo es más complejo, aplica el patrón explícito: Search por email → IF → Create o Update (igual que el Módulo 1, cuando "existe / no existe" dispara lógica distinta)
  3. Normaliza el email antes de usarlo como clave: minúsculas, sin espacios — ANA@correo.com y ana@correo.com deberían tratarse como la misma persona, pero un email mal normalizado puede romper la deduplicación

El email limpio y el Create or Update son tus dos defensas principales contra el caos de los duplicados.


Las propiedades: lo que define a un contacto

Las propiedades de un contacto son sus "campos" — pero HubSpot trae muchas predefinidas (decenas), y se pueden crear personalizadas. Para automatizar bien:

  • No todas las propiedades importan para tu workflow. Identifica las pocas que tu caso usa (email, nombre, estado del lead, una o dos personalizadas) y trabaja con esas.
  • Las propiedades tienen tipos — como en Airtable. Una propiedad de tipo "desplegable" (dropdown) solo acepta sus opciones definidas; una de fecha espera una fecha. Respétalos en tu mapeo.
  • lifecyclestage es especial: marca en qué punto del embudo está el contacto (lead → MQL → SQL → oportunidad → cliente). Muchos workflows de ventas lo actualizan a medida que el contacto avanza.

No intentes "dominar todas las propiedades de HubSpot" — son demasiadas. Domina las que tu workflow toca, y consulta la lista de propiedades de tu cuenta cuando necesites una nueva.


Trampas comunes

Trampa 1: Usar Create en vez de Create or Update para leads

Qué pasa: Capturas un lead con Create, ese email ya existía → error o intento de duplicado.

Cómo evitar: Para captura de leads, Create or Update casi siempre es la operación correcta — HubSpot deduplica por email.


Trampa 2: No normalizar el email

Qué pasa: ANA@correo.com y ana@correo.com se tratan como personas distintas porque el email llegó sin normalizar. Duplicado.

Cómo evitar: Normaliza el email (minúsculas, sin espacios) antes de usarlo — el diseño defensivo del Módulo 1.


Trampa 3: Mandar a una propiedad de tipo opción un valor inválido

Qué pasa: Pones lifecyclestage = "cliente potencial" pero el valor interno que HubSpot espera es lead. La propiedad lo rechaza o lo ignora.

Cómo evitar: Las propiedades tipo desplegable tienen valores internos específicos. Verifica cuál espera HubSpot (a veces difiere de la etiqueta visible) y mándalo exacto.


Trampa 4: Intentar trabajar con "todas" las propiedades

Qué pasa: Te abruma la cantidad de propiedades de HubSpot y no sabes por dónde empezar.

Cómo evitar: Tu workflow usa unas pocas propiedades. Identifícalas, trabaja con esas, ignora el resto.


Trampa 5: Apuntar a un contacto por nombre

Qué pasa: Intentas actualizar "el contacto Ana López" — pero puede haber varias, o el nombre cambió.

Cómo evitar: Apunta por Contact ID (lo más inequívoco) o por email (la clave de HubSpot). Nunca por nombre.


Ejercicio: el ciclo de un contacto

Objetivo: practicar crear, buscar y actualizar contactos sin generar duplicados.

Tu tarea

  1. Create or Update: Manual Trigger → Set (email, firstname, lastname) → HubSpot (Contact, Create or Update). Normaliza el email en el Set.
  2. Ejecútalo dos veces con el mismo email pero distinto lastname la segunda vez. Verifica en HubSpot que hay un solo contacto, con el apellido actualizado — no dos.
  3. Buscar: Manual Trigger → HubSpot (Contact, Search por email). Confirma que encuentras el contacto y observa su id y propiedades en el output.
  4. Actualizar por ID: encadena un HubSpot (Contact, Update) que use el id del search para cambiar lifecyclestage a lead.
Ver pistas
  • En el 1, el Set normaliza: email = {{ $json.email.toLowerCase().trim() }}
  • En el 2, la prueba clave del módulo: Create or Update con el mismo email no duplica — actualiza
  • En el 3, mira cómo llegan las propiedades en el output del Search antes de construir el siguiente nodo
  • En el 4, Contact ID = {{ $json.id }} del resultado del Search

Resumen y siguiente paso

  • El Contacto es el objeto central de HubSpot — todo (empresas, deals, actividades) gira alrededor de personas
  • Un contacto es un registro relacional con propiedades y un ID estable — familiar tras el Módulo 5
  • El email tiene rol de clave: HubSpot deduplica por email — distinto de Sheets, donde tú evitabas el duplicado
  • Usa Create or Update (no Create) para captura de leads — HubSpot deduplica por email automáticamente
  • Los CRMs odian los duplicados porque son un problema de negocio real — tus defensas: Create or Update + email normalizado
  • Trabaja con las pocas propiedades que tu workflow usa; respeta sus tipos (los desplegables tienen valores internos específicos)
  • 5 trampas: Create en vez de Create or Update, no normalizar el email, valor de opción inválido, querer dominar todas las propiedades, apuntar por nombre

Antes de avanzar deberías poder:

  • Crear contactos con Create or Update sin duplicar
  • Buscar y actualizar contactos
  • Explicar el rol especial del email en HubSpot

Lo que sigue (cápsula 04):

Un contacto es una persona; pero una venta es una oportunidad. La cápsula 04 cubre los deals (negocios) y los pipelines — cómo se modela una venta en curso y cómo se mueve por sus etapas. Es donde el CRM deja de ser un directorio y se vuelve una máquina de ventas.


Recursos adicionales

  1. n8n HubSpot node Docs - Operaciones de Contact.
  2. HubSpot: propiedades de contacto - Las propiedades predefinidas.
  3. HubSpot: deduplicación - Cómo HubSpot evita duplicados.

Creado: Mayo 14, 2026 Versión: 1.0