Guide technique

Webhooks immobiliers : architecture et bonnes pratiques

Un webhook est le moyen le plus efficace de propager une modification d'annonce depuis un CRM vers un site, en temps réel. Voici comment ça fonctionne, comment sécuriser, comment gérer les retries, et comment Ts-Immo utilise les webhooks pour les CRM event-driven (Sweepbright, Whise).

Qu'est-ce qu'un webhook ?

Un webhook est un appel HTTP sortant émis par un système A quand un événement se produit, et reçu par un système B. C'est l'inverse du polling : c'est la source qui notifie la destination, dès que l'événement a lieu.

Pourquoi le webhook bat le polling

  • Latence quasi-nulle : la propagation est instantanée
  • Pas de charge inutile : aucune requête tant qu'il n'y a pas d'événement
  • Mieux pour le SEO : Google reçoit les nouveaux biens immédiatement
  • Mieux pour la conversion : les biens premium se vendent vite

Sécurité : signer le payload

Un webhook public est une porte d'entrée potentielle. Pour s'assurer que l'appel vient bien du CRM, on signe le payload avec une clé secrète partagée (HMAC-SHA256 typiquement).

Vérification HMAC-SHA256 (Node.js)
import crypto from 'crypto'

export function verifyWhiseSignature(
  payload: string,
  signature: string,
  secret: string,
): boolean {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex')
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature),
  )
}

Idempotence

Un webhook peut être réémis (par le CRM en cas d'erreur) ou rejoué (par malveillance). Il faut traiter les événements de manière idempotente : si l'événement avec id X arrive deux fois, on ne fait l'action qu'une fois.

  • Stocker les event_id reçus dans une table
  • Refuser silencieusement les doublons
  • Conserver l'historique pour audit

Retries et dead-letter

Quand votre endpoint est temporairement indisponible, le CRM ne doit pas perdre l'événement. Bonne pratique : retry exponentiel (1 min, 5 min, 30 min, 2h, 12h, 24h) avec dead-letter en cas d'échec définitif.

Ts-Immo et les webhooks

Ts-Immo expose un endpoint /v1/gateway/webhooks/{provider}/{gatewayId} qui reçoit les événements Sweepbright et Whise, vérifie la signature, déduplique et propage vers vos sites WordPress / Next.js connectés.

Questions fréquentes

Tous les CRM supportent-ils les webhooks ?+

Non — seuls les CRM modernes event-driven (Sweepbright, Whise) supportent nativement les webhooks. Pour les autres, Ts-Immo simule le comportement via polling à fréquence configurable.

Mon site WordPress est-il capable de recevoir des webhooks ?+

WordPress n'a pas besoin de recevoir directement les webhooks — c'est Ts-Immo qui les reçoit puis pousse la mise à jour vers WordPress via le plugin Ts-Immo Sync.

Mots-clés associés

webhookhmacevent-drivensweepbrightwhise

Prêt à connecter votre CRM ?

Démarrez gratuitement ou contactez-nous pour une démonstration personnalisée de Ts-Immo.

Webhook immobilier — architecture et bonnes pratiques — Ts-Immo