Automatiser sa prospection avec n8n : notre architecture.
Notre architecture de prospection sous n8n en production : 1 729 offres d'emploi détectées en un mois, 9 rendez-vous tenus, et les pannes qui nous ont coûté des lots.
- Offres d'emploi détectées1 729
- Entreprises uniques enrichies493
- Emails de décideurs vérifiés359
- Décideurs contactés157
- Rendez-vous tenus9
Parts calculées par rapport aux offres détectées, relevé de la base de suivi du compte.
Ce que le pipeline fait, dans l'ordre.
Une automatisation de prospection sous n8n comprend huit étapes qui s'enchaînent sans intervention humaine, de 2 heures du matin jusqu'à l'envoi du lendemain.
Un cron nocturne déclenche le scraper. Sur le compte Truckrs, entreprise de recrutement dans le transport routier, il interroge Indeed sur vingt-deux intitulés de poste et compare chaque résultat à l'existant via son URL. Seules les nouvelles lignes passent à l'étape suivante. Un modèle lit ensuite chaque fiche et rend un verdict binaire : retenu ou rejeté, avec le nom du signal détecté. Les offres retenues passent dans la cascade d'enrichissement, qui recherche l'email d'un décideur, le vérifie, puis passe à un autre candidat si le verdict de vérification est insuffisant.
Vient ensuite la rédaction. Un modèle rapide génère l'objet, un modèle intermédiaire adapte deux ou trois blocs du corps, le reste du message est recopié mot à mot. Le message est envoyé depuis une boîte sélectionnée dans une rotation, avec une pause aléatoire de 150 à 180 secondes entre chaque envoi. Un second workflow relit la base quotidiennement et déclenche les relances. Les réponses entrantes sont classées, et toute réponse interrompt immédiatement la séquence.
Ce que deux comptes ont produit en un mois.
Sur Truckrs, sur un mois jusqu'au 31 août 2026, le pipeline a détecté 1 729 offres d'emploi de conducteur, enrichi 493 entreprises uniques, vérifié 359 emails de décideurs, contacté 157 décideurs et abouti à 9 rendez-vous tenus, soit 5,7 % de rendez-vous sur les personnes contactées. Le canal utilisé était exclusivement le cold email, depuis le domaine du client.
Sur BSA, axe repreneurs d'entreprise, du 24 juillet au 29 août 2026 : 933 profils LinkedIn lus un par un par le modèle, 560 emails de décideurs vérifiés, 560 décideurs contactés, 457 relancés. Quatorze réponses humaines intéressées, comptées manuellement dans les boîtes d'envoi, soit 2,5 % des personnes contactées. Huit rendez-vous tenus, soit 1,4 %.
Un détail concernant ces 8 rendez-vous mérite d'être souligné : 3 d'entre eux font suite à une réponse par email, et 5 ont été pris directement sur Calendly, sans réponse préalable. Un système qui ne prend en compte que les réponses passe donc à côté de la majorité de ses rendez-vous.
Le cron de nuit qui détecte les signaux.
Le signal exploité sur Truckrs est l'offre d'emploi publiée : une entreprise qui recrute un conducteur présente un besoin actif et daté.
Le scraper Apify misceres/indeed-scraper est facturé à partir de 3,00 $ pour 1 000 offres.
Sur le lot BSA, le signal est un profil LinkedIn dont le parcours suggère un projet de reprise, ramené par harvestapi/linkedin-profile-search en mode Full, facturé à 0,10 $ par page de 25 résultats, plus 0,004 $ par profil détaillé.
Toute la robustesse de cette étape repose sur la clé de déduplication. Observez la ligne du Set : c'est elle qui empêche de repayer un enrichissement déjà effectué et de recontacter une entreprise contactée trois semaines plus tôt.
// Nœud Code exécuté juste après le scraper de nuit.
// La clé de déduplication est l'URL de l'offre, stable dans le temps.
const connues = new Set(dejaEnBase.map(o => o.url));
const nouvelles = duScraper
.filter(o => o.url && !connues.has(o.url))
.map(o => ({
url: o.url,
intitule: o.positionName,
societe: o.company,
detecte_le: new Date().toISOString(),
statut: 'a_qualifier' // seul statut qui autorise la suite
}));
// Les lots partent ensuite par paquets vers la qualification.
return nouvelles.map(json => ({ json }));
Le simulateur
Quels signaux d'achat déclencheraient votre propre pipeline ?
À partir de vos sources
La qualification rend un verdict binaire.
Sur BSA, la difficulté réside dans l'absence de filtre booléen permettant d'identifier une personne cherchant à reprendre une entreprise.
Un mot-clé permet de retrouver tous ceux qui parlent de reprise, y compris ceux qui la vendent. Le modèle lit donc chaque profil dans son intégralité et prend une décision.
Ce poste utilise Claude Haiku 4.5, avec une sortie JSON stricte, une température à 0, un plafond de tokens serré, et l'identifiant, recopié caractère par caractère, comme clé de jointure.
Le prompt ressemble davantage à une grille de notation qu'à une consigne. Chaque signal est nommé et jugé suffisant ou non à lui seul.
Une transition professionnelle n'est prise en compte que si la personne a déjà dirigé avec responsabilité sur le compte de résultat, sinon le pipeline se remplit de consultants sans projet.
Les exclusions priment sur tous les signaux, et la principale écarte les prestataires du marché de la reprise, reconnaissables à une formulation orientée client.
En cas de doute, le verdict est un rejet.
L'enrichissement en cascade et ses deux taux.
La cascade compte six niveaux. Recherche de contact chez le fournisseur, filtrée par le domaine du site. Classement des candidats par le modèle, qui désigne le premier à tester. Vérification, avec seulement deux verdicts acceptés. Si le verdict est insuffisant, le candidat est retiré de la liste et la séquence passe au suivant. Si la liste est épuisée, on lit la page d'accueil puis la page contact, et l'email public récupéré est marqué comme générique. En dernier recours, on consulte la fiche Google Maps. Un contact non vérifié n'est pas contacté.
Les taux relevés au 31 août 2026 diffèrent nettement selon le lot : 79,3 % sur le lot alumni de BSA, soit 1 284 emails pour 1 619 profils enrichis, et 60,0 % sur le lot repreneurs, soit 560 emails pour 933 profils. FullEnrich annonce publiquement environ 84 % sur l'email en zone EMEA. Nous n'avons pas mesuré la cause de l'écart entre nos deux lots.
Ce que montre l'extrait, c'est le point de rejeu : la cascade doit pouvoir revenir en arrière sans relancer l'intégralité du workflow.
// Sortie du vérificateur d'email, avant écriture en base.
const ACCEPTES = ['DELIVERABLE', 'HIGH_PROBABILITY'];
if (ACCEPTES.includes(verdict.status)) {
return { email: verdict.email, source: 'fournisseur', verifie: true };
}
// Verdict insuffisant : le candidat sort de la liste, on rejoue.
candidats.shift();
if (candidats.length > 0) return { rejouer: true, candidats };
// Liste épuisée : accueil du site, puis page contact.
return { fallback: 'https://exemple.fr', generique: true };
La rédaction remplit des trous numérotés.
Le corps du message est découpé en blocs numérotés. Deux ou trois d'entre eux sont adaptés au prospect, les autres sont recopiés mot à mot, balises incluses.
Chaque bloc adaptable porte sa propre règle : ce qu'il faut retirer d'un intitulé de poste, quelle casse appliquer, quels sigles restent en majuscules.
L'objet et le corps sont produits par deux appels distincts, avec deux modèles de taille différente. Un modèle rapide et peu coûteux pour l'objet, un modèle intermédiaire pour le corps, un modèle de raisonnement pour le verdict de qualification en amont. Trois étapes, trois niveaux de coût.
Une règle de repli couvre le cas où le contact n'est pas nominatif : on s'adresse alors à l'entreprise, avec une interdiction explicite d'inventer un nom de personne. Le lien de désabonnement est clairement indiqué dans la signature.
L'envoi, la rotation des boîtes, la délivrabilité.
Trois boîtes sont utilisées par domaine, avec un nombre de domaines libre.
Un domaine neuf est chauffé pendant 2 à 3 semaines avec Smartlead, à 30 € par mois pendant un mois.
Sur le domaine principal d'une entreprise déjà en activité, cette étape n'est pas nécessaire.
Le volume démarre à 5 emails par boîte et par jour, puis atteint 20 à 25 en régime établi.
En production, la rotation prend deux formes selon le compte : 4 boîtes pour 20 envois par jour sur l'un, et 7 boîtes pour 5 salves de 14 envois sur l'autre.
Entre deux envois, une pause aléatoire de 150 à 180 secondes est appliquée. Le score mail-tester relevé est de 9 ou 10 sur 10, et zéro passage en spam a été constaté à ce jour.
Cette contrainte de débit détermine tout le dimensionnement en aval. Avec 20 envois par boîte et par jour, 21 jours ouvrés et 2 emails par prospect en comptant la relance, une boîte peut gérer 210 prospects par mois.
Les relances et le compteur relu en base.
| Compte | Cadence | Nombre maximum |
|---|---|---|
| Truckrs | J+7 après le premier email, puis J+5 | 2 |
| BSA | J+5 | 1 |
| Formation | J+7 | 1 |
Quatre garde-fous sont communs à tous les comptes. La séquence s'interrompt dès qu'une réponse ou un rendez-vous est enregistré. Deux messages adressés au même contact le même jour sont bloqués. Le compteur d'envois est relu à chaque passage. Une absence du bureau permet à la séquence de se poursuivre, tandis qu'un refus ou un bounce l'interrompt définitivement.
La relance est une requête. Elle n'est pas un état conservé en mémoire par le workflow.
Regardez le having : c'est lui qui garantit qu'un contact ayant reçu deux messages sort de la file.
-- Relue à chaque passage du workflow de relance.
select c.id, c.email
from contacts c
join envois e on e.contact_id = c.id
where c.repondu_le is null
and c.rdv_le is null
and c.bounce is false
and c.refus is false
group by c.id, c.email
having count(e.id) = 1
and max(e.envoye_le) < now() - interval '7 days'
and max(e.envoye_le)::date < current_date
limit 5; -- plafond journalier observé sur ce compte
Ce qui a cassé et ce que nous avons changé.
Premier incident : l'enrichissement. Les lots sont soumis par paquets, et un paquet rejeté pour crédits insuffisants était marqué comme traité. Les prospects concernés disparaissaient alors silencieusement du pipeline.
Correction : un lot en échec conserve son statut d'origine et revient seul dans la file d'attente au passage suivant.
Deuxième incident : le comptage des réponses. Le pipeline BSA a enregistré 140 messages entrants, que la classification automatique répartit en 77 absences du bureau, 28 messages sans type attribué, 13 refus, 13 bounces et 9 classés « réponse ». Ni le chiffre de 140 ni celui de 9 ne sont exploitables : le premier gonfle le total, le second sous-estime à cause des 28 messages non typés.
Le chiffre que nous retenons est celui issu du comptage manuel des boîtes : 14 réponses humaines intéressées.
La classification automatique sert désormais au routage, tandis que le comptage s'effectue manuellement.
Troisième point, moins glorieux : sur Truckrs, deux relevés du nombre de décideurs contactés ne coïncident pas et n'ont pas été réconciliés à ce jour.
Nous publions donc l'entonnoir issu de la base de suivi et nous nous interdisons de calculer un taux en croisant ces deux sources.
Il ne se moyenne pas.
Le test A/B en cours illustre la même discipline : 13 envois en variante A, 11 en variante B, zéro réponse au 31 août 2026. L'échantillon est trop faible pour permettre toute conclusion, et nous ne comparons pas les variantes.
Ce que cette architecture coûte à faire tourner.
Les coûts récurrents sont faibles. n8n est gratuit lorsque l'instance est hébergée par le prestataire, le domaine d'envoi coûte environ 10 $ par an, les boîtes ne sont pas facturées, sauf sur Google Workspace, et Unipile pour le canal LinkedIn coûte 5 € par compte et par mois.
Les coûts variables suivent la consommation : un crédit FullEnrich est débité uniquement lorsque l'email est trouvé, et le scraping est facturé aux tarifs publics cités précédemment.
Rapporté aux rendez-vous, cela donne un ordre de grandeur d'environ 2,70 € par rendez-vous tenu sur Truckrs et d'environ 4,60 € sur BSA repreneurs. Ces montants sont calculés sur la base de tarifs publics, hors temps de conception et hors coûts récurrents.
Un seul mois sur un seul compte ne permet pas d'établir une moyenne.
- Truckrs, un mois2,70 €
- BSA repreneurs4,60 €
- Agences de prospection françaises150 à 400 €
Barres ramenées au haut de la fourchette agence. Ordres de grandeur hors temps de conception.
À titre de comparaison, les agences de prospection françaises affichent des tarifs de 150 à 400 € par rendez-vous livré, et un commercial B2B en France coûte plus de 50 000 € par an, charges comprises.
Le poste que ces chiffres ne couvrent pas, c'est la construction. Les huit étapes décrites ici représentent l'essentiel du travail, et les trois incidents décrits plus haut ont chacun entraîné la perte d'un lot avant d'être corrigés.
Pour évaluer votre propre volume par rapport à ces coûts, le simulateur prend vos hypothèses de départ et calcule le nombre de boîtes nécessaires.
Le simulateur
Votre stratégie de prospection, générée sur mesure.
À partir de vos sources
Questions fréquentes
n8n suffit-il seul pour prospecter, ou faut-il d'autres outils ?
n8n orchestre, il ne produit pas la donnée. Autour de nos workflows tournent un scraper Apify, un fournisseur d'enrichissement avec vérification d'email, des modèles de langage pour la qualification et la rédaction, une base Supabase et des boîtes d'envoi. n8n est la colle qui fait passer un prospect d'une étape à la suivante et qui garde la trace de son état. Sans base de données à côté, un workflow perd tout à chaque redémarrage.
Combien coûte l'hébergement de n8n dans ce montage ?
Sur nos comptes, n8n est gratuit lorsque l'instance est hébergée par le prestataire. Les autres postes récurrents relevés sont le domaine d'envoi, environ 10 $ par an, Unipile pour le canal LinkedIn à 5 € par compte et par mois, et la chauffe Smartlead à 30 € par mois pendant un mois seulement sur un domaine neuf. Les boîtes email ne sont pas facturées, sauf sur Google Workspace. Le reste est de la consommation à l'usage.
Mes emails risquent-ils de partir en spam ?
Sur nos envois, le score mail-tester s'établit à 9 ou 10 sur 10 et zéro passage en spam a été constaté à ce jour. Ce résultat tient à trois choses : un domaine séparé du domaine principal quand il est neuf, chauffé 2 à 3 semaines, un démarrage à 5 emails par boîte et par jour pour monter à 20 à 25, et 3 boîtes par domaine avec rotation. Sur le compte BSA, 1 023 emails ont été envoyés du 28 juillet au 24 août 2026, avec 13 bounces sur les 560 premiers envois, soit 2,3 % pour un seuil d'alerte usuel à 3 %.
Quel taux de réponse peut-on espérer d'un tel système ?
Sur le compte BSA repreneurs, 14 réponses humaines intéressées ont été comptées à la main sur 560 décideurs contactés entre le 24 juillet et le 29 août 2026, soit 2,5 %. En leads, c'est-à-dire en réponses manifestant un intérêt, ce compte affiche 20 leads sur 560 contactés au 31 août 2026, soit 3,6 %. La fourchette que nous annonçons commercialement, 2 à 3 % des contactés, est une estimation prudente calée sur deux comptes. Deux comptes ne font pas une moyenne de marché.
Faut-il savoir coder pour maintenir ce type de pipeline ?
Les nœuds visuels de n8n couvrent le gros du chemin, mais la déduplication, le rejeu d'une cascade d'enrichissement et le calcul du compteur de relances passent par des nœuds Code et par des requêtes SQL. Un dirigeant n'a pas à les écrire, il doit en revanche savoir qui les maintient. La question à poser à un prestataire est simple : que se passe-t-il quand un lot part en échec la nuit, et qui s'en aperçoit.
Comment se situe ce montage face à un outil comme Clay ?
Clay affiche publiquement 185 $ par mois sur son palier Launch et 495 $ sur Growth, à comparer à nos paliers d'abonnement qui démarrent à 390 € HT par mois pour un axe de prospection, 2 boîtes d'envoi et 400 prospects analysés et contactés. Ce sont des ordres de grandeur issus de tarifs affichés et non de devis. La vraie différence porte sur ce qui est livré : une plateforme vous laisse construire, un système installé vous livre des leads. Le simulateur de coût permet de comparer sur votre volume.
Votre stratégie de prospection, générée pour vous.
- Site web
- Réseaux sociaux
- Client type