Quatre façons — et une porte d'entrée principale : la Recherche avancée, qui réunit Pappers, LinkedIn et Google Maps.
🔎
Recherche avancéeRECOMMANDÉ
Les filtres façon Sales Navigator — registre légal (Pappers), LinkedIn (Basile) et Google Maps réunis, assistés par l'IA. Comptage gratuit en direct, aperçu réel, tu coches qui tu veux.
L'ex « Liste depuis Pappers » : NAF, zone, taille, CA — plus les décideurs en modale.
📍 Google
L'ex « Liste Google Maps » : catégories officielles, villes, note — moteur SerpApi.
👯 Lookalike
Tes listes classées par RDV pris — relance les critères gagnants, dédupliqué.
🧭 Les cartes « Liste depuis Pappers » et « Liste Google Maps » ont déménagé ICI (onglets Entreprises et Google) — mêmes moteurs, mêmes listes, plus de filtres.
NOUVEAU
📥
Importer depuis Lemlist
Une campagne Lemlist (sourcée dans leur People Database) devient une liste d'appel : dédup, puis enrichissement Google + registre via 🚀.
✨
Liste intelligente (IA)
Décris ta cible en une phrase, l'IA construit la liste. Elle sait aussi pré-remplir la Recherche avancée.
🏢
Liste Verticale (réseau / groupe)
Une franchise (BigMat…) ou un groupe multi-enseignes (GBH…) : toutes ses entités en une liste.
✍️
Liste manuelle
Tu nommes ta liste (ton ICP) et tu ajoutes toi-même les fiches repérées à la main.
Les listes, recherches enregistrées et lookalikes créés avec les anciennes cartes continuent de fonctionner — seuls les points d'entrée ont fusionné.
📥 Importer depuis Lemlist
Choisis une campagne — ses leads deviennent une liste d'appel SofyScrap (dédupliquée, enrichissable 🚀 Google + registre).
Filtre automatique : déjà dans une liste SofyScrap ♻️ ou connu de HubSpot 🔶 (par email, téléphone ou LinkedIn) = décoché d'office — recochable si besoin. Lance ensuite 🚀 sur la liste : analyse Google (fiche, note, pire avis), registre (SIREN, tél standard) — pas de scoring IA (le SDR a déjà qualifié dans Lemlist) — puis 📤 pour renvoyer le contexte dans la campagne.
📍 Liste Google Maps
Cible par ville, activité et note Google — le signal SoView par excellence.
1 Cible
Quelle activité, dans quelles villes ?
Les catégories suggérées = catégories officielles des fiches Google (résultats plus propres). Google limite à ~60 établissements par ville : multiplie les villes pour le volume.
Filtre de note Google
« Note ≤ 4,0 » = les établissements qui ont besoin de SoView. Le nombre de fiches est plafonné à 100 (chaque fiche = 1 appel Google Details : téléphone + site web).
Identification
🏢 Liste Verticale
Toutes les entités d'un réseau ou d'un groupe en une liste — comme une recherche « entreprise actuelle » Sales Navigator, en mieux.
1 Cible
Quel réseau ou quel groupe ?
La pagination (pages 2, 3…) est suivie automatiquement. Estime d'abord : tu verras les sociétés détectées avant de lancer les recherches Pappers.
🛡️ Les réseaux intégrés (Adeo, Saint-Gobain, Rexel, Sonepar, Chausson…) sont automatiquement écartés : la décision y est centrale, pas locale. Fiches triées par CA décroissant.
Le balayage s'arrête au plafond (départements dans l'ordre : DOM d'abord si périmètre DOM). Chaque fiche = 1 appel Google Details (téléphone, site, pire avis ≈ 0,02 $).
Identification
Liste manuelle
Donne un nom à ta liste. Tu pourras y ajouter des fiches juste après.
1 Nom de la liste
Comment s'appelle ta liste ?
C'est ton ICP / le nom de ta campagne. Tu ajouteras les fiches une par une ensuite.
🔎 Recherche avancée
Les filtres façon Sales Navigator — registre légal, LinkedIn et Google réunis, assistés par l'IA.
✨
1 · Postes ciblés INTITULÉS RÉELS BASILE
🎯 Une Fonction = un pack de mots-clés façon Sales Nav (ajoutés en chips, retirables). Inclure = OU · Exclure = écarté.
2 · Secteur / activité NAF PAPPERS
Côté LinkedIn : voie entreprises → SIREN → salariés. Plusieurs = OU.
3 · Effectifs de l'entreprise (tranches Sales Nav — aucune coche = indifférent)
⚠️ Filtrer par effectif écarte aussi les employeurs à effectif inconnu — l'écart s'affiche dans le comptage.
4 · Type d'entreprise PAPPERS (forme juridique)
Catégorie juridique INSEE, appliquée aux entreprises du secteur (voie SIREN). Si ce filtre vidait le comptage, il est retiré et signalé.
5 · Lieu du siège social Inclure | Exclure
Siège de l'ENTREPRISE (régions, DOM, villes — voie SIREN). Basile = base française.
6 · La personne
Ville(s) de la personne
Pays
🌴 Les DOM filtrent par la RÉGION LinkedIn de la personne (validé : 74 profils achats en Guadeloupe) et par les codes postaux côté registre.
Tape le métier, la nomenclature trouve le code (« concessionnaire » → 45.11Z). La barre ✨ sait aussi le faire.
Effectif
Chiffre d'affaires PAPPERS
Nombre d'établissements PAPPERS
Zone
Fonctions à chercher ensuite (👥 personas) INTITULÉS RÉELS BASILE
Mémorisé sur la liste : le pipeline 🚀 et le bouton 👥 chercheront ces fonctions. Rien d'ajouté = n'importe quel décideur.
Activité(s) Google GOOGLE MAPS
Ville(s)
Note Google
Moteur SerpApi (20/page, ~120/ville, plafond 1 000 recherches/mois partagé). Google ne donne jamais de total : on affiche ce qui est réellement balayé. Détails (tél, site, pire avis, email) à la génération.
Ajoute un secteur, des postes ou une liste de comptes — le comptage est gratuit et se met à jour tout seul.
fiches max
✨ Liste intelligente
Décris qui tu veux cibler. L'IA comprend, reformule et construit la recherche.
🛠️ Fonction temporairement indisponible. Notre fournisseur de données effectue une maintenance sur sa recherche. La liste intelligente sera réactivée dès le rétablissement. En attendant, utilise une liste Pappers ou une liste manuelle.
1 Ta cible
Décris ta cible en langage naturel
Plus tu es précis (secteur, postes, zone), meilleur sera le ciblage. Tu pourras affiner juste après.
✨
Voici ce que j'ai compris :
Construis ta liste, SDR.
6 questions. La machine fait le reste : extraction, enrichissement, dédoublonnage HubSpot, scoring Soview / SoConnect / SoReach, signaux et emails prêts à envoyer.
1 Secteur d'activité
Quel secteur cibles-tu ?
Recherche par mot-clé → codes NAF officiels (via API Pappers). Plusieurs secteurs possibles.
🏢 Tu cherches une entreprise, un groupe ou une holding précise (ex : Groupe Citadelle, GBH) ? Passe par la Verticale « groupe / holding » — elle reconstruit l'arbre des sociétés rattachées.
2 Taille de la liste
Combien de contacts veux-tu ?
Recommandé : 25–50 pour une session d'appels, 100+ pour une séquence Lemlist.
⚠️ Tranches non adjacentes : Pappers filtre par fourchette continue, les tranches intermédiaires seront incluses aussi.
⚠️ Pappers ne connaît pas l'effectif de la plupart des sociétés : filtrer par effectif écarte AUSSI toutes celles à effectif inconnu. L'estimation te montrera combien tu en perds.
Nombre d'établissements ?
ICP Sofy = multi-sites. « 2+ » cible les entreprises à plusieurs points de vente. Optionnel.
4 Chiffre d'affaires
Quelle tranche de CA ?
5 Fonction recherchée
Qui veux-tu avoir au téléphone ?
6 Localisation
Où ? (plusieurs territoires possibles)
Sélectionne un ou plusieurs territoires. Laisse la ville vide pour tout cibler.
Identification de la liste
Construction de la liste…
Extraction Pappers…
Liste d'appel
Aucune liste générée
Lance une nouvelle liste pour voir les fiches d'appel ici.
0contacts
0hors CRM ✓
0signaux 🔥
0traités ✅
⏳ Enrichissement en cours
0 / 0 fiches0%
Classer par :
Ma journée
Chargement…
Rappels à passer
✅ Mes tâches
Vos rappels, triés par échéance. Un clic sur « Ouvrir la fiche » vous emmène sur le prospect et retire la tâche.
Chargement…
Demandes entrantes
🆕 Signups
Nouveaux comptes créés depuis signup.sofy.fr. Un clic ouvre la fiche Hot Lead complète avec les mêmes actions SDR.
Chargement…
Mémoire des listes
Historique
Toutes les listes générées, sauvegardées automatiquement. Rouvre une liste sans consommer de crédits, ou relance-la pour une mise à jour.
Chargement…
Listes archivées
🗄️ Archives
Listes mises de côté. Elles ne consomment rien et restent récupérables : « ♻️ Désarchiver » les renvoie dans l'Historique.
Chargement…
Configuration des envois
Envois & mapping
Définit ce qui part vers Lemlist (✈️) et HubSpot (🤝), les champs cibles, et les concurrents surveillés pour les signaux LinkedIn. À l'étape backend, campagnes, pipelines et propriétaires seront chargés depuis tes comptes.
👀 Concurrents surveillés — signaux LinkedIn
Un contact qui like un post d'un de ces concurrents déclenche le signal « 💙 Like post concurrent » + alerte Slack. Un concurrent par ligne, modifiable à tout moment. Surveillance via PhantomBuster.
Soview
SoConnect
SoReach SMS / RCS
⚡ Connexion réelle des envois
Les seuls champs nécessaires au fonctionnement des boutons ✈️ / 🤝 / 💬 des fiches. Le reste de la page documente les variables envoyées.
Lemlist — IDs de campagnes (Lemlist → ouvre la campagne → l'ID est dans l'URL, commence par "cam_")
HubSpot — transaction (Paramètres HubSpot → Objets → Transactions → Pipelines : les IDs y sont affichés)
✈️ Lemlist — envoi en séquence
Déclenché quand le SDR ne joint pas le contact. Le lead part dans la campagne choisie avec toutes ses variables de personnalisation.
Variables disponibles dans les templates Lemlist (analyse Google incluse — copie le {{nom}} tel quel)
{{gmb_note}} — note Google (ex : 3,8)
{{gmb_nb_avis}} — nombre d'avis Google
{{avis_negatif}} — texte du pire avis (180 car.)
{{avis_negatif_note}} — sa note (ex : 1★)
{{avis_negatif_date}} — son ancienneté (« il y a 2 mois »)
{{gmb_concurrents}} — note moyenne des concurrents
{{ville}} · {{activite}} · {{site_web}}
{{accroche}} — accroche IA du scoring
{{objet_perso}} / {{email_perso}} — email IA complet
{{produit_score}} — produit dominant + score
{{signal}} — dernier signal (visite site, LinkedIn…)
{{snEid}} — id Snitcher (liens sofy.fr ?sn_eid=…)
Campagne par défaut
Routage auto par produit dominant
Tag ajouté au lead
Variables envoyées → personnalisation Lemlist
Donnée Sofy
Variable Lemlist
Prénom
Nom
Email
Société
Mobile
LinkedIn
Note GMB moyenne
Pire fiche GMB
Extrait avis négatif
Moyenne GMB concurrents
Signal détecté
Produit dominant + score
Accroche (1re ligne de l'email rédigé)
🤝 HubSpot — contact, note, transaction
Déclenché quand le RDV est pris. Crée/met à jour le contact, dépose la synthèse en note, et ouvre une transaction pour l'AE.
1 · Propriétés contact
Donnée Sofy
Propriété HubSpot
Email
Mobile
Fonction
LinkedIn
Site web
Code NAF
Nb d'établissements
Score Soview
Score SoConnect
Score SoReach
Note GMB / pire fiche / avis
2 · Note & tag
3 · Transaction (RDV pris → AE)
Pipeline
Étape de la transaction
Propriétaire (AE)
Nom de la transaction (modèle)
Documents client
Prez sales
Une analyse personnalisée par prospect, construite sur ce que Sofy Scrap a déjà mesuré chez lui. La base de connaissance est ce qui autorise l'IA à citer un chiffre : sans bloc source, elle n'écrit rien.
L'analyse se lance depuis la fiche du prospect : c'est là que se trouvent les mesures qu'elle utilise (note Google, pire point de vente, avis réel, concurrents, technos). Ouvre une liste, déplie la fiche, puis 🎨 Audit client.
👤 Ta photo sur les analyses
Elle apparaît sur la couverture, à côté de ton nom et de tes coordonnées. Un document signé par une personne obtient plus de réponses qu'un document anonyme.
Le document suit toujours la même logique : ce qu'on a mesuré → ce que ça coûte → la brique Sofy qui y répond → le résultat visé, chiffré → un cas client comparable → la prise de rendez-vous. Chaque lien vit 15 jours et compte ses lecteurs.
Chargement…
Jusqu'à 8 à la fois · compressées ici, aucune limite de taille en entrée
Chargement…
Chargement…
Pilotage
Insights
Activité — appels par jour · 🏆 RDV
Entonnoir de la période
—
🥊 Pertes par concurrent
—
Par poste (période)
—
Par SDR (période)
—
Référence mensuelle & abonnements — coût réel du mois en cours, budget de référence, gestion des abonnements, limites par SDR
💰 Coût total réel du mois
Abonnements fixes mensuels + consommation à l'usage (APIs). À comparer à votre ancien prestataire.
Chargement…
🔁 Abonnements fixes mensuels
Outils facturés au forfait (RB2B, PhantomBuster, Kaspr…), indépendants de la consommation. Modifiable par les admins.
Chargement…
Ajouter un abonnement fixe
👥 Consommation du mois par SDR
Coût calculé : quantité × tarif unitaire de chaque API. Limite mensuelle appliquée automatiquement (blocage à l'atteinte).
SDR
Détail API
Coût du mois
Limite
📋 Performance par liste
% emails / mobiles = contacts avec email / mobile trouvé. % enrichi = fiches avec au moins un moyen de contact. Coût par contact = coût liste ÷ contacts enrichis.
Liste
SDR
Fiches
Emails
% emails
📱 mobiles
☎️ tél GMB
% enrichi
🤝 RDV
Coût
€ / contact
Management
🎧 Journal des appels
Tous les appels récents de l'équipe (Ringover). Filtre par SDR ou par jour, clique sur un appel pour réécouter l'enregistrement et lire le résumé IA.
Utilisateurs :
Chargement…
Administration
Paramètres
Gère l'équipe SDR (les noms proposés à l'étape 6) et les limites de crédits par utilisateur. L'application des limites et le suivi des consommations arrivent avec la page Statistiques.
👥 SDR & utilisateurs
Limite de crédits : montant maximum de crédits consommables par mois. Vide = illimité.
Nom
Email
☎️ Ringover
Rôle
🎯 Appels/j
🏆 RDV/mois
Limite € / mois
Mot de passe
Actif
Ajouter un SDR / utilisateur
🔔 Veille signaux (PhantomBuster)
Le robot tourne toutes les 6 h (cron Vercel). Variables nécessaires : PHANTOMBUSTER_API_KEY, PHANTOMBUSTER_AGENT_IDS (IDs des Phantoms séparés par des virgules), SLACK_WEBHOOK_URL. Active la veille liste par liste depuis l'Historique (🔔). Le 1er passage sert de référence (pas d'alertes), les suivants alertent sur les NOUVEAUX likers.
📥 Importer les likers d'un post LinkedIn
Ouvre le post (le tien ou celui d'un concurrent) → clique sur les réactions → sélectionne et copie la liste (noms + fonctions) → colle ci-dessous. Même pipeline que PhantomBuster : dédup, croisement avec les listes en veille (fiche 🔥 + Slack), non-matchés → Hot Leads.
🧰 Mini-extracteur (grosses listes) : à coller dans la console Chrome, fenêtre des réactions ouverte
await (async()=>{const cp=typeof copy!=='undefined'?copy:null;const vis=()=>{const o=[];for(const a of document.querySelectorAll('a[href*="/in/"]')){const r=a.getBoundingClientRect();if(r.width<8||r.height<8||r.bottom<0||r.top>innerHeight)continue;const e=document.elementFromPoint(r.left+r.width/2,r.top+r.height/2);if(e&&(e===a||a.contains(e)||e.contains(a)))o.push(a);}return o;};let L=vis();if(!L.length)return '⚠️ Aucun profil visible au premier plan — la fenêtre des réactions est-elle bien OUVERTE ?';let dlg=L[0].parentElement;const tous=n=>L.every(a=>n.contains(a));while(dlg&&dlg!==document.body&&!tous(dlg))dlg=dlg.parentElement;const defilable=n=>{const s=getComputedStyle(n);return /(auto|scroll)/.test(s.overflowY)&&n.scrollHeight>n.clientHeight+40;};let sc=[...dlg.querySelectorAll('*')].find(defilable);if(!sc){let p=dlg;while(p&&p!==document.body&&!defilable(p))p=p.parentElement;sc=(p&&p!==document.body)?p:null;}console.log(sc?'🗂 conteneur défilable trouvé':'⚠️ pas de conteneur défilable — défilement par élément');const BRUIT=/^(voir|voir le profil|se connecter|suivre|s.abonner|message|messagerie|réagir|out of network|hors r[ée]seau|statut|en ligne|premium|linkedin|[0-9]+(er|e|nd|rd|st)?\+?)$/i;const propre=s=>String(s||'').replace(/\s*[•·|].*$/,'').replace(/^(voir le profil de|photo de)\s*/i,'').replace(/\s*\b(1er|2e|3e|1st|2nd|3rd)\b\s*\+?/gi,' ').replace(/\s+/g,' ').trim();const dedup=s=>{const m=s.match(/^(.{3,40}?)\1$/);return m?m[1].trim():s;};const nomDe=a=>{let n=dedup(propre((a.innerText||'').split('\n').map(s=>s.trim()).filter(Boolean)[0]||''));if(n.length<3){const im=a.querySelector('img');n=dedup(propre((im&&im.alt)||a.getAttribute('aria-label')||''));}if(n.length<3){const sl=(a.href.match(/\/in\/([^\/?#]+)/)||[])[1]||'';n=decodeURIComponent(sl).replace(/-[0-9a-z]{5,}$/i,'').replace(/-/g,' ').replace(/\b\w/g,c=>c.toUpperCase()).trim();}return n;};const ligneDe=a=>{let n=a.parentElement,b=null;for(let k=0;k<7&&n&&n!==document.body;k++){if(n.querySelectorAll('a[href*="/in/"]').length>1)break;b=n;n=n.parentElement;}return b||a;};const vus=new Map();const prendre=()=>{for(const a of vis()){const url=a.href.split('?')[0];if(vus.has(url))continue;const nom=nomDe(a);if(nom.length<3||nom.length>60)continue;const row=ligneDe(a);const lg=((row&&row.innerText)||'').split('\n').map(s=>s.trim()).filter(Boolean).map(propre);const occupation=lg.find(l=>l&&l!==nom&&l.length>3&&!BRUIT.test(l)&&l.indexOf(nom)!==0)||'';vus.set(url,{nom,url,occupation});}};prendre();let stable=0;for(let i=0;i<100;i++){let avant=sc?sc.scrollTop:-1;if(sc){sc.scrollTop=Math.min(sc.scrollTop+Math.max(200,sc.clientHeight*0.8),sc.scrollHeight);}if(!sc||sc.scrollTop===avant){const c=vis();if(c.length)c[c.length-1].scrollIntoView({block:'end'});}const b=[...(dlg||document).querySelectorAll('button')].find(x=>/plus de r[ée]sultats|voir plus|afficher plus|show more|load more|charger/i.test(x.innerText||''));if(b){b.scrollIntoView({block:'end'});b.click();}await new Promise(r=>setTimeout(r,800));const av=vus.size;prendre();console.log('… '+vus.size+' profils'+(sc?' (scroll '+Math.round(sc.scrollTop)+'/'+sc.scrollHeight+')':''));const bas=sc?(sc.scrollTop+sc.clientHeight>=sc.scrollHeight-8):false;if(vus.size===av&&(bas||!sc)){stable++;if(stable>=3)break;}else if(vus.size===av){stable++;if(stable>=6)break;}else stable=0;}const arr=[...vus.values()];const uniq=new Set(arr.map(x=>x.nom)).size;const alerte=(arr.length>2&&Math.ceil(arr.length*0.6)>uniq)?(' ⚠️ ATTENTION : seulement '+uniq+' nom(s) distinct(s) pour '+arr.length+' profils — structure LinkedIn inhabituelle, relis le rapport d’import avant de garder'):'';const json=JSON.stringify(arr);let ok=false;try{if(cp){cp(json);ok=true;}}catch(e){}if(!ok){try{await navigator.clipboard.writeText(json);ok=true;}catch(e){}}if(!ok){console.log(json);return '⚠️ '+arr.length+' profils extraits mais copie auto bloquée — clic droit sur la longue ligne ci-dessus → « Copy string contents »';}return '✅ '+arr.length+' profil(s) copiés · '+uniq+' nom(s) distinct(s)'+alerte+' — VÉRIFIE que ce nombre correspond au compteur de réactions du post (les pages entreprise et profils privés ne sont pas extractibles)';})()
puis colle-le dans la console Chrome de l'onglet LinkedIn, fenêtre des réactions ouverte
Le script fait défiler la liste tout seul jusqu'au dernier liker (compte ~1 s par tranche de 10 profils) puis copie tout — attends le message ✅ avant de coller. Vérifie que le nombre annoncé correspond au compteur de réactions du post.
📚 Sources à surveiller — clique une source pour l\'ouvrir et préremplir l\'import
Chargement…
💶 Tarifs unitaires des API
Prix d'une unité de chaque API (1 fiche Pappers, 1 appel Google, 1 enrichissement…). Sert au calcul des coûts et des limites mensuelles par SDR. Ajuste-les selon tes contrats réels.
🔥 Hot Leads automatiques
Visiteurs de sofy.fr (RB2B) et profils LinkedIn réactifs (posts concurrents, followers) ajoutés automatiquement à la liste « 🔥 Hot Leads (auto) » — hors clients HubSpot et employés des concurrents — avec alerte Slack.
🔧 Maintenance
Outils techniques réservés au superadmin.
À lancer une fois après une mise à jour, pour pré-calculer les statistiques des anciennes listes.
Chaque analyse client consomme 6 à 10 relevés. Le plafond de l'abonnement est de 1000 par mois (plan Starter depuis le 31/08) : au-delà, les mesures s'arrêtent proprement au lieu de se dégrader en silence.
Taux de réussite et coût par email trouvé de chaque étage du waterfall (Dropcontact → FullEnrich → Kaspr → Lemlist). Lecture seule, gratuit.
Envoie un faux événement « entreprise » à l'endpoint → crée un Hot Lead de test + alerte Slack.
Configuration
Statut des connexions
Les clés API sont stockées côté serveur (Vercel) et ne transitent jamais par le navigateur. Cette page indique simplement ce qui est branché.
🔐 Pour ajouter ou modifier une clé : Vercel → projet sofy-sdr-tool → Settings → Environment Variables, puis redéployer (ou attendre le prochain commit). Le nom de variable attendu est indiqué sur chaque carte.
Vérifie que chaque clé répond. « Tester l'alerte » lance le monitoring (Slack si problème).
Chargement du statut…
➕ Hot lead manuel
Demande entrante ou contact repéré (téléphone, email, salon, LinkedIn…) → fiche dans les Hot Leads partagés, tuile 🔥 de « Ma journée », annonce Slack à l'équipe. L'enrichissement complète email et mobile tout seul : le lien LinkedIn est son meilleur carburant.
➕ Contact
Ajoute un contact à cette fiche. Scanne une carte ou colle le LinkedIn : les champs se remplissent, tout reste éditable.
🤝 Ce contact couvre
💬 RCS de démonstration
Le prospect reçoit une rich-card Sofy — visuel, texte et bouton « 📅 Réserver ma démo » : le message est la démonstration du produit. Repli SMS automatique si son mobile ne gère pas le RCS.
La mention « répondez STOP » est ajoutée automatiquement (prospection B2B). Coût ≈ 1 crédit SoReach.