Documentation Index
Fetch the complete documentation index at: https://doc.fluximmo.io/llms.txt
Use this file to discover all available pages before exploring further.
Cas concret
Vous êtes chasseur immobilier basé à Paris. Vous recherchez des appartements T2-T3 dans le 11e/12e arrondissement, budget 350-650k€, pour le compte de mandats clients. Ce playbook montre comment recevoir en temps réel les nouvelles publications correspondant à ce profil et déclencher vos workflows internes (fiche mandat, notif au client, prise de RDV visite).Goal
Faire remonter, dans l’app interne du chasseur, les nouveaux appartements à l’achat sur Paris correspondant à des critères avancés combinés (arrondissement, budget, surface, DPE) — sans monter une infra webhook lourde.Scénario
Un chasseur (ou cabinet de chasse / gestion de patrimoine) gère un petit nombre de mandats actifs (quelques dizaines, pas des milliers) — typiquement des recherches achat appartement Paris intra-muros. Pour chaque mandat, il a une fiche client avec des critères précis (arrondissements, T2/T3, budget, DPE). Il veut que son app interne pousse une notif sur la fiche dès qu’un bien matche, sans poller l’API et sans devoir maintenir une queue + worker en production. C’est exactement le créneau des alertes properties : volume faible, payload directement consommable, infra réceptrice minimale.Pourquoi properties (et pas adverts)
Pour ce cas d’usage :| Properties | Adverts | |
|---|---|---|
| Volume webhook | Faible — 1 webhook par nouvelle property qualifiée | Élevé — 1 webhook par publication / republication / changement de prix |
| Payload reçu | IDs only (flxId) — refetch via GET /properties/{flxId} | Objet complet inline |
| Dédup côté serveur | Oui (1 property = 1 bien réel, multi-portails fusionnés) | Non — chaque source compte |
| Infra receveur minimale | Endpoint stateless + BDD | Endpoint + queue durable + worker async obligatoires |
| Adapté à | App interne chasseur immo, CRM agence, B2C léger | Marketplace, scraping replica, price tracking temps réel |
Étapes
1. Modéliser le mandat client → critères
Côté app interne, chaque mandat porte (au minimum) :
- Un identifiant client / mandate (ex.
Mandat #42 — Mme Dupont) - Une zone : arrondissements parisiens en
postalCode(ex.75011,75012) — voir Recherche géographique pour les autres modes (inseeCode,geoBoundingBox,geoDistance) - Un budget
[priceMin, priceMax](typiquement 350-650k€ pour un T2-T3 Paris intra-muros) - Une surface habitable
[surfaceMin, surfaceMax](ex. 45-80 m² pour T2-T3) - Un nombre de pièces minimum (ex.
roomCount.min: 2) - Optionnel : DPE max (
epcEnergy≤ D pour passoires hors-mandat), type (CLASS_FLAT)
filterProperty Fluximmo est direct (cf. étape 2). Conserver côté app : mandate_id ↔ alert_flxId (renvoyé par Fluximmo à la création).2. Créer une alerte properties par mandat
PUT /v2/protected/properties/search/alerts. Garder match: ["ALERT_MATCH_CREATED"] (combo standard recommandé — ALERT_MATCH_MERGED multiplie le volume sans valeur ajoutée pour ce cas d’usage). Filtrer meta.isTotallyOffline = false pour ne pas être notifié sur des biens définitivement retirés.flxId retourné dans la fiche mandat. C’est lui qui sert à modifier ou désactiver l’alerte plus tard sans perdre l’historique des matches.Plusieurs mandats d’un coup ? Utiliser
PUT /v2/protected/properties/search/alerts/many avec un body { "alerts": [SaveSearchPropertiesPayloadDto, ...] } pour seeder N alertes en un appel — pratique au chargement initial d’un portefeuille de mandats.3. Recevoir le webhook (IDs only) et refetch le détail
Pour les alertes properties, le payload webhook ne contient que des flxIds (chaînes nues dans
data.created[].properties / data.updated[].properties) — pas l’objet complet. Vous refetchez ensuite chaque property via GET /v2/protected/properties/{flxId}, ou en bulk via POST /v2/protected/properties/_many si vous batchez plusieurs IDs.Pour ce cas d’usage à faible volume, un handler stateless suffit — pas besoin de queue + worker comme pour les alertes adverts. Détails (signature x-webhook-key, retry policy, sécurité) sur /concepts/webhooks.Idempotence. Un même match peut être livré 2 fois (retry après timeout réseau). Dédupliquer avec une clé stable comme
(mandate_id, propertyFlxId).4. Cycle de vie du mandat (PATCH / désactiver / réactiver)
| Événement métier | Endpoint |
|---|---|
| Le client affine ses critères (élargit la zone, baisse le budget…) | PATCH /v2/protected/properties/search/alerts/{alertId} |
| Le mandat est mis en pause | DELETE /v2/protected/properties/search/alerts/{alertId} (désactivation logique, pas suppression physique) |
| Reprise du mandat | GET /v2/protected/properties/search/alerts/{alertId}/activate |
| Audit / debug | GET /v2/protected/properties/search/alerts/{alertId} (config) — GET /v2/protected/properties/search/alerts/history/{alertId} (matches passés) |
DELETE puis recréer une alerte pour modifier des critères — vous perdez l’historique des properties déjà matchées sur cette alerte. Toujours PATCH.5. UI in-app : feed unifié multi-mandats
Côté app interne, deux vues complémentaires :
- Feed par mandat — liste des matches récents sur la fiche client, triée par date de match.
- Feed unifié — toutes les nouveautés cross-mandats du jour, pour le coup d’œil matinal du chasseur.
Architecture / flow
Pièges fréquents
Pour aller plus loin
- Property vs Advert — quand basculer vers adverts
- Recherche géographique —
postalCode,inseeCode,geoBoundingBox,geoDistance - Match types & cycle alerte — détail des events
- Webhooks — signature, retry, sécurité
- Créer une alerte properties — référence API
- Playbook adverts (gros volume)
- Suivre les changements de prix — pour brancher du price tracking par-dessus
Clé test gratuite — 1 semaine
Créez un compte sur my.fluximmo.io pour récupérer une clé API test gratuite (1 semaine, accès limité). Aucun paiement requis.

