Skip to main content

Email marketing campaigns

Available on the Elite plan. For one-off campaigns (events, offers, news) to your customer base.

If you need automated, event-driven emails (confirmation, reminder...), that's automations, not campaigns.

What they're for​

  • Win back inactive customers: "We miss you" to customers who haven't come in 6 months.
  • Announce events: pairing dinner, seasonal menu change.
  • One-off promos: time-limited discount code.
  • Launches: new menu, new venue, new hours.

Create a campaign step by step​

1. Basic info​

  • Internal name: for your own history (e.g. "Q2 2026 reactivation").
  • Email subject: what the customer sees in their inbox.
  • Template: Dish of the week, Special event, Seasonal news, We miss you, Exclusive offer.
  • Custom content (optional): notes for the AI to generate the body.
  • Generate with AI: button that asks Gemini for a subject + body based on your template type and notes.

2. Recipients​

With no filters, it goes to every customer in the workspace with an email. Available filters:

  • Last visit: date range. Useful for "customers who haven't come in 6 months".
  • Minimum reservations: focus on loyal customers.
  • Only completed reservations: exclude cancellations / no-shows.

The system shows in real time the total number of recipients and a sample of emails so you can verify.

3. Preview​

  • Mobile and desktop modes.
  • Real restaurant data (name, address, logo).
  • If the template has a promo code, you see it rendered.
  • Personalized greeting with {customer_name}.

4. Summary and send​

Final review before sending:

  • Name, subject, template, segment, offer code.
  • Two options:
    • Save as draft - to review later.
    • Send now - immediate mass distribution.

Segmentation: examples​

Reactivate inactive customers:

  • Last visit: 6+ months ago
  • Minimum reservations: 1 (they came at least once)
  • Template: "We miss you"

Reward VIPs:

  • Minimum reservations: 5
  • Only completed: yes
  • Template: "Exclusive offer" with a code.

Fresh customer:

  • Last visit: in the last 2 weeks
  • Template: "Seasonal news"

Campaign statuses​

  • Draft: not yet sent.
  • Sending: in progress.
  • Sent: completed successfully.
  • Failed: general error (rare; if it happens, check logs).

Coupons​

Offer templates have an optional field for discount code (e.g. MAY15). The code is highlighted in the email and the customer applies it when reserving.

AI generation​

Instead of writing from scratch, you can:

  1. Pick a template.
  2. Write notes ("we're refreshing the menu with local, seasonal ingredients").
  3. Generate with AI → Gemini proposes a personalized subject and body using restaurant data.
  4. Edit if you want.

Post-send metrics​

After sending:

  • Sent / Failed / Total.
  • Open rate: % of customers who opened the email (via transparent pixel + Resend webhook).
  • Click rate: % who clicked any link.
  • Per-recipient table: individual status (sent/failed) with timestamp.

Anti-spam policy​

RestaPro automatically respects:

  • email_unsubscribes: customers who unsubscribed don't receive more campaigns.
  • List-Unsubscribe header RFC 5322: customer can unsubscribe in one click from Gmail.
  • Footer with unsubscribe link in every email.

Best practices:

  • Don't send more than 1-2 campaigns/month to the same segment.
  • Segment: the right message to the right audience.
  • Bring value (not just "buy").
  • Make sure you comply with GDPR: only to customers who consented when reserving.
ESENCA