Demandes et visites
Comment le formulaire de contact et les demandes de visite du site arrivent à l'agence, comment l'équipe les traite dans le tableau de bord, et les limites qui gardent les formulaires propres.
Pour le pack Full Stack
Comment une demande arrive à l'agence
| Sur le site | Dans le tableau de bord |
|---|---|
| Le formulaire de contact | Une demande, marquée comme contact, ou comme question quand elle a été envoyée à propos d'un bien |
| Une demande de visite sur une page de bien | Une demande de visite, avec derrière elle une demande marquée comme visite |
- Chacune notifie en direct chaque admin qui peut voir les demandes ou les visites, et arrive dans la page Demandes ou Visites du tableau de bord.
- Le visiteur voit une confirmation sur la page : une demande de visite affiche sa référence et reste en attente de confirmation jusqu'à ce que l'agence la confirme.
- Rien n'est envoyé par e-mail, ni au visiteur ni à l'agence : le template n'a pas de service d'e-mail. Un développeur peut en ajouter un à côté de la notification.
Demandes
| Statut | Signification |
|---|---|
| Nouvelle | Vient d'arriver. Chaque demande commence ici. |
| Contactée | L'agence a répondu. |
| Qualifiée | Un acheteur ou locataire sérieux. |
| Clôturée | Terminée, quel que soit le résultat. |
- La page Demandes filtre par statut et propose une recherche, dix par page, à côté de la demande sélectionnée : son bien, les coordonnées du visiteur et ce qu'il a demandé (acheter ou louer, zone, budget, message).
- Le panneau de détail change le statut et garde une note interne, jusqu'à 2000 caractères, que le visiteur ne voit jamais.
- Les demandes ne peuvent pas être supprimées : clôturez celles que vous avez terminées.
Visites
| Statut | Signification | Étapes suivantes |
|---|---|---|
| Demandée | Envoyée depuis le site, à l'heure souhaitée par le visiteur | Confirmer, ou annuler |
| Confirmée | L'agence a convenu d'une heure | Confirmer de nouveau à une autre heure, terminer, ou annuler |
| Terminée | La visite a eu lieu | Aucune |
| Annulée | Elle n'aura pas lieu | Aucune |
- La page Visites a un onglet par statut avec ses nombres. Les visites demandées sont listées en commençant par la plus proche, les confirmées en commençant par le prochain rendez-vous.
- Confirmer garde l'heure souhaitée par le visiteur, ou fixe une autre date et heure dans le fuseau horaire de l'agence, toutes les demi-heures de 08:00 à 20:00.
- Chaque visite garde une note interne de 500 caractères au maximum. Les visites ne peuvent pas être supprimées : annulez celles qui n'auront pas lieu.
- Chaque heure est affichée et saisie à l'heure de l'agence,
Asia/Dubai, quelle que soit l'horloge de l'ordinateur. Le site propose de 09:00 à 18:00 et refuse une heure à moins d'une heure d'avance.
Garder les formulaires propres
- Chaque adresse peut envoyer cinq formulaires de contact et cinq demandes de visite en dix minutes ; la suivante est refusée avec un message invitant à attendre. Les compteurs vivent dans la mémoire de l'API.
- Un champ caché piège les robots : un envoi qui le remplit reçoit la réponse habituelle et n'est stocké nulle part.
- Chaque envoi porte un jeton à usage unique : un double clic ou un renvoi stocke donc une demande, pas deux.
- Derrière un reverse proxy, définissez
TRUST_PROXY=1dans le.envde l'API, sinon chaque visiteur partage le quota du proxy.
Qui peut faire quoi
| Permission | Autorise |
|---|---|
leads.view | Lire les demandes, et être notifié des nouvelles |
leads.edit | Changer le statut et la note d'une demande |
viewings.view | Lire les demandes de visite, et être notifié des nouvelles |
viewings.edit | Confirmer, terminer et annuler les visites, et leur note |
Les deux rôles du seed, Super Admin et Agent, détiennent les quatre.
Les routes derrière tout cela
POST /api/leads et POST /api/viewings sont publiques et répondent 201 avec un reçu : l'identifiant et l'heure de la demande, ou la référence, le statut et l'heure souhaitée de la visite avec son fuseau horaire. Le tableau de bord les lit et les met à jour avec GET et PATCH /api/leads/:id et /api/viewings/:id ; une visite évolue avec { "action": "confirm" }, complete ou cancel, et une action depuis le mauvais statut est refusée.