Meta description: Build a WhatsApp chatbot that takes restaurant reservations, answers menu questions, and confirms bookings automatically. Full setup guide for Moroccan restaurants.

Category: WhatsApp
Read time: 10 min
Target keyword: WhatsApp chatbot restaurant

Why Your Restaurant Needs a WhatsApp Bot (Not Just WhatsApp)

You already have WhatsApp. Every Moroccan restaurant does. The problem isn’t the channel — it’s what happens on it.

Right now, your process probably looks like this: customer sends “bonsoir, est-ce que vous avez une table pour 4 ce samedi?” Your manager sees it 45 minutes later between plating orders and managing the floor. Responds. Customer has already booked somewhere else.

Or worse: Friday night, 8pm, your busiest service. Seventeen unread WhatsApp messages. Your phone is buzzing in your pocket while you’re expediting. You’ll get to them after service — at 11pm. Half those people wanted tonight. They’re already eating at your competitor’s place.

A WhatsApp chatbot doesn’t replace the personal touch that makes your restaurant yours. It handles the routine — the 80% of messages that follow the exact same pattern — so you handle the 20% that actually need a human.


What the Bot Handles vs. What Stays Human

Bot handles (24/7, instantly):

  • “Quels sont vos horaires?” → automatic response with current hours
  • “Vous avez de la place ce soir pour 3?” → checks availability, offers time slots, confirms booking
  • “C’est quoi votre menu?” → sends menu catalog or PDF
  • “Où vous êtes?” → sends Google Maps pin + written address
  • “Vous faites la livraison?” → sends delivery info or Glovo link
  • “Vous acceptez les cartes?” → payment options
  • Reservation confirmation and reminder messages
  • Post-visit review request

Human handles:

  • “Mon plat était froid et le serveur était désagréable” → complaint needs empathy and resolution
  • “On veut organiser un anniversaire pour 30 personnes” → complex event planning
  • “Est-ce que le chef peut préparer un menu sans gluten pour toute la table?” → custom request
  • Any conversation where the customer sounds frustrated or confused

The rule: if a question has a standard answer, automate it. If it requires judgment, empathy, or creativity, route it to a human.


The Reservation Flow (Step by Step)

Here’s the exact conversation flow your bot should follow. I’m writing it in French because that’s what most Moroccan restaurant bots need, but the same logic works in Arabic or Darija.

Customer: “Je voudrais réserver une table”

Bot: “Avec plaisir ! 🍽️ Pour votre réservation, j’ai besoin de quelques infos:

Quel jour souhaitez-vous réserver ?
1️⃣ Aujourd’hui
2️⃣ Demain
3️⃣ Cette semaine (précisez le jour)
4️⃣ Semaine prochaine (précisez le jour)”

Customer: “2” (or “demain”)

Bot: “Parfait, demain [Jour, Date]. Pour combien de personnes ?
1️⃣ 1-2 personnes
2️⃣ 3-4 personnes
3️⃣ 5-6 personnes
4️⃣ Plus de 6 (un membre de l’équipe vous contactera)”

Customer: “2” (3-4 personnes)

Bot: “3-4 personnes, noté ! Quelle heure vous conviendrait ?
🕐 12h00-13h00 — Disponible ✅
🕐 13h00-14h00 — Disponible ✅
🕐 19h30-20h30 — 2 tables restantes ⚠️
🕐 20h30-21h30 — Disponible ✅
🕐 21h30-22h30 — Disponible ✅”

Customer: “20h30”

Bot: “Dernière étape — à quel nom la réservation ?”

Customer: “Karim”

Bot: “Parfait ! Votre réservation est confirmée ✅

📅 Demain, [Date]
⏰ 20h30
👥 3-4 personnes
📍 [Nom du restaurant], [Adresse]
🗺️ [Google Maps link]

📝 Nom: Karim

Vous recevrez un rappel 2h avant. Pour modifier ou annuler, répondez simplement ici.

À demain, Karim ! 🍽️”

Total time: 90 seconds. Zero human involvement. Works at 3am on a Tuesday.


Building This: The Technical Setup

Option A: WhatsApp Business App + Quick Replies (Free, Limited)

If you’re not ready for API access, you can fake a basic version:

Create quick replies for the 5 most common questions:

  • /menu → sends your menu
  • /horaires → sends your hours
  • /adresse → sends location
  • /reserver → sends “Pour réserver, merci d’indiquer: jour, heure, nombre de personnes, et votre prénom”
  • /livraison → sends delivery info

Set away messages for closed hours.

This isn’t automation — it’s organized manual responses. But it’s free and improves response time significantly.

Option B: Wati (No-Code, ~$49/month)

Wati provides a drag-and-drop chatbot builder on top of WhatsApp Business API.

  1. Sign up at wati.io, connect your WhatsApp number
  2. Build the reservation flow visually — no code
  3. Create message templates for confirmations and reminders
  4. Set up team inbox so multiple staff can see conversations

Pros: Easiest setup. Team inbox. No technical skills needed.
Cons: Monthly cost. Less flexible than custom n8n solution.

Option C: n8n + WhatsApp Business API (Full Control, ~400 MAD/month)

The setup we recommend for restaurants serious about automation.

Infrastructure:

  • VPS: ~120 MAD/month (Hostinger, DigitalOcean, Contabo)
  • 360dialog WhatsApp API: ~300 MAD/month
  • n8n: free (open source, self-hosted)
  • Google Sheets: free (for reservation database)

The n8n workflow:

Node 1: WhatsApp Webhook Trigger — receives incoming messages
Node 2: Switch node — checks message content for keywords (“réserver”, “menu”, “horaires”, “adresse”)
Node 3 (for reservations): Start reservation flow → ask date → wait for response → ask party size → wait → ask time → wait → ask name → wait → confirm
Node 4: Add reservation to Google Sheet (Date, Time, Party Size, Name, Phone, Status)
Node 5: Send confirmation message via WhatsApp
Node 6: Schedule reminder (2 hours before → WhatsApp reminder message)

Availability checking:

  • Your Google Sheet has a “Capacity” tab: Date, Time Slot, Total Tables, Booked Tables
  • Before offering time slots, n8n checks this sheet and only shows slots where Booked < Total
  • When a reservation is confirmed, n8n increments the Booked count

For cancellations:

  • Customer sends “annuler” or “modifier”
  • Bot asks which reservation (if they have multiple)
  • Updates the sheet and decrements the capacity count
  • Sends cancellation confirmation

The Menu Bot

Beyond reservations, your bot should handle menu inquiries. Two approaches:

Approach 1: WhatsApp Catalog
WhatsApp Business lets you create a product catalog. Add every menu item with photo, description, and price. When someone asks “c’est quoi votre menu?”, send them the catalog link. They browse it natively inside WhatsApp.

Simple. Free. Visual.

Approach 2: AI-Powered Menu Q&A
Connect GPT-4o to your bot. Feed it your complete menu as context. Now customers can ask natural questions:

  • “Qu’est-ce que vous avez pour un végétarien?” → bot recommends vegetarian options from your actual menu
  • “C’est quoi la différence entre votre tagine aux pruneaux et le tagine aux olives?” → bot explains both dishes
  • “Mon fils a une allergie aux noix — qu’est-ce qu’il peut manger?” → bot filters menu items without nuts

This feels magical to customers. It costs pennies per conversation in API fees. And it demonstrates a level of service that paper menus never will.


The Reminder and Review System

Once reservations flow through the bot, two follow-up automations become trivial:

Reservation Reminders

n8n checks the reservations sheet every hour. For any reservation happening in the next 2 hours that hasn’t been reminded yet:

“Bonjour [Prénom] ! Petit rappel : votre table au [Restaurant] est dans 2 heures (à [Heure]). 👥 [Nombre] personnes. On vous attend ! 🍽️

Si vous avez un empêchement, répondez ici pour modifier.”

Mark as reminded. If they respond with “annuler” or “reporter”, handle the change flow.

Impact: no-shows drop 40–60%. For a restaurant with 30 reservations per evening, preventing even 3 no-shows saves 3 tables’ worth of revenue — potentially 1,500–3,000 MAD per night.

Post-Visit Review Request

3 hours after the reservation time (enough time for them to finish and leave):

“Merci d’avoir dîné chez [Restaurant], [Prénom] ! 🙏 Nous espérons que vous avez passé un bon moment.

Si vous avez 30 secondes, un avis sur Google nous aiderait énormément : [REVIEW LINK]

À bientôt !”

Send this only once. Don’t nag. The timing (post-meal contentment) and the brevity (30 seconds, one link) maximize the response rate.


Handling Edge Cases

Real conversations aren’t always clean. Your bot needs to handle the messy stuff:

“On sera peut-être 4, peut-être 6”
→ Book for 6 (larger number). Note “flexible party size” in the sheet.

“Est-ce que vous avez une terrasse?”
→ Add as a preference field. If you have terrace tables, offer those first. If not, let them know honestly.

“On a un bébé avec nous”
→ Note it. Prepare a high chair if available. The fact that the bot acknowledges this makes the customer feel seen.

“Je veux voir le chef”
→ This is a human handoff moment. Bot: “Je transmets votre demande à notre équipe. Un membre de l’équipe va vous répondre dans quelques minutes.”

Messages in Darija
→ If using GPT-4o as the brain behind the bot, it handles Darija naturally. “Bghit nrezervi tabla l jouj” → understood and processed. This is where AI-powered bots genuinely outperform rule-based bots.

Spam or irrelevant messages
→ Bot responds once with: “Bonjour ! Je suis l’assistant de [Restaurant]. Je peux vous aider avec : réservations, menu, horaires, et adresse. Comment puis-je vous aider ?” If no relevant response, stop responding.


Measuring Success

Track these weekly:

  • Bot-handled reservations vs. human-handled: Target 70%+ bot-handled within 1 month
  • Response time: Should be under 30 seconds for bot responses
  • No-show rate: Compare before and after reminder automation
  • Review velocity: New Google reviews per week
  • Peak hour message handling: How many messages during Friday 7–9pm were handled without human intervention

We build WhatsApp booking systems for Moroccan restaurants. From chatbot to reservation management — ready in 10 days. Message us: wa.me/212752138075