Case Study
Reservation Chatbot
A WhatsApp bot that takes restaurant reservations, sends the reminder, and knows the menu well enough to recommend from it.
My Role
Designed the conversation flow and built the automation behind it.
Tech Stack
A restaurant taking its reservations over WhatsApp. Every booking meant a person reading the message, checking what was free, replying, writing it down, and remembering to send a reminder before the sitting.
That works until it is busy, which is exactly when it stops working and exactly when the bookings matter most.
I designed the conversation flow and built the automation behind it.
The problem
- Every booking needed a person. Someone had to be reading the chat for a reservation to happen at all.
- Availability was checked by hand. Which meant double bookings when two messages arrived close together.
- Reminders depended on someone remembering. The ones that got forgotten turned into empty tables.
- Bookings lived in a chat thread. Not in anything you could count, filter, or look up later.
What I built
A conversation that actually books something
The guest messages as they always did. The bot asks for date, time and party size, checks what is free, and says so.
Then it reads the booking back before committing it, because a reservation confirmed against the wrong date is worse than no reservation. Once the guest agrees, it is booked, and a reminder is scheduled ahead of the sitting.
It knows the menu too
The bot holds the menu, so it can answer what a dish is and recommend from it. Guests ask about food while they are booking, and being told to check the website is a strange answer from something already talking to you.
The workflow underneath
Built in n8n. A WhatsApp trigger feeds an AI agent with Postgres-backed memory, wired to tools for customers, tables, reservations and reminders.
The memory is what makes it a conversation rather than a form. The tools are what stop it from being only a conversation: when the bot says a table is booked, it is because it called something that booked it.
The result
- A booking is taken, confirmed and reminded without a staff member touching the conversation.
- Reservations land in a database rather than in a chat thread someone has to transcribe.
- Availability is checked against the actual tables, so two messages arriving at once cannot both take the same one.
Built with n8n and PostgreSQL, with an AI agent handling the conversation.