Fusionner Automatiquement les Doublons Contacts HubSpot (Vidéo + Workflow n8n à Télécharger)
L'automatisation complète, dans ta boîte
Fusionner Automatiquement les Doublons Contacts HubSpot (Vidéo + Workflow n8n à Télécharger)
Fusionner Automatiquement les Doublons de Contacts HubSpot (CRM) (Workflow n8n Gratuit + Vidéo + Guide Téléchargeable)
Pré-requis : Définir un Critère Unique pour Identifier les Doublons de Contacts dans HubSpot
! Il te fautPré-requis : Définir un Critère Unique pour Identifier les Doublons de Contacts dans HubSpot
- A self-hosted n8n instance with terminal access.
- API credentials for the services used in this workflow.
L'automatisation complète, dans ta boîte
Détail du workflow n8n.
01 Étape 01Lancer le Workflow (Manual Trigger).
Cette première étape te permet de tester le workflow manuellement. Grâce au module Manual Trigger de n8n, tu peux lancer le scénario à la demande pour vérifier son bon fonctionnement avant de l'automatiser en production.
Le déclencheur manuel est très utile pour tester chaque étape en temps réel et diagnostiquer facilement les éventuelles erreurs. Une fois tes tests validés, tu pourras remplacer ce déclencheur par un trigger automatisé (ex : cron, webhook…) si besoin.
Pour démarrer : clique sur "Exécuter le workflow" dans n8n pour initier le traitement.
Paramètres- Type de déclencheur : Manual Trigger
- Utilisation : Lancement manuel du workflow via l’interface n8n
02 Étape 02Récupérer tous les Contacts depuis HubSpot.
Cette étape utilise le module HubSpot pour extraire l’ensemble des contacts présents dans ton CRM. L’objectif est d’obtenir une base complète pour analyser et identifier les doublons selon le critère unique défini (ex : LinkedIn Profile ID).
Nous exploitons l’option Get All avec récupération de toutes les données en une seule fois, ce qui permet de traiter la totalité des contacts automatiquement, sans limite spécifique.
Cette étape te permet de centraliser toutes les fiches contacts pour qu’elles puissent ensuite être traitées une par une dans les prochaines étapes.
Paramètres- Ressource : Contact
- Opération : Get All
- Return All : Activé (Yes)
- Propriétés récupérées : linkedin_profile_id (tu peux ajouter d'autres champs si nécessaire)
03 Étape 03Boucler sur Chaque Contact (SplitInBatches).
Cette étape utilise le module SplitInBatches pour traiter chaque contact un par un. Cela permet d’éviter de surcharger les requêtes API et de contrôler précisément le traitement de chaque contact individuellement.
Le batch est configuré avec une taille de 1, ce qui signifie que chaque exécution du workflow traite un seul contact à la fois avant de passer au suivant.
Cette structure garantit une exécution fluide et sécurisée même si tu as un grand nombre de contacts à traiter.
Paramètres- Batch Size : 1
04 Étape 04Ajouter un Délai de 1 Seconde (Rate Limiting).
Pour éviter toute surcharge API et respecter les limites imposées par HubSpot, cette étape utilise un module Wait afin d’insérer un délai de 1 seconde entre chaque traitement de contact.
Cette étape est indispensable si tu traites un volume important de contacts : elle permet d’éviter des erreurs de type "429 Too Many Requests" lors des appels consécutifs à l’API HubSpot.
Grâce à cette pause, le workflow reste stable et conforme aux bonnes pratiques API, même lorsqu’il tourne sur des centaines ou milliers de contacts.
Paramètres- Wait Time : 1 second
05 Étape 05Vérifier la Présence du LinkedIn Profile ID.
Cette étape est cruciale : elle utilise un module IF pour vérifier si le contact en cours possède bien un LinkedIn Profile ID. Ce champ est indispensable pour détecter les doublons efficacement.
Si le contact n’a pas ce champ renseigné, le workflow ignore ce contact et passe au suivant afin d’éviter des erreurs ou des recherches inutiles.
Cette étape permet de sécuriser le workflow en s’assurant que seuls les contacts éligibles (ceux avec un identifiant LinkedIn) sont analysés.
Paramètres- Condition : {{$('Loop Contacts One by One').item.json.properties.linkedin_profile_id.value}} is not empty
- Combinator : AND
06 Étape 06Rechercher les Contacts par LinkedIn Profile ID (Recherche HubSpot).
Cette étape est cruciale : elle permet d’identifier tous les contacts en doublon sur la base du LinkedIn Profile ID. Pour cela, nous utilisons le module natif HubSpot - Search qui permet de rechercher des contacts par propriété personnalisée.
Pourquoi ce choix ? Contrairement à la recherche des entreprises qui nécessitait un appel API personnalisé, ici nous pouvons utiliser directement le module natif de n8n car il prend en charge la recherche par propriété personnalisée sur les contacts.
Le module interroge l’API HubSpot via l’endpoint interne et limite la recherche à 2 résultats, ce qui suffit pour identifier un doublon.
{ "propertyName": "linkedin_profile_id|number", "value": "={{ $('Loop Contacts One by One').item.json.properties.linkedin_profile_id.value }}" }Cette requête cherche tous les contacts dont le LinkedIn Profile ID est égal à celui du contact en cours de traitement. Le retour inclut les informations clés du contact à fusionner.
Pourquoi une limite de 2 ? Cela permet de vérifier s’il existe au moins deux contacts avec le même LinkedIn Profile ID. Si c’est le cas, nous identifions un doublon et le workflow passe à l’étape suivante pour effectuer la fusion.
Paramètres- Ressource : Contact
- Operation : Search
- Limit : 2
- Filter Groups :
07 Étape 07Traiter les Résultats de la Recherche (Extraction des IDs).
Cette étape utilise un module Code pour analyser les résultats renvoyés par la recherche HubSpot. Son rôle est double : compter le nombre de résultats et extraire les IDs des contacts à fusionner.
Le code vérifie si la recherche a trouvé au moins 2 contacts. Si oui, il extrait :
- primaryObjectId : l’ID du premier contact (qui sera conservé après la fusion)
- objectIdToMerge : l’ID du deuxième contact (qui sera fusionné et supprimé)
Ce code permet également d’ajouter une vérification : si moins de 2 contacts sont trouvés, un message d’information est généré pour signaler qu’aucune fusion ne sera effectuée pour ce cycle.
Cette étape prépare toutes les données nécessaires pour l’appel API final de fusion.
Code utilisé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 } } ];
08 Étape 08Vérifier si des Doublons Existent (Résultats ≤ 1).
Cette étape utilise un module IF pour vérifier le nombre de résultats trouvés lors de la recherche des doublons. L’objectif est de savoir si au moins deux contacts existent avec le même LinkedIn Profile ID.
Si le nombre de résultats est inférieur ou égal à 1, cela signifie qu’il n’y a aucun doublon détecté, et le workflow passe directement au contact suivant sans tenter de fusionner.
Cette étape permet d’éviter des appels API inutiles lorsque les résultats de la recherche ne contiennent qu’un seul contact (ou aucun), ce qui garantit une meilleure performance et plus de sécurité.
Paramètres- Condition : {{$json.hubspotResults}} ≤ 1
- Case Sensitive : Yes
- Combinator : AND
09 Étape 09Vérifier que les IDs sont Différents (Prévention des Fusions Incorrectes).
Cette étape utilise un module IF pour s'assurer que les deux contacts à fusionner ont des IDs différents. C’est une sécurité essentielle : HubSpot refuse de fusionner un contact avec lui-même, ce qui génère une erreur si on ne le contrôle pas en amont.
Cette condition permet donc d’éviter les erreurs API inutiles en bloquant la tentative de fusion si le primaryObjectId et le objectIdToMerge sont identiques.
Cette étape permet de sécuriser totalement le processus avant l’appel API final.
Paramètres- Condition : {{$json.primaryObjectId}} ≠ {{$json.objectIdToMerge}}
- Case Sensitive : Yes
- Combinator : AND
10 Étape 10Fusionner les Contacts en Doublon (HubSpot API).
Cette dernière étape utilise un module HTTP Request pour envoyer une requête POST à l’API HubSpot afin de fusionner les deux contacts identifiés comme doublons.
L’appel API utilise l’endpoint officiel :
https://api.hubapi.com/crm/v3/objects/contacts/mergepour réaliser la fusion, avec authentification via le token HubSpot.{ "primaryObjectId": "{{ $json.primaryObjectId }}", "objectIdToMerge": "{{ $json.objectIdToMerge }}" }Cette requête fusionne le contact secondaire (objectIdToMerge) dans le contact principal (primaryObjectId). HubSpot conserve les données principales du contact primaire et archive le doublon.
Cette étape finalise l’automatisation, garantissant un CRM propre, sans doublons, et prêt à l’usage.
Paramètres- Method : POST
- URL : https://api.hubapi.com/crm/v3/objects/contacts/merge
- Headers : Content-Type: application/json + Authorization: Bearer Token
- Body :
Récupère le JSON n8n prêt à importer + le guide
Laisse ton email et on t'envoie le scénario complet.
- JSON n8n prêt à importer
- Guide de setup écrit
- Tuto vidéo inclus
Pourquoi Éliminer les Doublons Contacts HubSpot est Essentiel pour Ton CRM
Garder un CRM HubSpot propre et bien organisé est crucial pour assurer la qualité de tes données et maximiser l’efficacité de tes équipes commerciales et marketing. Les doublons de contacts créent des erreurs, faussent les rapports, et compliquent la relation client. Problèmes liés aux doublons : Données inexactes ou contradictoires dans tes pipelines. Risques de contacter plusieurs fois le même client ou prospect. Campagnes marketing moins performantes à cause des erreurs de segmentation. Perte de temps pour tes équipes qui doivent manuellement vérifier et corriger les informations. Les avantages de fusionner automatiquement les doublons sur HubSpot : Centralisation des informations clés pour chaque contact. Meilleure expérience client grâce à des données précises et à jour. Automatisation des tâches répétitives pour booster la productivité. Analyses et rapports fiables pour piloter ta stratégie commerciale. En automatisant la fusion des contacts en doublon sur HubSpot, tu garantis un CRM performant, tu gagnes du temps, et tu réduis les risques d’erreur. Cette automatisation est un véritable levier pour améliorer la gestion de ta base de données clients et optimiser la croissance de ton entreprise.
L'automatisation complète, dans ta boîte.
JSON n8n, guide écrit et tuto vidéo, tout pour déployer en moins de 15 minutes.
- Scénario n8n JSON complet
- Documentation de setup pas à pas
- Tuto vidéo complet