Saltar al contenido

¿Cómo sincronizar HubSpot y Notion con n8n?

Si tu equipo guarda los datos del CRM en HubSpot y el contexto de los proyectos en Notion, mantener ambas herramientas sincronizadas a mano supone una pérdida constante de tiempo. Esta guía explica cómo crear en n8n flujos de trabajo automatizados que conecten las dos, de modo que las actualizaciones de los deals lleguen a Notion y las notas de las reuniones vuelvan a HubSpot sin que nadie tenga que copiar y pegar. No hace falta código personalizado: solo los nodos integrados de n8n y un poco de configuración.

Colaboración de

SaaS Hackers
Blog

Respuesta rápida: puedes sincronizar HubSpot y Notion con n8n creando flujos de trabajo automatizados que se activen con eventos del CRM (nuevo contacto, deal actualizado, cierre ganado) y escriban datos estructurados en bases de datos de Notion, y viceversa. La configuración lleva menos de una hora y no requiere código personalizado, solo los nodos nativos de n8n para HubSpot y Notion.

HubSpot guarda los datos de tu CRM. Notion guarda el pensamiento de tu equipo. Si no están conectados, tus account managers acaban copiando y pegando los detalles de los deals en las notas de las reuniones, y tu equipo de operaciones tiene que rastrear un contexto que ya existe en otro lugar.

Este tutorial te muestra paso a paso cómo crear una sincronización bidireccional entre HubSpot y Notion con n8n, que abarca los registros de cuentas y las notas. Al terminar, tendrás un flujo de trabajo operativo que mantiene ambas herramientas sincronizadas de forma automática, sin pagar por una integración nativa que apenas cubre la mitad del trabajo.

Lo que necesitas antes de empezar

Antes de crear nada, ten listas estas tres cosas:

  • Una instancia de n8n (autoalojada o n8n Cloud, ambas valen)
  • Una cuenta de HubSpot con acceso a la API habilitado (cualquier plan de pago o un sandbox de desarrollador)
  • Un espacio de trabajo de Notion con al menos una base de datos configurada para cuentas o contactos

También tendrás que crear credenciales en n8n para ambas herramientas. HubSpot usa OAuth2 o un token de aplicación privada. Notion usa un secreto de integración vinculado a un espacio de trabajo concreto.

Configurar tus credenciales de HubSpot en n8n

  1. Ve a tu cuenta de HubSpot y accede a Configuración > Integraciones > Aplicaciones privadas
  2. Crea una nueva aplicación privada y concédele permisos (scopes) para crm.objects.contacts.read, crm.objects.deals.read y crm.objects.companies.read (añade permisos de escritura si piensas devolver datos a HubSpot)
  3. Copia el token de acceso
  4. En n8n, ve a Credentials > New > HubSpot API y pega el token

Configurar tus credenciales de Notion en n8n

  1. Ve a notion.so/my-integrations y crea una nueva integración
  2. Ponle un nombre (por ejemplo, "n8n Sync") y selecciona el espacio de trabajo que quieres conectar
  3. Copia el secreto de la integración
  4. En n8n, ve a Credentials > New > Notion API y pega el secreto
  5. De vuelta en Notion, abre la base de datos que quieres sincronizar y haz clic en Compartir > Invitar a tu integración por su nombre

Flujo de trabajo 1: de HubSpot a Notion (sincronización de cuentas)

Este flujo de trabajo se activa cada vez que se crea o actualiza un registro de empresa en HubSpot y escribe los datos en una base de datos de Notion.

Paso 1: añade un nodo HubSpot Trigger

  1. Crea un nuevo flujo de trabajo en n8n
  2. Añade un nodo HubSpot Trigger como punto de partida
  3. Configura el evento como company.creation o company.propertyChange según quieras captar registros nuevos, actualizaciones o ambos
  4. Autentícate con las credenciales que configuraste antes

Si usas una instancia autoalojada sin una URL de webhook pública, utiliza en su lugar el nodo de HubSpot en modo polling y define un disparador programado (cada 15 minutos funciona bien para la mayoría de los equipos). Si estás diseñando una configuración de informes más amplia en torno a este flujo de trabajo, conviene pensar también en la atribución y el seguimiento de fuentes, sobre todo si además quieres medir el tráfico procedente de herramientas de AI junto con la actividad del CRM.

Paso 2: añade un nodo de HubSpot para obtener los datos completos de la empresa

El disparador solo transmite el ID de la empresa. Necesitas un segundo nodo para obtener el registro completo.

  1. Añade un nodo de HubSpot después del disparador
  2. Establece Resource en Company y Operation en Get
  3. Asigna el ID de la empresa a partir de la salida del disparador mediante una expresión: {{ $json.objectId }}
  4. Selecciona las propiedades que quieres: nombre de la empresa, dominio, propietario, etapa del deal, ingresos anuales y cualquier campo personalizado que use tu equipo

Paso 3: añade un nodo de Notion para crear o actualizar una página

  1. Añade un nodo de Notion
  2. Establece Resource en Database Page y Operation en Create
  3. Selecciona tu base de datos de cuentas
  4. Asigna los campos de HubSpot a las propiedades de Notion:
Campo de HubSpotPropiedad de Notion
nameName (título)
domainWebsite (URL)
hubspot_owner_idOwner (texto o relación)
annualrevenueARR (número)
hs_lastmodifieddateLast Updated (fecha)

Para las actualizaciones, y no para las creaciones, primero debes comprobar si ya existe una página. Añade un nodo de Notion adicional antes del paso de creación, configurado en Search con un filtro por el dominio o por el ID de empresa de HubSpot almacenado como propiedad de Notion. Si devuelve un resultado, cambia a una operación Update usando el ID de página devuelto.

Paso 4: añade un nodo IF para gestionar la lógica de creación y actualización

  1. Añade un nodo IF entre la búsqueda y la escritura
  2. Condición: {{ $json.results.length }} es mayor que 0
  3. Rama True: conéctala a un nodo Update de Notion
  4. Rama False: conéctala a un nodo Create de Notion

Así evitas páginas duplicadas y mantienes limpia tu base de datos de Notion.

Flujo de trabajo 2: de Notion a HubSpot (notas y resúmenes de reuniones)

Este flujo de trabajo se ejecuta cuando se añade una página nueva a una base de datos de notas de reuniones de Notion y envía una nota o una interacción al registro de empresa correspondiente en HubSpot.

Paso 1: añade un Schedule Trigger

Notion no admite webhooks salientes de forma nativa, así que n8n consulta la base de datos de forma periódica.

  1. Añade un nodo Schedule Trigger
  2. Configúralo para que se ejecute cada 10 o 15 minutos
  3. Este es tu punto de entrada

Paso 2: consulta en la base de datos de Notion si hay páginas nuevas

  1. Añade un nodo de Notion
  2. Establece Resource en Database y Operation en Get Many
  3. Selecciona tu base de datos de notas de reuniones
  4. Añade un filtro: Created Time es posterior a {{ $now.minus(15, 'minutes').toISO() }}

Así solo se obtienen las páginas creadas en los últimos 15 minutos, en línea con tu intervalo de consulta.

Paso 3: extrae el ID de empresa de HubSpot desde Notion

Para que esto funcione, tu plantilla de notas de reuniones de Notion necesita una propiedad que almacene el ID de empresa de HubSpot. Añade una propiedad de tipo Number o Text llamada "HubSpot ID" a tu plantilla de Notion y hazla parte del proceso estándar de toma de notas de tu equipo.

Asígnala en n8n: {{ $json.properties['HubSpot ID'].number }}

Paso 4: crea una interacción en HubSpot

  1. Añade un nodo HTTP Request (el nodo nativo de HubSpot no cubre todos los tipos de interacción, así que aquí se usa la API directamente)
  2. Método: POST
  3. URL: https://api.hubapi.com/engagements/v1/engagements
  4. Autenticación: Header Auth con el token de tu aplicación privada de HubSpot
  5. Cuerpo (JSON):
{
  "engagement": {
    "active": true,
    "type": "NOTE"
  },
  "associations": {
    "companyIds": ["{{ $json.properties['HubSpot ID'].number }}"]
  },
  "metadata": {
    "body": "{{ $json.properties.Name.title[0].plain_text }}\n\n{{ $json.properties.Summary.rich_text[0].plain_text }}"
  }
}

Esto crea una nota en la línea de tiempo de actividad de HubSpot, vinculada a la empresa correcta, con el título de la página y un campo de resumen tomado de Notion.

Cómo gestionar los errores y evitar sincronizaciones duplicadas

Las sincronizaciones bidireccionales fallan de formas previsibles. Así puedes evitar los problemas más habituales.

Evita los bucles infinitos: Cuando n8n escribe un registro en HubSpot, HubSpot envía un webhook de vuelta a n8n, que intenta escribir en Notion, que a su vez vuelves a consultar. Añade una propiedad de metadatos (por ejemplo, synced_by_n8n: true) a cualquier registro creado por tu flujo de trabajo y añade un nodo IF al inicio de cada flujo que omita los registros con esa marca.

Gestiona los campos vacíos con elegancia: Usa los nodos de n8n IF y Set para definir valores alternativos en cualquier propiedad opcional. Si annualrevenue es null en HubSpot, establécelo en 0 antes de pasarlo a Notion, en lugar de dejar que el flujo de trabajo falle.

Registra los fallos en una base de datos de errores de Notion: añade un flujo de trabajo de errores en n8n (Settings > Error Workflow) que escriba las ejecuciones fallidas en una página de Notion dedicada. Así tu equipo tiene visibilidad sin tener que monitorizar n8n directamente. Si esta sincronización pasa a formar parte de un motor de ingresos más amplio, quizá también necesites el apoyo de agencias de marketing ops para B2B SaaS especializadas en gobernanza de flujos de trabajo, atribución y diseño de procesos del CRM.

Cómo creamos y probamos esta configuración

Este flujo de trabajo se creó y probó en n8n Cloud (v1.x) con un sandbox de desarrollador de HubSpot y un espacio de trabajo de Notion con tres bases de datos: Accounts, Meeting Notes y Sync Errors. La sincronización bidireccional se ejecutó sin duplicados con 50 registros de prueba y devolvió correctamente 12 notas de reuniones a HubSpot como interacciones.

La configuración descrita aquí es el mismo patrón que usa SaaS Hackers al crear flujos de automatización del CRM para equipos de B2B SaaS que quieren conectar su stack de GTM sin recurrir a un middleware caro.

Preguntas frecuentes

¿n8n admite la integración nativa de HubSpot y Notion sin código personalizado?

Sí. n8n incluye nodos integrados para HubSpot y Notion. Puedes crear un flujo de sincronización operativo usando solo los editores de nodos, sin escribir código. Para los tipos de interacción avanzados de HubSpot (como las notas), puede que necesites un nodo HTTP Request que apunte directamente a la API de HubSpot, pero no hace falta ningún script personalizado.

¿Cuál es la diferencia entre una sincronización unidireccional y una bidireccional entre HubSpot y Notion?

Una sincronización unidireccional envía los datos en una sola dirección, normalmente de HubSpot a Notion. Una sincronización bidireccional lee los cambios de ambas herramientas y los escribe en la otra. El enfoque bidireccional mantiene actualizados los registros de cuentas en Notion y devuelve las notas de reuniones o las actualizaciones a la línea de tiempo de actividad de HubSpot, de modo que ambas herramientas reflejan la misma realidad.

¿Con qué frecuencia se actualiza la sincronización de HubSpot y Notion con n8n?

Depende de la configuración de tus disparadores. Los webhooks de HubSpot se activan casi en tiempo real (a los pocos segundos de un cambio en un registro). Notion, que no admite webhooks salientes, depende del polling. Un intervalo de consulta de 10 a 15 minutos es una opción práctica por defecto para la mayoría de los equipos. Si necesitas actualizaciones más rápidas de Notion a HubSpot, valora usar un formulario conectado a la API de Notion o un botón de activación manual en tu plantilla de Notion.

¿Es gratis ejecutar esta sincronización de HubSpot y Notion?

La versión autoalojada de n8n es gratuita y de código abierto. n8n Cloud tiene un plan gratuito con ejecuciones limitadas. La API de apps privadas de HubSpot está disponible en todos los planes, incluido el gratuito. La API de Notion está disponible en todos los planes. El único coste es el alojamiento de n8n si lo gestionas tú mismo, o tu suscripción a n8n Cloud si no lo haces.

¿Qué pasa si una sincronización falla a medias?

n8n registra cada ejecución con sus datos de entrada, de salida y su estado de error. Puedes revisar las ejecuciones fallidas directamente en el registro de ejecuciones. Si añades un workflow de errores que guarde los fallos en una base de datos de errores de Notion (como se describe más arriba), tu equipo podrá detectar y corregir las sincronizaciones rotas más rápido, sin tener que entrar en n8n cada vez.

Colaboración de

SaaS Hackers

Encuentra un experto en B2B SaaS

Hemos reunido un directorio de expertos y agencias de B2B SaaS que hemos evaluado y clasificado por servicio y especialidad para que los consultes.

Encuentra un experto
Ver todo