07 mars 2025·8 min de lecture

Application d'enregistrement des visiteurs avec badges QR : modèle de données et flux

Concevez le modèle de données et les flux d'une application d'enregistrement des visiteurs avec badges QR, alertes aux hôtes, questions de sécurité, journaux d'urgence et historique exportable.

Application d'enregistrement des visiteurs avec badges QR : modèle de données et flux

Quel problème le flux d'enregistrement doit résoudre

Un flux d'enregistrement n'est pas juste un livre d'or numérique. Il détermine qui est à l'intérieur, qui ils rencontrent et ce qu'il faut faire ensuite. Bien conçu, il garde l'accueil calme et produit des enregistrements fiables pour plus tard.

Les inscriptions papier échouent de manière prévisible : noms mal orthographiés ou illisibles, heures manquantes, personnes qui oublient de se déconnecter. Une feuille sur un comptoir peut aussi exposer des informations privées parce que n'importe qui peut voir les entrées précédentes. Et quand la situation évolue vite (un hôte coincé en réunion, un visiteur répondant à une question de sécurité avec un drapeau rouge), le personnel finit par courir après les gens par téléphone.

Un bon résultat est simple : l'enregistrement prend moins d'une minute, le badge est clair et scannable, et l'hôte reçoit la bonne alerte sans être spammé. Chaque visite devient un enregistrement propre de qui, quand, où, pourquoi et quelles réponses ont été données, afin que vous puissiez l'exporter pour des audits ou des enquêtes.

Avant de concevoir quoi que ce soit, verrouillez le périmètre. La plupart des équipes commencent avec quelques types de visite : visiteurs sur site, sous-traitants (souvent avec des étapes de sécurité supplémentaires), livraisons (parfois sans badge, mais avec un horodatage), et entretiens (avec des besoins de confidentialité accrus).

Décidez aussi où l'expérience se situe. Une tablette kiosque est idéale pour la rapidité et la cohérence. Une application web pour réceptionniste est meilleure pour les exceptions, corrections et réimpressions. Une option mobile peut aider les hôtes ou la sécurité à vérifier des check-ins QR loin du bureau.

Rôles, permissions et événements à tracer

Une application d'enregistrement des visiteurs vit ou meurt par deux choses : des rôles clairs et une piste d'événements propre. Si l'un ou l'autre est flou, vous aurez des alertes manquantes, des exports désordonnés et des logs en qui personne ne fait confiance.

Rôles à prévoir

Gardez les rôles simples au départ :

  • Visitor : saisit ses propres informations et répond aux questions, mais ne peut pas voir les autres visites.
  • Host : voit les visites qui lui sont assignées, accuse réception des arrivées et peut demander des actions comme une escorte.
  • Receptionist (front desk) : crée des visites, corrige les fautes évidentes lors de l'enregistrement, réimprime des badges et effectue les check-outs.
  • Security : voit qui est présent sur site, gère les appels d'urgence et consulte les notes d'incident.
  • Admin : gère les sites, les politiques et les exports, y compris les règles de rétention.

Les frontières de permission sont particulièrement sensibles autour des données personnelles et des rapports. Décidez tôt qui peut voir les numéros de téléphone, les informations d'identité ou les photos de visiteurs, et qui peut exporter l'historique des visiteurs. Une règle courante : la réception gère le flux, la sécurité voit la présence actuelle sur site, et seuls les admins peuvent exporter l'historique complet.

Événements qu'il faut toujours enregistrer

Pensez en termes d'événements, pas seulement d'une seule ligne "visit" modifiée dans le temps. Ce sont les moments dont vous aurez besoin plus tard pour des audits et diagnostics :

  • Check-in completed (horodatage, appareil, site)
  • Badge issued (ID du badge, valeur QR, imprimé par)
  • Host notified (canal utilisé, statut de livraison)
  • Safety answers submitted (quel jeu de questions ou quelle version a été affichée)
  • Check-out (qui a fait le checkout, comment, quand)

Rendez les événements critiques auditable et append-only (check-in, notification, check-out). Autorisez des éditions limitées uniquement sur les champs souvent erronés (orthographe du nom, entreprise), et enregistrez ce qui a changé et qui l'a modifié.

Modèle de données central : visiteurs, visites, badges et sites

Un système fiable commence par un modèle propre. L'idée clé est de séparer la personne de l'événement de sa venue. Un visiteur récurrent reste un enregistrement, tandis que chaque arrivée devient une nouvelle visite.

Commencez par deux tables centrales : Visitors et Visits.

  • Un Visitor est la personne (nom, téléphone, email, entreprise, photo optionnelle ou note d'identité).
  • Une Visit est une occurrence unique (date, motif, qui ils rencontrent, où ils vont).

Un Visitor peut avoir plusieurs Visits.

Ajoutez Hosts et Sites pour que vos logs correspondent à l'organisation. Les Hosts sont des employés ou locataires qui reçoivent des alertes. Les Sites représentent des emplacements physiques (HQ, Entrepôt A). Si vous avez besoin de plus de détail plus tard, vous pouvez ajouter des zones (lobby, étage, zone sécurisée) sans casser les bases.

Les tables réellement nécessaires

Gardez-le compact :

  • Visitors
  • Visits
  • Hosts
  • Sites
  • Badges
  • Devices (kiosk/tablette/imprimante)

Les badges doivent être assignés à une Visit, pas en permanence à un Visitor. Cela évite la confusion quand le stock de badges est réutilisé, perdu ou imprimé deux fois.

Statuts et horodatages qui disent la vérité

Les visites ont besoin d'horodatages et d'un statut qui correspond à ce que le personnel dit à voix haute. Conservez au minimum created_at, checked_in_at, checked_out_at, et canceled_at (ou un flag cancel). Associez cela à un statut clair comme scheduled, arrived, checked_in, checked_out, no_show, canceled.

Exemple : quelqu'un est prévu à 10:00, arrive à 9:55 (statut : arrived), puis complète les questions et reçoit un badge QR (statut : checked_in). S'il part sans se déconnecter, vous avez quand même checked_in_at et vous pourrez corriger plus tard avec une règle explicite.

Questions de sécurité : comment modéliser questions et réponses

Les questions de sécurité n'aident que si vous pouvez faire confiance à l'historique plus tard. Une erreur courante est de stocker les réponses sur le profil visiteur, ce qui écrase la dernière réponse. Traitez les questions comme des templates, et les réponses comme des enregistrements par visite, afin que chaque check-in conserve son propre instantané.

Une structure simple fonctionne bien :

  • Un Question Template définit ce que vous demandez.
  • Un Visit Answer capture ce qui a été répondu pendant une visite spécifique.

Templates de questions vs réponses par visite

Gardez les templates stables et stockez le texte exact affiché (ou la version du template) avec la réponse. Si vous changez la formulation plus tard, les visites anciennes doivent toujours afficher ce que la personne a réellement vu.

Les jeux de questions vous permettent d'afficher des questions différentes selon le contexte : site, type de visiteur, plage horaire (règles temporaires), équipe de l'hôte ou langue.

Types de réponses et flags d'action

Prévoyez plus que oui/non. Les types communs incluent oui/non, texte court, signature, photo et téléversement de document (comme un certificat d'assurance). Stockez les métadonnées des fichiers (nom, type, horodatage) et qui les a collectés.

Ajoutez un flag « action required » sur le template, plus une règle du type « si la réponse est OUI, créer une alerte sécurité ». Exemple : « Avez-vous transporté un objet restreint ? » Si le visiteur répond oui, la visite peut passer à un état de revue et nécessiter une approbation avant l'impression du badge.

Alertes aux hôtes : déclencheurs, canaux et suivi

Construisez votre MVP d'enregistrement
Modélisez rapidement visiteurs, visites et badges avec un backend no-code et une UI pour borne.
Commencer

Une alerte hôte doit répondre rapidement à la question : « Dois-je agir maintenant ? » Cela signifie généralement un message court qui indique qui est arrivé, où, pourquoi et si une approbation est nécessaire.

Ce qui doit déclencher une alerte

Gardez les déclencheurs prévisibles pour que les hôtes leur fassent confiance :

  • Un invité s'enregistre à la réception
  • Un visiteur pré-enregistré a du retard au-delà d'un seuil (par exemple 10 minutes)
  • Une réponse de sécurité crée un flag sécurité
  • Une arrivée VIP (souvent avec une priorité différente)

Rendez les déclencheurs pilotés par les données : liez-les au site, au type de visite et aux préférences de l'hôte pour ne pas coder en dur des cas particuliers.

Canaux, déduplication et suivi

Utilisez plusieurs canaux, mais ne déclenchez pas tout à chaque fois. Un bon défaut est un canal principal, plus une indication à l'accueil si la livraison échoue.

Gardez les règles simples :

  • Dedupe key : (visit_id + trigger_type + host_id) sur une courte fenêtre
  • Priorité : normal vs urgent (urgent peut essayer un second canal)
  • Heures calmes : respecter les horaires de travail par hôte ou site

Tracez chaque notification comme son propre enregistrement pour pouvoir auditer ce qui s'est passé. Stockez le statut (sent, delivered, failed), les détails d'erreur, le nombre de tentatives et la temporisation de retry. Si un message échoue, basculez sur une action simple du type « Appeler l'hôte » affichée à la réception.

Journaux d'urgence : capturer une présence sur site fiable

Lancer une borne et un tableau de bord
Déployez une borne tablette et une application web réceptionniste à partir du même modèle de données.
Construire des apps

Un journal d'urgence n'est pas la même chose qu'un enregistrement visiteur normal. C'est un instantané horodaté sur lequel vous pouvez compter pendant un exercice, une évacuation ou un incident réel, même si quelqu'un oublie de se déconnecter par la suite.

Définissez les types d'entrée et les règles en amont. Un exercice peut être planifié et lancé par le personnel. Un incident peut être créé par des utilisateurs autorisés, puis confirmé par un responsable sécurité. Liez chaque événement d'urgence à un site (et éventuellement une zone) pour pouvoir répondre : « Qui est censé être ici maintenant ? »

Pour chaque entrée du journal d'urgence, capturez les champs minimaux qui le rendent fiable :

  • Type d'événement, site et zone optionnelle
  • Heure de début, heure de fin et statut (open, closed)
  • Qui était sur site au départ (visiteurs, sous-traitants, employés)
  • Accusés de réception (qui a confirmé les comptes, quand et depuis quel appareil)
  • Identité de l'acteur pour chaque changement (créé par, clos par, édité par)

Conservez ces enregistrements en append-only. Si quelqu'un corrige un nom ou marque une personne comme en sécurité, écrivez une nouvelle action horodatée plutôt que d'écraser les valeurs anciennes.

Le gain le plus rapide est un bouton « Liste actuelle des présents » qui récupère toutes les visites actives pour un site et gèle la liste dans l'événement d'urgence. Rendez-le facile à utiliser sous pression : vue grand format, export CSV/PDF et filtre par zone et « pas encore accusé ».

Pas à pas : le flux complet d'enregistrement et de départ

Le flux doit fonctionner pour les visiteurs sur place et pré-enregistrés, et laisser une piste claire : qui est arrivé, qui a approuvé, qui est encore sur site et quand ils sont partis.

Flux d'enregistrement (de l'invitation au badge)

Si possible, commencez avant l'arrivée du visiteur. La pré-inscription crée une Visit liée à une personne, un site, un hôte et une fenêtre horaire. Envoyez ensuite un QR lié à cette visite spécifique pour que la réception n'ait pas à deviner.

À la borne, le visiteur scanne le QR ou la réception recherche par nom, entreprise ou téléphone. Affichez une confirmation d'identité rapide (par exemple nom complet et entreprise) avant de poursuivre, pour éviter d'enregistrer le mauvais « Jean D. ».

Ensuite, collectez les questions de sécurité et les reconnaissances. Sauvegardez chaque réponse comme un enregistrement distinct avec horodatage et le libellé exact affiché.

Après validation des contrôles requis, émettez un badge et notifiez l'hôte. Le badge doit porter un token QR unique mappé à la Visit active, pas à la personne. Envoyez ensuite l'alerte hôte et enregistrez le statut de livraison, les retries et, si possible, la lecture ou l'accusé.

Flux de départ (y compris le checkout automatique)

Le checkout doit être tout aussi rapide : scannez le QR du badge, confirmez la visite et renseignez check_out_time.

Pour les oublis de checkout, utilisez une règle de fin de journée par site qui marque les visites comme auto-checked-out et journalise la raison. Cela rend les comptes d'urgence plus fiables.

Scénario d'exemple : visite d'un sous-traitant avec flag sécurité

Configurer les rôles et permissions
Définissez l'accès réceptionniste, hôte, sécurité et admin sans écrire de code.
Créer des rôles

Un sous-traitant nommé Jordan arrive 20 minutes en avance pour réparer une unité HVAC. À la réception, Jordan utilise une borne et scanne un code QR (ou en reçoit un si c'est la première visite). Le système crée une nouvelle Visit liée au site, à l'hôte attendu et à l'ID du badge.

Lors de l'enregistrement, Jordan répond à un court jeu de questions de sécurité. L'une demande : « Avez-vous effectué des travaux chauds au cours des dernières 24 heures ? » Jordan répond « Oui. » Cette réponse est signalée, la visite passe en "Pending approval" au lieu de "Checked in". L'horodatage et la question/réponse exactes sont stockés sur la visite.

La réceptionniste voit trois options claires :

  • Autoriser l'entrée (override avec raison)
  • Refuser l'entrée (enregistrer la raison)
  • Demander l'approbation de l'hôte (recommandé pour les réponses signalées)

Si une approbation est demandée, l'hôte est notifié immédiatement avec qui attend, pourquoi la personne est signalée, où elle se trouve et des boutons de décision (approuver ou refuser). L'hôte peut aussi voir un court historique de visites, par exemple la dernière date de venue et s'il y a eu des flags antérieurs.

Une fois approuvé, la visite passe en « Checked in » et le badge devient actif. Quand Jordan part, la réceptionniste (ou Jordan à une borne) fait le checkout. L'app enregistre l'heure de départ, l'état de retour du badge et une note courte comme « Remplacement filtre HVAC terminé. Aucun problème. ». Si le badge n'est pas rendu, cela est aussi capturé.

Erreurs communes qui provoquent de mauvais logs et des alertes manquées

Les mauvaises données commencent souvent par un raccourci dans le flux. Le système n'est utile que dans la mesure où il peut produire une piste d'audit lorsque quelqu'un demande : « Qui était ici, quand et qui l'a autorisé ? »

Une erreur fréquente est de mélanger l'identité du visiteur avec l'historique des visites. La personne doit rester stable dans le temps, tandis que chaque arrivée est son propre enregistrement. Si vous écrasez un champ « visite en cours » sur le profil visiteur, vous perdez la capacité d'auditer les visites répétées, les hôtes, les réponses de sécurité et les réimpressions de badge.

Les QR codes sont un autre piège. Si un code QR n'expire jamais, il devient un laisser-passer réutilisable et peut être copié depuis une photo. Traitez le QR comme un token lié à une émission de badge et invalidez-le au checkout.

Les éditions sans traçabilité détruisent silencieusement la confiance. Si le personnel peut modifier d'anciennes réponses de sécurité, il faut stocker qui a changé quoi et quand, ainsi que la valeur précédente.

Une panne de borne ne doit pas se transformer en « laissez-les entrer » sans enregistrement. Prévoyez un contournement, comme un flux téléphonique pour le personnel, un backup papier à saisir plus tard, ou un mode hors-ligne qui se synchronise au retour de l'appareil.

Les alertes manquées viennent souvent de la complexité réelle :

  • Plusieurs sites partageant une base sans champ Site clair sur les visits et badges
  • Plusieurs hôtes par visite (hôte principal, hôte de secours, boîte mail d'équipe)
  • Changement d'hôte en cours de visite sans journaliser la réaffectation

Vérifications rapides avant le déploiement

Préparer les appels de rassemblement d'urgence
Geler un instantané des personnes sur site par site et suivre les accusés de réception sous pression.
Créer un exercice

Cela ne fonctionne que si les données restent cohérentes lors des journées chargées. Avant de l'installer sur la tablette d'accueil, faites un test « journée chaotique » : plusieurs arrivées simultanées, un badge perdu et un hôte qui ne répond pas.

Commencez par l'enregistrement de visite. Chaque visite doit avoir un statut clair (pré-enregistré, checked-in, checked-out, denied, canceled) et des horodatages qui correspondent à la réalité. Si quelqu'un commence l'enregistrement puis s'éloigne, décidez ce qui se passe après 5–10 minutes : expirer automatiquement la tentative ou la laisser en « started » mais pas présente sur site.

Validez le cycle de vie du badge de bout en bout. Un badge QR doit être facile à auditer : quand il a été émis, quand il est devenu actif et quand il a été rendu ou expiré. Si un badge est réimprimé, invalidez immédiatement l'ancien QR pour ne pas vous retrouver avec deux badges « actifs » pour une même visite.

Une checklist courte suffit :

  • Les exports correspondent à ce que le personnel voit à l'écran (comptages, plages de dates, filtres site et hôte).
  • Le renvoi d'une alerte ne crée pas de doublons.
  • Le contenu de l'alerte est utilisable (nom du visiteur, site, hôte, flags de sécurité).
  • Les échecs de livraison sont visibles (sent, delivered, failed) et les retries sont sûrs.
  • Un exercice d'urgence peut produire une liste des présents en moins de deux minutes.

Historique exportable des visiteurs : rapports, rétention et piste d'audit

Notifier les hôtes via la messagerie
Envoyez des notifications hôtes par email, SMS ou Telegram en utilisant des modules intégrés.
Ajouter la messagerie

Les exports sont là où un système d'enregistrement devient utile pour le travail réel : conformité, revues d'incident et questions simples comme « Qui était là mardi dernier à 15h ? » Décidez tôt de ce qu'est la « vérité », car l'export sera traité comme l'enregistrement.

Supportez au moins CSV et XLSX. Le CSV est meilleur pour les audits et imports. Le XLSX est plus facile pour de nombreuses équipes non techniques.

Définissez un jeu stable de champs et conservez leur signification cohérente dans le temps. Un minimum pratique inclut :

  • Visit ID (unique et jamais réutilisé)
  • Identité du visiteur (nom plus une clé visiteur stable)
  • Site et hôte
  • Horodatages de check-in et check-out (avec fuseau)
  • Identifiant du badge (valeur QR ou numéro de badge)

Restreignez strictement la règle « qui peut exporter ». Typiquement, la réception peut voir la liste du jour, la sécurité peut exporter une plage de dates, et les admins peuvent tout exporter. Traitez l'export comme une permission à part entière, pas juste « peut voir les visites ».

Règles de rétention réalistes

Rédigez la rétention en langage clair pour qu'elle soit appliquée de manière cohérente. Règles communes : conserver les logs complets des visites pendant 12 à 24 mois, anonymiser les données personnelles après la période de rétention (tout en conservant totaux et horodatages), conserver plus longtemps les journaux d'urgence si la politique l'exige, et ne jamais supprimer les pistes d'audit même si vous anonymisez un visiteur.

Piste d'audit et demandes de suppression

Ajoutez des champs d'audit à chaque enregistrement de visite (created_by/at, edited_by/at) et aux actions d'export (exported_by/at, export_scope, format du fichier, nombre de lignes).

Pour les demandes de suppression, évitez les suppressions physiques qui cassent les rapports. Une approche plus sûre est la « suppression vie privée » : effacer ou hacher les champs personnels (nom, email, téléphone), tout en conservant l'ID de visite, les horodatages, le site, l'hôte et les codes de raison afin que les rapports restent cohérents.

Prochaines étapes : transformer le plan en application opérationnelle

Transformez le modèle en trois écrans focalisés : une borne kiosque (rapide, gros boutons), un tableau de bord réceptionniste (arrivées du jour, overrides, réimpressions) et une vue hôte (qui arrive, qui est sur site, qui nécessite une attention). Quand chaque écran a un seul objectif, les gens ont moins tendance à contourner le processus.

Ensuite, liez l'automatisation aux événements, pas aux clics de bouton. Chaque changement de statut doit être quelque chose sur lequel vous pouvez compter : created, checked in, badge issued, host notified, checked out, et marqué comme parti lors d'une ronde d'urgence. Ainsi les alertes se déclenchent encore même quand différents membres du personnel utilisent des appareils différents.

Une première version souvent suffisante pour une mise en production comprend un site, une borne, un tableau de bord réceptionniste, la création et réimpression de badges QR, des alertes hôtes basiques avec suivi de livraison, des questions de sécurité avec une règle de revue unique, et l'export de l'historique des visiteurs pour une plage de dates choisie.

Si vous souhaitez construire sans code, une plateforme comme AppMaster (appmaster.io) peut vous aider à configurer le modèle de base de données, les workflows et plusieurs frontends (kiosk, web, mobile) autour d'une source de vérité partagée. Commencez petit, pilotez dans un hall, puis élargissez une fois que les logs et les alertes restent cohérents sous la pression réelle de l'accueil.

FAQ

Combien de temps devrait durer un enregistrement visiteur dans un bon système ?

Visez moins d'une minute pour la plupart des visiteurs. Gardez le parcours idéal en trois étapes : identifier la visite (scan QR ou recherche rapide), répondre aux questions requises, puis imprimer un badge et avertir l'hôte. Poussez les exceptions (corrections de fautes de frappe, approbations, réimpressions) vers l'écran réceptionniste pour que la borne reste rapide.

Dois-je stocker les infos du visiteur sur la visite ou garder un profil visiteur séparé ?

Séparez la personne de la visite. Conservez un enregistrement Visitor stable (identité et contacts) et créez un nouvel enregistrement Visit pour chaque arrivée afin de pouvoir auditer horodatages, hôtes, réponses et émissions de badges sans écraser l'historique.

Comment éviter que les badges QR soient réutilisés ou copiés ?

Traitez les codes QR comme des jetons à courte durée de vie liés à une émission de badge et à une visite spécifique. Invalidez le jeton au moment du checkout et aussi lors d'une réimpression afin de ne jamais avoir deux badges actifs pour la même visite.

Quels événements dois-je enregistrer pour que les audits et enquêtes soient fiables ?

Utilisez des événements append-only pour les moments dont vous aurez besoin : check-in complété, badge émis, hôte notifié, réponses de sécurité sauvegardées et checkout. Quand quelqu'un corrige une erreur courante comme l'orthographe d'un nom, enregistrez qui l'a changé, quand, et quelle était la valeur précédente.

Qui devrait être autorisé à voir et exporter l'historique des visiteurs ?

Commencez avec des rôles simples : visiteur, hôte, réceptionniste, sécurité et admin. Gardez les permissions d'export strictes ; une bonne règle est que la réception gère le flux du jour, la sécurité peut voir qui est sur site maintenant, et seuls les admins peuvent exporter l'historique complet.

Comment modéliser les questions de sécurité pour que l'historique ne soit pas corrompu ?

Stockez les questions comme des templates et les réponses par visite, y compris le libellé exact ou la version du template. Ainsi, si vous modifiez les questions plus tard, les anciennes visites montrent toujours ce que le visiteur a réellement vu et répondu.

Comment éviter de spammer les hôtes tout en s'assurant que les alertes passent ?

Tracez les notifications comme des enregistrements distincts avec des statuts tels que sent, delivered ou failed, ainsi que les détails de retry. Utilisez une règle de déduplication comme une alerte par hôte par déclencheur par visite dans une fenêtre courte, et prévoyez un contournement clair quand la livraison échoue (par exemple une invite pour que la réception appelle l'hôte).

Quelle est la manière la plus simple de constituer une liste des présents en cas d'urgence en laquelle on puisse avoir confiance ?

Un journal d'urgence doit figer un instantané limité dans le temps de qui est sur site, même si quelqu'un oublie de se décocher. Créez un événement d'urgence pour un site, copiez toutes les visites actives à ce moment, puis enregistrez les confirmations et changements comme de nouvelles actions horodatées plutôt que des modifications.

Comment gérer les visiteurs qui oublient de se déconnecter ?

Utilisez une règle de fin de journée prévisible par site qui marque les visites encore actives comme auto-checked-out et enregistre la raison. Conservez l'heure d'arrivée d'origine intacte et rendez l'action d'auto-checkout visible dans les logs pour qu'on voie clairement pourquoi la personne n'est plus indiquée comme présente.

Que devrait contenir la première version d'une application d'enregistrement visiteurs ?

Commencez avec un site, une borne et un tableau de bord réceptionniste. Incluez l'impression et la réimpression de badges QR, des alertes hôtes basiques avec suivi de livraison, un petit jeu de questions de sécurité avec une règle de revue, et un export CSV/XLSX propre pour une plage de dates. Étendez ensuite quand les logs restent cohérents pendant les journées chargées.

Facile à démarrer
Créer quelque chose d'incroyable

Expérimentez avec AppMaster avec un plan gratuit.
Lorsque vous serez prêt, vous pourrez choisir l'abonnement approprié.

Démarrer