Salesforce Architect & Builder

Adrien Valentin

Senior Salesforce Architect

Je conçois et je construis des outils Salesforce de niveau ISV. Architecture, moteurs de règles, orchestration asynchrone.

11+
Années d'ingénierie
8+
Années Salesforce
Application ArchitectEn préparation
System ArchitectEn préparation
Architecte & Builder

À 33 ans, je cumule plus d'une décennie d'ingénierie logicielle dont huit années sur l'écosystème Salesforce. Mon parcours m'a mené de Dassault Systèmes à Qonto en passant par des missions exigeantes chez Critéo, AG2R La Mondiale et Doctolib — chaque étape renforçant ma conviction qu'un bon architecte est celui qui sait aussi livrer ce qu'il conçoit.

Pas de slide sans code derrière, pas de POC sans mise en production. Les outils présentés ici tournent en production au quotidien — moteur de règles d'assignation, orchestrateur asynchrone, capacity management, audit d'historique. Chacun a été architecturé pour résoudre un vrai problème métier.

Depuis 2024, j'utilise l'IA comme levier d'implémentation, en conservant la maîtrise complète de l'architecture et des décisions de design. La vision reste humaine, l'exécution est accélérée.

Père de trois enfants, curieux permanent, convaincu que les meilleures solutions naissent sous contrainte.

En quelques chiffres

11+ ans
d'ingénierie logicielle
8 ans
sur Salesforce
6 outils
en production
Full-stack
Apex · LWC · Intégrations
3 enfants
motivation quotidienne
Outils construits en production
Chaque outil résout un problème business réel, avec une architecture pensée pour durer.

LAM Editor

Lead Assignment Management Editor

Moteur de règles complet avec algèbre d'intervalles, gap analysis par inversion ensembliste, et validation croisée inter-règles. ~8 000 lignes Apex.

Rules Engine Interval Algebra Gap Analysis Polymorphic Types Dynamic SOQL
129Kleads / 6 mois
711/ jour en moy.
12Kréassignements
100%PMs autonomes
Screenshot LAM Editor

Solution

  • Éditeur visuel de règles d'assignation (Rules → Audiences → Criteria)
  • Système de types polymorphe avec algèbre d'intervalles (Number, String, Date, Boolean, Reference)
  • Support des champs polymorphiques Salesforce avec navigation multi-niveaux
  • Gap Analysis par inversion ensembliste — détecte les populations non couvertes
  • Validation croisée inter-règles — overlaps, inclusions, doublons
  • Génération SOQL dynamique via arbre récursif (SoqlNode leaf-to-root)

Architecture

  • ~8 000 lignes Apex structurées en couches (CTRL → SVE → UTL)
  • Système de types abstrait : IntervalleType avec implémentations par type
  • CriteriaMapper pour transformation bidirectionnelle données ↔ UI
  • LWC avec extension custom de LightningDatatable
  • Modèle de données : Rule → Audience → Criteria (self-reference récursive)

Impact

  • 129 552 leads traités en 6 mois (711/jour en moyenne), sans compter les réassignements liés aux touchpoints
  • 0 demandes de changement sur les règles d'assignation depuis la mise en production — les Product Managers sont 100% autonomes
  • Déployé dans une fintech B2B européenne multi-pays (~1500 collaborateurs, 10+ marchés)

AsyncCollector

Orchestrateur Asynchrone

Orchestrateur metadata-driven qui empêche les conflits entre jobs asynchrones, gère les délais et le monitoring. 100% codé manuellement.

Metadata-Driven Job Orchestration Lock & Queue Zero AI
0crash depuis juin 2025
1440exécutions / jour
5jobs orchestrés
Screenshot AsyncCollector

Solution

  • Empêche l'exécution simultanée de jobs identiques
  • Gère les délais configurables entre chaque exécution
  • Architecture 100% configurable via Custom Metadata
  • Monitoring et logging intégrés

Architecture

  • Pattern metadata-driven : configuration déclarative des jobs
  • Gestion d'état persistante via Custom Objects
  • Mécanisme de lock et de queue pour l'ordonnancement
  • 100% codé manuellement (sans IA)

Impact

  • En production depuis juin 2025 — 0 crash du collector, ~1 440 exécutions/jour (1/minute)
  • Gestion d'erreurs isolée par job : certaines opérations en erreur reprennent automatiquement, sans jamais bloquer les autres jobs
  • Orchestre 5 jobs critiques (Lead Assignment, Case Routing, Partner Sync, Opportunity Processing, Partnerstack) dans une fintech B2B EU multi-pays

Enhanced History

Historique Amélioré

Vue historique enrichie avec double perspective : par champ et par transaction. Traçabilité complète du qui, quoi, quand et comment.

Field History Audit Trail Update Source Generic
96champs trackés
4objets déployés
31sur Lead (max)
Screenshot Enhanced History

Solution

  • Vue par champ : historique groupé par champ, ordonné par dernière modification
  • Vue par transaction : historique groupé par datetime d'update
  • Champ "Update Source" pour tracer le comment (UI, API, Flow, Batch)

Architecture

  • Backend Apex : agrégation et transformation des données Field History
  • Frontend LWC : double vue avec toggle, composant réutilisable
  • Configuration par Custom Metadata + paramètres LWC
  • Exploitation du Field History Tracking natif (zéro custom object supplémentaire)

Impact

  • 96 champs trackés sur 4 objets : Lead (31), Account (50), Contact (2), Opportunity (13)
  • Composant générique réutilisable sur tout objet standard ou custom
  • Sibling comparison pour détecter les anomalies de données entre enregistrements similaires

TeamMembers Management

Gestion d'Équipe & Capacity Planning

Outil de capacity management pour managers : groupes, pondérations, assignation par déficit, virtual accounting et sync calendrier Outlook.

Deficit Algorithm Virtual Accounting OOO Sync (SF Calendar → Google) Sharing Delta
~130commerciaux gérés
124groupes d'assignation
12Kréassignements / 6 mois
Screenshot TeamMembers Management

Solution

  • Gestion de groupes d'assignation avec membres et pondérations par objet
  • Algorithme d'assignation par déficit : converge vers la répartition cible
  • Virtual accounting pour les membres inactifs
  • Synchronisation automatique Outlook/Calendar SF pour les absences
  • Interface calendrier custom intégrée pour gestion manuelle
  • Gestion intelligente du sharing (diff delta optimisé)

Architecture

  • Modèle 3 niveaux : Group → Member → Distribution (par objet)
  • Double circuit d'inactivité : manuelle vs automatique — indépendants
  • Refresh de sharing optimisé par delta intelligent
  • LWC avec interface à onglets, gestion bi-modale

Impact

  • ~130 commerciaux gérés à travers 124 groupes d'assignation dans une fintech B2B multi-pays
  • 12 181 réassignements automatiques en 6 mois (66/jour en moyenne), liés aux changements de touchpoints et d'absences
  • Couplé au LAM Editor : 129 552 leads créés sur la même période (711/jour), chacun assigné via les règles et groupes TMM

CPQ Import Suite

Suite d'import/export Salesforce CPQ

Suite complète de gestion d'import/export pour Salesforce CPQ : migration legacy depuis Odoo, gestion de bundles hiérarchiques, résolution intelligente de conflits et remises par gamme. Projet évolutif, encore en développement actif.

CSV Parser Bundle Management Conflict Resolution CPQ Odoo Migration
61bundles
350features
1167produits importés
Screenshot CPQ Import Suite

Solution

  • Import legacy depuis Odoo avec détection et résolution de conflits par vote d'occurrence
  • Gestion complète du cycle de vie des bundles CPQ (features, options, pricing)
  • Export/import de configurations de bundles avec diff visuel avant exécution
  • Gestion des suppressions en cascade avec prévisualisation de l'impact
  • Remises par gamme configurables avec application automatique aux devis
  • Parsing CSV avancé : détection automatique du séparateur, gestion des guillemets imbriqués

Architecture

  • ~7 000 lignes de code (Apex + LWC), 18 composants Lightning
  • Orchestrateur multi-mode : import legacy, sync bundles, export, suppressions, remises
  • DML chunké par lots de 200 pour respecter les governor limits
  • Parseur CSV caractère par caractère avec auto-détection du séparateur
  • Interface wizard en 4 étapes : upload → vérification → récapitulatif → résultat

Impact

  • Catalogue importé : 61 bundles, 350 features, 1 167 produits (768 options + 352 composants + 47 DEEE) — depuis un fichier CSV legacy avec 3 lignes de headers et formules Excel
  • Contexte : intégration post-acquisition d'un fabricant de mobilier technique, migration du catalogue produit legacy vers Salesforce CPQ
  • Résolution automatique de conflits intra-fichier (mêmes références avec valeurs différentes) + gestion des remises par gamme via Custom Metadata

Account Duplicates

Gestion des doublons Comptes & Contacts

Outil de détection et de résolution des doublons de comptes et contacts. Interface visuelle pour comparer, fusionner et nettoyer les données en masse.

Deduplication Merge Data Quality Bulk Operations
1981merge requests
14/ jour en moy.
~5 mingagnées / merge
Screenshot Account Duplicates

Solution

  • Détection automatique des doublons basée sur des règles configurables
  • Interface de comparaison côte à côte des enregistrements candidats
  • Fusion intelligente avec sélection des valeurs à conserver par champ
  • Traitement en masse pour les campagnes de nettoyage de données

Architecture

  • FindDuplicates API + DuplicateRecordSet natif : compute en parallèle sans verrouiller les records (0 "unable to lock row")
  • LWC avec interface de comparaison interactive
  • Support du merge natif Salesforce avec gestion des enregistrements liés
  • Composant réutilisable, applicable à tout objet standard ou custom

Impact

  • 1 981 merge requests traitées depuis le go-live (14/jour en moyenne)
  • Avant : le commercial devait ouvrir chaque Opportunity, naviguer vers le compte, vérifier la vue standard "Duplicates", puis trouver manuellement les comptes à fusionner — processus en ~7 minutes par doublon
  • Après : tous les doublons présentés directement depuis le composant, merge en 2 clics — estimé ~2 minutes. Gain de ~5 min/merge × 14 merges/jour = ~70 minutes économisées par jour pour l'équipe commerciale

Lead Company Info

Multi-Company Lead Management

Système qui dissocie la personne de l'entreprise dans le CRM. 1 Lead = 1 Personne → N Company Infos. Matching intelligent, auto-conversion multi-path, conversion wizard custom. Architecturé et déployé en <1 mois.

Multi-Company FindDuplicates API Custom Conversion SIRET Matching Batch Processing Partner Attribution
3188LCI créés
587opportunités générées
71Closed Won
Screenshot LCI

Solution

  • Modèle Lead → N Company Infos, chacune trackant entreprise, SIRET, source, partenaire
  • Matching 2 niveaux : personne (email/phone) puis entreprise (SIRET → nom normalisé → FindDuplicates)
  • 4 chemins auto-conversion : Contact (client existant), Lead (nouveau client), LCI (post-conversion), Batch (nettoyage horaire)
  • Wizard conversion multi-company : Account matching SIRET/fuzzy, détection occupancy, KYB validation
  • Attribution partenaire préservée par company info indépendante

Architecture

  • 6 trigger handlers interconnectés (Touchpoint, LCI, Lead, Contact, Account, Batch)
  • Duplicate Rules avec conditions spécifiques (préfixe AUTOMATION) pour exploiter le fuzzy matching natif SF sans impacter le runtime — l'intelligence est dans les règles, pas dans le code
  • LWC wizard 3 étapes avec accordions par company et détection de conflits
  • Composant Source Information sur Opportunity avec companies liées
  • Architecture → production en <1 mois

Impact

  • En production depuis février 2026 — architecture → production en <1 mois (6 trigger handlers, 2 LWC, 1 batch, duplicate rules)
  • 3 188 LCI créés (66/jour), 587 opportunités générées grâce au système, dont 71 Closed Won — des deals qui auraient été perdus dans l'ancien modèle
  • 18% des touchpoints concernent une entreprise différente de celle du Lead — sans LCI, ces opportunités étaient invisibles
  • Attribution partenaire corrigée : chaque entreprise tracke sa source indépendamment, 100% des referrals crédités
Des outils interconnectés, pas isolés
Ces solutions couvrent trois domaines complémentaires et partagent des fondations architecturales communes.

Lead Lifecycle — De l'acquisition à la conversion

Lead Company Info
Touchpoint reçu → matching personne/entreprise → création ou rattachement LCI. Une personne, N entreprises, 0 duplicat.
LAM Editor
Lead assigné → évaluation des critères d'audience, match avec une règle d'assignation
TMM
Audience liée à un Assignment Group → assignation au membre le plus en retard par rapport à son % cible
Lead Company Info
Conversion → wizard multi-company : chaque LCI crée son propre Account/Contact/Opportunity

Assignation & Capacity Planning

TMM — Absences
Membre absent ? Comptabilisation virtuelle maintenue, réactivation automatique au retour sans surcharge
AsyncCollector
Orchestre tous les jobs background sans conflits ni doublons (LAM, TMM, LCI batch, partnerships...)

Qualité & Traçabilité des données

Account Duplicates
Détection, comparaison et fusion des doublons entre comptes Sales et Data
Enhanced History
Traçabilité complète : qui a fait quoi, quand, et comment (UI, API, Flow...)

Migration & Gestion CPQ

CPQ Import Suite
Import legacy post-acquisition, gestion de bundles, résolution de conflits, remises par gamme
Stack Technique
Spécialiste Salesforce full-stack, de l'architecture au déploiement.

Apex

  • Design patterns (Strategy, Factory, Observer)
  • Optimisation des governor limits
  • Patterns asynchrones (Batch, Queueable, Platform Events)
  • Architecture metadata-driven
  • Génération SOQL dynamique

Lightning Web Components

  • Extensions custom de LightningDatatable
  • Gestion d'état complexe
  • Architecture événementielle
  • Custom cell types
  • Design natif SLDS

Architecture

  • Conception de moteurs de règles
  • Théorie des ensembles appliquée au métier
  • Structures de données récursives
  • Algèbre d'intervalles & gap analysis
  • Gestion des champs polymorphiques

Modélisation de données

  • Hiérarchies auto-référencées
  • Relations polymorphiques
  • Patterns de versioning
  • Optimisation du modèle de partage

Outillage & DevOps

  • Développement assisté par IA
  • SFDX / Salesforce CLI
  • Gestion de versions Git
  • Pipelines CI/CD

Philosophie

  • Architecte & Builder — je conçois et j'implémente
  • L'IA comme accélérateur, la vision reste humaine
  • Conçu pour la production, pas pour la démo
  • Le code comme documentation vivante
Mon Parcours

Diplômé de l'EFREI en 2015, j'ai débuté en développement web et mobile chez Dassault Systèmes avant de me spécialiser sur l'écosystème Salesforce en 2018 chez Martin Brower. Ce qui m'a convaincu d'y rester : l'exigence technique de la plateforme. Governor limits, architecture multi-tenant, absence de threads — ces contraintes imposent une rigueur architecturale que peu d'environnements exigent.

Après plusieurs missions en ESN (Critéo, AG2R La Mondiale, Doctolib), j'ai rejoint Qonto en 2023 où je conçois et développe des solutions de niveau éditeur directement intégrées à l'organisation Salesforce de production. Des outils utilisés au quotidien par les équipes opérationnelles.

Ma spécificité : je porte les projets de la vision architecturale jusqu'à la livraison en production. Depuis 2024, j'intègre l'IA comme levier d'accélération du développement, tout en conservant la maîtrise complète des décisions d'architecture et de design.

2015-2018 — Dassault Systèmes

Développeur Web & Mobile. Team leader technique, architecture du projet Biovia Content Manager, application mobile de gestion des contacts.

2018-2021 — Martin Brower France

Technical Lead Salesforce. Premier poste SF : applications Lightning, communauté responsive, imports CSV massifs, mise en place d'une API utilisant la Bulk API 2.0 avec rollback et chaînage de jobs.

2021-2023 — Texeï (Critéo, AG2R, Doctolib)

Senior Developer puis Technical Lead en ESN. Missions pour Critéo (équipe internationale), AG2R La Mondiale (Design Authority, Vlocity, Copado), Doctolib.

2023-présent — Qonto

Expert Salesforce. Conception et développement d'un écosystème complet d'outils internes : LAM Editor, AsyncCollector, TeamMembers Management, Enhanced History.

En cours — Certifications Architecte

Parcours de certification : Platform Developer I → App Builder → Data Architecture → Sharing & Visibility → Application Architect → System Architect.

Projets Personnels
Quand je ne suis pas sur Salesforce, je construis des choses pour le plaisir — et parfois pour entreprendre.

Surprise Calendar

Projet entrepreneurial 100% sans IA

Plateforme de calendriers-surprises virtuels. Animations d'ouverture interactives (Stargate, Pong, roulette...), fonds animés en Canvas2D, système de plugins, éditeur WYSIWYG. Calendriers de l'avent, surprises quotidiennes, one-shots.

JavaScript ES6 Canvas2D PHP OOP 17 animations
Essayer

Gravity

Jeu physique interactif Développé avec IA

Jeu de gravité basé sur Matter.js. Système de fusions (12 types), monstres, obstacles, thèmes visuels et sonores, physics-based gameplay. Direction créative et supervision complète du développement.

Matter.js Canvas2D Physics Engine ~22K lignes
Essayer

Piano Magique

Application éducative pour enfants Développé avec IA

Piano interactif avec effets visuels, multi-modes de jeu et interface tactile adaptée aux enfants. Conçu comme outil ludique d'éveil musical.

Web Audio API CSS Animations Touch Events
Essayer
Me retrouver
Preview