Intégration Whise ↔ Next.js

Connecter Whise à Next.js

Construisez un site immobilier moderne avec Next.js qui se nourrit automatiquement des annonces de Whise. L'API REST Ts-Immo s'appelle depuis vos composants serveur, vos Route Handlers ou en ISR — pour des pages SSG ultra-rapides et un SEO optimal.

Pourquoi un site Next.js pour agence immobilière ?

Next.js est aujourd'hui le framework de référence pour construire des sites immobiliers performants. SSG / ISR / RSC garantissent un temps de chargement < 1 s, un SEO excellent et des coûts d'hébergement maîtrisés. Couplé à Ts-Immo et Whise, vous obtenez un site sur mesure entièrement piloté par votre CRM.

  • Pages SSG ou ISR (revalidation toutes les 10 minutes par défaut)
  • Composants serveur React (RSC) — aucune fuite de clé API côté client
  • JSON-LD `RealEstateListing` injecté automatiquement pour le SEO
  • Image optimization Next.js native sur les photos Ts-Immo

L'API REST Ts-Immo en bref

Ts-Immo expose une API REST JSON unifiée, indépendante de Whise. Vous interrogez toujours la même API quel que soit le CRM : si vous changez de logiciel un jour, votre site Next.js n'a pas besoin d'être modifié.

Récupérer la liste des biens
# Public — sans authentification
curl https://api.ts-immo.org/v1/gateway/public/properties/agence-cote-d-azur

# Client — avec API token
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://api.ts-immo.org/v1/gateway/properties

Exemple de réponse JSON

Format standard Ts-Immo
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "uri": {
      "fr": "agence-cote-d-azur/villa-4-pieces-vue-mer",
      "en": "agence-cote-d-azur/4-room-villa-sea-view"
    },
    "type": "house",
    "offer_type": "sale",
    "status": "available",
    "title": { "fr": "Villa 4 pièces vue mer", "en": "4-room villa sea view" },
    "bedrooms": 3,
    "financial": {
      "transaction": {
        "price": { "amount": 850000.00, "currency": "EUR" }
      }
    },
    "location": {
      "city": "Nice",
      "postal_code": "06000",
      "country": "France",
      "country_code": "FR"
    },
    "images": [
      { "url": "https://cdn.example.com/photo1.jpg", "ordinal": 0 }
    ]
  }
]

Mise en place dans un projet Next.js

Étapes recommandées pour intégrer Ts-Immo dans un projet Next.js (App Router).

  • Créer un compte sur https://dashboard.ts-immo.org et enregistrer la passerelle correspondant à votre CRM.
  • Récupérer la clé API Ts-Immo dans le tableau de bord.
  • Dans votre projet Next.js, créer un fichier .env.local avec TS_IMMO_API_KEY et TS_IMMO_API_URL.
  • Appeler l'API REST depuis les composants serveur (RSC), les Route Handlers ou via fetch côté serveur.
  • Mettre en cache les réponses avec next: { revalidate: 600 } pour des pages SSG/ISR ultra-rapides.

Composant serveur — liste des biens

Exemple complet d'un composant serveur Next.js qui consomme l'API Ts-Immo (donc indirectement Whise) avec ISR.

app/biens/page.tsx
// app/biens/page.tsx — Server Component
type Property = {
  id: string
  uri: { fr: string; en: string }
  type: 'apartment' | 'house' | 'land' | 'commercial' | 'parking' | string
  offer_type: 'sale' | 'rental' | 'auction' | string
  status: 'available' | 'sold' | 'rented' | string
  title: { fr: string; en?: string }
  bedrooms: number | null
  financial: { transaction: { price: { amount: number; currency: 'EUR' } } }
  location: { city: string; postal_code: string; country: string; country_code: string }
  images: { url: string; ordinal: number }[]
}

async function getProperties(agencySlug: string): Promise<Property[]> {
  const res = await fetch(
    `${process.env.TS_IMMO_API_URL}/v1/gateway/public/properties/${agencySlug}`,
    { next: { revalidate: 600 } }, // ISR : 10 minutes
  )
  if (!res.ok) throw new Error('Ts-Immo API error')
  return res.json()
}

export default async function BiensPage() {
  const list = await getProperties('mon-agence')
  return (
    <ul>
      {list.map((p) => (
        <li key={p.id}>
          {p.title.fr} — {p.location.city} —{' '}
          {p.financial.transaction.price.amount.toLocaleString('fr-FR')} €
        </li>
      ))}
    </ul>
  )
}

Configuration de Whise dans Ts-Immo

Configurer l'URL de webhook fournie par Ts-Immo dans le back-office Whise. La clé secrète est échangée automatiquement lors de la création de la passerelle.

ChampDescription
Client IDIdentifiant client fourni par Whise
Client SecretSecret client fourni par Whise
Webhook URLGénéré automatiquement par Ts-Immo

JSON-LD SEO pour chaque annonce

Ts-Immo recommande l'utilisation du schéma JSON-LD `RealEstateListing` (Schema.org) sur chaque page de détail. Le SDK Ts-Immo fournit un helper qui génère le JSON-LD à partir de l'objet Listing — voir le guide « API immobilière REST ».

Remontée des leads

Côté Next.js, créez un Route Handler `/api/lead` qui appelle l'endpoint `POST /v1/gateway/estimations` de Ts-Immo (avec un sous-objet `lead`). Les prospects sont persistés dans Ts-Immo et consultables via `GET /v1/gateway/leads`.

Questions fréquentes

Next.js Pages Router est-il supporté ?+

Oui. L'API REST Ts-Immo s'appelle via getStaticProps / getServerSideProps comme n'importe quelle API. L'App Router est néanmoins recommandé (RSC + ISR + streaming).

Quelle stratégie de cache pour les listings Whise ?+

Whise étant synchronisé en temps réel, on peut utiliser une revalidation courte (1 à 5 min) ou un webhook on-demand revalidation depuis Ts-Immo vers Next.js.

Peut-on filtrer / paginer les annonces ?+

Oui. L'API REST Ts-Immo supporte les paramètres suivants : type, category, city, postalCode, minPrice, maxPrice, minSurface, maxSurface, rooms, page, perPage, sort.

Comment gérer les images Next.js ?+

Utilisez <Image /> de next/image avec les URLs CDN Ts-Immo (cdn.ts-immo.org). Pensez à ajouter le domaine dans next.config.ts (remotePatterns).

Le SDK est-il typé en TypeScript ?+

Oui. Un SDK TypeScript est en cours de publication (npm install @ts-immo/sdk). En attendant, l'API REST est entièrement documentée et facile à typer manuellement.

Faut-il un compte Whise actif ?+

Oui. Vous restez client Whise pour la gestion métier. Ts-Immo est uniquement la passerelle qui amène les données Whise vers votre site Next.js.

Prêt à connecter votre CRM ?

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

Connecter Whise à Next.js — API REST temps réel — Ts-Immo