Le parcours d'un(e) client(e) sur ton lien `sloxo.app/book/` se fait en quelques étapes. Aucun compte à créer, pas d'app à installer.

Étape 1 — Arrive sur ta page publique

Un(e) client(e) clique sur ton lien (Instagram bio, story, WhatsApp, SMS…) et arrive sur ta page `/book/` :

  • Image de couverture (si tu en as une)
  • Avatar + (logo) + Nom business + Métier + 📍 Ville
  • Bio courte (si renseignée)
  • Liste des prestations (par groupe si tu en as plusieurs)
  • Forfaits (combos de prestations) si tu en as
  • Portfolio "Réalisations" (si tu as uploadé des images)
Le téléphone et l'email ne sont pas affichés sur la page publique.

La page de réservation publique : couverture, nom, métier, ville et liste des prestations

Étape 2 — Choisit ses prestations ou un forfait

Elle compose Ma sélection : une prestation, plusieurs, ou un forfait (combo de prestations, auquel elle peut greffer des extras au tarif carte). Puis elle passe à la réservation. Tout se fait sur une seule page (progressive disclosure).

Pour le détail du parcours, voir Comment booker avec SLOXO.

Étape 3 — Choisit un créneau

Sur la page de réservation, un calendrier affiche les créneaux disponibles selon :

  • Tes horaires hebdomadaires (jours actifs + heures de travail + pause déjeuner)
  • Tes jours off / vacances
  • Tes événements Google Calendar synchronisés (si activé)
  • L'ajustement temps de la prestation (marge avant / après)
  • La marge de dépassement autorisée (si tu l'actives)
Si rien n'apparaît : voir Pourquoi mes créneaux n'apparaissent pas.

Étape 4 — Saisit ses coordonnées + adresse

Formulaire :

  • Prénom + Nom
  • Email
  • Téléphone
  • Adresse complète via autocomplete Google (rue, ville, code postal — coordonnées GPS récupérées)
  • Notes (optionnel, ex : "sonner à l'interphone Dupont")
L'adresse est validée en temps réel côté serveur (`/api/bookings/create`) :

  • Hors zone (au-delà de ton dernier palier de distance) → refus immédiat
  • Conflit horaire (autre RDV au même créneau) → refus
  • Service inactif ou inexistant → refus

Étape 5 — Confirme

Au clic sur Confirmer :

  1. Le RDV est créé en base avec statut `pending`
  2. Le/La client(e) reçoit un email "Demande envoyée" (template `pending`) avec son lien d'annulation
  3. Tu reçois la notification (point rouge sur Réservations + email pro)
Tu peux ensuite Accepter ou Refuser depuis ton dashboard.

Performances et cache

La page `/book/` est mise en cache 60 secondes (ISR — `revalidate = 60`). Tes modifications de profil/services sont visibles côté client(e) dans la minute qui suit.

L'OpenGraph image (preview Insta/WhatsApp) est générée dynamiquement avec ton nom, métier, ville, avatar et les 4 premiers services.

Questions fréquentes

La confirmation part-elle immédiatement ou après que je valide ? Email "Demande envoyée" immédiat (statut pending). Email "RDV confirmé" quand tu acceptes.

Combien de temps a-t-elle pour finaliser après avoir choisi un créneau ? Pas de timeout strict, mais le créneau peut être pris par quelqu'un d'autre entre temps si elle traîne. La création utilise une vérification anti-overlap au dernier moment.

Peut-elle réserver pour quelqu'un d'autre ? Oui, en mettant les coordonnées + adresse de la personne. Aucune restriction.

Le parcours fonctionne-t-il sur tous les appareils ? Oui : mobile, tablette, desktop. Optimisé en priorité pour mobile.

Mon lien est-il sécurisé ? La création de réservation passe par une route API (`/api/bookings/create`) qui valide tous les champs côté serveur. La page `/book` est en lecture seule pour le visiteur — aucune écriture client direct.