Une réservation SLOXO a 4 statuts possibles stockés dans la base, avec leur libellé d'affichage :
| Code | Libellé | Couleur badge |
|---|---|---|
| `pending` | En attente | jaune |
| `confirmed` | Confirmée | bleu clair |
| `cancelled` | Annulée | rose |
| `completed` | Terminée | gris |
Tu vois ces statuts partout : Réservations, Calendrier, Tournée du jour, et l'historique.

Statut "En attente" (pending)
Quand : la réservation vient d'être envoyée depuis ton lien.
Visible côté pro : badge jaune "En attente". Un point rouge clignotant apparaît sur l'entrée Mon agenda du menu (RDV sur mobile), avec un compteur (1, 2, 9+).
Action attendue : tu dois cliquer ✓ Accepter ou ✕ Refuser.


Conséquences :
- Un email "Demande de RDV envoyée" a été envoyé côté client(e)
- Si ton Google Agenda est connecté, un event marqué "[En attente]" est créé (il devient un vrai RDV à la confirmation)
- ⏳ Sans réponse de ta part, la demande s'annule automatiquement 2 h avant le RDV (pour ne laisser personne sans réponse)
Statut "Confirmée" (confirmed)
Quand : tu as cliqué Accepter.
Visible côté pro : badge bleu clair "Confirmée".
Conséquences :
- Le/La client(e) reçoit un email de confirmation (template "confirmed")
- Le RDV apparaît dans Tournée du jour au moment voulu
- Sync Google Calendar : event créé/mis à jour avec le statut confirmé
- Si c'est ton 1er RDV confirmé : événement `first_confirmed` enregistré (score Démarrer +10 pts)
- Si c'est ton 3e : événement `three_confirmed` (+10 pts)
Statut "Annulée" (cancelled)
Quand :
- Tu as cliqué Refuser sur une demande pending
- Tu as cliqué Annuler sur un RDV confirmé
- Le/La client(e) a annulé via le lien dans son email
- Annulation automatique : une demande En attente non traitée bascule en annulée 2 h avant le RDV (raison `auto_2h`, email `cancelled_auto`)
Conséquences :
- Email envoyé selon la source : `cancelled_by_client`, `cancelled_by_provider`, `cancelled_auto`
- Le créneau est libéré (nouvelle réservation possible)
- Sync Google Calendar : event supprimé ou marqué annulé
Statut "Terminée" (completed)
Quand : automatiquement. Un cron nocturne (~4h du matin) bascule en Terminée tous les RDV Confirmés dont la date est passée (`completed_via='auto_cron'`).
Visible côté pro : badge gris "Terminée" dans l'Historique.
Conséquences : c'est un statut historique, pas d'action automatique. Sert au calcul du ROI et à la pertinence des statistiques.
Cycle de vie typique
- Cas standard : `pending` → `confirmed` → (RDV honoré) → `completed`
- Refus : `pending` → `cancelled`
- Annulation : `pending` → `confirmed` → `cancelled` (par le/la client(e) ou par toi)
Questions fréquentes
Mes RDV "Annulés" restent-ils dans ma liste ? Oui, dans la section Historique en bas de la page Réservations (limité aux 50 plus récents).
Existe-t-il un statut "No-show" (client(e) non venu(e)) ? Pas en natif. Tu peux annuler manuellement après coup et noter dans l'historique. Pas d'indicateur dédié.
Mon ROI compte-t-il les RDV annulés ? Le ROI est calculé sur les RDV confirmés et terminés (`confirmed` + `completed`). Les annulés et En attente sont exclus.
Quel statut voit ton/ta client(e) ? Un email part à chaque transition. Sur le lien d'annulation/confirmation, le statut courant s'affiche.
Le passage automatique à `completed` est-il fait par SLOXO ? Oui, automatiquement : un cron nocturne (~4h) bascule chaque Confirmé à date passée en Terminé. Tu n'as rien à marquer à la main (tu peux quand même le faire d'un tap via Marquer fait depuis ta Tournée).