Case Study · Hospitality
Restaurant Booking Platform: From Phone Calls to 80% Online Reservations
A Nairobi restaurant group with three locations needed centralized reservation management and a way to reduce no-shows.
Representative case study. Anonymized version of a real client engagement.
80%
Online reservations
-71%
No-show rate
+24%
Cover utilization
The Client
A premium restaurant group operating three locations across Nairobi (Westlands, Karen, and Kilimani) with a combined seating of 280 covers per night. Established 8 years, well-known on the Nairobi dining scene. Pre-engagement, reservations were taken by phone — each restaurant had a dedicated reservation line answered by hostess teams.
The Problem
- Phone reservations didn't scale. Lines were busy during peak booking windows (Friday afternoons especially). They estimated losing 15-20% of would-be reservations to busy signals.
- No-show rate was 22%. Friday/Saturday nights saw the worst. Empty reserved tables couldn't be re-booked because the system was paper.
- No central view of bookings. Each restaurant had its own paper book. Repeat customers couldn't be recognized across locations.
- Hostess time was wasted on reservation calls when they should be greeting in-person guests.
What We Built
A custom reservation platform across all three locations:
- Online reservation widget embedded on each restaurant's page and main brand site. Date/time/party size/preferences in 30 seconds.
- M-Pesa deposit for prime slots — Friday/Saturday 7pm-9pm bookings require KES 500/person deposit. Refunded against the bill if they show up.
- Customer recognition across locations via phone number lookup. Birthday and anniversary auto-detection.
- Hostess management dashboard showing today's bookings, table assignments, dietary preferences, customer notes.
- Reminder workflow — SMS at 24 hours before, 2 hours before, with one-tap confirm or cancel link.
- Waitlist and walk-in management — when bookings fill, customers can join waitlist and get notified if a slot opens.
Stack
Next.js 14, PostgreSQL with strong concurrency for booking conflicts, Africastalking for SMS, Daraja API for M-Pesa deposits, Resend for email, Vercel for hosting.
Process
11-week build with substantial UX iteration on the booking widget:
- Weeks 1-2: Discovery across all three restaurants, observation of hostess workflows
- Weeks 3-5: Booking engine, hostess dashboard, M-Pesa deposit logic
- Weeks 6-7: Customer recognition, SMS reminders, dietary preferences
- Weeks 8-9: Waitlist, walk-in handling, reporting dashboards
- Weeks 10-11: Pilot launch at one restaurant, iterate, full rollout
Results After 4 Months
- Online reservations: 0% → 80% of all bookings now happen online. The remaining 20% are walk-ins and a few regulars who still prefer phone.
- No-show rate: 22% → 6.4% (-71%). The M-Pesa deposit on prime slots was the biggest factor — putting any money down dramatically reduces frivolous bookings.
- Cover utilization: +24% on Friday/Saturday — empty no-show tables now refilled via waitlist within 15 minutes.
- Repeat customer recognition: Hostess teams now see "Visited 8 times, vegetarian, allergic to nuts, anniversary 14 March" on arrival.
- Hostess time saved: ~3 hours per shift previously on phone calls now redirected to guest experience.
What Worked
- M-Pesa deposit was decisive. Before launch we worried customers would hate paying upfront. They didn't — they actually appreciated the implicit table guarantee. No-shows dropped immediately.
- Customer recognition delighted regulars. Hostesses greeting them by name on first visit at a sister location was a wow moment that drove word-of-mouth.
- SMS reminders had 94% open rate. Email reminders had 31%. SMS clearly the right channel in Kenya.
What We'd Do Differently
- Phone fallback longer. We turned off the phone line in week 8 too aggressively. Some older regulars were upset. Should have kept phone available for 6+ months alongside.
- WhatsApp Business reminders. SMS works but WhatsApp Business API would have higher engagement. Adding now.
- Better menu integration. Customers wanted to see the menu before booking. We didn't integrate it well at launch — fixed in month 3.
Engagement Continues
Standard maintenance plus monthly feature additions. Currently building loyalty program (visit-based rewards across all three locations).
Run a Restaurant in Kenya?
See our restaurant website service or book a free consultation.
Book Free Consultation