Restaurant Email Marketing System

TableMail Turn guest email into weekday revenue.

Store the email addresses you capture during checkout, then send weekday coupons, event notices, and seasonal menu drops. A lightweight build is enough if Cloudflare Workers calls the Resend or SendGrid API for delivery.

Three Starting Campaigns

If the first three campaigns work, the channel is already alive.

Before expanding the program, lock down weekday traffic smoothing, event demand generation, and seasonal-menu reactivation.

Weekday Coupon Monday 3:00 PM

A free drink coupon valid Tuesday through Thursday

This is the smallest useful campaign: take weekend-heavy traffic and nudge it back into weekdays using visit history and day-of-week fit.

Lunch guests who visited within the last 45 days

Event Notice Thursday 6:30 PM

Maker's dinner this weekend

Do not blast everyone. Send this only to the segment with a strong event response rate. The smaller the event, the more email precision matters.

Regulars who respond well to wine nights and reservation-only events

Seasonal Menu First day of the month, 11:00 AM

Spring shellfish menu starts this week

Use new-menu mail to reactivate guests whose visit reason has gone cold. Image-rich sends are manageable with either Resend or SendGrid.

Existing guests who have not ordered in the last 30 days

Operational Flow

Do not stop at storage. Close the loop to delivery in four stages.

The two most important decisions are when you capture the guest email and how you avoid sending the same message to everyone. Once you have a form, D1, and a delivery API, you can start operating without introducing a heavy CRM first.

01

Capture the email at checkout

A receipt QR, table card, or membership form all work. The first priority is getting opt-in without interrupting the in-store experience.

02

Link it to visit history

Do not store the email alone. Keep the minimum useful record: visit date, party size, and ordering patterns. Weekday offers and event offers use different levels of detail.

03

Segment the list

Split out guests with weak weekday habits, guests with high event response, and guests who have been absent for a while. Do not send the same message to everyone.

04

Send from Workers

A Cloudflare Worker reads the eligible audience from D1 and calls either the Resend or SendGrid API. A separate delivery-log table is enough for an operational first version.

Cloudflare Delivery Stack

A thin delivery layer: Workers calling an email API.

Instead of building a large operations app first, isolate only audience selection and delivery logging. The same structure works whether the provider is SendGrid or Resend.

Capture

Email Capture

Collect opt-in through a register-side QR, a post-booking form, or the venue Wi-Fi signup flow.

Store

Customer Storage

Store email addresses, visit history, and segment flags in D1. Three tables are enough to start.

Decide

Send Decision

Use a Worker cron or a manual trigger in an admin screen to lock in the audience before delivery.

Deliver

Mail Delivery

Send signed requests to the Resend or SendGrid API. Start with only three templates.

POST /campaigns/send
-> Worker loads eligible contacts from D1
-> template = weekday | event | seasonal
-> provider = resend | sendgrid
-> write delivery log + unsubscribe-safe status

Minimum Launch Scope

The first release is not a flashy admin tool. It is the minimum system that keeps mail moving.

Keep

  • Email address
  • Visit date and visit count
  • Suppression flag
  • Delivery log

Ship

  • Start with only three templates: weekday coupon, event notice, and seasonal menu.
  • Include an unsubscribe link and a suppression flag from day one. If you only build storage first, you create avoidable cleanup later.
  • A simple delivery log with success, failure, and provider message ID is enough to run the system.
  • The admin surface does not need to be elaborate. A target preview and a send button are enough for v1.

Build the ability to capture, send, and suppress before you build a full customer-management surface. After that, better segmentation and more templates are enough to make weekday restaurant traffic more predictable.

Back to top