Riviera
Social Club.
A members-only venue was losing 3.5 staff hours a day to WhatsApp. The same thirty questions, over and over. We wired an AI assistant to their Google Doc — one document update, and the AI knows.
- Client
- Riviera Social Club
- Year
- 2025
- Type
- AI Automation
- Stack
- n8n · WhatsApp API · GPT-4o · Google Docs · Slack
- Timeline
- 3 weeks
The Same Thirty
Questions. Every Day.
Riviera is a members-only venue in central London — a restaurant, bar, and events space with a rotating program and a tiered membership. Their WhatsApp business number was the first point of contact for almost everything: table bookings, dress code questions, event schedules, membership upgrades, dietary accommodation requests.
The front-of-house manager was spending three to four hours a day on WhatsApp before opening. Most of it was the same questions, answered the same way, pulled from the same internal document they updated weekly. There was no system — just an overwhelmed person copy-pasting from a Google Doc.
3.5 hrs/day on WhatsApp
Front-of-house manager spending pre-open hours on repetitive message replies before service even started.
Avg. 3.2 hr response time
Members messaging at 10pm about next week's event got replies the following afternoon — or not at all.
Knowledge lived in one doc
A single Google Doc the manager updated weekly — but translating it into WhatsApp replies was entirely manual.
No escalation path
Complaints, refund requests, and press enquiries all arrived on the same WhatsApp thread as table reservations.
The knowledge already existed and was already being maintained — just not in a form a machine could use. The right solution wasn't a chatbot with a static FAQ database. It was a live connection between the AI and the document the team was already updating.
Four Principles
That Shaped the Build.
One source of truth, zero migration
The team already maintained a Google Doc. We connected to it directly rather than replicating it into a new system. Staff didn't need to learn anything — they kept updating the same document.
→ The doc is fetched fresh on every message, so menu changes, event updates, and policy edits take effect in real time with no deployment step.Escalation by intent, not by keyword
Keyword-based routing misses context. "Refund" in a question about the membership cancellation policy is different from "I want my money back." We classify intent before deciding whether to answer or escalate.
→ Complaints, refund demands, and "speak to a manager" intent always escalate to a human via Slack — regardless of whether the AI could technically answer.Honest uncertainty over confident hallucination
The AI is instructed to answer only from the knowledge document and to say explicitly when it doesn't know. Inventing table availability or membership pricing would be worse than no automation at all.
→ If the doc doesn't contain the answer, the response offers to connect the customer with the team — which is the correct outcome.Slack as the human interface
Staff shouldn't need to manage two apps. Escalated conversations arrive in a Slack channel with full context. The manager replies in Slack — the reply gets forwarded to WhatsApp automatically.
→ No one at Riviera needs to open WhatsApp Business on a company phone anymore.Inside the
Workflow.
Message received
A customer or member sends a WhatsApp message to the venue's business number. The Twilio WhatsApp API forwards the incoming message to an n8n webhook in real time — no polling, no delay.
Knowledge fetch
n8n calls the Google Docs API to pull the latest version of the venue's master knowledge document — menus, membership tiers, opening hours, event schedule, dress code, and FAQs. The document is fetched fresh on every message, so staff only update one Google Doc and the AI knows immediately.
Intent classification
A lightweight GPT-4o-mini classification step categorises the message: general enquiry, booking-related, complaint, or escalation trigger. This determines whether to answer automatically or route to a human. Complaint and "speak to manager" intent always escalates regardless of the next step.
Response generation
For answerable queries, GPT-4o generates a reply grounded in the knowledge document. The prompt instructs the model to answer only from the provided context, never invent availability, and always match the venue's warm, professional tone. If the knowledge doc doesn't contain an answer, the model says so and offers to connect the customer with the team.
Human-in-the-loop escalation
Any message classified as a complaint, refund request, or low-confidence response triggers a Slack notification to the venue manager with the full conversation context. The manager can respond directly from Slack — the reply is forwarded back through the same WhatsApp thread. Staff never need to open the WhatsApp app.
Reply delivered
The generated response is sent back through Twilio to the customer's WhatsApp thread. Delivery receipts are logged in an Airtable base alongside message classification, response confidence, and escalation flag — giving the venue manager a weekly view of the most-asked questions and any gaps in the knowledge doc.
Numbers Worth
Shipping For.
Calls Worth
Explaining.
over a proper CMS
over Meta direct API
GPT-4o for generation