- Bastien Vélitchkine
- Posts
- Innovie — Outbound Google Sheet
Innovie — Outbound Google Sheet
J'ai développé une solution de génération de leads dans Google Sheet. Elle est minimaliste et personnalisée.
Enjeux
Overview
Proposition de valeur :
Innovie est un cabinet de courtage en assurances sur-mesure. Leurs équipes optimisent les couvertures des entreprises de plus de 50 employés. Ils permettent ainsi à leurs clients d’économiser des sommes assez astronomiques.
Prospection :
Avant mon intervention, Innovie utilisait SocieteInfo, Dropcontact et Datagma pour trouver les DRH (contacts privilégiés) de leurs prospects, ainsi que leurs numéros de téléphone et emails.
Problèmes
L’équipe d’Innovie était déçue des données de SocieteInfo (contacts et headcount)
Elle trouvait insuffisant le volume de leads généré tous les mois
Globalement, la lead gen leur prenait trop de temps
Pour y répondre Innovie voulait :
systématiser et automatiser sa prospection outbound
augmenter le nombre de leads traités tous les mois
Objectifs
D’où les objectifs de la mission :
augmenter les taux d’enrichissement
augmenter le volume de leads générés
accélérer la génération de leads
concevoir une solution simple d’utilisation
expliquer le fonctionnement de la solution construite et comment l’utiliser au quotidien.
Structurer le projet
Un choix directeur : l’orchestrateur outbound
Augmenter le volume de leads générés, accélérer la génération de leads et augmenter les taux d’enrichissement sont des objectifs qu’on peut atteindre en choisissant le bon orchestrateur outbound.
Une multitude d’outils remplissent ce rôle : Make, n8n, Cargo, etc. Mais après avoir passé un peu de temps à étudier le fonctionnement d’Innovie, il m’a semblé que Clay remportait la palme.
Voici ce que j’imaginais :
conserver SocieteInfo comme source de données pour trouver des entreprises cibles
utiliser Clay pour trouver les DRH dans ces entreprises, à partir de leurs URLs LinkedIn
Puisqu’Innovie était déçue du nombre de contacts trouvés dans les entreprises par SocieteInfo, je pensais qu’on les chercherait plutôt sur LinkedIn grâce à Clay.
utiliser Clay pour vérifier qu’entreprises et DRH ne sont pas déjà dans le CRM (Salesforce)
utiliser Clay pour trouver les coordonnées des DRH
et, enfin, utiliser Clay pour créer les leads dans Salesforce.
Puisque nous avions besoin de l’intégration entre Clay et Salesforce, nous avons souscrit au plan Pro de Clay — certes, onéreux, mais cohérent avec les objectifs de la mission (le quatrième en particulier).
Bref, un choix important venait d’être effectué, permettant de planifier plus précisément le projet.
Roadmap
Voici comment je pensais structurer le projet :
Préparation
Nettoyer Salesforce pour s’assurer du bon dédoublonnage des leads
Configurer le processus d’assignation automatique des leads dans Salesforce
Configurer Clay et l’intégrer à Salesforce
Génération automatique de leads
Choisir un segment de leads à traiter
Utiliser ce segment pour construire le processus de génération de leads dans Clay :
dédoublonnage
recherche de contacts
enrichissement
Assurer le routage de tous les leads à contacter dans Salesforce
Onboarding
Créer un guide d’utilisation vidéo de la solution
Onboarder Innovie sur la solution en live
Il n’y avait plus qu’à dérouler.
Préparation
Nettoyage CRM
Pour le dédoublonnage, nous voulions utiliser les champs suivants : SIRET, téléphone mobile, téléphone fixe, email; sur n’importe lequel de ces objets Salesforce : lead, contact ou account.
Le problème c’est que :
nous avions plusieurs dizaine de milliers de leads périmés qui polluaient le CRM inutilement
la plupart des leads avaient un SIREN, mais pas de SIRET
les SIREN n’étaient pas toujours au même format (e.g
123456789
vs123 456 789
)les téléphones n’avaient pas tous le même format (e.g
01 23 45 67 89
vs.+33123456789
).
Ainsi, pour que le dédoublonnage fonctionne, il a fallu :
supprimer les leads périmés
standardiser le champ SIREN au format
123456789
trouver les SIREN manquants à partir des SIRET disponibles
standardiser tous les numéros de téléphone au format
+33123456789
Assignation des leads
Les leads créés devaient être assignés tantôt à Adrien (head of sales) si aucun numéro de téléphone n’avait été trouvé, ou à l’une ou l’autre des BDRs dans le cas contraire.
Plutôt que de renseigner manuellement les propriétaires des leads, nous avons préféré configurer Salesforce pour le faire automatiquement :
Adrien si aucun numéro de téléphone
sinon, BDR en round-robin (BDR 1, puis BDR 2, …, puis BDR n, puis BDR 1, etc.)
D’après Salesforce, voici comment créer une règle d’assignation et créer un round-robin.
Intégration Clay-Salesforce
J’ai vous ai dit plus haut que j’avais fait souscrire Innovie au plan Pro de Clay ?
J’ai menti 🌝
La seule justification au plan supérieur était l’intégration entre Clay et Salesforce justement. Pour ne pas faire trop dépenser trop vite à Innovie, je les ai faits souscrire au plan Explorer et j’ai développé une intégration temporaire entre Clay et Salesforce avec ma propre instance de n8n.
C’était la première fois que j’utilisais Clay, et je voulais m’assurer que c’était pertinent sur le reste du workfow. Grand bien m’a pris — on va le voir plus loin.
Je vous épargne les détails des workflows. Il y en avait deux principaux :
record lookup → pour dédoublonner les leads de Clay avec Salesforce
record creation → pour créer les leads dans Salesforce en fin d’enrichissement.
Bref, Salesforce était nettoyé et intégré à Clay. De solides bases avaient été posées pour commencer à générer les premiers leads.
Génération automatique de leads — Essai 1
Avec SocieteInfo et Clay
Vous pouvez sauter cette partie si les détails techniques ne vous intéressent pas.
J’ai pris un segment de 1000 leads sur SocieteInfo et voici ce que j’ai tenté.
Traitement des entreprises :
supprimer les colonnes inutiles
nettoyer les numéros de téléphone pour coller au format +33123456789
dédoublonner les leads avec ceux présents dans Salesforce
créer l’URL SalesNavigator de l’entreprise à partir de son ID LinkedIn (fourni par SocieteInfo) → “https://www.linkedin.com/sales/company/
linkedinId
"créer un identifiant pour l’entreprise à partir de l’URL SalesNav qu’on vient de construire et des URL LinkedIn et de site web déjà fournies par SocieteInfo
utiliser un enrichissement Clay pour trouver le headcount des entreprises
créer le champ
Keep Company
pour ne garder que les entreprises dont le headcount est entre 40 et 2000 employés, en accord avec l’ICP d’Innovie.
Traitement des contacts :
chercher les DRH des entreprises à partir de l’enrichissement Clay consacré
enrichir les contacts (toujours grâce aux enrichissements de Clay) :
téléphone avec Datagma
emails avec Datagma
emails avec Dropcontact
On n’utilise que Datagma et Dropcontact car Innovie souscrivait déjà à ces outils. Donc, en renseignant leurs clés d’API dans Clay, les enrichissement, n’auraient pas consommé de crédits Clay.
valider les emails trouvés avec ZeroBounce (enrichissement Clay à nouveau)
s’arrêter là, parce que c’est déjà un véritable fiasco 🙂
Le problème
Sur les 1000 entreprises initiales, après avoir appliqué les filtres sur le nombre d’employés et dédoublonné les leads avec Salesforce, il n’en restait plus que 114.
Cette étape est un peu particulière : certes on peut appliquer des filtres sur le nombre d’employés dans SocieteInfo, mais Innovie ne trouvait pas le filtre fiable. Il a donc fallu externaliser le filtrage.
D’où le passage de 1000 à 114 un peu drastique (mais attendu).
Ce qui l’était moins, c’est la suite…
Sur les 114 entreprises, nous n’avions que 39 leads enrichis à la fin i.e moins de 25%. Et encore, sur les 39 leads, il n’y avait pas que des DRH, mais aussi des DAF et des PDG.
En cause ? La fonctionnalité défectueuse de Clay de recherche de contacts à partir d’URL LinkedIn d’entreprises — un problème bien identifié parait-il.
Ne jetez pas le bébé avec l’eau du bain : Clay n’est pas un mauvais outil, loin de là. En revanche, il est à proscrire si on doit absolument trouver des contacts dans des entreprises à partir de leurs URLs LinkedIn.
Remise à plat
C’était le moment de tout remettre à plat avec Innovie : les données dont on a réellement besoin, vérifier que SocieteInfo est la bonne source de données, et que Clay est le bon orchestrateur.
Nous avons conclu que nous avions besoin des données suivantes :
contact
prénom
nom
titre de poste
entreprise
nom
nombre d’employés
industrie
localisation géographique
SIREN
site web
intents
Nice-to-have pour Innovie, soyons honnêtes :
prise de poste récente
levée de fonds qui date
offres d’emploi en ligne
Par ailleurs, voici quels étaient les critères dont il fallait tenir compte quant à la solution :
simplicité d’utilisation
nombre d’outils (qu’on voulait minimiser)
prix en dernier lieu
J’ai sélectionné quelques outils du marché et les ai comparés.
Le benchmark parle de lui-même : Pharow l’emporte haut la main.
C’est l’outil qui allait nous permettre d’obtenir d’emblée une liste de DRH en provenance d’entreprises correspondant aux critères d’Innovie et de supplanter SocieteInfo.
Mais il fallait encore se poser la question des bons outils pour :
dédoublonner les leads avec Salesforce (impossible avec Pharow en août 2024)
maximiser les taux d’enrichissement des coordonnées de contact
créer les leads en masse dans Salesforce
À condition de souscrire au plan Pro, nous pouvions toujours utiliser Clay mais :
j’avais perdu confiance en l’outil
Argument émotionnel, certes. J’étais pas absolument certain de vouloir poursuivre avec une solution si chère qui m’avait déjà déçu une première fois.
l’abonnement restait onéreux et nous étions encore sur l’abonnement Explorer (après une première déconvenue, je me voyais mal dire à Innovie qu’ils allaient devoir payer deux fois plus cher tous les mois avec l’abonnement Pro)
utiliser Clay n’est pas horriblement difficile, mais ce n’est pas trivial non plus — je m’en suis aperçu après cette première salve de tests.
C’est pour cette raison que j’ai décidé de revenir en terrain connu avec Google Sheet et Google Apps Script (j’avais déjà construit une espèce de Clay pour PayFit, en stage, quelques années auparavant).
Je savais qu’il n’y avait pas de vraies limites à ce que je pouvais y développer et qu’il n’y avait rien de plus simple à utiliser pour mon client qu’une Google Sheet.
Enfin, toujours dans le but de simplifier, mais aussi pour maximiser les taux d’enrichissement, j’ai suggéré de remplacer Dropcontact et Datagma par FullEnrich.
La nouvelle stack était choisie, rebelote, il n’y avait plus qu’à dérouler.
Génération automatique de leads — Essai 2
Avec Pharow et Google Sheet
Pharow est simple à prendre en main : quelques filtres, un enrichissement Dropcontact (fonctionnalité native de Pharow, sans surcoût) et on se retrouve avec ce genre de listes :
La suite devait se dérouler dans la Google Sheet.
Voici ce que je devais implémenter avec Google Apps Script (le code qui permet d’automatiser une spreadsheet — comme VBA pour Excel) :
cleaner les données de Pharow (notamment les numéros de téléphone)
dédoublonner les leads avec Salesforce
trouver les identifiants de convention collective des leads avec Pappers (donnée importante pour Innovie)
enrichir les leads de coordonnées de contact avec FullEnrich (téléphones mobiles et emails lorsque Dropcontact n’a rien trouvé dans Pharow)
créer les leads dans Salesforce
J’ai développé un MVP incluant toutes ces fonctionnalités et m’en suis servi pour générer 3000 leads pour Innovie, en préparation de la rentrée de septembre 2024.
Malheureusement, nous n’étions pas encore au bout de nos peines…
Problèmes de dédoublonnage
La douche froide : parmi les 3000 leads générés, des centaines étaient déjà présents dans Salesforce. Il a fallu tous les supprimer et parfaire le processus de déduplication.
On ne pouvait pas s’appuyer uniquement sur le SIREN, les numéros de téléphone et les emails. Il fallait également inclure les SIRET, les sites web et les noms de domaine des emails.
Bref, mea culpa.
Mais en attendant, il fallait quand même des leads pour la rentrée.
Les BDR étaient en mesure d’en traiter 70 par jour donc, quotidiennement, j’ai pris un batch de la liste des 3000 leads, et j’ai vérifié manuellement qu’ils n’étaient pas déjà présents dans Salesforce.
J’ai réimporté 2300+ leads dans Salesforce de cette manière et, en parallèle, j’ai fait la Google Sheet automatisée au niveau supérieur.
AutoSheet — Version finale
J’ai appelé AutoSheet la version finale de la Google Sheet automatisée.
Nouvelles fonctionnalités
Pour parvenir à la version finale d’AutoSheet, j’ai :
repris le processus de déduplication (évidemment)
permis à l’utilisateur de s’assurer manuellement de la présence de doublons en plus de la vérification automatique de mes automatisations (pour être absolument sûr)
permis à l’utilisateur d’enrichir les conventions collectives avec Pappers et les coordonnées de contact avec FullEnrich ou… Clay.
Innovie avait pris une souscription annuelle à Clay. Même si nous ne souhaitions plus l’utiliser, ils avaient payé assez cher un grand nombre de crédits.
J’ai donc développé une fonctionnalité supplémentaire pour leur permettre d’enrichir les coordonnées de contact et siphonner les crédits de Clay depuis la spreadsheet.
Du bricolage, certes, mais fonctionnel. Une fois tous les crédits siphonnés, ils n’auraient plus qu’à utiliser FullEnrich.
amélioré l’UI/UX de la Google Sheet en utilisant des panneaux latéraux (cf. screenshot 👆)
bloqué l’enrichissement si le nombre de crédits Pappers ou FullEnrich était insuffisant
ajouté du logging pour suivre l’avancement des automatisations
amélioré la mise en forme des colonnes de la spreadsheet (checkbox, headers, etc.)
Comment j’ai développé ces fonctionnalités
Je l’ai dit un peu plus haut : automatiser une Google Sheet se fait avec du code Google Apps Script, associé à la Google Sheet, et invisible pour mon client :
Ça ressemble à ça.
Et pour développer tous ces scripts, j’ai utilisé un outil absolument phénoménal, que je recommande à tout développeur d’essayer : Cursor.
Voici comment j’ai utilisé Cursor tout au long du projet.
Et voici le genre de suggestions que Cursor me faisait. On comprend facilement le temps que j’ai gagné.
Onboarding
Pour le bénéfice du client et une bonne adoption de la solution, il est essentiel de la documenter et de montrer en live au client comment l’utiliser (ce que je ne faisais pas auparavant — à tort).
Le guide d’utilisation final, par écrit et en vidéo.
Résultats
La roadmap duement complétée à laquelle Innovie pourra toujours se référer pour voir exactement ce que j’ai fait et à quelles dates.
Et des clients satisfaits.
Reply