Webhook

Webhook CRM immobilier — synchronisation temps réel

Les webhooks permettent à un CRM immobilier de notifier instantanément le site web lorsqu'un bien est créé, modifié ou supprimé. Tour d'horizon des webhooks Ts-Immo.

Pull vs push

Pull = le site interroge périodiquement le CRM. Push = le CRM notifie le site dès qu'un changement a lieu. Le webhook est la forme classique du push.

Webhooks entrants — depuis le CRM vers Ts-Immo

Ts-Immo expose deux endpoints qui reçoivent les webhooks des CRM event-driven : Sweepbright et Whise.

CRMEndpointSignatureAlgo
SweepbrightPOST /v1/gateway/webhooks/sweepbright/{gatewayId}X-Hook-SignatureHMAC-SHA1
WhisePOST /v1/gateway/webhooks/whise/{gatewayId}X-Whise-SignatureHMAC-SHA256

CRM qui supportent les webhooks

  • Sweepbright — natif, événements granulaires (HMAC-SHA1)
  • Whise — natif (HMAC-SHA256)
  • Apimo et autres CRM — synchronisation périodique multi-quotidienne

Webhook sortant — Ts-Immo vers votre site

Le connecteur de sortie `WEBHOOK` de Ts-Immo permet de pousser le portefeuille normalisé vers un endpoint cible (votre Next.js par exemple) à chaque synchronisation. Configuration côté passerelle : `{ "url": "https://monsite.com/api/sync-webhook" }`. Le body est le bien normalisé Ts-Immo.

Cas d'usage Next.js — revalidation ISR à la demande

Sur un site Next.js, vous pouvez exposer une route /api/sync-webhook qui reçoit le webhook sortant Ts-Immo et appelle `revalidateTag()` ou `revalidatePath()` pour rafraîchir uniquement les pages concernées.

app/api/sync-webhook/route.ts
import { revalidateTag } from 'next/cache'
import { NextRequest, NextResponse } from 'next/server'

export async function POST(req: NextRequest) {
  const secret = req.headers.get('x-ts-immo-secret')
  if (secret !== process.env.TS_IMMO_WEBHOOK_SECRET) {
    return NextResponse.json({ error: 'unauthorized' }, { status: 401 })
  }
  const property = await req.json() // bien normalisé Ts-Immo (snake_case)
  revalidateTag('listings')
  revalidateTag(`listing:${property.id}`)
  return NextResponse.json({ revalidated: true })
}

Questions fréquentes

Comment sécuriser un webhook entrant ?+

Sweepbright signe en HMAC-SHA1 (header `X-Hook-Signature`), Whise en HMAC-SHA256 (header `X-Whise-Signature`). Ts-Immo vérifie la signature automatiquement.

Comment sécuriser le webhook sortant côté Next.js ?+

Définissez un secret partagé à passer en header (ex. `x-ts-immo-secret`) et vérifiez-le côté Route Handler avant de revalider.

Que se passe-t-il si mon site est down quand le webhook est envoyé ?+

Le connecteur sortant retente avec backoff. Le portefeuille sera de toute façon disponible au prochain pull via l'API REST.

Ready to connect your CRM?

Get started for free or contact us for a personalized Ts-Immo demonstration.

Webhook CRM immobilier — guide complet — Ts-Immo