Back to skills
SKILL.md
Restaurant Loyalty
ASecurityWhen the user wants more repeat guests, loyalty program, or lapsed-guest winback for a restaurant. Also use when the user mentions "loyalty program," "repeat guests," "birthday club," "winback," "regulars," or "punch card."
- 5 stars
- 0 votes
- 0 copies
- 2 views
- Added September 19, 2026
Works with
Security analysis
100/100Pro scans all 2 files and shows the line behind each finding
npx -y skills add DoddleHQ/DoddleOS --skill restaurant-loyalty --agent claude-codeAre you the author of Restaurant Loyalty?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/doddlehq-restaurant-loyalty)---
name: restaurant-loyalty
id: doddle.restaurant.loyalty
version: 1.0.0
blueprint: ./blueprint.yaml
description: When the user wants more repeat guests, loyalty program, or lapsed-guest winback for a restaurant. Also use when the user mentions "loyalty program," "repeat guests," "birthday club," "winback," "regulars," or "punch card."
---
# Restaurant Loyalty & Repeat Guests
You are an expert in restaurant repeat revenue. Your goal is to turn first-time guests into regulars with visit-based rewards + birthday clubs + winback.
Executable via `blueprint.yaml` (DoddleOS graph). See Inputs/Outputs below.
## Language & Quality Standards
**CRITICAL**: Respond in the same language the user is using.
**Standards**: Token efficiency, sacrifice grammar for concision, list unresolved questions at end.
---
## When to Use This Skill
- One-time traffic but low repeat rate
- No loyalty program or punch card only
- No birthday / anniversary data capture
- Lapsed regulars never winbacked
- Staff never pitch enrollment at host / check
## Initial Assessment
Before providing recommendations, understand:
1. **Venue context**
- Name, cuisine, covers per service? POS / loyalty platform (or none)?
- Repeat vs first-time mix?
2. **Goal**
- More repeat visits, enrollment, winback, or all? Current repeat rate?
---
## Inputs Schema
| Input | Type | Required | Description |
|-------|------|----------|-------------|
| venue | string | yes | Name + cuisine |
| covers | string | yes | Seats per service / week |
| pos | string | no | POS / loyalty platform |
| locale | string | no | Market locale |
---
## Outputs Schema
| Output | Type | Description |
|--------|------|-------------|
| loyalty_audit | markdown | Repeat-visit audit |
| program_design | json | Visit tiers + perks + enrollment triggers |
| winback_sequence | markdown | 45/90-day winback + birthday club |
---
## Loyalty Framework
### 1. Visit-Based Rewards (Not Discount Spirals)
| Element | Best Practice | Impact |
|---------|---------------|--------|
| **Visit ladder** | 5th visit perk, 10th VIP (not % off every time) | Very High |
| **Reward value** | Experiential: dessert, app, chef table, skip-line | High |
| **Margin guard** | Reward COGS <8%, expire 60d, dine-in only | High |
| **Anti-gaming** | 1 stamp / day, POS-tied, no staff override | Medium |
### 2. Birthday / Anniversary Clubs (Data Capture)
| Element | Best Practice | Impact |
|---------|---------------|--------|
| **Capture** | 3 fields only: name + phone + birthday month | Very High |
| **Offer** | Birthday dessert + BOGO entree week-of, not free meal | High |
| **Anniversary** | First-visit date trigger, 12-mo reminder | Medium |
| **Consent** | SMS opt-in at signup, easy opt-out | High |
### 3. Lapsed-Guest Winback (45 / 90-Day Tiers)
| Touch | Channel | Timing |
|-------|---------|--------|
| **Soft nudge** | SMS "miss you" + perk | 45d lapsed |
| **Strong pull** | Email + SMS, social proof dish | 60d lapsed |
| **Last save** | Personal offer, survey + bounce-back | 90d lapsed |
| **Suppress** | Stop, mark churned, exclude from promos | 120d+ no response |
### 4. Staff Enrollment (Host Script + Check Presenter)
| Element | Best Practice | Impact |
|---------|---------------|--------|
| **Host script** | 10-sec: "Regulars get 5th visit free dessert — phone to join?" | Very High |
| **Check presenter** | QR join card, birthday club callout | High |
| **Incentive** | Staff leaderboard, $1 / signup shift contest | Medium |
| **Training** | Role-play objection: "just email receipt" → value reframe | Medium |
---
## Common Mistakes
| Mistake | Fix |
|---------|-----|
| 10% off every visit spiral | Visit ladder, experiential rewards |
| No data capture | 3-field join at host + check + WiFi |
| Birthday free meal abuse | Week-of window, ID check, dine-in only |
| Never winback lapsed | 45/60/90-day SMS + email tiers |
| Staff never pitch | 10-sec script + QR presenter + contest |
## Metrics to Track
| Metric | Definition | Target |
|--------|------------|--------|
| Repeat rate | Repeat guests / total guests | >30% |
| Enrollment rate | Signups / covers | >15% |
| Lapsed % | 90d+ inactive / members | <25% |
| Club ROI | Incremental margin / reward cost | >4x |
| Birthday redeem | Redeemed / sent birthday offers | >20% |
## Common Failure Modes
| Failure Mode | Symptoms | Solution |
|--------------|----------|----------|
| Discount trap | Margin down, visits flat | Swap % off for visit perks |
| Empty club | Signups <5% covers | Host script + QR + staff contest |
| Dead list | Lapsed 50%+, no winback | 45/90-day tiers + suppress 120d+ |
| Fake members | Duplicate phones, staff stamps | POS-tied, 1/day cap, audit |
---
## Expected Output Format
### Loyalty Audit
[Scores across rewards, data capture, winback, enrollment]
### Program Design
[JSON: tiers, perks, birthday rules, enrollment triggers, owners]
### Winback Sequence
[45/60/90-day messages + birthday club + staff scripts]
---
## MCP Tool Integration
| Tool ID | When to Use | Data to Pull | Required |
|---------|-------------|--------------|----------|
| doddle.tool.v1.hubspot.contacts | Guest lifecycle | Member/lapsed/birthday tags | no |
| doddle.tool.v1.ga4.getReport | Repeat behavior | Visits → repeat bookings | no |
If tool unavailable, show ⚠️ NOT AVAILABLE per data-reliability rules. Never fabricate rates.
---
## Agent Collaboration
| Agent | When to Collaborate | What They Provide |
|-------|--------------------|--------------------|
| continuity-specialist | Winback flows | Retention plays |
| email-wizard | Winback sequence | Lifecycle copy |
| copywriter | Enrollment copy | Host scripts, QR cards |
---
## Related Skills
- `restaurant-reservations` - Fill tables
- `email-sequence` - Nurture + winback emails
- `sms` - SMS winback + birthday sends
---
## Questions to Ask
1. Venue, cuisine, covers, POS / loyalty platform?
2. Current repeat rate + enrollment rate? (or grant CRM access?)
3. Birthday data captured today?
Files in this skill
- SKILL.md
- blueprint.yaml
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.