Restaurant Email Marketing: A Weekly Send Written by AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Restaurant Email Marketing: A Weekly Send Written by AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Restaurant Email Marketing: A Weekly Send Written by AI.

Keep one sheet of guests who agreed to emails, tag each as regular, lapsed or private-dining, and each week paste your real news into ChatGPT or Claude. Ask for one core email, a short variant per segment and five subject lines, then check every fact and send from Mailchimp. Expect about 25 minutes a week.

The AI supplies wording; you supply the facts and the permission. A booking is not marketing consent, and a draft will happily invent a dish, a deadline or an allergen claim, so the guest sheet, a weekly news slip and a short check before sending do most of the work. Mailchimp's Free plan stops at 250 contacts and 500 sends a month, so anything beyond a very small list needs a paid plan.

Follow me on Instagram@sagnikteaches

A booking is not consent: building the guest list properly

Mailchimp's help pages are clear on this. The service is permission-based, and its own examples include a restaurant: subscription cards left on tables produce a list you may use. A bowl where diners dropped business cards for a prize draw does not, because those people handed over an address without asking for emails. Purchase history sits in the middle. Mailchimp's terms accept it as permission, but its article warns that it may fall short of local marketing rules, which is the sentence to take seriously if your guests come from more than one market. The compliant and non-compliant list examples are worth ten minutes.

Connect on LinkedInSagnik Bhattacharya

The working rule is to email only people who made an active choice to hear from you, and to record when and how they did. Four routes produce that, best first:

Subscribe on YouTube@sagnikteaches
  • A card or QR code on the table with one sentence about what guests will receive. The guest types their own address, so typing errors are rare.
  • A tick-box on your own booking form, left unticked. Mailchimp advises against pre-ticked boxes because the guest takes no action.
  • The host-stand sheet. Acceptable, but handwriting produces bounces, so send a welcome email within a day and correct the failures.
  • A booking platform's guest export. Treat it as not yet consented. Check what guests agreed to at booking and what the platform's terms allow. Until then keep those addresses out of Mailchimp. A thank-you from the booking system inviting guests to join through your own form is the clean way in, and it is what Mailchimp itself suggests for ticket buyers.

Record every sign-up in the same sheet that drives your segments. Here is a filled-in version of the columns, with dummy addresses:

EmailFirst nameJoinedRouteWordingPrivate diningLast visitVisits, 90 days
guest-a@example.comA.2026-09-15Table QRv2No2026-10-243
guest-b@example.comB.2026-06-02Booking formv1Yes2026-08-301
guest-c@example.comC.2026-03-19Host standv1No2026-05-120
guest-d@example.comD.2026-10-20Table QRv2Nonone yet0

The "Wording" column earns its place the first time you change the sign-up sentence. Give each version a number, so you can say what a guest actually agreed to. Keep the two tick-boxes separate: a guest who wants to hear about the lamb may not want party-menu sales.

[ ] Send me the weekly email: what is on, table offers and events.
[ ] Also tell me about private dining dates and menus.
You can unsubscribe from any email.

Mailchimp's signup forms can add double opt-in, where the guest confirms by email, which also catches mistyped addresses. The step-by-step settings are in the Mailchimp consent and unsubscribe checklist. None of this is legal advice; if your guests come from several markets, ask an adviser who knows their rules.

Three segments, each with a rule you can run from a spreadsheet

Mailchimp cannot see who dined with you. That information lives in your booking system, your till or a sheet, so you work the segments out there and push them into Mailchimp as tags. Tags are included on every plan. On Free and Essentials a segment can hold up to 10 conditions with one and/or operator, and Standard and above get the advanced builder, but a tag is one condition, so the limit never matters here.

SegmentRule (a starting point)How oftenThe email's job
RegularsVisited at least once in the last 90 daysWeeklyNews, first sight of new dishes, a nudge towards your quietest service
LapsedOn the list, but no visit in the last 90 daysEvery second weekOne thing that has changed since they were last in, plus one dated offer
Private diningTicked the private-dining box or sent an enquiryMonthlyOpen dates, capacity, menus and how to enquire; held out of the weekly send

Those cut-offs are guesses until your own data corrects them. A neighbourhood place that people use twice a month might set "regular" at 60 days, while a special-occasion restaurant may need 180. The real test is whether each segment would want a different email. If two of them would get the same one, merge them.

You can sanity-check the thresholds with an AI assistant without sharing a single name. Paste counts only:

Guests who opted in, by visits in the last 90 days (counts only, no names):
0 visits: 680
1 visit: 210
2 visits: 110
3 or more: 60
A further 90 guests ticked private dining and are held out of these counts.

I plan three segments: regulars (visited in the last 90 days), lapsed (no visit
in 90 days) and private dining. The restaurant has 55 seats and is open Tuesday
to Sunday. Is 90 days sensible? What would you change, and what do you need to
know before deciding?

A typical reply (illustrative) notes that the 380 recent guests are really two groups, 170 who came more than once and 210 who came once, and that a single visit is not yet a habit. It suggests testing a 60-day line and asks how long returning guests usually wait between visits. The useful part is that question. The reply cannot answer it, but your sheet can: work out the median number of days between a guest's first and second visit, and put the lapsed line at roughly twice that gap. Treat that as a rule of thumb, not a law.

Once a month, refresh the tags. A formula does the sorting in the sheet, and Mailchimp's Tags page does the rest:

=IF(F2="Yes","private-dining",IF(TODAY()-G2<=90,"regular","lapsed"))
(F = private dining ticked, G = last visit date; guests with no visit date need their own rule)
  1. In the sheet, filter by the new segment column and copy each group's email addresses.
  2. In Mailchimp's contact table, select all contacts, choose Tag contacts, and remove the three old tags.
  3. On the Tags page, use Bulk tag, paste one group's addresses, pick "Tag these emails" and apply the matching tag. Repeat for the other two. Labels shift now and then, so read the screen rather than trusting this list.

It takes about ten minutes. The formula gives private dining priority, so nobody who asked only about party menus lands in the weekly send. A guest who ticked both boxes on the form needs the regular or lapsed tag as well, so add it by hand; otherwise they miss the weekly email they asked for. For the lapsed segment specifically, the Mailchimp lapsed-customer segment tutorial goes deeper into building it from Mailchimp's own activity data, and segmenting a small email list with AI covers the general idea.

The weekly news slip you paste in, and the prompt that uses it

AI drafts go wrong when the facts are vague, so the weekly input is a short, structured slip that takes six minutes on Monday afternoon. Here is one filled in for a 55-seat neighbourhood restaurant that closes on Mondays:

NEW THIS WEEK: braised lamb shoulder with white beans, $27, from Thursday 5 November
QUIET SERVICES: Tuesday and Wednesday lunch have plenty of tables
OFFER (lapsed guests only): free coffee with any main course at lunch, Tuesday to
  Thursday, until 25 November. Guest shows the email.
BOOKING: [booking link], or reply to this email
FIXED FACTS: open Tuesday to Sunday, closed Mondays. Lunch 12 to 2.30, dinner 6 to 9.30.
NEVER SAY: any allergen or dietary claim, "award-winning", "best", "famous",
  anything about limited portions or last tables, any price not listed above

The "never say" line is the one that pays for itself. Left alone, a model fills gaps with plausible filler, and in a restaurant plausible filler can mean an allergen statement nobody in the kitchen has made. Everything else on the slip is either a fact you control or a deadline you set.

The prompt wraps the slip with your voice and the three outputs you want:

You write the weekly guest email for [restaurant name], a 55-seat neighbourhood
restaurant. Voice: warm, plain, a little dry. Short sentences. No exclamation
marks. British spelling. Address the guest as [first name].

Use ONLY the facts in the news slip below. Do not add dishes, prices, dates,
claims or deadlines. If something is missing, write [CHECK: what is missing].

NEWS SLIP:
[paste the slip]

SEGMENT: regulars (visited in the last 90 days). No offer. Nudge them towards
the quiet services.

Give me:
1. Five subject lines, each 45 characters or fewer, in five different styles
   (specific dish, a day, a question, a plain statement, a number).
2. One preview text of 60 characters or fewer.
3. The email, 120 to 160 words, one link to book, one sign-off.

Notice what the AI never sees: names, addresses or visit histories. It needs this week's news and a description of who is reading, and nothing more. The "[first name]" placeholder becomes Mailchimp's first-name merge tag, written as *|FNAME|*, when you paste the text into the editor. Mailchimp lets you set a default for guests with no first name on file, so "Hi there," replaces a blank gap.

A first draft for regulars, and what to fix before it goes

The reply to the prompt above will look roughly like this. It is an illustrative draft, written to show the kind of faults to expect:

Subject options: 1. Braised lamb shoulder is back from Thursday. 2. Your Tuesday lunch table is waiting. 3. Thursday 6 November: lamb and white beans. 4. Free tables midweek, and a new dish. 5. 27 dollars, 6 hours in the oven.

Preview: New from Thursday, and room on Tuesday and Wednesday.

Hi [first name],

From Thursday 6 November our award-winning kitchen is serving braised lamb shoulder with white beans, $27. We cook it slowly all afternoon, and we only make twenty portions a night, so it never dries out. A gluten-free version is available on request.

If you fancy a quieter table, Tuesday and Wednesday lunch have plenty of room, and we are open every day for dinner. Book at [booking link] or just reply to this email. Book now to avoid disappointment!

See you soon,
[your name]

That draft has six faults, and I would expect two or three of them in a typical first pass even with a tight prompt:

  • A wrong date, twice. Thursday is the 5th, not the 6th, and the error sits in subject line 3 as well as the body. Models often get weekday and date pairs wrong, so check every one against a real calendar.
  • "Award-winning". It was on the never-say list and still arrived. Delete it.
  • "Only twenty portions a night". Invented scarcity. If it is false, it will cost you trust the first time a regular orders the dish on the nineteenth portion and gets it anyway.
  • "Gluten-free on request". An allergen claim nobody in your kitchen made. Remove it, and take dietary information only from your allergen records.
  • "Open every day for dinner". You are closed on Mondays.
  • "Book now to avoid disappointment!" Stock urgency with an exclamation mark. A before and after: "Book at [booking link], or reply and we'll hold a table for you." Anyone who replies expects a human answer, so make sure the reply-to address is read.

Subject line 5 shows another pattern. "27 dollars, 6 hours in the oven" is catchy, but the six hours came from nowhere. A specific number in a subject line must come from your slip, or it is an invention with good rhythm.

Subject lines: five options, limits worth keeping, one test a month

Mailchimp's own guidance is a useful ceiling: no more than 9 words and 60 characters, no more than three punctuation marks and no more than one emoji. Its Subject Line Helper is free on every plan, including Free, and flags lines that are too long to display well on a phone. I ask the AI for 45 characters or fewer so there is room to spare, and for different styles, because five variations of the same idea waste the exercise.

SegmentWeakBetterWhy it works
RegularsThis week at [restaurant]Lamb shoulder is back from ThursdayNames the dish and the day
RegularsOur weekly newsletterRoom at Tuesday lunch, and a new dishGives a reason to book a quiet service
LapsedWe miss you!!!A coffee on us, until 25 NovemberStates the offer and its end date
LapsedCome back for 20% offThe menu has changed since you were inHonest, and true for anyone who has not visited in 90 days
Private diningBook your event nowPrivate dining: December dates are openSays what is available, only if true

Preview text matters as much as the subject. If you leave it blank, most inboxes show the first words of the email instead, which can be a "view in browser" line. Set it in the Subject section, keep it short, and use it for the second half of the thought, such as "New from Thursday, plus plenty of room on Tuesday."

To test subject lines properly, you need to know what Mailchimp offers by plan. A/B testing is listed on Essentials, Standard and Premium but not Free, with up to three variations, and the winner can be picked by open rate or click rate. With 380 regulars, a 50/50 split leaves 190 per version, and a gap of five clicks proves nothing. So test one thing at a time and judge it over four weeks. On Free, alternate styles on alternate weeks and compare the coded bookings. Prefer click rate to open rate for any automatic winner, because opens are the less reliable number (more on that below), and read the longer tutorial on AI subject lines and testing if you want more styles.

Variants for lapsed guests and private dining

One core email, three jobs. The regulars' version is the draft above. The lapsed version keeps the same news but changes the reason to come back, and the private-dining note is a different animal altogether.

Lapsed guests. Lead with what is different since their last visit, then one offer with an end date. The AI's habit is to open with guilt ("we've missed you") and close with false urgency, so tell it not to. Offer maths belongs in the prompt too. If the free coffee costs you about $2.40 a redemption, nine redemptions in a week cost $21.60, which is cheap if even three of those tables were people who had not visited in three months. If the offer cannot be honoured at the till without a manager, it is too complicated to send.

SEGMENT: lapsed guests (no visit in 90 days). Keep the same news.
Open with the one thing that is new since they were last here. Include the
coffee offer with its end date and how to claim it. Do not say "we miss you",
do not mention discounts, do not add urgency that is not in the slip.
110 to 140 words. Give three subject lines.

Private-dining enquirers. They want dates, capacity and a price shape, not dishes of the week. Send it monthly or quarterly, and fill the slip yourself: dates still open, seated and standing capacity, the two menu options with per-head prices, your deposit rule and how to enquire. A note for this group should be 100 to 130 words, with the dates first. Holding them out of the weekly send also stops a lapsed-guest coffee offer landing in a party planner's inbox, which is an easy way to lose someone who might have booked a table for twenty.

PRIVATE DINING SLIP (monthly)
DATES OPEN: Fri 4, Sat 12, Fri 18 and Sat 19 December; weekdays on request
CAPACITY: 24 seated, 40 standing
MENUS: set menu at $38 or $52 a head; drinks packages priced separately
DEPOSIT: 20% to hold a date, refundable up to 14 days before
ENQUIRE: [enquiry form link], or reply to this email

One more rule: send each segment its own campaign. On Free and Essentials, build the regulars' email, choose Replicate on the Campaigns page (Mailchimp copies content and settings), swap the two or three paragraphs that differ and send the copy to the lapsed tag. Dynamic content, which shows different text to different segments inside one email, is listed on Standard and above, so you do not need it at this size. Mailchimp's built-in AI, Intuit Assist, is listed for Standard and Premium only, and a chat assistant does the same drafting job on any plan.

One week from sheet to send, with illustrative numbers

The example restaurant is a 55-seat neighbourhood place, closed on Mondays, with 1,150 opted-in guests: 380 regulars, 680 lapsed and 90 private-dining enquirers. Over a month it sends four regular emails, two lapsed ones and one private-dining note, which is 2,970 sends. The Free plan's 500-a-month cap rules it out. Essentials allows ten times your contact count in sends each month, so a 1,500-contact tier has room for 15,000, far more than 2,970. Mailchimp's page shows Essentials from $13 a month, and the 1,500-contact tier was listed at $26.50 a month in a September 2026 check, so confirm your own price in Mailchimp's calculator.

StepWhenMinutes
Fill in the news slipMonday 15:006
Paste slip and prompt, read the draftMonday 15:064
Edit against the check list belowMonday 15:108
Replicate last week's campaign, paste in, set subject and previewMonday 15:187
Test send to two staff phones, then schedule for Tuesday 10:00Monday 15:253

That is 28 minutes, or about 25 once you know where things are. The week's results (illustrative figures) came from a code word, say "TUES", that guests mention at booking or show on their phone, because the host stand counts those faster than any dashboard.

SegmentSentClicksTables with codeCoversSpend at $29 a head
Regulars380521436$1,044
Lapsed68031923$667

It is tempting to call that $1,711 of revenue from the email. It is not, because regulars would have come anyway on some of those nights. Suppose half the regulars' covers were genuinely extra: 18 covers, $522. All 23 lapsed covers count, since by definition those guests had stayed away for three months. That leaves roughly $1,189 of extra spend, or about $830 of gross profit if food and drink cost you 30%, against about $22 of coffee. The platform costs about $6 a week and 28 minutes of your time is worth about $12 at $25 an hour, so the week cost roughly $18 plus $22 in coffee. Those are illustrative numbers, and your ratio of regulars to lapsed will differ, but the method is portable: count tables, discount the ones you would have had anyway, subtract the offer cost, and compare with the cost of the hour.

The email is also aimed at Tuesday lunch, your quietest service. A weekly email that fills a busy Friday adds little, while one that fills a quiet Tuesday adds tables you would not otherwise have had. The same logic sits behind a no-app rewards scheme, which gives regulars a reason to choose the slow nights.

Nine checks to run against the news slip before sending

Use this list every week. It takes four minutes and catches what the draft gets wrong:

  • Dates against a calendar. Every weekday and date. This is the commonest error in AI drafts.
  • Dishes and prices against the live menu. Not against last week's email, which may be the model's source of confidence.
  • Allergen and dietary words. Delete any claim the kitchen has not signed off.
  • Opening days and hours. Compare with the fixed-facts line, not with memory.
  • Superlatives and scarcity. Remove "best", "famous", "award-winning", "only 20 left" and "last tables" unless true and provable.
  • The offer. Does the till or the host stand know how to honour it, and does it have an end date?
  • Placeholders. No "[first name]", "[CHECK: ...]" or "[booking link]" left in the text. Send a test to two phones and look at the greeting, the link and the preview.
  • The right segment. Lapsed offer to the lapsed tag only, and nobody from private dining on the weekly send.
  • Unsubscribe and reply-to. The footer link is present, and the reply-to inbox is watched by a person.

The email newsletter QA checklist adds more checks for formatting and links if you want a longer one. The most expensive mistake in the first month is usually a stray placeholder: "Hi [first name]," going to 380 regulars looks careless, and a test send to your own phone shows it in seconds.

Reading results when open rates are unreliable

Open rates are the number everyone looks at first and trusts least. Mailchimp's own help says open tracking relies on images, so it is not fully accurate, and that Apple's Mail Privacy Protection can falsely inflate open and click metrics. It suggests excluding that activity from reports. In practice, treat opens and clicks as direction, and treat coded bookings as the number you trust.

A four-week table is enough:

  • Per segment: sends, clicks, coded tables, covers and unsubscribes.
  • Per month: list growth by sign-up route, so you know whether the table QR code or the booking-form tick-box is doing the work.
  • Complaints: Google's sender guidelines ask senders to keep spam complaints below 0.10% of messages, which is about one in a thousand, and never reach 0.30%. As a rough guide, one "report spam" click among 680 lapsed recipients is 0.15%, already over that line. If it happens twice, look at the consent behind that segment before touching the copy.

My rule of thumb for a decision: if a segment's unsubscribes in four weeks exceed its coded bookings, halve its frequency before changing anything else. It is a heuristic, not a measured law, but it stops a keen weekly send from wearing out a list. The Mailchimp pricing page is the place to re-check plan limits each quarter, as they change, and Google's sender guidelines are the place to check complaint thresholds.

Questions restaurant owners ask before the first send

How often should a restaurant email its guests?

Weekly suits regulars only when each send has a real reason to exist, such as a new dish, a quiet service to fill or a date. I would email lapsed guests every second week and private-dining enquirers monthly. If you have no news, skip the week. Watch unsubscribes per segment for a month and slow down wherever they climb.

Can I email guests who booked through a reservation platform?

Not automatically. A booking shows you have an address, not that the guest agreed to marketing. Check what they ticked at booking and what the platform's terms allow. If in doubt, send a thank-you through the platform that invites guests to join your list with your own form, and keep their addresses out of Mailchimp until they do.

Do I need a paid Mailchimp plan for a weekly send?

Almost certainly. The Free plan allows 250 contacts and 500 sends a month, which is a weekly email to about 125 people, and it has no scheduling. Essentials starts at $13 a month and adds scheduling and A/B testing. Dynamic content, which swaps paragraphs by segment inside one email, needs Standard. Check the pricing page for your contact count.

Should I paste guest names or addresses into ChatGPT or Claude?

No, and you never need to. The AI only needs this week's news, your voice notes and a description of each segment, with counts rather than names. Personalisation happens inside Mailchimp through a merge tag for first name. If you want to analyse guest data, aggregate it into counts first.

Further reads

Sources: Mailchimp pricing and compare-plans pages and help articles on segments, tags, importing contacts, subject lines, A/B testing, open rates and compliant lists (checked October 2026); Google's email sender guidelines.

Want a weekly guest email your team can run?

On a 1:1 call we'll look at how you collect guest details today, decide which segments are worth keeping, and set up a weekly routine that fits your quiet mornings.

Book a 1:1 call with me