Playbooks · 5 min read

Restaurants on WhatsApp: The Allergy Answer Stays Human

The PostEngage teamEngineering and support ·

A restaurant's WhatsApp is not an enquiry channel. It is the channel the order arrives on, the channel the regular uses to ask if the corner table is free tonight, and the channel a family uses at 8:40pm to say four of us are coming, one is Jain, please manage.

That last message is why this post exists.

The order that arrives as a voice note

Start with the thing that is true of WhatsApp and of almost nothing else a restaurant runs.

A large share of what lands in a restaurant's thread is not typed. It is a fourteen-second voice note listing an order, or a photograph of a menu with three items circled, or a forwarded screenshot of last week's bill with "same again" under it.

None of that is matchable. Keyword rules compare strings, and an audio file has no string. Nothing in this class of tool reads images either, so a photograph of a menu with circles on it is, to an automation, an empty message. It will either fall through to no reply at all or — worse, if you have built a catch-all — get answered with a cheerful template that has nothing to do with what was sent.

Never automate an answer about allergies

"Isme nuts hai kya?" "Does the gravy have egg?" "Ye Jain hai?" "Gluten-free options?"

These arrive constantly, they look exactly like menu questions, and they are the single thing a restaurant must refuse to automate.

The reason is not caution for its own sake. Ingredients are a property of today's kitchen, not of the menu you wrote. The supplier changed. The garnish changed in June. The same pan fried the paneer and the fish. Cross-contamination is a fact about the last hour in a specific kitchen, and no template written in advance can represent it.

A generated reply will be fluent, calm and specific, because that is what generated replies are. It has no way of saying "I do not know, and if I am wrong somebody goes to hospital."

An automated ingredient answer is a promise made by software about a pan it has never seen.

So: a hard stop on allergy, allergic, nut, peanut, egg, eggless, gluten, jain, halal, lactose, dairy, vegan, and whatever else your own regulars actually type — harvest the list from a week of real messages rather than inventing it. The rule does not produce a better answer. It produces no answer, and a person.

The reservation you cannot confirm

The second refusal is less dramatic and catches more restaurants.

"Table for 6 at 9?" is a booking request. An automation replying "Sure, see you at 9!" has confirmed a table on behalf of a diary it cannot see. If the floor is full, you have a family standing at the door holding a screenshot of your own message.

The honest version acknowledges and hands over: the request is received, somebody will confirm shortly, and here is the number to call if it is for tonight. That is not a worse experience. It is the experience a phone call already gives, without the ringing.

The same applies to anything with tonight's stock in it. "Is the crab available?" depends on what came in this morning.

A queue of messages held for human review, each showing why the automation declined to answer it.
The measure of a restaurant setup is not how many messages it answered. It is whether the right ones were held back.

What is left is still most of the volume

Carve out ingredients, bookings and tonight's stock and the remainder is large, boring and perfectly automatable.

Safe to template

Opening hours and holiday closures. The address and a location pin, because the map is wrong. Parking. Whether you deliver to a pincode. The link to today's menu, without prices in the message itself. Which delivery apps you are on. Whether the terrace is open.

Send to a person

Anything about ingredients or diet. Booking requests. Availability of a specific dish. Complaints. Anything that arrived as audio, an image or a forward.

Note the menu link rather than the menu prices. Prices move; a template quoting a figure keeps quoting it long after the printed card changed. "Here is the current menu" survives a revision. A number does not.

And the dated trap every restaurant falls into once: the Sunday brunch template that is correct for four hours and wrong for six days. If a sentence would be false next week, it belongs in a temporary automation with a switch-off date, not in the evergreen set.

The platform part, briefly

The WhatsApp Business Platform needs a Meta Business account, business verification and templates that Meta reviews. Message categories, what needs approval and how it is charged are set by Meta, they vary by country, and they change often enough that any figure in a blog post has a short life. Take the shape from here; take the current specifics from Meta's own documentation on the day you need them.

The free WhatsApp Business app is a different product and handles a single outlet's inbound perfectly well, because most of that inbound is customers writing to you first.

What we actually run today

PostEngage answers Instagram comments and DMs. That is the whole product — no WhatsApp, on any plan or behind any flag. This post is about the channel because these pages get found by people deciding how to handle it, and a reader deserves the real state of things.

On the Instagram side the same refusals apply and the clocks are fixed: a comment stays answerable for seven days, a DM thread for twenty-four hours, and only their next message restarts it. Templated replies are free and unlimited; a credit is spent only when the AI writes new text. The free tier is 100 credits with no card, and packs start at ₹499.

If you run the Instagram side too, the restaurant post for that channel covers the same refusals with different mechanics, and the India overview covers what governs this one. For a café rather than a full-service kitchen, start here.

One email when we publish.

No drip sequence, no “quick question” follow-up. Unsubscribe is one click and we honour it immediately.