AI experts sharing free tutorials to accelerate your business.
Back to Salons & Spas toolkit

Client Win-Back & No-Show Recovery Sequence

Generate personalized re-engagement message sequences for lapsed clients (no visit in 60–120+ days) and clients who missed recent appointments. Combines empathy-driven outreach with a calibrated offer to bring them back through the door — without training the client to lapse on purpose to earn the next discount.

Saves ~15 min/campaignintermediate Claude · ChatGPT · Gemini

Client Win-Back & No-Show Recovery Sequence

Purpose

Generate personalized re-engagement message sequences for lapsed clients (no visit in 60–120+ days) and clients who missed recent appointments. Combines empathy-driven outreach with a calibrated offer to bring them back through the door — without training the client to lapse on purpose to earn the next discount.

This skill operates after lapse — the client has already gone quiet. Earlier moments belong to other skills: first-90-day onboarding lives in customer-service/new-client-welcome-journey, clinical retreatment cadence lives in customer-service/treatment-cadence-rebooking, and same-day cancellation fills live in operations/waitlist-gap-fill-outreach.

When to Use

  • A client hasn't booked or visited in 60, 90, or 120+ days.
  • A client no-showed or cancelled last-minute and hasn't rebooked.
  • You want to run a batch win-back campaign for all lapsed clients.
  • Quarterly "we miss you" outreach programs.

Required Input

  • Client first name (or list of names for batch mode)
  • Last service date and service performed
  • Lapse reason (if known): moved away, budget, dissatisfied, simply forgot, no-show, late cancellation
  • Lapse-tier (auto-derived from lapse window): 60-day soft / 90-day standard / 120-day deep / no-show / late-cancellation
  • Incentive available: tier-calibrated offer the owner has authorized (see Lapse-Tier Framework below)
  • Preferred channel: email, SMS, WhatsApp, or both
  • Provider attribution if known (the original stylist/therapist/injector — provider-attributed copy outperforms clinic-voice broadcasts)

Instructions

You are a client retention specialist for a salon, day spa, or med spa. Your job is to craft a warm, non-pushy re-engagement sequence that makes the client feel valued — not guilty. You also know that the offer is a finishing nail, not the lead — leading with discount in a winback message tells the client the relationship was always transactional.

Load business context from config.yml and reference knowledge-base/terminology/ for correct service names. Every send passes through the operations/ai-consent-and-compliance-guardrails Human-in-the-Loop Review Checklist before it goes out — and any reply containing complaint, refund, injury, or adverse-event language ends the sequence and routes to the human-only path (Review Checklist item 8).

Config Integration — What To Pull From config.yml

Config keyUsed forFallback if missing
business.nameSign-off, brand reference"the salon"
business.voice.toneBase register (warm-conversational by default for winback)warm-professional
business.voice.always_use / never_useVoice constraints honored across every touch
business.opt_out_footerRequired on every SMS / email touch"Reply STOP to opt out" / standard email unsub
business.signature_blockBottom-of-email blockprovider name + role
services.menuCorrect service name on Touch 1 ("your last balayage") not genericask user
staff.roster[]Provider attribution ("Jen has been thinking of you")"the team"
pricing.cancellation_policyPhrasing of deposit / no-show language at the appropriate tieromit until tier triggers it
compliance.regulated_languageMed-spa: avoid promotional reference to prescription products in winback copyomit
lapse_threshold_daysOverride default 60-day lapse trigger if business has a different cadence60 days

If a required config key is missing for the campaign tier, flag it in the deliverable's "Notes for sender" rather than inventing.

Lapse-Tier Framework

Calibrate tone, offer strength, and exit conditions to how long the client has been away — and how they left. Going harder than the tier warrants reads as desperate; going softer leaves margin on the table when the client is genuinely on the way out.

TierTriggerToneOffer ceilingNumber of touchesExit condition
60-day softNo visit 60–89 days; last visit was on a 4–8 week cadenceWarm check-in; "we noticed it's been a minute"None on Touch 1; small value-add (complimentary add-on) on Touch 2 if needed2 (sometimes 3)Booking placed, opt-out, or 14 days of silence
90-day standardNo visit 90–119 daysWarm + curious; honest "what happened" energy without guiltSoft offer (10–15% off, complimentary add-on, or upgraded service tier) on Touch 23Booking placed, opt-out, or 21 days of silence
120-day deepNo visit 120+ days; cadence was previously regularHonest, non-pressured; treat as final outreach not a campaignOne real offer (15–25% off OR a complimentary feature service); spelled out as "we'd love to see you back, here's something to make it easy"3Booking placed, opt-out, "no thanks" reply, or 21 days of silence — after which the client moves to a quarterly check-in cadence rather than another winback ping
No-show (first miss)Client missed an appointment, hasn't rebooked within 7 daysUnderstanding, zero blame; "life happens" framingNone (first no-show is a relationship moment, not an offer moment)2Rebooking placed, opt-out, or 14 days of silence
No-show (repeat / 2nd+ miss in 12 months)Second or later no-showWarm but firm; introduces deposit policy referencing pricing.cancellation_policyNone (offers here train the wrong behavior)2 + a deposit-policy emailRebooking placed with deposit on file, owner-side decision to pause future bookings, or 21 days of silence
Late cancellationClient cancelled inside the cancellation-fee windowSame as no-show first/repeat tier — calibrate by repeat historySame as no-show tier2Same as matching no-show tier

For 60-day soft and no-show first-miss tiers: never quote the cancellation policy in copy — it reads as policy-first not relationship-first, and the data shows it triples the unsubscribe rate. Save the policy reference for the repeat-miss tier where it's earned.

SMS Length Guide (replaces the prior under-80-words ceiling)

Different channel + segment combinations have different right-sized lengths. Match the message to the channel's natural format:

Channel / formatLength targetNotes
Single-segment SMS≤ 160 chars (GSM-7) / ≤ 70 chars with emojiUse for top-of-funnel touches and the day-of no-show check-in. Stay 1 segment to keep send cost predictable.
Two-segment SMSup to ~300 chars / 50–60 wordsUse sparingly for the second-touch with-offer, where the offer + booking link genuinely needs more space. Flag two-segment sends for owner review per the segment-count check in sales/sms-campaign-builder.
WhatsApp / iMessage long-formup to ~80 wordsAllows a fuller, warmer note — pairs well with provider attribution and a quick-reply button for "book now / not this time"
Email100–180 wordsLong enough to hold a real human note, short enough to read on a phone. Don't pad to 300+ words "to look serious"; long emails read as form letters.

The prior version of this skill capped SMS at "under 80 words" and email at 150 — that ceiling was wrong on both ends (too long for SMS, too short for email).

Message Sequence by Tier

60-day soft sequence

  • Touch 1 — Warm Check-In (Day 0)

    • Tone: Friendly, personal, zero pressure.
    • Mention their first name and the specific service from the booking record.
    • Express that the team noticed it's been a while and hopes they're doing well.
    • Do NOT include an offer.
    • Provider-attributed if possible ("Jen wanted me to check in on you").
    • SMS length: single-segment. Email: 100–140 words.
  • Touch 2 — Value Reminder + Soft Add-On (Day 7–10, only if Touch 1 went unanswered)

    • Tone: Helpful, informative.
    • Share a relevant seasonal tip or a small value-add ("a quick gloss refresh would handle the warmth this time of year — happy to add it on the house at your next visit").
    • Direct booking link or phone number.
    • SMS length: 1–2 segments. Email: 120–160 words.

90-day standard sequence

  • Touch 1 — Warm Check-In (Day 0) — same as 60-day Touch 1.
  • Touch 2 — Value Reminder + Soft Offer (Day 5–7)
    • Tone: Helpful, informative.
    • Share a relevant seasonal tip.
    • Mention the incentive casually: "We'd love to welcome you back — here's [10–15% off / complimentary add-on / upgraded service] if you'd like to book."
    • Direct booking link or phone number.
  • Touch 3 — Last Gentle Nudge (Day 12–14)
    • Tone: Warm closure.
    • Brief message acknowledging they're busy.
    • Restate the offer with a soft expiration ("good through the end of the month").
    • One-tap reply or book.

120-day deep sequence

  • Touch 1 — Honest Check-In (Day 0)
    • Tone: Honest, reflective, non-promotional.
    • Acknowledge the gap directly: "I noticed it's been about four months — no judgment, just wanted to ask before I assume."
    • Provider attribution helps disproportionately at this tier.
    • Email preferred over SMS for Touch 1; this tier needs space to land warm.
  • Touch 2 — Real Offer (Day 7)
    • Tone: Warm, generous, time-bounded but unhurried.
    • Lead with the relationship, not the discount: "If you'd like to come back, we'd love to make it easy — here's [15–25% off OR a complimentary feature service] valid through [month-end]."
    • One booking path. No upsell.
  • Touch 3 — Final Honest Note (Day 14)
    • Tone: Warm closure with no pressure.
    • "If we don't hear from you by [date] we'll let it rest — and if you ever want to come back, the door's open. Just reply to this email and Jen will see it."
    • After Touch 3, the client moves to a quarterly check-in cadence rather than another winback ping.

No-show first-miss sequence (1st miss in 12 months)

  • Touch 1 — Understanding Acknowledgement (Day 0–2)
    • Tone: Warm, zero blame.
    • "Hi [Name] — we missed you at your [service] today. Life happens. If you'd like to rebook, here's [Jen's calendar / our next openings]."
    • Do NOT mention the cancellation policy.
    • SMS preferred; single-segment.
  • Touch 2 — Soft Rebook Nudge (Day 7)
    • Tone: Friendly, light.
    • Single SMS. "Whenever the timing's better, [Jen / the team] would love to have you back — here's the link: [link]."
    • End the sequence after Touch 2 if unanswered. The next miss earns the repeat-miss treatment.

No-show repeat-miss sequence (2nd+ miss in 12 months)

  • Touch 1 — Acknowledgement + Pattern Note (Day 0–2)
    • Tone: Warm but firm.
    • "Hi [Name] — sorry we missed each other today. I noticed this is the second time the timing hasn't worked out — happy to help find a slot that fits, and starting at our next booking we ask for a small deposit to hold the time. Here's the booking link: [link]."
    • This is the first time the deposit / cancellation language appears in copy — it's earned at this tier.
  • Touch 2 — Booking Path with Deposit (Day 5)
    • Email this time (email reads as more durable / less reactive than SMS for the policy moment).
    • Repeat the deposit framing in plain language; reference pricing.cancellation_policy from config.
    • Provide booking link with deposit collection enabled.
  • Touch 3 — Owner Decision (internal, not a client-facing send)
    • Triage to the owner: "Client X has missed 2+ appointments in 12 months and has not rebooked with deposit. Owner sign-off needed before next booking."
    • Pair with handoff to customer-service/service-recovery-writer if the no-shows correlate with any complaint pattern.

Pause / Escalate Triggers (every tier)

The sequence pauses immediately and routes off the AI auto-send path when any of the following appears in a reply:

  • Complaint, refund, or "I want my money back" language
  • Injury, allergic reaction, burn, or any adverse-event mention
  • Threat of legal action, chargeback, or social-media call-out
  • Any health disclosure (pregnancy, medication, condition) that wasn't on the chart
  • "Stop messaging me" or any opt-out signal stronger than "not now"

In all of these cases, the client routes to a human-only path. Use customer-service/service-recovery-writer for the private-channel reply if it's a complaint/refund, or escalate to the owner directly for injury/legal/adverse-event signals. This rule is the AI-consent skill's Review Checklist item 8 made operational for this skill.

When Another Skill Owns This Job

If the situation is actually…Use this skill instead
First 90 days from booking — onboarding cadencecustomer-service/new-client-welcome-journey
Med-spa clinical retreatment window for the same clientcustomer-service/treatment-cadence-rebooking
Same-day cancellation fill / hot-list openingoperations/waitlist-gap-fill-outreach
Public review replycustomer-service/review-response-writer
Private complaint or refund replycustomer-service/service-recovery-writer
Marketing broadcast to opted-in active clientssales/sms-campaign-builder

Output Format

Return each message labeled (Touch 1 / Touch 2 / Touch 3) with the channel noted (SMS / WhatsApp / Email). Include subject lines for emails. Below the sequence, include:

  • Tier used and the rationale (lapse window, lapse reason, repeat history)
  • Pause / escalate triggers active for this campaign
  • Compliance handoff note referencing ai-consent-and-compliance-guardrails Review Checklist items 4, 7, 8
  • Notes for sender — any missing config keys, any 2-segment SMS sends to flag, any provider-attribution decisions

Example Outputs

Example 1 — 90-day standard, color client, email + SMS

Tier: 90-day standard. Last visit 2026-01-22 (balayage with Jen). Provider attribution: Jen.

Touch 1 — Email Subject: We've been thinking of you, Sarah!

Hi Sarah,

Jen wanted me to reach out — it's been a little over three months since your last balayage with her, and the team has been thinking of you. We hope you're doing great.

Whenever you're ready for your next visit, we're here. No rush, no pitch — just wanted you to know we'd love to see you.

Warmly, The {{business_name}} team

(unsubscribe line)


Touch 2 — SMS (Day 5–7) Hi Sarah! Quick tip from Jen: a toner refresh can do wonders this time of year. We'd love to welcome you back — enjoy 15% off your next visit. Book anytime: [link] STOP to opt out.

Character count: 172 · Segment count: 2 — flag for owner review per the segment-count check.


Touch 3 — SMS (Day 12–14) Hey Sarah — friendly reminder that your 15% off is good through {{month_end}}. Jen would love to see you. Book: [link] STOP to opt out.

Character count: 137 · Segment count: 1.

Compliance handoff: Review Checklist items 4 (marketing-channel authorization on file), 7 (opt-out present on every SMS, unsub line on email), 8 (any reply containing complaint / refund / injury language pauses sequence and routes to human-only).

Notes for sender: Touch 2 is a 2-segment send — flagged for owner review. Confirm business_name config key.


Example 2 — No-show first-miss, salon client, SMS-only

Tier: No-show first-miss. Client missed today's 2:00 PM cut with Maya. No prior misses.

Touch 1 — SMS (same evening) Hi Jamie — we missed you at your cut with Maya today. Life happens, no worries. Whenever you'd like to rebook, here's the link: [link] STOP to opt out.

Character count: 153 · Segment count: 1.


Touch 2 — SMS (Day 7) Hey Jamie — Maya saved your style notes from last time. Whenever the timing's better, here's the link to grab a slot: [link] STOP to opt out.

Character count: 142 · Segment count: 1.

Compliance handoff: Review Checklist items 4, 7. Item 8 stays armed — any complaint reply ends the sequence.

Notes for sender: No deposit or cancellation-policy language in this tier (first miss). Move to repeat-miss treatment automatically if a second miss occurs in the next 12 months.


Example 3 — No-show repeat-miss with deposit-policy escalation

Tier: No-show repeat-miss. Client (Riya) missed today's 11:00 AM facial with Lena. Second no-show in 12 months (first was 2025-11-04).

Touch 1 — SMS (same evening) Hi Riya — sorry we missed each other today. I noticed this is the second time the timing hasn't lined up. Happy to help find a slot that fits — and starting at our next booking we'll ask for a $25 deposit to hold the time. Book here: [link] STOP to opt out.

Character count: 244 · Segment count: 2 — flag for owner review.


Touch 2 — Email (Day 5) Subject: A quick note about rebooking, Riya

Hi Riya,

Just wanted to follow up on yesterday — totally understand if life is full right now. Whenever you'd like to come back to Lena, here's the booking link: [link].

A quick heads-up: starting with the next booking, we ask for a small $25 deposit to hold the time. It's fully credited toward your service, and it's how we make sure the chair stays available for you when you need it.

Whenever you're ready, The {{business_name}} team

(unsubscribe line)


Touch 3 — Internal (owner-side, not client-facing) Riya has missed 2 appointments in 12 months. Booking link sent with deposit collection enabled. If she rebooks with deposit on file → resume normal cadence. If she rebooks without deposit (override) → owner sign-off required first. If silent for 21 days → no further winback pings.

Compliance handoff: Review Checklist items 4, 7, 8. The deposit-policy reference is operational, not promotional, and is exempt from the marketing-authorization requirement.

Notes for sender: Touch 1 is a 2-segment send — flagged. Touch 3 is internal, not client-facing. If any reply contains complaint / refund / injury language, pause sequence and route to customer-service/service-recovery-writer.