Goal
Recevoir, en quasi temps réel, chaque nouvelle annonce de vente d’appartement publiée sur n’importe quel portail dans un département donné — pour vous permettre d’être le premier à contacter le vendeur.Scénario
Vous êtes chasseur immobilier (ou app B2C de chasse). Vous voulez surveiller toutes les nouvelles publications d’appartements à l’achat dans le département 75 (Paris). Volume attendu : ~200-500 nouvelles annonces / jour selon la période. Vous devez aussi détecter, plus tard, les baisses de prix et les mises hors ligne sur ces mêmes annonces.Quand utiliser ADVERTS plutôt que PROPERTIES ? Les alertes ADVERT sont nécessaires si vous voulez :
- post-traiter les annonces / construire un pipeline de traitement interne (enrichissement, scoring, dédup custom)
- exposer vos propres APIs à vos utilisateurs finaux
- répliquer la BDD Fluximmo side-by-side
- recevoir 100 % des events de dépublication (créations, mises à jour de prix, mises hors ligne)
Étapes
1. Configurer un endpoint webhook qui ack en moins de 1 s
Le handler HTTP doit valider le header Smoke test depuis votre poste :Détails — politique de retry, SLO réponse, sécurité — sur /concepts/webhooks.
x-webhook-key, enqueuer le payload dans une file durable (SQS, RabbitMQ, Redis Streams), puis répondre 200. Aucun traitement métier synchrone — sinon Fluximmo timeout et retry, vous saturerez votre app.2. Créer l'alerte ADVERT (achat appartement, dpt 75)
Filtre Conservez l’
isOnline: true recommandé en production : vous ne recevez que des adverts actuellement publiées sur leur portail.flxId retourné : c’est la clé pour modifier l’alerte plus tard (étape 4) sans perdre l’historique.3. Recevoir le premier webhook (ALERT_MATCH_CREATED)
Dès qu’une nouvelle advert qualifiante est ingérée (~1 min après publication portail), Fluximmo POSTe le payload complet de l’advert sur Boucle d’extraction :
webhook_url. Pas de refetch nécessaire, contrairement aux alertes Properties.Structure type (shape canonique — cf. exemple webhook adverts) :for entry in body.data.created: for advert in entry.adverts: .... Mappez advert.flxId sur votre BDD comme clé d’idempotence — vous recevrez parfois le même match deux fois (retry).4. Étendre l'alerte aux events PRICE / REPUBLISHED / UNPUBLISHED — en PATCH
Une fois la première vague de matches digérée, étendez le tableau Les events arrivent désormais dans la branche
match avec ALERT_MATCH_ADVERT_EVENT.À faire : PATCH /v2/protected/adverts/search/alerts/{alertId} (modify in place).
À NE PAS faire : DELETE puis PUT d’une nouvelle alerte — vous perdez l’historique des adverts déjà matchées, donc plus aucun event sur ces annonces.data.updated[] du même webhook. Le payload updated ne porte que flxId, currentPrice, isOnline (DTO réduit) — vous dérivez côté client le type d’event en comparant avec votre état stocké : currentPrice.value change → PRICE, isOnline flip → REPUBLISHED ou UNPUBLISHED. Cf. Match types & cycle alerte.5. Backfill historique : demander la réception du passé sur le webhook
Une alerte ne match que ce qui est ingéré après sa création (
createdAt). Pour récupérer les annonces déjà au catalogue, écrivez à [email protected] en précisant :- Votre
clientId - Le
flxIdde l’alerte créée à l’étape 2 - La période de backfill souhaitée (ex. derniers 30 jours, derniers 6 mois)
- Le volume estimé que votre webhook peut absorber
advert.flxId.
