North Marketing
ESEN
Book your diagnosis

Industry

Marketing for restaurants

A restaurant does not have a follower problem. It has empty tables on certain days and times, and guests who came once and never returned. That is where we start.

North team · Updated October 7, 2026 · 4 min read

Where to start

Front 1 · Strategy and operations

What gets doneHow it gets doneDetails
Fill empty slotsRead covers by day and time slot, and build an offer only for the slow slot: a lunch menu, a Wednesday wine pairingStrategy
Guest baseBookings, WiFi, delivery and stamp card in one CRM, with phone numbers in +52 format and consent per channelCRM
Bring guests backStamps in Apple Wallet or Google Wallet and a reminder when a guest goes past their usual interval without coming inLoyalty
Email and WhatsApp to the baseBirthdays, a new menu, a special dinner; every campaign with a control groupEmail marketing
PartnershipsDinner included in a stay at a nearby hotel, with its own code to measure what comes inRestaurants and hotels

Front 2 · Autonomous agents

What gets doneHow it gets doneDetails
Booking agentAnswers about the menu, hours, allergies and parking using your information; checks tables and booksWhatsApp agent
Deposits for groups and busy datesA payment link for large tables or special nights, with the menu chosen in advance if neededBookings and appointments
Day-before confirmationA WhatsApp template with buttons to confirm or release the tableAutomation
InstagramAnyone who writes "book" in a message or comments on a post gets the link privatelyInstagram agent

Front 3 · Digital positioning

What gets doneHow it gets doneDetails
Google MapsThe right primary category, menu uploaded, real photos, posts with news and reviews answered in under 48 hoursGoogle Maps
ContentVertical videos of dishes leaving the kitchen, the team and a full dining room, with a call to book in every pieceContent for restaurants
Local adsA radius of a few kilometers, sent to WhatsApp, measured in bookings and not in clicksLocal Meta Ads
AI assistantsPages that answer searches like "where to have dinner with a terrace in your area", to show up in ChatGPT or GeminiShowing up in ChatGPT

Methods with examples

Illustrative examples with Casa Aurora, a hotel with a restaurant.

Occupancy by time slot: where the unsold capacity is

Covers for each service are compared with the dining room's capacity. The result shows which slot needs an offer and which one sells itself.

Covers by time slot, one weektable
slot          Mon  Tue  Wed  Thu  Fri  Sat  Sun
lunch          22   25   27   30   41   52   55
dinner         18   20   24   38   58   60   47
capacity: 60 covers per service

dinner Mon to Wed   (18 + 20 + 24) ÷ 180 = 34%
dinner Fri and Sat  (58 + 60) ÷ 120      = 98%

Recommendation. The offer goes to dinner Monday through Wednesday. Lowering the Saturday price would give away margin that already sells.

A reminder to people who stopped coming, based on their own rhythm

Each guest has a usual interval between visits. The reminder goes out when they exceed it by a wide margin, not on a fixed schedule that is the same for everyone.

Reactivation rulerule
rule: days without visiting > 2 × their usual interval

cus_41a   visits every 14 days   last visit 33 days ago   → send
cus_9b2   visits every 60 days   last visit 70 days ago   → wait

channel: approved WhatsApp template or email, with a specific reason
(new menu, table for two on Thursday)

Recommendation. Someone who comes every week and someone who comes every two months are not lost at the same time. Without enough history, use 45 days as a starting point.

A group booking, step by step

What the agent does when a group writes in with a dietary restriction. Illustrative example.

Execution log · Casa Aurora · restaurantlog
20:12:04.310  input     Instagram · "Do you have a table on Saturday for 8? One of us is celiac."
20:12:04.902  rag       2 chunks: gluten-free menu, group policy
20:12:05.441  function  consultar_mesas(Saturday, 8 people) → 9:00 pm free
20:12:06.120  output    "Yes, at 9:00 pm. The menu marks the gluten-free dishes. For groups of 8 we ask for a deposit."
20:13:40.008  input     "Great, book it."
20:13:40.775  function  crear_reserva(Saturday 21:00, 8) → RES-2291 pending
20:13:41.300  function  generar_enlace_pago(RES-2291, deposit) → sent
20:19:12.554  event     pago_confirmado RES-2291 → note on the booking: 1 celiac
Friday 12:00  template  reminder with Confirm and Change buttons

What we recommend in each case

If this is happeningWe recommendWhy
Full on weekends, empty midweekAn offer only for the slow slot, sent to the base with a control groupYou sell idle capacity without touching the Saturday price
Bookings that do not show upDay-before confirmation and deposits for groupsA table released in time can be sold again
You get lots of messages and are slow to replyA booking agent on WhatsApp and InstagramPeople asking about a table are usually deciding right then
Good reviews and few visits from MapsCategories, menu, photos and posts on the Business ProfileGoogle ranks local results by relevance, distance and prominence; a complete listing adds relevance
One-visit guestsStamp card and a reminder based on each guest's intervalFrequency is the cheapest lever to raise what each guest brings in
Low average checkWine pairing, tasting menu or a package with a partner hotelIt raises the check without cutting prices

Real restaurant and café case studies

Analysis of cases published by the brands or the platforms, with their sources. North did not take part in them.

What we measure

Covers per time slot, bookings per channel, no-shows, returning guests and average check. Every month you see what moved the number.

Let’s start with a free diagnosis

30 minutes to see where your business is losing customers and what to do first. If you don’t see results in 30 days, we give your money back.

Book your diagnosis

We’ll message you on Instagram with times.

Keep reading