Stream EstateStream Estate
Concepts

Alert

Recherche sauvegardée avec livraison webhook

Une Alert est une recherche sauvegardée qui produit des AlertEvents quand de nouveaux listings correspondent. Les événements sont livrés via une EventDestination selon les rules configurées.

De l'ingestion à la notification

Quand un listing ingéré correspond à une alerte, il produit un AlertEvent. Chaque event peut déclencher une ou plusieurs notifications, livrées à la destination configurée.

Listingingéré
correspond à
Alert
produit
AlertEvent
déclenche
Notification
livrée à
Destinationemail · webhook

Rattacher une destination

Deux options :

  • À la volée — passez webhookUrl dans POST /alerts. Si une destination avec cette URL existe déjà sur votre compte, elle est réutilisée, sinon elle est créée. Le plus simple pour démarrer, ou pour donner une URL différente à chaque alerte.
  • Depuis une destination existante — créez-la via POST /account/event-destinations, puis référencez-la par eventDestination. Pratique quand plusieurs alertes partagent la même destination, que vous gérez alors en un seul endroit.
POST /alerts
{
  "name": "T3 Bordeaux",
  "notificationDestination": { "webhookUrl": "https://your-server.com/webhooks/alerts" },
  "notificationConfig": { "rules": [{ "eventType": "NEW_MATCH" }] }
}

La réponse ne contient le signingKey que s'il s'agit de la première destination webhook du compte. Stockez-le, il n'est jamais renvoyé ensuite.

Schéma Alert (réponse)

ChampTypeDescription
idstring (uuid)Identifiant, lecture seule
namestring | nullNom de l'alerte, affiché dans le tableau de bord
enabledbooleanAlerte active (une alerte désactivée ne notifie pas mais reste indexée)
criteriaCriteriaNode | nullArbre récursif de critères (même forme que POST /properties)
notificationConfigAlertNotificationConfigDTO | nullRègles de notification (voir ci-dessous)
eventDestinationstring (IRI) | nullDestination liée, ex. /account/event-destinations/{id} (lecture seule)
signingKeystring | nullClé HMAC pour signer les webhooks, préfixée whsec_. Renvoyée une seule fois, quand la requête crée la première destination webhook du compte. Voir Notifications.
createdAt / updatedAtstring | nullISO 8601

Schéma de requête (AlertRequestDTO)

Le corps de POST /alerts et PUT /alerts/{uuid} accepte :

ChampTypeDescription
namestring | nullOptionnel ; un nom est généré à partir des critères s'il est absent. Max 255 caractères.
enabledbooleanDéfaut true.
criteriaCriteriaNode | nullArbre récursif — voir Filtrage. Omettez pour faire correspondre toutes les properties.
notificationConfigAlertNotificationConfigDTO | nullRègles eventType + seuils.
notificationDestinationNotificationDestination | nullDestination — fournissez un seul des champs ci-dessous. Omettez pour utiliser la destination par défaut du compte au moment de la livraison.

NotificationDestination — oneOf

ChampTypeEffet
eventDestinationstring (IRI)Lie une EventDestination existante, ex. /account/event-destinations/{id}.
webhookUrlstringCrée ou réutilise une EventDestination webhook pour cette URL.

Règles de notification (AlertNotificationRuleDTO)

Chaque règle cible un eventType et peut être conditionnée par un seuil :

eventTypeDéclencheur
NEW_MATCHUne property correspond pour la première fois
ADDITIONAL_LISTINGUn listing supplémentaire est associé à une property qui correspondait déjà
PRICE_CHANGEDLe prix change (voir seuils ci-dessous)
ANY_ATTRIBUTE_CHANGEDUn attribut quelconque change
LISTING_EXPIREDUn listing expire
LISTING_REACTIVATEDUn listing précédemment expiré est réactivé

Seuils pour PRICE_CHANGED :

  • thresholdPercentage — se déclenche si la variation dépasse X %
  • thresholdMinPercentage / thresholdMaxPercentage — plage de variation
  • thresholdDirectionINCREASE ou DECREASE
  • enabled — boolean

Endpoints

  • POST /alerts — créer (réponse contient signingKey si elle crée la première destination webhook du compte)
  • GET /alerts — lister
  • GET /alerts/{uuid} — détail
  • PUT /alerts/{uuid} — mettre à jour
  • DELETE /alerts/{uuid} — supprimer
  • GET /alerts/{alertUuid}/events — AlertEvents produits par cette alerte
  • GET /alerts/{alertUuid}/events/{uuid} — détail d'un event

Voir aussi : Notifications pour EventDestination et la livraison.

Version 0.1.116Dernière mise à jour

Sur cette page