Skip to content

Lapsed Diner Re-engagement

Example prompt: "On the first of each month, find diners who used to come fairly regularly but haven't been in for at least four months, draft each of them a short personal email saying we'd love to see them again, mention their last visit if we've got a note on it, and leave them as Gmail drafts in a folder for me to read through and send."

The Problem

In an independent restaurant the same forty or fifty diners come in often enough that the manager knows their face, their drink, and roughly which table they like — and the slow attrition of those regulars is the single number that decides whether the restaurant is quietly losing its base or holding it. A regular who came every six weeks for a year and has not been in for five months is a regular who has either moved house, fallen out with us, or simply not thought of us in a while, and the difference between the three is one email asking. Nobody writes that email — partly because picking the right names out of a 4,000-row diners sheet is its own job, and partly because writing forty short, sincere, personal notes a month is the work the owner intends to do every quarter and never quite does.

How GloriaMundo Solves It

We build a workflow that fires on the first of each month and assembles the lapsed-diner list from the existing diners sheet. An integration step reads the 'Diners' tab in Google Sheets, with each row holding name, email, last visit date, and a free-text note where the owner has logged what the diner ate, who they came with, and any preference worth remembering. A code step picks the rows where the last visit is between four and twelve months ago and where the diner came at least three times in the year before that, so the message lands on a real lapsed regular rather than on a one-time guest who never came back. An LLM step drafts each email individually — a short note referencing the last visit if a note exists for it, offering nothing more than that we have noticed and would like to see them again, no discount and no marketing. A second integration step saves each draft into Gmail in a labelled folder called 'Lapsed Outreach' so the owner reads through them at their own pace and sends the ones they want to send. The system never sends anything directly — the personal note is only personal if a person signed it off.

Example Workflow Steps

  1. Trigger (scheduled): First of each month at 09:00.
  2. Step 1 (integration): Read the 'Diners' tab from the bookings Google Sheet — name, email, last visit date, visit count over the prior twelve months, and the free-text note.
  3. Step 2 (code): Pick the rows where the last visit was between four and twelve months ago and the prior-year visit count is at least three, and dedupe against the 'Outreach Log' tab on rows in contacted state in the last twelve months — rows in draft_created state are not treated as contacts, so a diner whose draft was never sent comes back up on the next run.
  4. Step 3 (llm): Draft each email individually — a short personal note referencing the last visit if a note exists, offering nothing more than that we have noticed and would like to see them again, with no discount or marketing language and no template phrasing that would read as bulk if two diners compared them.
  5. Step 4 (integration): Save each draft into Gmail in a labelled folder called 'Lapsed Outreach' with the diner's name in the subject line and a gm-lapsed-outreach Gmail label so the owner can scan the list and choose which to send, and so the next step can detect whether a draft has actually been sent.
  6. Step 5 (integration): Append a row to the 'Outreach Log' tab in the diners sheet for each diner with a draft created — name, date, last visit reference, draft id — under a draft_created state, not a contacted state, so an unsent draft does not silently suppress the diner from next month's run.
  7. Step 6 (scheduled, +30 days): Read the Gmail gm-lapsed-outreach label and check each draft's status — for drafts that have moved to Sent, flip the matching 'Outreach Log' row to contacted with the sent-date so the twelve-month dedup applies; for drafts still sitting in the folder or deleted, leave the row as draft_created so the dedup gate in Step 2 lets the diner come up again on a future run if the owner never sent the note.
  8. Step 7 (integration): Post a short Slack DM to the owner with the count of drafts saved and the folder link so the queue is read within the week.

Integrations Used

  • Google Sheets — the 'Diners' tab for the visit history and notes, and the 'Outreach Log' tab where each draft is logged as draft_created and flipped to contacted only once Gmail confirms the draft was sent, so an unsent draft never silently suppresses a diner from next month's run
  • Gmail — the labelled 'Lapsed Outreach' drafts folder where the owner reads through the queue and sends the ones they want to send
  • Slack — the owner's DM with the count and the folder link so the queue is read within the week

Who This Is For

Owner-operators of independent restaurants, bistros, and gastropubs holding a Google Sheets diners list with last-visit dates and free-text notes — anyone who has watched a slow drift in the regulars and intended to write personal re-engagement notes every quarter but has never had the evening free to do it.

Time & Cost Saved

Forty short personal emails a month is half a day's writing if done in one sitting and is consistently the work that does not get done — not because it does not matter but because it cannot be batched with anything else and the half-day never appears on a busy week. The workflow does not replace the writing — the owner still reads each draft and sends the ones they want to send and changes a sentence where the LLM has not caught the tone right — but it removes the picking-from-4,000-rows job and produces a queue of drafts that can be read through in twenty minutes over a coffee on a quiet Tuesday morning. The dedup is keyed on actual contacted status confirmed by Gmail, not on draft creation, so a diner whose note the owner read and decided not to send comes back up on the next run rather than being silently suppressed for a year on the strength of an unsent draft.