Fusiona Contactos Duplicados en HubSpot Automáticamente (Video + Workflow n8n)
La automatización completa, en tu bandeja
Fusiona Contactos Duplicados en HubSpot Automáticamente (Video + Workflow n8n)
Fusiona Automáticamente los Contactos Duplicados en HubSpot (CRM) (Workflow n8n Gratis + Video + Guía Descargable)
Requisito previo: Definir un Criterio Único para Identificar Contactos Duplicados en HubSpot
! NecesitasRequisito previo: Definir un Criterio Único para Identificar Contactos Duplicados en HubSpot
- A self-hosted n8n instance with terminal access.
- API credentials for the services used in this workflow.
La automatización completa, en tu bandeja
Detalle del workflow n8n.
01 Paso 01Iniciar el Workflow (Manual Trigger).
Este primer paso te permite probar el workflow manualmente. Gracias al módulo Manual Trigger de n8n, puedes ejecutar el escenario bajo demanda para verificar que todo funcione correctamente antes de automatizarlo en producción.
El disparador manual es muy útil para probar cada paso en tiempo real y diagnosticar errores fácilmente. Una vez que hayas validado las pruebas, puedes reemplazarlo por un disparador automatizado (por ejemplo: cron, webhook…) si lo necesitas.
Para comenzar: haz clic en "Ejecutar workflow" en n8n para iniciar el proceso.
Parámetros- Tipo de disparador: Manual Trigger
- Uso: Ejecución manual del workflow desde la interfaz de n8n
02 Paso 02Recuperar Todos los Contactos desde HubSpot.
Este paso utiliza el módulo HubSpot para extraer todos los contactos almacenados en tu CRM. El objetivo es obtener una base completa para analizar e identificar duplicados según el criterio único definido (por ejemplo: LinkedIn Profile ID).
Usamos la opción Get All para recuperar todos los datos en una sola vez, lo que permite procesar automáticamente todos los contactos sin limitaciones específicas.
Este paso te permite centralizar todos los registros de contacto para que puedan ser procesados uno por uno en los siguientes pasos.
Parámetros- Recurso: Contact
- Operación: Get All
- Return All: Activado (Yes)
- Propiedades recuperadas: linkedin_profile_id (puedes añadir otros campos si lo necesitas)
03 Paso 03Iterar sobre Cada Contacto (SplitInBatches).
Este paso utiliza el módulo SplitInBatches para procesar cada contacto uno por uno. Esto evita sobrecargar las solicitudes a la API y permite un control preciso sobre el tratamiento individual de cada contacto.
El batch está configurado con un tamaño de 1, lo que significa que cada ejecución del workflow procesa un solo contacto antes de pasar al siguiente.
Esta estructura garantiza una ejecución fluida y segura incluso si tienes una gran cantidad de contactos que procesar.
Parámetros- Batch Size: 1
04 Paso 04Añadir un Retardo de 1 Segundo (Limitación de Tasa).
Para evitar sobrecargar la API y respetar los límites establecidos por HubSpot, este paso utiliza un módulo Wait para insertar un retardo de 1 segundo entre cada procesamiento de contacto.
Este paso es esencial si estás manejando un volumen alto de contactos: permite evitar errores como "429 Too Many Requests" al hacer llamadas consecutivas a la API de HubSpot.
Gracias a esta pausa, el workflow se mantiene estable y conforme a las buenas prácticas de uso de la API, incluso cuando se ejecuta con cientos o miles de contactos.
Parámetros- Wait Time: 1 segundo
05 Paso 05Verificar la Presencia del LinkedIn Profile ID.
Este paso es crucial: utiliza un módulo IF para verificar si el contacto actual tiene un LinkedIn Profile ID. Este campo es indispensable para detectar duplicados de manera efectiva.
Si el contacto no tiene este campo completado, el workflow omite ese contacto y pasa al siguiente para evitar errores o búsquedas innecesarias.
Este paso ayuda a asegurar el workflow verificando que solo se analicen los contactos elegibles (es decir, aquellos con un ID de LinkedIn).
Parámetros- Condición: {{$('Loop Contacts One by One').item.json.properties.linkedin_profile_id.value}} is not empty
- Combinador: AND
06 Paso 06Buscar Contactos por LinkedIn Profile ID (Búsqueda en HubSpot).
Este paso es fundamental: permite identificar todos los contactos duplicados basándose en el LinkedIn Profile ID. Para ello, usamos el módulo nativo HubSpot - Search, que permite buscar contactos por una propiedad personalizada.
¿Por qué esta opción? A diferencia de la búsqueda de empresas, que requiere una llamada personalizada a la API, aquí podemos utilizar directamente el módulo nativo de n8n porque admite búsquedas por propiedades personalizadas en los contactos.
El módulo consulta la API de HubSpot mediante un endpoint interno y limita la búsqueda a 2 resultados, lo cual es suficiente para identificar un duplicado.
{ "propertyName": "linkedin_profile_id|number", "value": "={{ $('Loop Contacts One by One').item.json.properties.linkedin_profile_id.value }}" }Esta consulta busca todos los contactos cuyo LinkedIn Profile ID coincida con el del contacto que se está procesando. La respuesta incluye la información clave del contacto que se va a fusionar.
¿Por qué un límite de 2? Esto permite comprobar si existen al menos dos contactos con el mismo LinkedIn Profile ID. Si es así, se detecta un duplicado y el workflow pasa al siguiente paso para realizar la fusión.
Parámetros- Recurso: Contact
- Operación: Search
- Límite: 2
- Filter Groups:
07 Paso 07Procesar los Resultados de la Búsqueda (Extracción de IDs).
Este paso utiliza un módulo Code para analizar los resultados devueltos por la búsqueda de HubSpot. Su función es doble: contar el número de resultados y extraer los ID de los contactos que se deben fusionar.
El código comprueba si la búsqueda ha encontrado al menos 2 contactos. Si es así, extrae:
- primaryObjectId: el ID del primer contacto (que se conservará tras la fusión)
- objectIdToMerge: el ID del segundo contacto (que será fusionado y eliminado)
➡️ Código utilizado:
const items = $input.all(); if (items.length < 2) { return [ { json: { hubspotResults: items.length, message: 'Not enough contacts to merge' } } ]; } const primary = items[0]; const secondary = items[1]; return [ { json: { hubspotResults: items.length, primaryObjectId: primary.json.id, objectIdToMerge: secondary.json.id } } ];Este código también permite añadir una verificación: si se encuentran menos de 2 contactos, se genera un mensaje informativo para indicar que no se realizará ninguna fusión en ese ciclo.
Este paso prepara todos los datos necesarios para la llamada final a la API de fusión.

08 Paso 08Verificar si Existen Duplicados (Resultados ≤ 1).
Este paso utiliza un módulo IF para comprobar el número de resultados encontrados durante la búsqueda de duplicados. El objetivo es verificar si existen al menos dos contactos con el mismo LinkedIn Profile ID.
Si el número de resultados es menor o igual a 1, significa que no se ha detectado ningún duplicado, y el workflow pasa directamente al siguiente contacto sin intentar fusionar.
Este paso permite evitar llamadas innecesarias a la API cuando la búsqueda solo devuelve un contacto (o ninguno), lo que garantiza un mejor rendimiento y mayor seguridad.
Parámetros- Condición: {{$json.hubspotResults}} ≤ 1
- Sensible a mayúsculas: Yes
- Combinador: AND
09 Paso 09Verificar que los ID sean Diferentes (Prevención de Fusiones Incorrectas).
Este paso utiliza un módulo IF para asegurarse de que los dos contactos a fusionar tengan ID diferentes. Es una medida de seguridad esencial: HubSpot no permite fusionar un contacto consigo mismo, lo que generaría un error si no se controla previamente.
Esta condición evita errores innecesarios en la API al bloquear el intento de fusión si primaryObjectId y objectIdToMerge son iguales.
Este paso permite asegurar completamente el proceso antes de realizar la llamada final a la API.
Parámetros- Condición: {{$json.primaryObjectId}} ≠ {{$json.objectIdToMerge}}
- Sensible a mayúsculas: Yes
- Combinador: AND
10 Paso 10Fusionar los Contactos Duplicados (API de HubSpot).
Este último paso utiliza un módulo HTTP Request para enviar una solicitud POST a la API de HubSpot con el fin de fusionar los dos contactos identificados como duplicados.
La llamada a la API utiliza el endpoint oficial:
https://api.hubapi.com/crm/v3/objects/contacts/mergepara realizar la fusión, con autenticación mediante el token de HubSpot.{ "primaryObjectId": "{{ $json.primaryObjectId }}", "objectIdToMerge": "{{ $json.objectIdToMerge }}" }Esta solicitud fusiona el contacto secundario (
objectIdToMerge) dentro del contacto principal (primaryObjectId). HubSpot conserva los datos del contacto principal y archiva el duplicado.Este paso finaliza la automatización, garantizando un CRM limpio, sin duplicados y listo para ser utilizado.
Parámetros- Método: POST
- URL: https://api.hubapi.com/crm/v3/objects/contacts/merge
- Headers: Content-Type: application/json + Authorization: Bearer Token
- Body:
Consigue el JSON n8n listo para importar + la guía
Deja tu email y te enviamos el escenario completo.
- JSON n8n listo para importar
- Guía de setup escrita
- Tutorial en video incluido
Por Qué Eliminar los Contactos Duplicados en HubSpot es Clave para tu CRM
Mantener un CRM de HubSpot limpio y bien organizado es fundamental para garantizar la calidad de tus datos y maximizar la eficiencia de tus equipos de ventas y marketing. Los contactos duplicados generan errores, distorsionan los informes y complican la relación con los clientes. Problemas causados por los duplicados: Datos inexactos o contradictorios en tus pipelines. Riesgo de contactar varias veces al mismo cliente o prospecto. Campañas de marketing menos efectivas debido a errores de segmentación. Pérdida de tiempo para tus equipos que deben revisar y corregir la información manualmente. Ventajas de fusionar automáticamente los duplicados en HubSpot: Centralización de la información clave de cada contacto. Mejor experiencia del cliente gracias a datos precisos y actualizados. Automatización de tareas repetitivas para aumentar la productividad. Informes y análisis fiables para dirigir tu estrategia comercial. Al automatizar la fusión de contactos duplicados en HubSpot, garantizas un CRM eficiente, ahorras tiempo y reduces el riesgo de errores. Esta automatización es una palanca real para mejorar la gestión de tu base de datos de clientes y optimizar el crecimiento de tu empresa.
La automatización completa, en tu bandeja.
JSON n8n, guía escrita y tutorial en video, todo para desplegar en menos de 15 minutos.
- Escenario n8n JSON completo
- Documentación de setup paso a paso
- Tutorial en video completo