Paris Butler: AI Concierge for Hotels
The operating layer for modern hospitality: an AI concierge that understands guests, prepares service requests and hands over to hotel staff when it matters.
THE STORY
Hotel guests write at any hour, in their own language, about transfers, dinners, spa treatments and special occasions, and front desks cannot always answer at once. Paris Butler is an AI concierge platform that follows the guest from pre-arrival to checkout. It reads each message together with the guest's stay, answers the way the hotel would, prepares a structured service request, and passes anything that needs judgement or confirmation to staff with a short brief. It answers only from information the hotel has verified, and never presents unconfirmed availability as confirmed.
MY CONTRIBUTIONS
- Designed and built the product and the parisbutler.com site, including a live demo concierge for a sample property ("Hôtel Lumière Paris").
- Built the conversation flow that turns a guest message into intent, timing, guest count and preferences, then into a prepared service request.
- Designed the human-handoff brief so reception can take over or assign a conversation with full context.
- Connected the concierge to n8n workflows and an Airtable knowledge base, with a Cloudflare Worker routing webhooks.
- Wrote a Python regression harness that checks response time and answer quality on every deploy.
Solution highlights
One guest conversation becomes context the hotel can act on: guest context, request understanding, service coordination and staff handoff, across web and WhatsApp.

Landing page

Operational view of a guest request
The problem
Guests don't keep office hours. A late landing at CDG, an anniversary dinner or a 3 a.m. spa question often reaches a quiet front desk, and requests get lost between shifts.
The insight
The concierge should assist the hotel, not impersonate it. It answers what the hotel has verified, asks only the question that matters (a flight number, a time), prepares the request, and leaves confirmation to staff.

Pre-arrival: an anniversary dinner request prepared for the team

AI when it can, people when it matters
Night operations
Overnight, Paris Butler captures each request, understands it and queues a follow-up, so the morning team starts with context instead of a pile of unread messages.

A 03:14 spa request captured and queued for the morning team

Working with hotels: discovery call, set-up, pilot on real guests
Up close: System design
Guest channel (web chat, WhatsApp) → Cloudflare Worker → n8n workflow → hotel knowledge in Airtable → response and prepared request → staff handoff when needed.
Under the hood
A Python test harness posts representative guest requests to the workflow and checks response time and content against reference answers.
def test_concierge_response_time():
response = requests.post(WEBHOOK_URL, json={"message": "Can I book a spa treatment at 8pm?"})
assert response.status_code == 200
assert response.elapsed.total_seconds() < 2.0Failure modes & guardrails
Reservations stay hotel-controlled, unconfirmed availability is never shown as confirmed, and requests the concierge cannot answer from verified information go to staff with a summary.
Working with hotels
Each hotel starts with a discovery call and a focused pilot on its own website. Conversations are reviewed together, tracking requests handled, response times and service revenue.
Reflection / what I learned
Having worked in tourism operations in Paris, I learned that hotels trust a system that knows when to stop. The handoff design matters as much as the language model.