Étude de cas · produit & ingénierie

Claire : une assistante de réception en ligne pour cabinets dentaires

Claire accueille les patients d'un cabinet dentaire à toute heure, comprend leur demande, et transmet au cabinet une fiche déjà qualifiée — avec un niveau d'urgence. Cette page décrit le problème, la solution, l'architecture et les décisions d'ingénierie du projet.

Projet personnel conçu, développé et déployé de bout en bout (produit, front, back, base de données, sécurité, déploiement). Actuellement en phase pilote auprès de cabinets dentaires.

Le problème

Dans un cabinet dentaire, l'accueil téléphonique est sous tension : appels manqués, ligne saturée en journée, messages laissés sans réponse le soir et le week-end, urgences difficiles à filtrer. Chaque appel manqué est un patient potentiellement perdu — et une charge mentale de plus pour le secrétariat. L'objectif : ne plus laisser un patient sans réponse, tout en transmettant à l'équipe une information déjà structurée et priorisée.

La solution

Une assistante conversationnelle qui répond au patient avec un ton bienveillant, pose les bonnes questions (motif, nom, téléphone, souhait), oriente les urgences vitales vers le 15, puis extrait automatiquement un résumé qualifié de l'échange et le dépose dans l'espace du cabinet (et, en option, par email/WhatsApp via une automatisation). Claire ne pose jamais de diagnostic : elle recueille et transmet ; c'est le cabinet qui décide.

Architecture

Schéma : le patient écrit à Claire via le front, qui appelle l'API serverless ; celle-ci interroge Claude et sauvegarde dans Supabase (RLS), le cabinet consulte ses demandes, et un webhook signé notifie via Make.
Front — HTML/CSS/JS vanilla, PWA installable (offline app-shell)
Hébergement — Vercel (HTTPS, CDN, fonctions serverless)
Back — Vercel Serverless Functions (Node.js)
Base & Auth — Supabase (Postgres + Auth, Row Level Security)
IA — API Anthropic (Claude) : conversation + extraction qualifiée
Automatisation — webhook signé → Make / n8n / Zapier
Mesure — analytics sans cookie (aucun bandeau requis)
Qualité — contrôles CI sans dépendance (lint/JSON/JSON-LD)

Décisions d'ingénierie

Sécurité des endpoints publics

CORS par liste blanche, rate-limit par IP, validation stricte (UUID du cabinet, longueurs, rôles de message) sur les routes appelables par n'importe qui (/api/chat, /api/contact).

Sortie du LLM traitée comme non fiable

Le JSON renvoyé par le modèle est parsé puis assaini : whitelist sur le niveau d'urgence, troncature des champs, demande créée de façon idempotente (une par conversation).

Cloisonnement strict (multi-tenant)

Row Level Security sur toutes les tables : un cabinet n'accède qu'à ses propres données. La clé service_role reste exclusivement côté serveur, jamais exposée au navigateur.

Robustesse du flux patient

Le message du patient est sauvegardé avant l'appel au modèle : même si l'IA échoue, aucun message n'est perdu. Le widget de démo se dégrade proprement s'il n'est pas configuré.

Anti-injection de prompt

Les règles personnalisées saisies par un cabinet sont tronquées et cadrées dans le prompt système pour limiter toute tentative de détournement de l'assistante.

RGPD & confidentialité par défaut

Hébergement en Europe, mesure d'audience sans cookie (donc sans bandeau), pages légales et section rétention/effacement des données.

Ce que ce projet démontre

Vous testez Claire ou souhaitez en discuter ? Rejoindre le programme cabinets fondateurs →

← Retour à l'accueil