Étude de cas 03 · Automatisation · IA · CRM
LinkedIn Data Flow
Pipeline de prospection B2B : recherche LinkedIn, qualification par IA, enrichissement et synchronisation HubSpot.
- Rôle
- Prototype n8n, puis conception et développement de l'application Laravel
- Catégorie
- Automatisation · IA · CRM
- Stack
- Laravel 12 · Vue 3 · TypeScript


01 — Contexte
Pour une équipe commerciale B2B, constituer une base de prospects exploitable demandait de rechercher les bons profils, vérifier leur pertinence, retrouver leurs coordonnées et contrôler leur présence dans le CRM. Une première version a été construite en n8n, puis l'orchestration a été réécrite nativement en Laravel.
02 — Problème
Chercher, qualifier, enrichir et dédoublonner : cinq outils et beaucoup de copier-coller pour chaque prospect.
03 — Solution
L'utilisateur définit une cible, ajuste ses critères et lance une recherche. L'application collecte les profils via Apify, les qualifie avec OpenAI selon un prompt configurable, vérifie les contacts existants dans HubSpot, enrichit coordonnées et données d'entreprise (Fullenrich, Pappers), puis crée ou met à jour contacts et entreprises dans HubSpot. Tout s'exécute en arrière-plan avec un historique des recherches.
04 — Fonctionnalités
Personas réutilisables
Postes, secteurs, séniorité et tailles d'entreprise, associés à des consignes IA.
Recherche multicritère
Localisation, expérience, entreprises, formations et exclusions.
Qualification par IA
Prompt personnalisable avec variables et aperçu sur données fictives.
Enrichissement
E-mails et téléphones par lots, données légales et financières des entreprises.
Synchronisation HubSpot
Contrôle des contacts existants, création ou mise à jour et associations.
Fraîcheur des contacts
Rafraîchissement programmé et alerte en cas de changement de poste.
05 — En images

Tableau de bord des recherches et profils traités 
Éditeur de prompt de qualification avec variables
06 — Architecture
- Recherche LinkedInApify · personas
- Qualification IAOpenAI · prompt
- EnrichissementFullenrich · Pappers
- HubSpot à jourcontacts · entreprises
Inertia relie les pages Vue au backend Laravel ; des services métier préparent les requêtes et des jobs prennent en charge les étapes longues.
Les webhooks Apify et Fullenrich signalent la fin des traitements externes pour poursuivre le pipeline, et la base conserve l'état de chaque profil.
07 — Défis techniques
Défi
Coordonner des services qui répondent à des moments différents.
Solution
Jobs en arrière-plan, webhooks, stockage des états et suivi des lots avant finalisation.
Défi
Réduire les appels répétés et respecter les limites d'API.
Solution
Opérations par lots, caches d'entreprises, espacement des appels et nouvelles tentatives sur HTTP 429.
Défi
Éviter les doublons dans le CRM.
Solution
Unicité par recherche et URL LinkedIn, recherche préalable dans HubSpot et gestion des conflits 409.
08 — Mon intervention
- Prototype en workflows n8n
- Architecture métier et modèle de données
- Backend Laravel et interfaces Vue / TypeScript
- Intégration Apify, OpenAI, Fullenrich, Pappers et HubSpot
- Jobs, webhooks, notifications et rafraîchissements
- Tests backend et déploiement Railway avec worker dédié
09 — Stack
- Backend
- PHP, Laravel 12, Queues, Scheduler, webhooks
- Frontend
- Vue 3, TypeScript, Inertia.js 2, Tailwind CSS, shadcn-vue
- Intégrations
- Apify, OpenAI, Fullenrich, Pappers, HubSpot
- Qualité
- Pest, PHPUnit, Mockery, PHPStan, Pint
- Déploiement
- Railway, Nixpacks, web + worker
10 — Résultats
5
services externes orchestrés dans un seul pipeline
v2
prototype n8n réécrit en application Laravel maintenable