Études de cas

Comment on a construit un CRM immobilier en 7 jours — étude de cas complète

Pas de théorie dans cet article. Juste les faits : un vrai projet, un vrai problème, une vraie solution construite en 7 jours. Avec les choix qu’on a faits, ceux qu’on a écartés, et les résultats mesurés après 3 mois d’utilisation.

Le client et son problème

Le contexte

ImmoPlus (nom modifié) est une agence immobilière indépendante de 8 personnes basée en Île-de-France. 4 agents commerciaux, 1 assistante administrative, 1 photographe, 1 responsable marketing, 1 directeur.

Leur activité : Transaction résidentielle. 60 mandats actifs en moyenne, 400 acquéreurs en base, 25 à 30 ventes par an. Chiffre d’affaires : environ 450 000 € de commissions annuelles.

Leurs outils avant notre intervention :

  • Hektor (CRM immobilier du marché) pour les fiches biens et la multidiffusion sur les portails
  • Excel pour le suivi des acquéreurs (un fichier par agent, non partagé)
  • Gmail pour les relances (manuelles, non trackées)
  • WhatsApp pour la coordination interne

Le problème précis

Le directeur nous a contactés avec une frustration simple :

« On perd des ventes parce qu’on ne fait pas le rapprochement entre nos acquéreurs et nos biens. Un T3 rentre en mandat lundi, et le mercredi je découvre qu’on avait un acquéreur parfait dans notre base depuis 2 mois — mais personne n’y a pensé. »

En creusant, on a identifié 3 problèmes liés :

  1. Pas de base acquéreurs centralisée. Chaque agent avait « ses » acquéreurs dans un Excel perso. Les autres agents ne les voyaient pas.
  1. Rapprochement 100 % mental. Quand un nouveau mandat entrait, les agents fouillaient dans leur mémoire (et parfois leur Excel). Résultat : aléatoire, dépendant de qui est au bureau ce jour-là.
  1. Zéro relance automatique des acquéreurs. Un acquéreur qui n’avait pas trouvé son bien en 3 semaines tombait dans l’oubli. Pas de séquence de suivi, pas de rappel.

Le coût du problème

On a fait le calcul ensemble :

Indicateur Donnée
Biens vendus à un acquéreur déjà en base ~30 % des ventes
Délai moyen de vente (mandat → compromis) 94 jours
Acquéreurs « perdus » (aucun contact depuis 30+ jours) ~45 % de la base
Commission moyenne par vente 15 000 €
Ventes « ratées » estimées par an (acquéreur existant non identifié) 4-6 ventes

Manque à gagner estimé : 60 000 à 90 000 € par an en ventes qui auraient pu se faire plus vite — ou qui ne se sont pas faites du tout.

Face à ça, un investissement de 4 000 € était une évidence.

Le Sprint : jour par jour

Jour 1 — Cadrage

Participants : Le directeur + notre développeur. 1h30 de call.

Ce qu’on a décidé :

Fonctionnalités MVP (Must Have) :

  1. Base acquéreurs unifiée — import des 4 fichiers Excel + formulaire de saisie
  2. Matching automatique — à chaque nouveau mandat, comparaison avec tous les acquéreurs actifs
  3. Score de compatibilité — classement des matchs par pertinence (0-100)
  4. Notification agent — alerte quand un match > 70 % est détecté
  5. Email acquéreur — envoi automatique de la fiche bien personnalisée

Ce qu’on a écarté (Won’t Have pour le MVP) :

  • Intégration bidirectionnelle avec Hektor (trop complexe pour 7 jours)
  • Séquence de relance automatique (itération 2)
  • Application mobile (responsive web suffit)
  • Reporting et analytics (post-MVP)

Livrable du jour : Document de cadrage d’une page, validé par le directeur.

Jour 2 — Architecture et import de données

Le défi principal : 4 fichiers Excel, 4 formats différents, 400 lignes au total, ~20 % de doublons.

Ce qu’on a fait :

  • Script d’import avec nettoyage automatique (normalisation des noms, dédoublonnage par email + téléphone, standardisation des critères de recherche)
  • Modèle de données : Acquéreur (nom, contact, critères de recherche, agent assigné, statut, date dernier contact)
  • Architecture : Next.js + Supabase (PostgreSQL) + Vercel
  • Setup du repo Git, CI/CD, environnement de dev

Résultat : 347 acquéreurs uniques importés (53 doublons supprimés), base propre et exploitable.

Jour 3 — Interface et algorithme de matching

L’interface :

  • Dashboard agent : liste de ses acquéreurs, filtres par statut et critères
  • Vue directeur : tous les acquéreurs, tous les agents, métriques globales
  • Fiche acquéreur : critères détaillés, historique des biens envoyés, notes

L’algorithme de matching :

C’est le cœur du produit. On a défini 6 critères avec le directeur, chacun pondéré selon son importance :

Critère Poids Exemple
Localisation (commune/quartier) 30 % Match exact = 100 %, même ville = 70 %, ville adjacente = 40 %
Budget 25 % Prix du bien dans la fourchette acquéreur = 100 %, jusqu’à +10 % au-dessus = 60 %
Type de bien 20 % Match exact = 100 % (T3 cherché = T3 trouvé)
Surface 10 % Dans la fourchette = 100 %, ±10 m² = 70 %
Nombre de pièces 10 % Match exact = 100 %, ±1 = 70 %
Critères bonus (balcon, parking, étage) 5 % Chaque critère bonus matché = points supplémentaires

Score final : Moyenne pondérée sur 100. Un score > 70 déclenche une notification.

Jour 4 — Développement core (matching + notifications)

Ce qu’on a livré en fin de journée :

  • L’algorithme de matching fonctionnel (testé sur les 347 acquéreurs × 5 biens test)
  • Le trigger automatique : quand un bien est ajouté dans le système → calcul du matching en < 3 secondes
  • Les notifications par email à l’agent : « Nouveau match 87 % — [Acquéreur] pour [Bien] » avec lien vers la fiche

Premiers tests : On a importé 5 biens réels du portefeuille. Le système a identifié 12 matchs > 70 %, dont 3 que le directeur ne connaissait pas (« Ah oui, celui-là ! On l’avait oublié »).

Jour 5 — Email acquéreur + polish interface

L’email automatique :

  • Template personnalisé avec le nom de l’acquéreur, les caractéristiques du bien, les photos principales, et un bouton « Je suis intéressé »
  • Déclenché par l’agent (pas automatique — le directeur voulait garder le contrôle)
  • Tracking : ouverture, clic sur le bouton, réponse

Polish de l’interface :

  • Tri des matchs par score (les meilleurs en haut)
  • Filtres rapides : « Mes acquéreurs », « Matchs non traités », « Score > 80 »
  • Badge de notification : pastille rouge quand un nouveau match est disponible

Jour 6 — Formulaire de saisie + intégration manuelle Hektor

Formulaire de saisie acquéreur :

  • Champs structurés pour les critères de recherche (pas de texte libre → données propres)
  • Validation automatique (budget min < budget max, surface cohérente)
  • Assignation automatique à l’agent connecté

Intégration Hektor (manuelle mais efficace) :

  • Pas d’API bidirectionnelle (hors scope MVP)
  • Solution : formulaire d’ajout de bien dans notre outil, avec les champs essentiels copiés depuis Hektor
  • Le directeur saisit le bien en 2 minutes → le matching se lance automatiquement

Jour 7 — Tests, démo, livraison

Matin — Tests :

  • Parcours complet : ajout d’un bien → matching → notification → envoi email → tracking
  • Test avec les 4 agents en simultané (multi-utilisateur)
  • Test mobile (responsive — fonctionne sur les téléphones des agents en visite)
  • Correction de 3 bugs mineurs (affichage du score, tri des résultats, formatage email)

Après-midi — Démo et livraison :

  • Démonstration à toute l’équipe (45 minutes)
  • Chaque agent a importé ses acquéreurs et testé le matching en live
  • Mise en production sur Vercel (URL personnalisée : crm.immoplus.fr)
  • Remise des accès admin + documentation technique

Les résultats après 3 mois

On a mesuré les indicateurs clés 90 jours après la mise en production.

Les métriques

Indicateur Avant Après 3 mois Évolution
Base acquéreurs centralisée 4 fichiers Excel séparés 1 base partagée (412 acquéreurs) ✅ Centralisé
Temps de rapprochement par bien 15-30 min (quand c’est fait) 3 secondes (automatique) -99 %
Matchs identifiés par semaine 2-3 (manuels, aléatoires) 8-12 (automatiques, exhaustifs) ×4
Visites déclenchées via matching Non mesuré 34 en 3 mois Nouveau
Délai moyen de vente 94 jours 71 jours -24 %
Acquéreurs « perdus » (aucun contact 30+ jours) ~45 % ~18 % -60 %
Ventes sur la période 7 9 +29 %

Le calcul du ROI

Poste Montant
Investissement (Sprint 7 jours) 4 000 €
Coûts récurrents (3 mois : hébergement + Supabase) 90 €
Coût total 4 090 €
Ventes supplémentaires (2 ventes × 15 000 € commission) 30 000 €
ROI sur 3 mois ×7,3

L’outil s’est rentabilisé dès la première vente accélérée par le matching automatique — soit environ 5 semaines après le lancement.

Ce qu’on ferait différemment

Aucun projet n’est parfait. Voici ce qu’on a appris :

1. On aurait dû intégrer les relances automatiques dès le MVP.

Le directeur nous l’a demandé 3 semaines après le lancement. Ça aurait pu être la 5e fonctionnalité du sprint initial — on l’avait écarté par prudence, mais le besoin était immédiat.

2. L’import Excel a pris plus de temps que prévu.

4 formats différents, des données sales (adresses avec fautes, budgets en texte libre « environ 300k », critères mélangés). On a passé presque tout le Jour 2 là-dessus. Leçon : toujours prévoir du buffer pour le nettoyage de données.

3. La saisie manuelle des biens est un point de friction.

Sans intégration API avec Hektor, le directeur doit saisir les biens dans deux outils. C’est le premier point à résoudre en itération 2.

La suite : les itérations post-MVP

Après le Sprint initial, ImmoPlus a commandé 2 itérations supplémentaires :

Itération 2 (Semaine 5) — Relances automatiques :

  • Séquence email automatique pour les acquéreurs sans contact depuis 14 jours
  • 3 emails progressifs (nouveau bien similaire → point sur la recherche → demande de mise à jour des critères)
  • Budget : 2 000 € (3 jours de développement)

Itération 3 (Semaine 9) — Connexion Hektor :

  • Import automatique des nouveaux biens depuis Hektor (via leur API)
  • Plus besoin de double saisie
  • Budget : 3 000 € (5 jours de développement, API complexe)

Total investi sur 3 mois : 9 000 € — pour un outil qui génère 30 000+ € de commissions supplémentaires par trimestre.

Ce que cette étude de cas montre

1. Un MVP à 4 000 € peut avoir un impact massif.

Pas besoin de 50 000 € et 6 mois de développement. Un outil ciblé, qui résout UN problème bien identifié, suffit pour changer la donne.

2. Le sur mesure bat le standard quand le besoin est spécifique.

Le matching acquéreurs/biens d’Hektor existe — mais il est basique (critères fixes, pas de pondération, pas de scoring). La fonctionnalité custom a fait la différence.

3. Itérer est plus intelligent que tout planifier.

Le MVP a prouvé la valeur. Les itérations ont ajouté de la profondeur. Si on avait tout spécifié dès le départ, on aurait passé 2 mois en specs et le directeur attendrait encore.

4. Les données sales sont le vrai ennemi.

Le plus gros défi n’était pas le code — c’était de transformer 4 fichiers Excel chaotiques en une base propre. Si vous préparez un projet similaire, nettoyez vos données AVANT.

Vous avez un problème similaire dans votre entreprise ? Réservez un call de cadrage gratuit →

On fait comme avec ImmoPlus : on identifie LE problème qui vous coûte le plus cher, et on construit la solution en 7 jours. Premiers résultats mesurables en quelques semaines.

Un projet en tête ?

Discutons de votre besoin et voyons comment on peut vous aider.

Découvrir notre offre Dev 7 jours →