Estimateur Immobilier de la saisie du bien au rapport DVF complet en 2 minutes
Ce guide décrit l'architecture complète de l'estimateur immobilier d'Automa-consulting — node par node — et vous donne les étapes concrètes pour reproduire ce workflow dans votre propre compte Make.
Ce guide est un tutoriel de reproduction. Il suppose une première expérience avec Make. Si vous souhaitez qu'Automa-consulting construise ce système pour vous ou forme vos équipes, contactez-nous directement →
Le scénario Make complet — Tally → Tools → HTTP DVF → Iterator → Tools → Array Aggregator → Tools → Gmail
Ce dont vous avez besoin
Quatre outils suffisent. Tous proposent un plan gratuit ou un accès sans authentification.
Make (Integromat)
Plan Free suffisant pour démarrer. make.com
Tally
Formulaires avec webhook natif. Gratuit. tally.so
Gmail (ou SMTP)
Pour l'envoi du rapport final. Compte Google standard.
API DVF Cerema
Accès libre, sans clé. apidf.cerema.fr
Niveau requis : intermédiaire — première expérience Make recommandée
La réalité du métier sans automatisation
-
30 à 60 minutes par réponse d'annonceEntre la recherche de données marchés, les calculs manuels, la mise en forme du rapport et la rédaction du message — un seul bien prend un temps considérable, répété à chaque nouvelle demande.
-
Des estimations sans ancrage sur les transactions réellesSans accès aux données DVF, l'estimation repose sur des comparables parfois obsolètes. Ce workflow résout ce problème en interrogeant le registre national des mutations à chaque exécution.
-
Un rapport qui ne se différencie pasLe client ne perçoit pas la valeur d'une analyse ancrée sur des données officielles. Un rapport automatisé et documenté change cette perception sans effort supplémentaire.
Le scénario node par node
Chaque node est décrit avec sa configuration réelle et les étapes concrètes pour le reproduire dans Make.
Déclenchement par formulaire
Le formulaire Tally est le point d'entrée. L'utilisateur renseigne les caractéristiques de sa recherche : nom, email, code INSEE de la commune, type de bien, période d'analyse. Dès la soumission, Make se déclenche automatiquement via un webhook.
- Déclencheur : Watch New Responses (webhook instantané)
- Champs collectés : Nom et prénom, Email, Code INSEE commune, Type de bien, Date de début, Date de fin
-
Sur tally.so, créez un nouveau formulaire avec les champs :
Nom et prénom(texte court),Email(email),Code INSEE commune(texte court),Type de bien(liste déroulante : Appartement / Maison / Local industriel / commerce),Date de débutetDate de fin(dates). -
Dans Make, créez un nouveau scénario. Ajoutez le module Tally → Watch New Responses. Connectez votre compte Tally.
-
Sélectionnez votre formulaire dans le champ Form. Make génère automatiquement une URL webhook — copiez-la.
-
Dans Tally, allez dans Integrations → Webhooks, collez l'URL Make. Soumettez le formulaire une fois pour que Make reçoive la structure des données et reconnaisse les champs.
Structure du formulaire Tally à créer
| Nom du champ | Type Tally | Notes |
|---|---|---|
| Nom et prénom | Short Answer | Texte libre — requis |
Email | Format email validé — requis | |
| Code INSEE commune | Short Answer | 5 chiffres — ex. 75056 |
| Type de bien | Dropdown | Appartement · Maison · Local industriel · commerce |
| Date de début | Date | Retourné en ISO 8601 par Tally |
| Date de fin | Date | Retourné en ISO 8601 par Tally |
Les noms exacts des champs Tally doivent correspondre aux références utilisées dans Make — respectez la casse et les espaces.
Buffer : normalisation des données d'entrée
Ce module normalise les données brutes du formulaire avant de les envoyer à l'API. Il formate les dates, nettoie le code commune et prépare les paramètres de requête. Cette étape évite les erreurs de format en aval.
-
Ajoutez un module Tools → Set Variable après le node Tally.
-
Créez la variable
code_communeavec la valeur{{1.fields["Code INSEE commune"]}}. -
Créez
type_localavec{{first(1.fields["Type de bien"])}}— lefirst()extrait la valeur de la liste déroulante Tally qui retourne un tableau. -
Créez
date_debutetdate_finavec{{formatDate(1.fields["Date de début"]; "YYYY-MM-DD")}}— l'API DVF attend ce format ISO.
Appel API DVF — données de transactions réelles
Le scénario interroge l'API nationale DVF (Données de Valeurs Foncières) via l'endpoint Cerema. Sans authentification. En retour : la liste des transactions immobilières réelles correspondant aux critères saisis — commune, type de bien, période.
- Endpoint :
https://apidf.cerema.fr/dvf/opendata/mutations/ - Paramètres :
code_commune,type_local,date_mutation_min,date_mutation_max - Retour : tableau
results[]— chaque entrée contientvaleur_fonciere,surface_reelle_bati,date_mutation
-
Ajoutez un module HTTP → Make a Request. Méthode :
GET. -
URL :
https://apidf.cerema.fr/dvf/opendata/mutations/. Pas de headers ni d'authentification requis. -
Dans Query String, ajoutez les paramètres :
code_commune→{{2.code_commune}},type_local→{{2.type_local}},date_mutation_min→{{2.date_debut}},date_mutation_max→{{2.date_fin}},page_size→500. -
Activez Parse response → Yes et sélectionnez Content type : JSON. Make reconnaîtra automatiquement la structure du retour.
Itération sur chaque transaction
L'API DVF retourne un tableau de transactions. L'Iterator parcourt chaque entrée une par une pour permettre un calcul individuel du prix au m². Sans cette étape, les calculs par transaction seraient impossibles.
-
Ajoutez un module Tools → Iterator.
-
Dans le champ Array, sélectionnez
{{3.data.results}}— le tableau des transactions retourné par le node HTTP. -
Make génère automatiquement un bundle par transaction. Chaque bundle expose les propriétés de la transaction :
valeur_fonciere,surface_reelle_bati,date_mutation, etc.
Calcul du prix au m² par transaction
Pour chaque transaction itérée, ce module calcule le prix au m². Il applique aussi un filtre sur la surface pour exclure les transactions avec surface nulle qui fausseraient les agrégats.
-
Ajoutez un module Tools → Set Variable après l'Iterator.
-
Créez la variable
prix_m2avec la formule :{{4.valeur_fonciere / 4.surface_reelle_bati}}. -
Ajoutez un filtre sur le lien entre l'Iterator (node 4) et ce node : condition
{{4.surface_reelle_bati}}Greater than0. Cela exclut les transactions sans surface renseignée.
Consolidation — refermer la boucle
L'Array Aggregator referme la boucle d'itération. Il rassemble tous les prix_m2 calculés dans un tableau unique — prêt pour les calculs statistiques du node suivant.
-
Ajoutez un module Tools → Array Aggregator.
-
Dans Source Module, sélectionnez le module Iterator (Node 4) — c'est lui qui définit le périmètre de la boucle.
-
Dans Aggregated fields, ajoutez le champ
prix_m2→{{5.prix_m2}}. L'Aggregator produit un objetarrayavec toutes les valeurs collectées.
Calculs statistiques — synthèse finale
Ce module produit les indicateurs finaux : prix moyen, médian, minimum, maximum et nombre de transactions. Ces valeurs sont directement injectées dans le template d'email du node suivant.
- Nombre de transactions :
{{length(6.array)}} - Prix moyen :
{{round(sum(map(6.array; "prix_m2")) / length(6.array); 0)}} - Prix min / max :
{{round(min(map(6.array; "prix_m2")); 0)}}
-
Ajoutez un module Tools → Set Multiple Variables.
-
Variable
nb_transactions→{{length(6.array)}} -
Variable
prix_moyen→{{round(sum(map(6.array; "prix_m2")) / length(6.array); 0)}} -
Variable
prix_median→{{round(get(sort(map(6.array; "prix_m2")); round(length(6.array) / 2; 0)); 0)}} -
Variables
prix_minetprix_max→{{round(min(map(6.array; "prix_m2")); 0)}}et{{round(max(map(6.array; "prix_m2")); 0)}}
Envoi automatique du rapport DVF
Le dernier module envoie le rapport en HTML à l'adresse saisie dans le formulaire. L'objet est personnalisé avec le type de bien et la commune. Le corps intègre les métriques calculées au node précédent.
-
Ajoutez un module Gmail → Send an Email. Connectez votre compte Google.
-
Champ To :
{{1.fields.Email}}— l'email saisi dans le formulaire Tally. -
Champ Subject :
Rapport prix au m² — {{2.type_local}} — Commune {{2.code_commune}} -
Activez Content type → HTML. Collez le template HTML du rapport (voir la section "Email reçu" ci-dessous), en remplaçant les valeurs statiques par les variables Make :
{{7.prix_moyen}},{{7.prix_median}},{{7.prix_min}},{{7.prix_max}},{{7.nb_transactions}}.
Vue d'ensemble du scénario
L'email reçu — exemple de rapport
Rapport généré automatiquement et livré dans la boîte email en moins de 2 minutes après soumission du formulaire.
Rapport prix au m² — Données DVF
Bonjour Jean Dupont,
Voici l'analyse des transactions immobilières pour votre recherche :
| Type de bien | Appartement |
| Code commune | 75056 (Paris) |
| Période analysée | 2023 – 2024 |
| Transactions analysées | 1 847 |
Prix au m²
| Indicateur | Valeur |
| Prix moyen | 9 420 €/m² |
| Prix médian | 9 150 €/m² |
| Prix minimum | 4 200 €/m² |
| Prix maximum | 18 900 €/m² |
Données fictives à titre illustratif — le rapport réel utilise les transactions DVF de votre commune
Le HTML à coller dans Make
Copiez ce template dans le champ Body du module Gmail (activez Content type → HTML). Les variables {{...}} sont directement compatibles Make — remplacez les numéros de node si votre ordre diffère.
Chargement…
Variables : {{1.fields.`...`}} = champs Tally (node 1 direct) · {{7.nb_transactions}}, {{7.prix_moyen}}… = statistiques du node 7
Pièges courants et comment les éviter
Cinq erreurs fréquentes lors de la mise en place de ce scénario — et leur correction.
-
Code INSEE invalide ou absent
L'API DVF retourne un tableau
Vérifiez le code sur insee.fr avant de tester. Paris =results[]vide. Le scénario s'exécute sans erreur mais aucun email n'est envoyé. Le problème est silencieux et difficile à diagnostiquer sans inspecter les bundles Make.75056, Lyon =69123, Marseille =13055. -
Surface nulle sur toutes les transactions filtrées
Le filtre du node 5 élimine toutes les entrées (surface = 0). L'Array Aggregator reçoit un tableau vide. La division dans node 7 produit une erreur ou une valeur
Testez d'abord avec une grande ville sur une période récente (2022–2024) — les transactions y ont presque toujours une surface renseignée.NaN. L'email n'est pas envoyé. -
Webhook Tally non connecté
Le scénario ne se déclenche jamais. Make reste en attente indéfinie. Aucune erreur visible dans le dashboard Make.
Dans Tally : Integrations → Webhooks — vérifiez que l'URL Make est enregistrée. Soumettez le formulaire une fois pour que Make reçoive la structure et reconnaisse les champs. -
Dropdown Tally retourne un tableau, pas une chaîne
Sans le
Vérifiez que la formule du node 2 utilise bienfirst()dans la formule du node 2, la variabletype_localvaut["Appartement"]au lieu de"Appartement". L'API DVF ne reconnaît pas ce format et retourne 0 résultat.{{first(1.fields["Type de bien"])}}— lefirst()extrait la valeur du tableau. -
page_size trop bas — statistiques biaisées
Par défaut, l'API DVF pagine à 100 résultats. Si vous omettez le paramètre
Toujours inclurepage_size=500, vous n'obtenez que les 100 premières transactions, ce qui fausse les médianes et les extremums.page_size→500dans les Query String params du node HTTP (étape 3 du node 3).
Construisez ce type d'automatisation avec votre équipe
Ce workflow illustre ce qu'il est possible de mettre en place avec Make en quelques heures de travail. Automa-consulting accompagne les entreprises qui souhaitent construire leurs propres automatisations — sur leur propre compte, avec leurs propres données, en toute autonomie.
Audit de vos process
Identification des tâches répétitives les plus automatisables dans votre contexte précis.
Construction d'un scénario sur-mesure
Nous construisons avec vous un workflow Make adapté à vos outils et à vos données.
Formation pratique Make
Sessions de travail en direct : logique des modules, gestion des données, débogage, bonnes pratiques.
Documentation et autonomie
Chaque scénario livré est documenté. Vos équipes repartent avec les clés pour faire évoluer les systèmes seules.
Missions sur-mesure · À distance · Bureaux d'études, PME et services techniques
Soumettre une demande d'analyse
Renseignez les caractéristiques du bien pour lancer l'analyse. Si des transactions DVF correspondent à vos critères, un rapport vous sera envoyé à l'adresse indiquée dans les 2 minutes suivant la soumission.
Code INSEE commune — Il s'agit du code officiel à 5 chiffres qui identifie chaque municipalité française. Un code absent ou incorrect empêchera l'interrogation de l'API DVF et aucun rapport ne sera envoyé. Exemples : Paris 75056 · Lyon 69123 · Marseille 13055 · Bordeaux 33063. Vous pouvez retrouver ce code sur insee.fr.