ChatGPT Prompts for Restaurants: 10 for Menus, Rotas and Replies

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for ChatGPT Prompts for Restaurants: 10 for Menus, Rotas and Replies.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for ChatGPT Prompts for Restaurants: 10 for Menus, Rotas and Replies.

Ten prompts cover the work. For menus: one dish in three lengths, a plate-cost check and a comparison of menu labels with your allergen matrix. For rotas: a week drafted against availability and a labour target, a cover request and a pre-shift briefing. For replies: reviews, a private-dining enquiry and an allergy question. Each is built to be checked.

Restaurants carry two risks that deserve extra care: allergens, and staff data, because rotas hold more personal detail than they look. So every prompt below takes dish facts, codes and totals rather than names, and three rules never move. ChatGPT never decides what is safe for an allergy, never invents a number, and never sees a staff member's personal details. Run each prompt on last month's real data first, and compare the result with what you know.

Follow me on Instagram@sagnikteaches

What stays out of every restaurant prompt

The examples follow an illustrative 48-seat neighbourhood restaurant, open Tuesday to Sunday, with a kitchen team of five and a front-of-house team of seven. All names are codes and every figure is made up for the example. The outputs shown are illustrative drafts rather than recordings of one run, so yours will differ. Before the prompts, a rule about what may be pasted.

Connect on LinkedInSagnik Bhattacharya
Fine to pasteReplace firstNever paste
StaffRole codes (S1, K2), shift times, pay rate by role, daily forecastsNames become codes; "can't work Saturday" stays, without the reasonPay by named person, reasons for absence such as health or family, right-to-work details, disciplinary notes, phone numbers, bank details
GuestsReview text that is already public, enquiry wording with names removedReservation names become [guest]; contact details become [phone] or [email]Allergy or health details tied to a named person, card details, anything from another guest's booking
The businessMenu text, supplier prices, dish facts, covers and takings by daySupplier names become [supplier] if a contract limits disclosureBank logins, full payroll files

The simplest test is this: if the text would still make sense with every person's name deleted, it is probably safe. Business plans of the main assistants don't train on your content by default, and personal plans have a model-training switch in privacy settings, but neither is a reason to paste personal details.

Subscribe on YouTube@sagnikteaches

Three menu prompts: wording, cost and a second look at labels

Menu work is where ChatGPT looks most helpful and is easiest to over-trust. The wording prompt is low risk. The costing prompt is a maths check you must verify, and the label prompt is a second pair of eyes only.

1. One dish, three lengths from the kitchen's facts

A dish needs a menu line, a delivery-app blurb and a sentence a server can say at the table. If all three come from the same facts, they stay consistent. For finding your own voice first, writing menu descriptions that still sound like you comes before this.

From the DISH FACTS below, write three versions of the description: (a) a menu line of 25 words maximum; (b) a delivery-app description of 45 words maximum; (c) one sentence a server can say at the table.
Use only the facts. Do not add provenance (local, farm names), preparation words (hand-made, house-made, artisan) or taste claims (melt-in-the-mouth, best) unless they are in the facts. No exclamation marks.

DISH FACTS: Slow-cooked lamb shoulder, 8 hours with rosemary and garlic. White bean puree, charred cabbage, salsa verde (parsley, capers, lemon). $26.

A typical result:

(a) Lamb shoulder, slow-cooked for eight hours with rosemary and garlic; white bean puree, charred cabbage, salsa verde.

(b) Lamb shoulder cooked slowly for eight hours with rosemary and garlic, served with creamy white bean puree, charred cabbage and a sharp salsa verde made with parsley, capers and lemon. Locally sourced lamb, so tender it falls off the bone.

(c) It is lamb shoulder cooked for eight hours with rosemary and garlic, with white bean puree, charred cabbage and a sharp parsley and caper sauce.

Line (a) is exactly right, at 17 words. Line (b) adds "locally sourced", which is on no list and could not be defended if a guest asked where the lamb came from, and "so tender it falls off the bone", a promise about texture. Strike both. "Creamy" and "sharp" are small embellishments you may accept as style, but decide that deliberately. The prompt works because it names the words to avoid; add to that list each time a draft smuggles in a new one.

2. Plate cost and food-cost percentage, with the sum shown

This is where care matters, because a plausible total that is a little wrong leads to a wrong decision. The prompt makes ChatGPT show each line so you can check it.

Work out the plate cost and food-cost percentage for the dish below. Show one line per ingredient: quantity x price per unit = cost. Then the total, the food-cost percentage at our menu price, and the menu price needed to reach a 30% food cost.
Use only the figures I give. If a figure is missing, ask me instead of estimating.

DISH: Pan-roasted salmon, crushed potatoes, green beans, lemon butter. Menu price $19.50.
INGREDIENTS PER PORTION: salmon fillet 180 g at $24.00/kg; potatoes 150 g at $1.60/kg; green beans 80 g at $5.00/kg; butter 30 g at $9.00/kg; lemon $0.10; oil, salt and herbs allowance $0.40.

What came back, with my check beside it:

LineChatGPT's workingCorrect?
Salmon0.18 kg × $24.00 = $4.32Yes
Potatoes0.15 kg × $1.60 = $0.24Yes
Green beans0.08 kg × $5.00 = $0.40Yes
Butter0.03 kg × $9.00 = $0.27Yes
Lemon, allowance$0.10 + $0.40 = $0.50Yes
Total$5.93No: the lines add to $5.73
Food cost at $19.5030.4%, "slightly over target"No: $5.73 ÷ $19.50 = 29.4%
Price for 30%$19.77No: $5.73 ÷ 0.30 = $19.10

Every line was right and the total was $0.20 out. That is small enough to miss and large enough to change the story: the dish is under your 30% line, not over it, and the $19.50 price is fine. Had you believed the draft, you would have raised the price for no reason. So never take the total from the chat. Ask ChatGPT to set up the sheet instead (one row per ingredient, a cost column with =quantity*price, a total row), so the arithmetic is done by the spreadsheet; the ChatGPT Excel guide covers the setup. The sheet then answers the what-if that matters most. If salmon rises to $28.00 a kilo, the salmon line becomes $5.04, the plate cost $6.45, the food cost 33.1% at $19.50, and the price needed for 30% becomes $21.50. Run that what-if on your best-selling dishes whenever a supplier sends a new price list: here a $4 rise in one ingredient, about 17%, moved the dish from 29.4% to 33.1%, across your line, without a word changing on the menu.

3. A second pair of eyes on dietary labels

This prompt compares two documents you supply. It does not decide anything about allergens, and the rule that makes it safe is that the sign-off stays with whoever knows your kitchen.

Compare the MENU TEXT with the ALLERGEN MATRIX below. List every place where the menu's labels (V vegetarian, VE vegan, GF gluten-free) disagree with the matrix, or where a dish is on one document but not the other.
Do not decide whether any dish is safe. Do not fill in anything the matrix does not say; if a dish is missing from the matrix, write "not in matrix".
Output a table: dish, menu label, what the matrix says, mismatch (yes, no or check).

MENU TEXT: Caesar-style salad (V). Fish and chips (GF). Mushroom soup (VE, GF). Onion rings.
ALLERGEN MATRIX: Caesar-style salad: contains fish (anchovy dressing), egg, dairy. Fish and chips: contains gluten (batter), fish. Mushroom soup: no animal products, no gluten; contains celery.

What came back:

DishMenu labelMatrix saysMismatch
Caesar-style saladVContains fish (anchovy dressing)Yes
Fish and chipsGFContains gluten (batter)Yes
Mushroom soupVE, GFNo animal products, no gluten; contains celeryNo
Onion ringsnoneNot in matrixCheck

Here it earned its place: two wrong labels and one dish missing from the matrix, all of which a hurried proof-reader could miss. But a single good result proves little. Test the prompt before relying on it: copy your real menu, plant three mistakes you know about (change one label, delete one matrix row, alter one ingredient), run it, and see whether all three are caught. If it misses one, don't use it for this job. Even when it catches everything, its list is a prompt for the kitchen manager's own check, never a substitute. The fuller method is in checking allergen icons and dietary labels before you print.

Three rota prompts: the week, the cover request and the briefing

Rotas are arithmetic wrapped in people. ChatGPT is useful for the layout and the sums, as long as it is given constraints as hard rules and you check every person against them.

4. A week's rota checked against availability and labour cost

This prompt carries the most arithmetic of the ten. The forecasts are yours; the prompt turns them into a draft, shows the cost and flags anything that breaks a rule. For where the forecasts come from, see building a restaurant rota with AI demand forecasts.

Draft next week's rota for a 48-seat restaurant, Tuesday to Sunday, from the data below. Output one table per day: code, role, start, end, paid hours, cost (hours x role rate), then a daily total and the labour percentage of forecast sales.
Rules: use only the staff codes listed; never schedule anyone on a day or at an hour marked unavailable; maximum 9 paid hours per shift; at least 10 hours between the end of one shift and the start of the next; one server per 22 covers, rounded up.
Add on-costs of 12% to the daily total before working out the percentage. Target: 30% of forecast sales or lower. If a day cannot meet the target without breaking a rule, say so and show the closest option. If a rule is unclear, ask me.

STAFF CODES AND ROLE RATES: K1 sous chef $22; K2 and K3 line cooks $18; P1 and P2 kitchen porters $13; S1 to S5 servers $14; B1 bar $15; H1 host $13.
UNAVAILABLE: P1 all day Saturday and Sunday; S5 after 22:00 any day; K3 before 16:00 on Saturdays.
FORECAST SALES: Tue $2,100; Wed $2,300; Thu $2,900; Fri $3,800; Sat $4,200; Sun $3,100. Saturday forecast covers: 85.

Saturday, from the week it returned:

CodeRoleStartEndPaid hoursCost
K1Sous chef14:0023:009.0$198.00
K2Line cook15:0023:008.0$144.00
K3Line cook16:0023:007.0$126.00
P1Kitchen porter17:0023:306.5$84.50
S1 to S4Servers (four)16:3023:006.5 each$364.00
B1Bar16:3023:307.0$105.00
H1Host16:3022:306.0$78.00
Total69.5$1,099.50

The draft then added the 12% on-costs ($1,231.44) and gave 29.3% of the $4,200 forecast, under the 30% target, which would allow $1,260. I redid the sums and they hold: 69.5 hours at the role rates is $1,099.50; × 1.12 is $1,231.44; ÷ $4,200 is 29.3%. Four servers is right for 85 covers at one per 22 (85 ÷ 22 is 3.9, rounded up). The error is not in the money. P1 is on the Saturday rota, and P1 was marked unavailable all day Saturday. The constraint sat in a list, the table was long, and the model missed it. Swap in P2, who has the same rate, and the totals stay as they are.

That is the check for every rota: take each person in the draft, one by one, and look them up in the unavailable list. It takes two minutes and it is the check ChatGPT can't do for you. Then re-add the cost column in a spreadsheet. If a rota fails, ask for a corrected version naming the rule it broke, rather than editing by hand and losing the totals.

5. A cover request that asks without pressure

Staff group chats are where a badly worded request does harm: guilt, favourites, or a reason that reveals someone's private business. The prompt gives ChatGPT the offer and the constraints.

Write a message for the staff group chat asking for one extra server on Saturday dinner, 16:30 to 23:00.
Rules: no names; no reason for the gap; the pay is the normal server rate plus a $20 cover bonus (that is our whole offer); the first person to reply "yes" gets the shift; I will confirm in the chat by 18:00 on Thursday. No pressure, no guilt, nothing like "we're desperate". 60 words maximum.

What came back:

Hi all, we need one more server for Saturday dinner, 16:30 to 23:00. It's the normal server rate plus a $20 cover bonus. If you can do it, reply "yes" in the chat. First yes gets the shift, and I'll confirm by 18:00 on Thursday. Anyone who covers also gets first pick of next month's rota. No worries if not, and thanks.

"First pick of next month's rota" is a perk the prompt did not give, and a promise made to a whole team in writing is hard to take back. Cut it. The rest is right: the bonus, the deadline and a light tone. Keep the "no reason" rule: a message that says why someone is away can disclose health or family details that were told to you in confidence.

6. The pre-shift briefing that copies allergy notes word for word

A one-page briefing before service keeps the floor and the kitchen on the same page. The risk is in the allergy line, where "tidying" can remove the instruction that mattered, so the prompt orders a verbatim copy.

Make a one-page pre-shift briefing for tonight from the data below. Sections: Numbers (bookings by time, booked total, expected total); Specials (name, one-line pitch, price); Out tonight; Allergy and dietary notes; Reminders.
Copy the Allergy and dietary notes exactly as written, word for word, without rephrasing, shortening or tidying. Do not add any note that is not in the data. Do not guess covers.

BOOKINGS: 18:00 x 20 covers; 19:30 x 38 covers; private table of 12 at 20:00 (birthday). Walk-in forecast: 15.
SPECIALS: Pan-roasted salmon, crushed potatoes, lemon butter, $22. Mushroom soup, $8.
OUT TONIGHT: sea bass; sticky toffee pudding.
ALLERGY AND DIETARY NOTES (from the kitchen manager): Table 9, 19:30: severe nut allergy, kitchen to cook separately, manager to speak to table. Private table: two vegetarians, one dairy-free.
REMINDERS: New server tonight; shadow S2.

The part that matters, from what came back:

Numbers: 18:00, 20 covers; 19:30, 38 covers; 20:00, private table of 12. Booked total 70, with 15 walk-ins forecast, so about 85 expected.

Allergy and dietary notes: Table 9 (19:30): nut allergy. Private table: two vegetarians, one dairy-free.

The numbers are right: 20 + 38 + 12 = 70, and 70 + 15 = 85. The allergy line is not. The kitchen manager's note read "severe nut allergy, kitchen to cook separately, manager to speak to table". The draft kept "nut allergy" and dropped "severe", the instruction to cook separately, and the manager's conversation. That is the failure the verbatim rule was meant to prevent, and it happened anyway. So paste the original allergy note beside the sheet and compare them word for word, or paste the note into the printed sheet yourself after the rest is generated. A briefing is a convenience; the kitchen manager's own note is the record.

Four reply prompts: a review, a batch, a party, an allergy question

Replies are public, or they carry promises. Each prompt below limits what ChatGPT may say, because a restaurant's replies are read by future guests as well as the person you wrote to. Google's help page for businesses says to be professional and polite, to avoid using a reply to offer deals or promotions, never to share a reviewer's private information, and to make replies count rather than posting the same thank-you to everyone. Those four rules shape the prompts that follow.

7. A reply to a three-star review that explains nothing away

The facts from your own records go in; excuses and offers stay out. For the wider approach to complaints, see answering restaurant complaints without escalating.

Write a public reply to the review below, 90 words maximum.
Thank them for the feedback, apologise for the experience (not for anything unconfirmed), state one fact from FACTS, and invite them to contact the manager at [manager email]. Do not make excuses. Do not mention other guests or other events. Do not offer anything in the reply: no discounts, no free items. No exclamation marks.

REVIEW (3 stars): "Waited 40 minutes for mains on a Saturday and nobody came to explain. Food was good when it came, but we won't be back."
FACTS: Our kitchen ticket log shows mains averaging 38 minutes between 19:30 and 20:30 that night (our target is 25). We have no record that anyone updated the table.

What came back:

Thank you for telling us about your Saturday visit. A 40-minute wait for mains, with nobody coming to explain, is not how we want an evening to go, and I'm sorry we let you down. Our kitchen was slowed by a large private party that night, but that is no excuse for leaving your table in the dark. We would love to welcome you back with a complimentary dessert; please email [manager email] and ask for me.

Two sentences break the brief. "Slowed by a large private party" is an excuse, and it mentions another guest's event, which the prompt forbade. "A complimentary dessert" is an offer in a public reply, and Google's guidance says to avoid using replies for deals. The better version keeps the apology, states the fact from the log, and leaves any offer for a private conversation:

Thank you for telling us about your Saturday visit. A 40-minute wait for mains, with nobody coming to explain, is not how we want an evening to go, and I'm sorry we let you down. Our kitchen log shows mains averaging 38 minutes that evening against a target of 25, and we have no record that anyone updated your table. I would like to hear more; please email [manager email] and ask for me.

That version admits the one thing the log proves and nothing the log doesn't, which is why it reads as honest rather than defensive.

8. Five positive reviews, five different replies

Positive reviews are easy to answer badly: the same "thank you so much" under every one. Google asks for replies that count, so the prompt makes each reply refer to something specific and bans shared openings.

Write a reply for each of the five reviews below, 35 words maximum each. Each reply must mention one specific thing from that review. No two replies may start with the same word or share a closing line. Never write "thank you so much". No offers. Sign each as "[Your first name], [role]".

REVIEWS: (1) "Lovely lamb, and the server remembered our anniversary." (2) "Great value set lunch, quick and friendly." (3) "Best sticky toffee pudding we've had." (4) "Cosy room, lovely staff, will be back." (5) "Booked a table for ten and everything ran smoothly."

What came back for three of them:

(1) Thank you for marking your anniversary with us. We're delighted the lamb went down well. We look forward to welcoming you again.

(2) Thank you for the kind words about our set lunch. Quick and friendly is what we aim for on a working day. We look forward to welcoming you again.

(5) Thank you for trusting us with a table of ten. We're glad it all ran smoothly. We look forward to welcoming you again.

Replies 1, 2 and 5 begin with "Thank you for" and end with the same closing line, which is exactly what the prompt forbade. The content is accurate and specific, and the repetition is what a reader of the page will notice. Ask for a rewrite of two of them with different openings and closings, then read the five in a row. Five replies in a few minutes is fast enough that the check is the part people skip, so build it into the routine.

9. A private-dining enquiry with the minimum spend worked out

Party enquiries are valuable and sum-heavy, and a wrong figure in the first reply becomes a dispute at the end of the night. Give the facts and make the arithmetic visible.

Reply to the enquiry below with the cost worked out line by line, 130 words maximum.
Use only the FACTS. Show the set-menu total, the minimum spend, any shortfall, and the deposit. Do not offer anything that is not in the FACTS. End with the next step.

ENQUIRY (identifiers removed): "We'd like to book your private room for 14 people for a 40th birthday on a Friday evening next month. Can you send menus and prices?"
FACTS: Private room seats up to 16. Friday and Saturday minimum spend $900 for the room. Three-course set menu $42 per person. Deposit to confirm: 25% of the minimum spend. Final numbers due 7 days before. Drinks are charged on the night. Menus will be attached by [me].

What came back:

Hello [first name], thank you for thinking of us for a 40th. The private room seats up to 16, so 14 will fit comfortably. Fridays have a minimum spend of $900 for the room. Our three-course set menu is $42 per person, which comes to $588 for 14, so you would comfortably meet the minimum. To confirm the date we take a deposit of $225, which is 25% of the minimum spend, and final numbers are due seven days before. I have attached the menus. Shall I hold the date for 48 hours?

The mistake is logical: $588 does not meet a $900 minimum. The shortfall is $312, which drinks and extras on the night would need to cover. The model's sentence would have led the host to expect no further charge. Correct that line, and delete "hold the date for 48 hours", because nothing in the facts offers a hold. The other figures are right: 14 × $42 = $588, and 25% of $900 = $225. Ask ChatGPT to state the shortfall explicitly, as the prompt requested; it did not.

10. An allergy question answered without the word "safe"

This is the highest-risk reply in the set. The draft exists only to move the question to the kitchen manager quickly and politely, and a person should read it before it goes. It is not an answer.

Write a short, warm holding reply to the enquiry below, 100 words maximum.
Never state or imply that any dish, menu, kitchen or restaurant is safe, free from, or suitable for any allergy or diet. Say that our kitchen manager will go through the menu with them, and give the ways to reach them: phone [number], 12:00 to 15:00 on weekdays, or reply with the dishes they are considering. Tell them to tell their server again on arrival. Do not say anything has been done unless it is in DONE.

ENQUIRY (identifiers removed): "My daughter has a severe nut allergy. Is it safe to eat at your restaurant on Saturday? Booking for 4 at 19:30."
DONE: Nothing yet.

What came back:

Hello [first name], thank you for telling us before you book. We can't say in an email that any dish is safe for a severe nut allergy, because that depends on the exact dish and the kitchen on the day. Our kitchen manager would like to go through the menu with you personally. Please phone [number] between 12:00 and 15:00 on weekdays, or reply with the dishes you are considering and we will come back to you. We have added a note to your booking so the team is aware, and please tell your server again on arrival. Our kitchen is careful with allergens and can adapt most dishes.

The draft respects the central rule and breaks two smaller ones. "We have added a note to your booking" states an action as done when the prompt said nothing had been, so add the note first, or cut the sentence. "Can adapt most dishes" is a promise nobody has checked. Both go. What stays is the structure: no verdict, a named person, two ways to reach them, and a reminder to repeat the allergy on arrival. Allergen duties differ by place and are serious wherever you operate, so follow the rules that apply to you. For the question of whether a chatbot should be involved at all, see whether an AI chatbot should answer allergen questions.

Testing a prompt on last month before you trust it

"Tested" is something you do to a prompt with your own data, and it takes one afternoon. Three tests cover most of the ten.

  • Replay. Run the rota prompt on a past week whose real sales and shifts you know. Compare the labour percentage and the shape of the draft with what you actually ran. If the draft would have missed a Saturday rush you handled, the prompt's rules are missing something.
  • Plant errors. For the label check, plant three known mistakes and count how many it finds. For the costing prompt, give it a dish you have already costed by hand and compare to the cent.
  • Read the replies cold. Put five of last month's real reviews through prompts 7 and 8, then read the drafts as a guest would. Would a stranger believe a person wrote them?

After the tests, apply the same five checks to every output in service: every total re-added outside the chat, every name in the rota ticked against availability, every allergy note compared word for word, every offer and promise searched for, and every figure in a reply traced to your own records. Keep a short log of what you changed and why. After a month, the changes you keep making become lines in the prompt, and the prompt gets better at your restaurant.

Questions restaurant owners ask before using these

Should I use a scheduling app instead of the rota prompt?

Once the rota has to handle shift swaps, clock-ins, holiday balances and pay exports, a scheduling app keeps those records better than a chat, and many apply availability rules for you. The rota prompt still earns its place for checking a draft against your labour target, testing a what-if such as one extra server, or turning the week into a briefing.

Do these prompts work for a café or a takeaway?

Yes, with smaller inputs. A café's rota has fewer roles and shorter shifts, so keep only the rules you actually apply. A takeaway's replies lean towards delivery-app messages, where each platform's own rules on refunds and contact details come first. The costing and label-check prompts work unchanged, because the arithmetic and the comparison with your allergen matrix are the same.

Do the review prompts work for platforms other than Google?

The wording works anywhere, but every platform has its own rules on offers, contact details and reply length. Read each platform's guidance before you paste a reply across, and keep offers, discounts and personal details out of any public reply where the platform asks you to.

Further reads

Sources: Google Business Profile Help (managing and replying to reviews). Plate costs, rota figures, labour percentages and review text in the examples are illustrative.

Want these prompts tested on your own menu and rota?

On a 1:1 call we'll run your real costings and a past week's rota through the prompts, see which outputs hold up, and decide which jobs are worth setting up properly.

Book a 1:1 call with me