{ "hubspot" :

Enrichir HubSpot avec les données du registre néerlandais

Réponse courte

HubSpot n'a pas de champ KvK et n'enrichit pas à partir du registre du commerce néerlandais. Vous créez des propriétés personnalisées sur l'objet Entreprise et vous les remplissez depuis une action webhook de workflow, une action codée, ou une application privée à l'écoute des webhooks CRM. Nous ne proposons pas d'application HubSpot : vous appelez notre API REST depuis cet intergiciel.

API HubSpot
# réécrire l'enrichissement
PATCH "/crm/v3/objects/companies/512"

{
  "properties": {
    "name": "Acme B.V.",
    "kvk_number": "68750110",
    "sbi_code": "6201",
    "vat_valid": "true"
  }
}

Les propriétés à créer

HubSpot fournit name, domain, city et numberofemployees. Ces champs contiennent ce que les commerciaux ont saisi ou ce que HubSpot a déduit d’un domaine de messagerie. Les données du registre n’ont rien à y faire. Créez vos propres propriétés, avec une provenance claire.

PropriétéTypeProvenance dans l’API
kvk_numbertexte sur une lignekvkNumber
statutory_nametexte sur une lignestatutoryName
legal_formliste déroulantelegalForm
sbi_codetexte sur une ligneactivities[].sbiCode où isMain
vat_numbertexte sur une lignevat.number
vat_validbooléenvat.valid
company_activebooléenisActive
enriched_atsélecteur de datemoment de l’appel

enriched_at ressemble à une lourdeur inutile jusqu’au jour où quelqu’un demande l’ancienneté des données. Sans horodatage, impossible de ré-enrichir de façon ciblée : vous ré-enrichissez tout chaque mois et vous percutez votre quota.

Le point d’intégration : workflow, action codée ou application privée

L’appel peut partir de trois endroits, qui diffèrent par leur coût et par ce qu’ils savent gérer.

Workflow avec une action webhook. Inscrivez les entreprises dont kvk_number est connu et enriched_at est vide. HubSpot envoie un POST à votre endpoint, vous effectuez la recherche et réécrivez via l’API CRM. Simple, et votre logique reste dans votre propre code.

Action codée. S’exécute dans HubSpot, sans serveur à vous. Exige Operations Hub Professional et hérite des limites d’exécution de cet environnement. Convient pour une recherche par enregistrement, mais pas pour un rattrapage de masse.

Application privée sur les webhooks CRM. Abonnez-vous à company.propertyChange pour kvk_number. L’enrichissement se déclenche alors dès que le numéro change, sur n’importe quelle offre. Le contenu de la requête est un tableau d’événements :

[
  {
    "subscriptionType": "company.propertyChange",
    "objectId": 512,
    "propertyName": "kvk_number",
    "propertyValue": "68750110",
    "occurredAt": 1755820800000
  }
]

Traitez ce tableau de façon asynchrone. HubSpot regroupe les événements et attend un 2xx rapide : un gestionnaire qui reste bloqué sur notre API pendant un pic finit en délai dépassé, et HubSpot renvoie alors le même événement.

Réécrivez par lots, pas enregistrement par enregistrement :

POST /crm/v3/objects/companies/batch/update

avec au plus cent enregistrements par appel. De notre côté, cela s’associe à POST /v1/lookup/batch avec un corps { "kvkNumbers": [...], "enrich": true }. Les deux côtés restent ainsi dans leurs limites.

D’où vient la donnée d’entrée

Le numéro KvK doit entrer dans le CRM d’une manière ou d’une autre. Deux voies :

  • Votre propre formulaire, avec notre widget branché sur le champ. Le visiteur cherche par nom, choisit une entreprise, et vous transmettez le numéro KvK à l’API Forms de HubSpot.
  • La saisie manuelle par les commerciaux sur la fiche entreprise. Elle nécessite une validation ensuite, car un numéro tapé à la main est aussi fiable que n’importe quelle ressaisie manuelle.

Ce qui ne fonctionne pas : brancher le widget sur un formulaire HubSpot intégré qui s’affiche dans un iframe. Votre script ne peut pas atteindre ce champ. Vérifiez comment s’affiche votre intégration avant de promettre l’autocomplétion sur un formulaire HubSpot. Si c’est une iframe, construisez le formulaire vous-même et envoyez-le à l’API Forms.

Dans tous les cas, écrivez le numéro dans une propriété que seule votre intégration touche. Un champ modifié à la fois par les commerciaux et par une synchronisation devient une dispute sur la valeur correcte, et le registre perd toujours cette dispute face à la dernière personne qui a tapé.

Ce qui casse réellement en production

La déduplication par domaine écrase la structure de votre groupe. HubSpot utilise le domaine comme clé d’association automatique. Une holding, sa société opérationnelle et un point de vente franchisé partagent souvent le même site web. HubSpot se retrouve avec une seule entreprise là où vous avez trois numéros KvK. Faites votre propre déduplication sur kvk_number, pas sur le domaine, et acceptez d’avoir parfois deux fiches HubSpot sur le même domaine.

Le workflow se déclenche lui-même. Si vous inscrivez sur « kvk_number est connu » puis réécrivez des propriétés sur la même fiche, elle est réinscrite au changement suivant. Désactivez explicitement la réinscription et filtrez sur enriched_at is unknown.

Une entreprise renvoie 404. Les entrées radiées quittent le registre. Traitez NOT_FOUND comme une information plutôt que comme une erreur : mettez company_active à false et enriched_at à maintenant, sinon votre workflow la retente à chaque passage.

Le premier rattrapage avale votre quota mensuel. Enrichir cinq mille entreprises, c’est cinq mille recherches. Filtrez sur les enregistrements pour lesquels cela change réellement quelque chose et étalez le reste. HubSpot applique sa propre limite par tranche de dix secondes : des lots de cent enregistrements par appel respectent les limites des deux côtés.

Pour l’approche globale de l’enrichissement CRM, voir l’article complet : enrichissement des données d’entreprise dans le CRM.

Questions fréquentes

Avez-vous une application sur la place de marché HubSpot ?
Non. Nous fournissons une API REST. Vous la connectez avec une application privée ou un webhook de workflow pointant vers votre propre endpoint. C'est un petit intergiciel qui effectue la recherche et réécrit le résultat via l'API CRM.
De quelle offre HubSpot ai-je besoin ?
L'action webhook des workflows démarre à l'offre Professional, et l'action codée exige Operations Hub Professional. Sur Starter, vous écoutez les webhooks CRM depuis une application privée, ou vous lancez une synchronisation périodique qui récupère elle-même la liste des entreprises à enrichir.
Sur quel champ faut-il s'appuyer ?
Sur le numéro KvK, dans une propriété personnalisée. Pas sur le nom de l'entreprise : le nom commercial et la dénomination sociale diffèrent presque toujours, et la recherche approximative renvoie la mauvaise entreprise. Sans numéro KvK, il faut d'abord une étape de recherche.
L'enrichissement écrasera-t-il ce que les commerciaux ont saisi ?
Seulement si vous le construisez ainsi. Écrivez les données du registre dans vos propres propriétés, comme statutory_name, et laissez les champs en texte libre tranquilles. Cela permet de voir quelles valeurs viennent du registre et lesquelles ont été saisies par une personne.

Mis à jour:

Un seul appel vous donne toute l'entreprise

Les données KvK, le numéro de TVA déduit et un contrôle VIES en direct, en une seule requête. L'offre gratuite comprend 50 recherches par mois, sans carte bancaire.

50
recherches gratuites par mois
1
requête au lieu de trois
0
carte bancaire, contrat ou appel commercial