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:
- Pick a template.
- Write notes ("we're refreshing the menu with local, seasonal ingredients").
- Generate with AI → Gemini proposes a personalized subject and body using restaurant data.
- 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.