DevConnectDevConnect
Sign up · Log in
← back to the feed
2

Aurelle Aesthetic Clinic — AI Voice Agent & Automation System

An end-to-end AI automation system that runs a clinic's front desk: an AI voice agent that books appointments by phone, a chat assistant for patient questions, automated email reminders, an escalation system for sensitive queries, and a live operations dashboard — all connected together. Built as a portfolio project to demonstrate practical AI automation for service businesses. Watch the Demo Video (https://drive.google.com/file/d/1qyicKub3DDdUAJav9iHb5TQg3_wSkEGz/view?usp=sharing) What it does AI Voice Agent — Answers incoming calls and books appointments automatically. Collects the patient's name, phone number, email, treatment, and preferred date/time one step at a time, confirms details back to the caller, and converts relative dates ("next Tuesday") into exact calendar dates before booking. AI Chat Assistant — A Telegram-based assistant that answers patient questions about treatments, pricing, hours, and payment instantly, without staff involvement. Automated Reminders — A scheduled workflow checks upcoming appointments and emails patients roughly an hour before their appointment, then marks them as reminded so it never sends twice. Smart Escalation — If a caller asks a medical question, raises a complaint, or asks anything outside the agent's confidence, the agent doesn't guess — it collects the caller's details and hands off to clinic staff via a logged escalation queue. Live Dashboard — A React dashboard showing real-time appointments, escalations, and reminder status, with a live in-browser test call button and a link to the Telegram assistant. Architecture ┌───────────────────────┐ Phone Call ─────▶│ Retell (Voice AI) │ └──────────┬────────────┘ │ webhook ▼ ┌───────────────────────┐ Telegram Msg ────▶│ n8n │◀──── Schedule Trigger │ (workflow engine) │ (reminders, hourly) └──────────┬────────────┘ │ REST API ▼ ┌───────────────────────┐ │ Supabase (Postgres) │ │ appointments table │ │ escalations table │ └──────────┬────────────┘ │ REST API ▼ ┌───────────────────────┐ │ React Dashboard │ │ (live, auto-refresh) │ └───────────────────────┘ Every channel — phone, chat, and the dashboard — reads from and writes to the same Supabase database, so a booking made by phone appears instantly in the dashboard and is picked up by the reminder scheduler. Tech stack Layer Tool Voice AI Retell AI Workflow automation n8n Database Supabase (Postgres) Chat assistant Telegram Bot API + Google Gemini Dashboard React + Vite Email Gmail SMTP Core features in detail 1. Voice booking flow The agent's system prompt enforces a strict, natural conversation flow: it asks for one piece of information at a time, repeats the phone number back for confirmation, and requires all details to be gathered and confirmed before calling the book_appointment function — reducing booking errors from misheard details. 2. Escalation logic Rather than keyword matching, escalation is defined at the instruction level: the agent treats anything clinical (side effects, complications, medical advice) as strictly out of scope, and defaults to "when unsure, hand off to a human" — logging the caller's name, phone, and reason for staff follow-up. 3. Time-aware reminders The reminder workflow doesn't just check "has this appointment been reminded" — a Code node calculates the exact hours remaining until each appointment (accounting for timezone), and only sends a reminder once the appointment falls inside the configured window (default: 1 hour before). 4. Live dashboard Built in React, polling Supabase every 15 seconds, with: Overview stats (bookings, reminders sent, open escalations, upcoming appointments) A sortable appointments table with live status indicators An escalation queue for staff A working in-browser test call button (via Retell's Web Call SDK) Project structure ├── dashboard/ # React dashboard (App.jsx, App.css) ├── workflows/ # n8n workflow exports (JSON) │ ├── booking-webhook.json │ ├── escalation-webhook.json │ ├── reminder-scheduler.json │ └── telegram-agent.json └── README.md Notes This is a demo/portfolio build, not a production deployment. A few things to know: Row Level Security is disabled on the Supabase tables for demo simplicity — a production version would enable RLS with proper policies. The voice agent uses Retell's free web-call feature for the live dashboard demo; connecting a real phone number requires a paid Retell plan and a supported telephony provider. API keys referenced during development have been rotated and are not valid. Built by Hania Khattak — AI Automation Specialist www.linkedin.com/in/haniakhattak · (https://haniakhattak2005.github.io/Portfolio/)
Add a comment
0/2000