Intégration Ubiflow ↔ Next.js

Connecter Ubiflow à Next.js

Construisez un site immobilier moderne avec Next.js qui se nourrit automatiquement des annonces de Ubiflow. 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 Ubiflow, 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 Ubiflow. 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 Ubiflow) 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 Ubiflow dans Ts-Immo

Activer un export FTP/SFTP dans Ubiflow et renseigner les identifiants dans Ts-Immo.

ChampDescription
TypeSFTP (recommandé) ou FTP
Hôteex. ftp.example.com
Port22 (SFTP) ou 21 (FTP)
IdentifiantNom d'utilisateur fourni par Ubiflow
Mot de passeMot de passe FTP fourni par Ubiflow
Chemin/export/annonces.xml (ou équivalent)
Archive zipOui / Non selon le format

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 Ubiflow ?+

Pour Ubiflow (sync plusieurs fois par jour), une revalidation ISR de 10 à 30 minutes est largement suffisante.

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 Ubiflow actif ?+

Oui. Vous restez client Ubiflow pour la gestion métier. Ts-Immo est uniquement la passerelle qui amène les données Ubiflow 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 Ubiflow à Next.js — API REST temps réel — Ts-Immo