Restaurant table and order assistant
Takes bookings and orders on WhatsApp and brings regulars back. For: Restaurants, cafes, cloud kitchens.
The problem
Bookings come by phone and are written on paper, WhatsApp orders get lost between messages, and regulars are never nudged to return.
How it works
Built from: whatsapp, gmaps, razorpay, gsheets, claude.
- whatsapp: Bookings, orders and offers
- gmaps: Location, distance and delivery area
- razorpay: Advance payment and bill links
- gsheets: Menu, bookings and orders
- claude: Understands "table for 4 at 8" and order messages
flowchart LR
C(["Your customer"]) <-->|"asks, pays, gets updates"| APP["Your app<br/>Customer app: menu, order, track, reorder"]
APP --> L{{"Your logic<br/>the rules that are yours"}}
subgraph EX["Apps that already exist: APIs and MCP servers"]
A0["WhatsApp<br/>Bookings, orders and offers"]
A1["Google Maps<br/>Location, distance and delivery area"]
A2["Razorpay<br/>Advance payment and bill links"]
A3["Google Sheets<br/>Menu, bookings and orders"]
A4["Claude (AI)<br/>Understands 'table for 4 at 8' and order messages"]
end
L --> A0
L --> A1
L --> A2
L --> A3
L --> A4
L --> DB[("What it keeps<br/>Customers and visit history, Menu and availability, Bookings and orders")]
L --> OWN["Admin dashboard<br/>Kitchen and floor view: bookings and live orders"]
classDef yours fill:#1691D6,stroke:#0a5f95,color:#fff
classDef ext fill:#E6F3FB,stroke:#1691D6,color:#12112E
class APP,L,DB,OWN yours
class A0,A1,A2,A3,A4 extThe logic
- When customer asks for a table: Check capacity for that time and confirm or offer alternatives
- When large group or peak time: Ask for a small advance to hold the table
- When order message arrives: Convert it to items, confirm the total and send a pay link
- When order ready: Notify the customer with the pickup or delivery time
- When 30 days since last visit: Send a personal "we miss you" offer
flowchart LR
subgraph R0["Rule 1"]
direction TB
W0{{"When: Customer asks for a table"}} --> T0["Then: Check capacity for that time and confirm or offer alternatives"]
end
subgraph R1["Rule 2"]
direction TB
W1{{"When: Large group or peak time"}} --> T1["Then: Ask for a small advance to hold the table"]
end
subgraph R2["Rule 3"]
direction TB
W2{{"When: Order message arrives"}} --> T2["Then: Convert it to items, confirm the total and send a pay link"]
end
subgraph R3["Rule 4"]
direction TB
W3{{"When: Order ready"}} --> T3["Then: Notify the customer with the pickup or delivery time"]
end
subgraph R4["Rule 5"]
direction TB
W4{{"When: 30 days since last visit"}} --> T4["Then: Send a personal 'we miss you' offer"]
end
S(["Start"]) --> R0 --> R1 --> R2 --> R3 --> R4 --> E(["Done and logged"])
classDef when fill:#E6F3FB,stroke:#1691D6,color:#12112E
classDef then fill:#1691D6,stroke:#0a5f95,color:#fff
classDef end1 fill:#12112E,stroke:#12112E,color:#fff
class W0,W1,W2,W3,W4 when
class T0,T1,T2,T3,T4 then
class S,E end1What can be developed
- Mobile app: Customer app: menu, order, track, reorder
- Website: Menu and table-booking page
- Admin dashboard: Kitchen and floor view: bookings and live orders; Menu, stock and timing settings
- AI and automation: Turns free-text orders into a clean order; Suggests add-ons and handles changes
The money (illustrative example)
The customer pays ₹2999 per outlet, per month. API and hosting costs: WhatsApp conversations ₹550, AI ordering ₹450, Maps ₹100, Hosting ₹150, together ₹1250. Net profit ₹1749.
sankey-beta Customer pays,WhatsApp conversations,550 Customer pays,AI ordering,450 Customer pays,Maps,100 Customer pays,Hosting,150 Customer pays,Net profit,1749
Watch out for
- The kitchen must be able to pause orders at any time.
- Out-of-stock items should be removed immediately.