
Case study
AI Website Concierge: Answering Visitors, Qualifying Leads and Booking Calls
I built the AI concierge that runs on my own website, vaiibe.com. It answers visitors in French, English and Arabic, by text or by voice, using live data from the site instead of a frozen script. When a conversation turns into a project, it captures the lead, alerts me right away and books a call in my calendar.
The problem
My clients are in Tunisia, Europe and North America, which means visitors arrive on my site at any hour, often when I cannot answer. A classic portfolio site handles that badly:
- Questions go unanswered. A visitor who wants to know whether I handle a specific stack or budget has to fill a form and wait.
- Warm leads cool down. The longer the gap between interest and reply, the lower the chance of a conversation.
- Typical chatbots go stale. They answer from a script written once, so the moment a service or a project changes, the bot says something outdated, or worse, invents an answer.
- Booking is a separate journey. Moving from chat to a calendar page loses people along the way.
The approach
I built the concierge as an agent connected to the site's own data, with clear rules about when it may act.
Answers from live data, not a frozen script
The assistant has thirteen tools that read the same database as the website: projects, services, skills, experience, education, blog posts, FAQ, methodology and quote builder information. When I update a service in my admin panel, the concierge knows it on the next question, with no retraining and no prompt to rewrite.
Text and voice share one brain
The text chat is a Genkit flow and the voice mode uses the Gemini Live API. Both read the same system prompt and the same tool handlers from a single configuration, so the two modes can never drift apart. The voice connection opens only when a visitor presses the talk button, and the browser receives a short lived token minted by the server, never the API key itself.
From conversation to qualified lead
The lead capture tool only runs once the visitor has confirmed three things: a name, a contact (email or WhatsApp) and a description of the project. The assistant is instructed never to invent those values. As soon as a lead is saved, I receive an alert with the budget, timeline and urgency signals gathered during the chat.
Booking without leaving the chat
The concierge reads my real availability from Cal.com, proposes up to six slots in plain language and books the meeting directly. If the calendar is unreachable, it falls back to my public booking link instead of failing silently.
Outcome
The concierge is live on every page of vaiibe.com, in three languages, around the clock.
- Visitors get answers at any hour, grounded in the current content of the site rather than an outdated script.
- Leads reach me immediately, with the context of the conversation instead of a bare form submission.
- Calls are booked inside the chat, without sending the visitor to another page.
- Each conversation is saved per session, so I read the full context before the call.
The same pattern fits any business with a service catalogue, recurring questions and a booking step: the tools change, the architecture stays. The concierge is part of the VAIIBE project.
Tech stack
Related services

Custom SaaS, Web and Mobile Apps
I build custom SaaS platforms on Next.js and Firebase, plus web, iPhone and Android apps from a single codebase. Fixed price MVP scopes, shipped in 8 to 16 weeks

Custom AI Agents and Smart Chatbots
I build custom AI agents and smart chatbots that know your business: they answer your clients, work with your documents and connect to the tools you already use. Priced for small businesses, not enterprises

Custom E-Commerce and Marketplaces
I build custom online stores and multi vendor marketplaces on Next.js and Firebase: fast on mobile, local and international payments, and no monthly platform fee