Salon customer retention, worked out from your own records
Who has drifted, who is due, and whether last month's nudges brought anybody in — derived from the bills you already raise.
30 days free · No card required
On this page6 sections
The short answer
How do salons bring lapsed customers back?
By contacting people on the evidence of their own visit history rather than at a random interval. Salvoro derives who has drifted from the last-visit date, visit count and lifetime spend that every bill already updates, sends one WhatsApp nudge per absence, asks how the visit went, and reports the repeat rate so you can see whether any of it worked.
Nine lists you did not have to build
Every bill quietly maintains three columns on the customer record — when they last came, how many times they have come, and what they have spent. Most of the nine segments are filters over exactly those columns, and the rest read the join date or a live membership, so each is counted fresh when you open the page rather than being a list somebody exported in March. Open one and you get the actual people, paged, with the date of their last visit beside each name. The lists are there to be read: nothing is sent because you looked at one.
- Not seen in 30, 60 or 90 days — three windows, counted live
- One-time visitors: came once, and not for 45 days
- High spenders, regulars on five visits or more, current members, new joiners
- Branch-scoped: a manager sees only the branches they are assigned to
When the nudge is due, and what starts the clock
A colour treatment and a threading appointment fall due at different intervals, so timing is set on one service, a whole category, a branch or the company, and the most specific rule wins — one rule for facials rather than sixty identical rows. What starts that clock matters as much as its length, because money is not proof of delivery. When a bill belongs to an appointment, nothing is scheduled until the appointment is marked completed; otherwise a cancelled prepaid booking would still produce a cheerful nudge six weeks later, to somebody who never sat in the chair. A counter bill with no appointment is the opposite case — it is rung up after the service, so payment genuinely is the delivery signal.
- Resolved service first, then category, then branch, then the company default
- Timing in hours, days or weeks, and each service shows which tier decided it
- An appointment-linked bill waits for the appointment to be completed
- An idempotency key per follow-up, so a retry cannot send a second copy
- A follow-up more than seven days late expires rather than arriving
Win-back that fires once per absence
A scan for people who have stopped coming runs every few minutes, so the failure mode is not missing somebody — it is nudging the same person on every pass, forever. Here the message is keyed to the customer plus the date of their last visit, so while they stay away every later scan collides on that key and does nothing. They become eligible for exactly one more nudge only after they return and drift again. Who qualifies is yours to set: days away, a minimum number of past visits so a single walk-in is never chased, and optionally a lifetime-spend floor.
- One nudge per absence; eligible again only after they come back and lapse afresh
- Thresholds for days away, prior visits and spend — 60 days and one visit as it ships
- A company default that each branch may override
- Opted-out customers excluded when the list is built, and checked again at send
Asking how it went, and deciding who hears the answer
A rating request goes out after the visit as a private link, answered without logging in or installing anything, and the answer lands in the salon's feedback list with the customer, the service and the comment beside it. What happens next depends on the score: four and five stars are offered your public review link, while one to three are routed into a private comment the owner reads first, so an unhappy customer is heard rather than broadcast. A tap on that review link is recorded as a tap and nothing more, because what somebody then does on Google is not something this product can see.
- A tokenised link rather than a reply — inbound replies are not routed into the app
- 4–5 stars invited to review publicly; 1–3 kept private for the owner
- A review tap recorded as a tap, never as a review
- Asked once per customer per day, however many bills one visit produced
Whether any of it worked
Retention is only a claim until something counts it. For any period the reports split customers into new and returning by whether they had ever been billed before, show what each group spent, and state the repeat rate as a plain percentage alongside average bill value. The customer table ranks who mattered in the period and carries lifetime spend, visit count and days since last visit next to each name — which is what turns a report into a call list. What it will not tell you is which message brought somebody back, because nothing here attributes a return to a particular send.
- New versus returning customers for the period, and the revenue each brought
- Repeat rate as a percentage, and average bill value
- Top customers carrying lifetime spend, visit count and days since their last visit
- Per branch: sent, failed, still waiting, and the opt-out rate
Common questions
- Whatever you set it to. Win-back has three thresholds — days since the last visit, a minimum number of previous visits, and optionally a lifetime-spend floor — and ships at 60 days with at least one prior visit. Separately, the segment lists offer fixed 30, 60 and 90-day windows for reading rather than sending.
- No. A win-back message is keyed to the customer and the date of their last visit, so every later scan collides on that key and does nothing while they stay away. Service follow-ups carry their own key per bill line, so a retry after a network failure cannot send a second copy.
- None. Every list and every send is a deterministic rule over your own billing data — days since the last visit, visit count, lifetime spend — so the same inputs always produce the same result and you can see exactly why somebody was included. It reports who has already stopped rather than guessing who might.
- No. A follow-up invites somebody to book, and the booking is then made by them on the public page or by your front desk. There is no automatic next appointment and no suggested rebooking date, because guessing a date and holding a slot against it costs more than it saves.
- Not directly. The segments are a fixed set of nine read-only lists, with live counts and a preview of who is in them — you cannot define your own or message one. Win-back is the single campaign that sends against lapse criteria. A coupon can be shared in bulk, but to customers you pick or to a searched list.
- One to three stars are kept private: the rating and the comment go into the salon's own feedback list, which can be filtered down to just the unhappy ones, and no public review link is offered. Four and five stars are invited to post publicly. The intent is that an unhappy customer reaches you before they reach a review site.
- Yes, as a points scheme. Points accrue once a bill is fully paid, per rupee spent or per visit at a rate you set, and are redeemed at the counter as a discount, within a minimum-points and a maximum-value cap, and they can be set to expire. It is not tiered — there are no gold or platinum levels earning at different rates.
Read next
From the blog
See it with your own salon’s data
30 days free, no card required, and a guided setup that takes four steps.

