Résultat
fiches communes nettoyées et enrichies
Résultat
intitulés de poste normalisés
Résultat
de couverture de toutes les communes françaises
● Contexte
Vendre aux municipalités sans savoir qui prend les décisions
Vizzia est une entreprise de sécurité municipale basée à Paris. Leur produit, la vidéosurveillance mobile pour lutter contre les dépôts sauvages, est conçu spécifiquement pour les collectivités locales françaises. Les acheteurs sont les maires, les adjoints au maire dotés de délégations environnement ou sécurité, les directeurs de cabinet et les DGS (Directeurs Généraux des Services, les plus hauts cadres administratifs qui pilotent le fonctionnement quotidien des communes).
Le problème : Vizzia n'avait quasiment aucune donnée fiable sur ces personnes.
Leur CRM HubSpot contenait des fiches mairie basiques et quelques noms de maires, mais la profondeur était loin de ce qu'exige une opération d'outbound sérieuse. Sur ~12 000 maires, seuls 1 700 avaient une adresse e-mail professionnelle, le reste étant des boîtes génériques mairie@. Numéros de téléphone directs : 130 sur l'ensemble de la base. Les adjoints au maire étaient mal documentés, sans donnée structurée sur leurs délégations spécifiques. Les équipes de cabinet et les cadres administratifs étaient quasi absents.
C'est le défi central de la vente au secteur public. Contrairement aux entreprises privées, où LinkedIn, Apollo ou ZoomInfo offrent une couverture raisonnable, les élus municipaux français vivent en dehors des bases de données B2B conventionnelles. Il n'existe pas de source de vérité unique indiquant qui détient quel mandat dans quelle commune. Et le niveau de granularité dont Vizzia avait besoin (quel adjoint au maire contrôle le budget de la gestion des déchets dans une commune précise de 15 000 habitants) n'existe tout simplement dans aucun outil sur abonnement.

Ce dont Vizzia avait besoin
- Une base complète des décideurs municipaux à travers la France, pas seulement les maires, mais les adjoints au maire avec leurs délégations spécifiques, les directeurs de cabinet, les chefs de cabinet et les DGS, avec des e-mails professionnels validés et des numéros de téléphone directs.
- Une fondation CRM propre où chaque fiche commune est enrichie d'identifiants officiels (SIRET, code INSEE, rattachement EPCI) et rapprochée des jeux de données de référence du gouvernement.
- Une méthodologie réplicable extensible à de nouveaux marchés, en commençant par les councils britanniques pour l'expansion internationale de Vizzia.
- Des données importées directement dans HubSpot, segmentées et prêtes à l'activation, pas un CSV qui prend la poussière dans un drive partagé.
Aucune base de données B2B ne couvre les élus municipaux et leurs équipes. Nous avons scrapé, enrichi et structuré l'intégralité du marché adressable de Vizzia en France et au Royaume-Uni, chaque commune, chaque maire, chaque adjoint avec sa délégation, chaque directeur de cabinet et DGS, puis importé le tout dans HubSpot, prêt à vendre.
35K fiches communes nettoyées et enrichies
4,8K intitulés de poste normalisés
98,3 % de couverture de toutes les communes françaises
● La solution Cashmyrr
Notre approche : construire le marché à partir des données publiques
Nous avons cadré cela comme un TAM Build, TAM signifiant Total Addressable Market (marché total adressable). L'objectif : définir et peupler l'univers complet des comptes et contacts auxquels Vizzia pouvait vendre, en partant de données gouvernementales brutes et en aboutissant à une base segmentée, prête pour le CRM.
La mission s'est déroulée en plusieurs phases à partir de mi-2025 : un échantillon de données initial pour valider l'approche, puis le build complet de scraping et d'enrichissement, une passe de nettoyage exhaustive du CRM, un enrichissement approfondi au niveau des contacts, une intégration des signaux d'intention Datapolitics, et une extension au marché britannique. Le tout livré via un retainer RevOps mensuel qui nous a donné la flexibilité de gérer des chantiers interconnectés sans frontières de projet artificielles.

● Étapes
Scraper chaque commune, maire, adjoint, cabinet : à travers la France et le Royaume-Uni
C'est le cœur de ce qui rend ce projet différent. Les données dont Vizzia avait besoin n'existent dans aucun outil sur étagère. Nous les avons construites de zéro.
Les 35K communes françaises. Nous avons écrit des scripts Python puisant dans cinq sources gouvernementales officielles : le COG (Code Officiel Géographique, le référentiel de l'INSEE faisant autorité sur l'ensemble des communes), geo.api.gouv.fr pour les données géographiques et administratives, l'Annuaire du Service Public pour les identifiants des mairies (SIREN, SIRET), et les jeux de données de référence des EPCI. Cela nous a donné la fondation structurelle : 35K communes, 1K EPCI (établissements publics de coopération intercommunale), 101 départements, 35K fiches mairie.
Les maires : avec des données à jour, pas d'anciens élus. Identifiés via les données électorales (les résultats des élections municipales sur data.gouv.fr) et les annuaires gouvernementaux, recoupés pour ne retenir que les mandats en cours. Chaque fiche de maire incluait le nom, la catégorie socio-professionnelle et la fonction officielle.
Les adjoints au maire : avec leurs délégations spécifiques. C'est là que la granularité devient rare. Nous n'avons pas seulement scrapé des noms, nous avons capté la délégation de chaque adjoint (environnement, sécurité, tranquillité publique, propreté urbaine, urbanisme) et ses affectations en commission. C'est le point de donnée le plus important pour l'équipe commerciale de Vizzia : il leur dit si une personne précise détient le pouvoir d'achat sur le problème que Vizzia résout. La couverture est passée de 1,3K à 1,8K affectations de délégation : 100 % des adjoints au maire de la base.
Les équipes de cabinet et de direction. Directeurs de cabinet, chefs de cabinet, DGS, DGST, la couche administrative qui gère réellement les relations fournisseurs et les processus d'achat public. Ces contacts ont été identifiés via une combinaison de recherche SERP, de scraping LinkedIn et d'extraction assistée par IA à l'aide d'agents LLM tournant sur n8n (une plateforme d'automatisation de workflows).
Les councils britanniques pour l'expansion internationale. La même méthodologie a été adaptée au marché britannique, en enrichissant les fiches des councils, en identifiant les contacts pertinents et en structurant les données pour l'expansion GTM de Vizzia. Cela a prouvé que le cadre était portable : pays différent, sources de données différentes, même approche.
Une livraison qualité d'abord, par lots. Rien n'entrait dans le CRM sans validation. Nous avons suivi un cycle structuré : lot d'échantillon initial → contrôle qualité avec l'équipe Vizzia → deuxième lot plus large → validation client → livraison finale → import dans le CRM. Dans le secteur public, se tromper sur la fonction de quelqu'un détruit la crédibilité instantanément.
L'outillage derrière tout cela : API gouvernementales, scripts Python sur mesure, scraping SERP, extraction LinkedIn, Apollo, FullEnrich, agents propulsés par LLM sur n8n, et beaucoup de contrôle qualité manuel. Aucun outil unique ne fait cela. C'est une opération de data engineering qui combine données publiques, extraction par IA et validation humaine à chaque étape.
Nettoyer 35K fiches communes au regard des données gouvernementales officielles
Parallèlement au TAM Build, nous avons mené une passe de nettoyage approfondie sur la base HubSpot existante de Vizzia. L'objectif : rendre chaque fiche digne de confiance en la validant contre les données de référence officielles.
Le problème majeur : les numéros SIRET n'étaient présents que sur 6 % des fiches Le SIRET est l'identifiant unique des entreprises françaises, sans lui, impossible de dédoublonner de façon fiable, de rapprocher avec des données tierces ou de respecter les exigences des marchés publics. Les noms de régions étaient formatés de manière incohérente. 1K fiches communes n'avaient aucun champ pays. Près de 3K fiches n'avaient aucun identifiant exploitable du tout.
Nous avons construit un pipeline Python en quatre phases : audit et déduplication, enrichissement géographique au regard du COG, contrôle de cohérence, et recherche de SIRET via l'Annuaire du Service Public. Le pipeline a appliqué ~ 12K corrections individuelles.
La transformation du SIRET : 6 % → 95,2 %. En rapprochant les fiches des annuaires officiels (d'abord par code INSEE, puis par SIREN pour les entités non communales), nous avons ajouté 33K numéros SIRET validés. Après nettoyage, la base correspondait à 98,3 % de toutes les communes françaises officielles, les manques étant presque entièrement dans les territoires d'outre-mer.
Nouveaux champs ajoutés : code, nom et type d'EPCI pour 34K communes. Scores de confiance d'enrichissement. Pistes d'audit des corrections. Tout documenté pour la maintenance continue.

Enrichir chaque contact avec e-mails, téléphones, intitulés et délégations
Une base de communes propre ne suffit pas. Les commerciaux doivent appeler ou e-mailer une personne précise. Cela nécessitait un enrichissement approfondi au niveau des contacts.
4,8K intitulés de poste normalisés et nettoyés, depuis des intitulés incohérents et auto-déclarés vers un format standardisé avec des champs distincts pour l'intitulé, la délégation et la catégorie de service.
3,5K contacts taggés par service (Élus, Sécurité, Tranquillité publique, Maire, Cabinet), permettant pour la première fois la construction de listes ciblées. Avant : le seul filtre était la taille de la population. Après : « tous les adjoints au maire dotés d'une délégation gestion des déchets dans les communes d'Île-de-France comptant entre 10 000 et 50 000 habitants ».
Les numéros de téléphone ont plus que doublé : de 1K à 2,5K. Nous avons aussi déployé un bouton d'enrichissement en un clic dans HubSpot (avec FullEnrich) pour que les commerciaux puissent déclencher un enrichissement à la demande lors de la préparation d'appels individuels.
~900 profils LinkedIn vérifiés. Faible en valeur absolue, mais significatif vu la faible pénétration de LinkedIn parmi les élus municipaux.
Connecter les signaux d'intention pour savoir quand une commune est prête
Vizzia avait contracté avec Datapolitics, un fournisseur qui utilise l'IA pour scanner la presse locale, les comptes rendus de conseils municipaux et les décisions publiques à la recherche de signaux d'achat. La pièce manquante : connecter ces signaux à HubSpot.
Nous avons construit un workflow de polling quotidien sur n8n qui récupère les nouveaux signaux depuis l'API Datapolitics, les rapproche des fiches entreprise HubSpot par code INSEE de commune, met à jour cinq propriétés dédiées sur la fiche entreprise, et crée une note horodatée préservant l'historique des signaux. Le système gère la limite de 1 000 appels API/jour de Datapolitics en interrogeant au niveau du département, avec une gestion d'erreurs routée vers des alertes Slack.
Résultat : quand une commune débat de questions de gestion des déchets en conseil municipal ou que la presse locale relaie une affaire de dépôt sauvage, les commerciaux de Vizzia le voient sur la fiche entreprise dans HubSpot, un signal pour prioriser la prise de contact.
● Résultat
Ce que Vizzia a obtenu
Un TAM municipal complet : 35K fiches communes enrichies couvrant 98,3 % de toutes les communes françaises, plus les données des councils britanniques pour l'expansion internationale.
Des données de contact profondes et spécifiques au secteur : maires, adjoints au maire avec délégations, directeurs de cabinet, intitulés normalisés, affectations de délégation, tags de service, numéros de téléphone, profils LinkedIn. Le genre de données qui n'existe dans aucune base B2B standard.
Un CRM avec des identifiants fiables : SIRET à 95,2 %
Des signaux d'intention automatisés : intégration Datapolitics → HubSpot, polling quotidien, rapprochement par code INSEE, faisant remonter les signaux d'achat sur les fiches entreprise.
Un bouton d'enrichissement en un clic dans HubSpot pour l'enrichissement de contact à la demande.
Une méthodologie portable : éprouvée sur la France, puis répliquée pour le marché britannique avec des sources de données différentes et le même cadre.
Une documentation complète dans Notion couvrant les sources de données, l'architecture du pipeline, les scripts et les procédures de maintenance.
● Tips
Des appels génériques en mairie à savoir qui contrôle le budget
Avant ce projet, la prospection de Vizzia était essentiellement aveugle. Les e-mails partaient vers des boîtes génériques. Les commerciaux n'avaient aucun moyen de savoir si un adjoint au maire responsable de la gestion des déchets existait seulement dans une commune donnée, encore moins son nom, son numéro de téléphone ou son e-mail.
Après : l'équipe commerciale opère avec une carte complète de son marché. Elle filtre par fonction, délégation, service, population, région et EPCI. Des séquences multicanales sont possibles parce que les numéros directs existent. Le message est personnalisé selon le mandat précis de chaque élu. Et les signaux d'intention signalent le bon moment pour engager.
La méthodologie a aussi passé l'échelle à l'international. Le même cadre construit pour la France a été adapté aux councils britanniques, pays différent, sources de données différentes, même approche structurée. Ce qui a démarré comme un problème de données françaises est devenu un moteur reproductible pour entrer sur de nouveaux marchés du secteur public.
● Questions fréquentes
TAM signifie Total Addressable Market (marché total adressable). Un TAM Build consiste à définir et peupler l'univers complet des entreprises et contacts auxquels une activité pourrait vendre. Les entreprises en ont besoin quand leur marché cible n'est pas couvert par les bases de données standard, typiquement des verticaux de niche comme les municipalités, ou quand elles ont besoin de points de données (comme les délégations politiques) que les outils conventionnels ne capturent pas.
On va à la source. En France, les API gouvernementales (data.gouv.fr, geo.api.gouv.fr, l'Annuaire du Service Public) fournissent des données structurées sur les communes et des identifiants. Mais aucune source unique ne donne un jeu de données complet et prêt pour la vente. Il faut les combiner, les recouper, et ajouter une couche d'enrichissement de contacts via scraping, agents IA et des outils comme Apollo et FullEnrich. C'est un projet de data engineering, pas un abonnement.
Pour Vizzia, l'échantillon initial a été livré en quelques semaines. La base complète, incluant scraping, nettoyage, enrichissement et import dans le CRM, a été construite sur environ trois à quatre mois en parallèle d'autres chantiers concurrents. Le calendrier dépend du nombre de sources de données, de la complexité de la couche contacts et des cycles de validation client.
Les données municipales évoluent à un rythme prévisible, principalement autour des cycles électoraux (tous les six ans en France) et des restructurations annuelles. Entre deux élections, la rotation sur les postes d'adjoints et de cabinet est gérable avec des passes de rafraîchissement périodiques. C'est ce que traite le composant TAM Refresh : un processus structuré pour revalider les titulaires de fonctions et mettre à jour le CRM sans tout reconstruire de zéro.
Oui, nous l'avons prouvé en étendant la méthodologie de la France au Royaume-Uni au sein de la même mission. Le cadre (sources de données gouvernementales → scraping → enrichissement → import dans le CRM) est portable. Ce qui change, ce sont les sources de données spécifiques et les structures administratives. La méthodologie reste la même.