Tell us what you want to automate. We’ll set it up for you at no extra cost.
Journal  /  Local Business
Local Business

How to Create a Salon Loyalty Program

DT
DMly Team
Oct 6, 2026 · 18 min read
How to Create a Salon Loyalty Program

“Tenth visit free. Excludes colour and treatments. Cannot be combined with other offers. Card must be presented. Valid for three months from the ninth stamp.” Read the small print on a salon’s paper loyalty card and you can see every problem the owner ran into after launching it: the colour clients who racked up stamps and then claimed a free balayage, the lost cards, the stamps given twice on a busy Saturday. The small print is the history of the programme.

A salon loyalty program run on WhatsApp and your booking system avoids most of that small print, because the rules are decided up front and applied the same way every time. Points are counted from completed appointments, the reward is issued automatically, and nobody has to find a card in the bottom of a handbag. But the big decision is still yours, and it is the one the paper card got wrong: who, exactly, are you trying to reward?

This guide designs a salon programme in DMly: the choice between points per visit and points per spend, with the arithmetic that shows who each one favours, the reward, prepaid passes for regulars, telling clients where they stand, and the habits that keep it honest. It is part of our series on WhatsApp automation for salons. Our guide to building a loyalty program for a small business covers the settings screen by screen.

Three Kinds of Salon Loyalty Program

Points per visit, points per spend, and prepaid passes. They reward different behaviour, and a salon can use more than one.

  • Points per visit. The digital stamp card. Every completed appointment earns the same points, whatever it cost. It rewards frequency.
  • Points per spend. Points scale with the bill. It rewards value.
  • Prepaid passes and memberships. The client pays up front for a number of visits, such as a pack of blow-dries or a monthly membership. It rewards commitment, and gives you the money before the visits.

DMly handles the first two as its loyalty programme, under Finance, then Settings, on the Loyalty tab. You pick one earning method, not both. The third runs on DMly’s plans and credits, which sit alongside loyalty rather than inside it. Every loyalty reward in DMly is a coupon: when a client’s points reach the threshold you set, DMly creates a coupon for that client automatically, with a code unique to them.

Step 1: Decide Who You Want to Reward

Per visit favours your most frequent clients. Per spend favours your most valuable ones. In a salon, those are often different people.

Consider two good clients. One comes in every week for a blow-dry at $35. The other has colour every six weeks at $150. Over a year, the blow-dry client spends about $1,820 and the colour client about $1,300. Now see how long each takes to earn a reward under the two methods. The prices and thresholds are illustrations; the pattern is what matters.

Weekly blow-dry client ($35)Six-weekly colour client ($150)
Per visit: 1 point per visit, reward at 99 weeks54 weeks
Per spend: 1 point per $1, reward at 50015 visits, about 15 weeks4 visits, about 24 weeks

Under a stamp card, the colour client waits more than a year for a reward that the blow-dry client earns every two months. Under points per spend, the gap closes: both are rewarded within half a year, in proportion to what they bring in. Neither is wrong. It depends on who you want coming back.

Dot timeline over 54 weeks comparing two salon clients under two loyalty methods, as an illustration; each dot is a visit and a star marks the first reward. Per visit, with 1 point a visit and a reward at 9 points: a weekly $35 blow-dry client is rewarded at 9 weeks and a six-weekly $150 colour client at 54 weeks. Per spend, with 1 point per $1 and a reward at 500 points: the blow-dry client, earning 35 points a visit, is rewarded at 15 weeks and the colour client, earning 150 a visit, at 24 weeks.
The same two clients, two earning methods. Each dot is a visit; per-spend rewards land on the visit that crosses 500 points.

A few rules of thumb for a salon:

  • Choose per visit if your book is mostly frequent, similar-priced services, such as blow-dries, barbering or nails, and you want people coming in more often.
  • Choose per spend if your prices vary a lot between services and your colour and treatment clients are the ones you most want to keep.
  • Use a prepaid pass alongside either for your weekly regulars, so the most frequent clients are looked after by the pass rather than by piling up points.

DMly’s form defaults to per activity, so if you want per spend, change it before you launch.

Step 2: Make Sure Points Are Actually Earned

Points come from activity reaching a status you choose. For a salon, that status is an appointment marked completed.

Under Earning conditions, DMly lets you choose which status earns points for each kind of activity. For appointments, the default is Completed. Two consequences for a salon:

  • Mark appointments completed or no-show. About a day after an appointment, DMly closes any booking nobody marked, and under the default setting, Count as completed, that counts as a completed visit and awards the loyalty points, even to a client who never came. Set Appointments nobody marked (Appointments, Settings, Booking policy) to Wait for review, so unmarked bookings wait at Needs review with no points and no messages, and your team gets a daily reminder in the app to settle them. Then points only go to clients your team marked as having come.
  • No-shows earn nothing. An invoice for an appointment earns its points when the appointment is completed, not when it is paid. A client who pays up front and does not turn up gets no points, which is exactly right.

If you choose points per spend, the spend has to be recorded in DMly as an invoice, so points have a bill to count from. Payments taken in cash or on a separate card machine still count if your team records the payment on the invoice. Per visit is simpler for a salon that takes payment outside DMly, because a completed appointment is enough on its own.

Points also go backwards when a sale is undone. Voiding an invoice or refunding a payment takes the points back, and it also deactivates one unredeemed loyalty coupon for that client, so a reward earned from a sale you reversed stops working. A reward the client has already used is left alone.

Step 3: Choose a Reward That Does Not Cost You a Balayage

Every loyalty reward is a coupon. How you set that coupon decides how much the programme costs you.

Set the threshold under Points needed to redeem: the balance a client has to reach. When they reach it, DMly creates their reward coupon and spends the threshold’s worth of points, so the count starts again. Loyalty is off until you switch it on, and a reward is only ever created when three settings are filled in: the redeem threshold, a discount value above zero and a coupon code prefix. Leave any one blank and clients keep earning points while no reward is created, with nothing to tell you why. Then set the reward itself. It is a coupon, so it is either a percentage off or a fixed amount off. For a salon, the difference is large:

  • A percentage reward scales with the bill. Ten percent off a $35 blow-dry is $3.50; ten percent off a $250 balayage is $25. A client who saves their reward for the most expensive service costs you the most. DMly’s docs add a detail worth pricing in: coupons come off the gross total, the subtotal plus tax, so 10% off a bill of 100 plus 20 tax takes 12 off, not 10.
  • A fixed-amount reward costs the same whatever it is used on. $15 off is $15 off a blow-dry or a balayage. One approach is to price it around the cost of an add-on, such as a treatment or a finish, which feels generous and is predictable.

What the reward really costs you

Before you settle the numbers, work out the effective discount: the reward divided by what a client spends to earn it. It is the loyalty programme’s real price, and it differs by client. With a $15 fixed reward, using the same two clients:

  • Per visit, reward at 9 visits. The blow-dry client spends 9 × $35 = $315 to earn $15 back, about 4.8%. The colour client spends 9 × $150 = $1,350, about 1.1%.
  • Per spend, reward at 500 points. Both spend $500 to earn $15 back: 3% each.

A stamp card gives your cheapest services the richest rewards. Points per spend gives everyone the same rate. Neither is a mistake, but it is worth knowing which you have chosen before your accountant points it out.

Three receipts drawn to scale show what a client spends to earn the same $15 fixed reward. Per visit, the blow-dry client spends 9 visits at $35, $315, so the reward is 4.8 percent back. Per visit, the colour client spends 9 visits at $150, $1,350, only 1.1 percent. Per spend with a reward at 500 points, either client spends $500, 3 percent. The colour client's receipt is by far the longest.
$15 ÷ $315, $15 ÷ $1,350 and $15 ÷ $500, drawn to scale. Use your own prices and threshold.

Coupons also carry limits, and the ones that matter for a salon are the validity window, the dates the coupon works between, and the minimum subtotal, the bill the coupon needs before it applies. A minimum stops a $15 reward being spent on a $15 fringe trim. Like the discount itself, the minimum is measured against the gross total, including tax.

Because each client’s reward code has a suffix unique to them, it cannot be passed around. That removes the lost-card and borrowed-card problems of the paper version.

Redeeming a Reward at the Till

A reward is only worth something if it comes off the bill without fuss. Make sure the team knows how.

The client shows their code, and your team applies it to the invoice for that visit. DMly checks the coupon at that moment: outside its validity window, below its minimum or past a limit, it is refused and the bill is issued at full price. Two details from DMly’s docs are worth passing on to whoever runs the till:

  • Check the total before you send the invoice. Redemption is first come, first served. If two invoices try to use the last remaining use of a coupon at once, one gets the discount and the other goes out without it, with no error to warn you.
  • Apply it before the invoice moves on. An automation can apply a code to an invoice that has already been posted, but it does nothing if the invoice is void, already paid, or already carries a coupon, and it fails quietly. The simple rule is to apply the reward when the invoice is raised.

Gift Vouchers and Loyalty

Gift vouchers are a salon staple. In DMly they are gift cards, and they interact with loyalty points in one specific way.

Gift cards live under Finance, then Gift cards. You choose the purchaser, optionally a recipient who will receive the code, the value and an optional expiry date, then sell it. DMly creates a purchase invoice for the purchaser, and the card stays pending until that invoice is paid, at which point it becomes active and the code goes to the recipient. You can also issue a card for free as a goodwill gesture, which is active straight away.

For loyalty, DMly’s rule is that buying a gift card earns no points. The points come later, from the invoice the card is eventually spent against, so the same money never earns twice. A voucher bought at Christmas and spent in February earns its points in February, for the person who spends it.

Two practical notes. A gift card holds money and can be spent on anything billed to an invoice, while a pass holds a number of visits for specific services, so do not use one where you mean the other. And DMly’s docs note that Meta classifies the gift card message template as marketing however it is declared, so delivering a voucher code on WhatsApp outside the 24-hour window is billed at the marketing rate.

Step 4: Tell Clients Where They Stand

A loyalty programme only changes behaviour if clients know about it. WhatsApp is where they will read it.

When a reward coupon is created, DMly messages the code to the client automatically on their active channel and records it in the inbox. The docs describe this as best-effort: if the send fails, the coupon still exists but the client never heard about it. On WhatsApp, that is more likely than it sounds. Points are awarded when the appointment is marked completed, and if the client has not messaged you in the last 24 hours, the window is closed and only an approved template can get through. DMly’s list of system templates does not include one for loyalty coupon codes, so do not rely on the automatic message alone.

Three things close the gap:

  • Tell them at the till. The client is standing in front of you when the appointment is marked completed. “You’ve just earned your reward, it’s on your next visit” is the most reliable delivery there is.
  • Send a points update from a flow. DMly’s Loyalty points activity trigger fires when a client earns, redeems or has points revoked, and can be narrowed to points earned. In any flow, the {{loyalty.points}} variable gives the client’s current balance at the moment the message sends. A flow on points earned can send “You’re on {{loyalty.points}} points, one more visit to your reward” as an approved template.
  • Mention it in the confirmation. A short line in the service’s confirmation message, such as “every visit earns loyalty points”, keeps the programme in view without an extra message.

Let clients ask for their balance

Clients will ask “how many points have I got?” and nobody at the desk should have to look it up. A simple keyword automation answers it. Set it to reply when a client sends a word such as POINTS, with a message like “You’re on {{loyalty.points}} points. Nine gets you $15 off your next visit.” DMly’s docs say quick automations fill in contact details and the two live balances, and {{loyalty.points}} is one of them, read at the moment the reply sends. Because the client has just messaged you, the reply goes out inside the 24-hour window as ordinary text, with no template needed. Mention the keyword in your confirmation message so clients know it exists.

Loop diagram of a salon loyalty program in DMly with four steps. One, the appointment is marked completed and points are awarded; set Wait for review so no-shows earn nothing. Two, the threshold is reached and DMly creates a reward coupon unique to the client, and points reset. Three, the code is messaged on a best-effort basis and may not arrive outside the 24-hour window. Four, it is used on the next bill within its validity window, above any minimum, off the gross total. A dark panel lists ways to make sure the client knows: tell them at the till, a points-earned flow with the loyalty points variable sent as an approved template, and a POINTS keyword reply. A red note says voiding or refunding takes the points back and deactivates one unused reward.
Steps 1 to 3 run by themselves once an appointment is marked completed. The till conversation is what makes sure the client knows.

Step 5: Prepaid Passes for Your Regulars

For clients who come every week, a pass does more than points: they pay up front and book without thinking about it.

DMly’s plans and credits let you sell a pack of visits, such as five blow-dries, or a monthly membership that grants a number of visits each month. A credit is simply a count of prepaid visits held against the client. A service with a Credit cost takes that many credits when the client books it, once per booking, and only if the client has the balance.

Three things to know before you sell a salon pass, because DMly’s docs flag them as surprises:

  • Credits are one pool, not per service. A client’s balance is a single number. If your blow-dry pass grants five credits and a cut also has a credit cost, the client can spend blow-dry credits on a cut. Only give a credit cost to the services the pass is meant for.
  • Credits are drawn on top of any payment. A service with both a price and a credit cost charges the client and takes their credits. For a pass-only service, set the price to 0 and the payment mode to No payment required. One tidy approach is a separate “Blow-dry (pass)” service for pass holders and leave the normal service priced for everyone else.
  • Some credits expire. Credits from a recurring membership lapse when each billing period ends, so a “four blow-dries a month” membership means four to use that month, not four piling up. Credits you add by hand with an expiry date last through that day. Price the pass knowing clients may not use every visit.

Credits and loyalty points can run together. A pass holder’s completed appointments still earn points under a per-visit programme, so decide whether that is the reward you intend, or whether the pass itself is the loyalty benefit for your weekly regulars.

Step 6: Birthdays, Referrals and VIPs

A few extras make a programme feel personal. Each one is a marketing message, so treat it as one.

  • Birthdays. DMly can start a flow on a contact’s birthday, or a set number of days before it, from the Birthday field. A birthday treat is a natural salon gesture. DMly’s birthday template, dmly_birthday_offer, is filed as marketing and is the out-of-window fallback for its Birthday automation.
  • Referrals. DMly’s referral automation uses dmly_referral_invite as its fallback, again a marketing template. A “bring a friend” reward works in a salon, but keep it separate from reviews: Google prohibits rewards in exchange for reviews.
  • VIPs. DMly’s segments can find clients by loyalty points balance or total spend, so you can thank your top clients personally, or invite them to something first.

Marketing templates are billed at Meta’s marketing rate for the client’s country, which our pricing by country rate card shows, and should only go to clients who agreed to hear from you. Our guide to WhatsApp opt-in covers asking for that permission.

Step 7: Launch It Quietly, Then Announce It

Run the programme for a week before you tell anyone, so the first reward a client earns is one that works.

  1. Test on yourself. Set a low threshold on a test client, complete a few test appointments, and check the points arrive, the reward coupon is created, and it applies correctly to a test invoice, including the effect of tax on a percentage reward.
  2. Run it quietly. Put the real threshold back and let the team mark appointments completed as normal for a week. Check a few clients’ points look right.
  3. Announce it. Tell clients at the till, add the line to your confirmation messages, and if you have permission to send marketing messages, one broadcast to opted-in clients. Our guide to sending bulk messages on WhatsApp covers broadcasts safely.

Keep the rules short enough to say out loud: “Every visit earns a point. Nine points gets you $15 off.” If the explanation needs small print, the programme is too complicated.

How to Tell Whether It Is Working

A loyalty programme should change how often clients come back. Measure that, not the number of rewards issued.

The coupons list shows a Usage column counting redemptions, which tells you rewards are being used. To see whether the programme is changing behaviour, compare bookings in DMly’s Appointment report for the same months before and after launch, and watch how many clients carry a points balance using a segment on the Loyalty points condition. Rewards redeemed without more frequent visits means you are giving away a discount rather than building loyalty, which is a reason to revisit the threshold or the earning method.

Mistakes to Avoid

  • Choosing the earning method by default. Per activity is the default; decide deliberately.
  • A percentage reward on a salon menu. It costs most on your most expensive services, and applies to the total including tax.
  • Not marking appointments. Under the default setting the automatic close awards points to no-shows too. Choose Wait for review and mark every visit.
  • Relying on the automatic reward message. Outside the 24-hour window, it may not arrive.
  • A credit cost on services the pass is not for. Credits are one pool.
  • A pass service with a price. The client pays and loses a credit.
  • A validity window shorter than a client’s visit cycle. A six-weekly client needs longer than a month to use a reward.
  • Linking rewards to reviews. Google prohibits incentives for reviews.

Frequently Asked Questions

What is the best loyalty program for a salon?

It depends on who you want to keep. Points per visit rewards frequent clients, points per spend rewards high-value clients such as colour, and prepaid passes suit weekly regulars. Some salons pair a points programme with a pass.

Should the reward be a percentage or a fixed amount?

For most salon menus, a fixed amount. A percentage costs you most on your most expensive services, and in DMly it applies to the total including tax.

Do clients need a loyalty card?

No. Points are counted from their completed appointments, and the reward is a coupon with a code unique to them, so there is nothing to carry or lose.

Why did a client not get points for their visit?

Often because the appointment was never marked completed: with Wait for review switched on, it waits at Needs review and awards nothing until someone settles it. Points also come off again if the invoice is voided or the payment refunded.

Can I sell prepaid blow-dry packages?

Yes, with DMly’s plans and credits. Give the pass service a credit cost and a price of 0, and remember credits are one pool across all services with a credit cost.

Do loyalty points or rewards expire?

DMly’s loyalty docs do not describe an expiry for the points themselves. The reward coupon a client receives works within whatever validity window you give it, so choose one long enough for a client on a six-week cycle to use it, such as three months.

Can I give points for leaving a Google review?

No. Google’s policy prohibits offering rewards, including discounts, in exchange for reviews. Keep your loyalty programme and your review requests separate.

No Small Print Needed

The paper card’s small print was the owner learning, one problem at a time, who the programme was really rewarding. You can decide that up front: per visit for frequency, per spend for value, a pass for the weekly regulars, and a fixed reward that does not turn into a free balayage.

Set up that way, a salon loyalty program runs itself from the appointments your team already marks completed. Tell clients about it at the till, keep the rules short enough to say out loud, and check a month later that clients are coming back more often, not just collecting discounts.

DT
DMly Team
Writer at DMly

Writing about WhatsApp automation, bookings and growth for local business.

Turn WhatsApp into your busiest channel.

Start free and run message, bookings, payments and reviews in one place.

Leave a Comment

Your email address will not be published. Required fields are marked *