Journal  /  Ecommerce & Revenue
Ecommerce & Revenue

How to Build a Loyalty Program for Your Small Business

DT
DMly Team
Aug 30, 2026 · 29 min read
How to Build a Loyalty Program for Your Small Business

Name your five best customers. Not your five favourite ones, the five who have actually spent the most with you this year.

Most owners get to two and stall. The rest of the answer is buried in the booking history, and that gap is exactly why loyalty schemes get started and then quietly abandoned. Scroll back through a good Saturday and the shape of it shows up: nearly half of the day’s clients were in for the first time, and you can’t remember when the regulars from spring last came in. There’s a drawer of paper stamp cards under the till that nobody remembers to bring.

You’ve thought about a loyalty program before. Points, maybe. A membership, perhaps, like the gym down the road. But every version you’ve looked at either needs an app your customers won’t download, or a plastic card they’ll lose, or a spreadsheet you’ll stop updating by March.

The good news is that the customers who already know you are the cheapest people to bring back, and they’re already on WhatsApp. In this guide, we’ll look at why a loyalty program is worth building, what to decide before you start, how to set up a points-based program and a membership plan step by step in DMly, how it changes by industry, the automations to add next, best practices, troubleshooting, and the questions owners ask most.

Why Build a Loyalty Program at All?

Most local businesses spend their marketing energy on strangers, and the maths points the other way. Ads, first-visit discounts, a boost on the latest Reel. Harvard Business Review, citing Bain & Company research, puts the cost of acquiring a new customer at five to 25 times the cost of keeping an existing one, and notes that lifting retention by 5% can lift profits by 25% to 95%.

  • 5 to 25× the cost of acquiring a new customer compared with retaining an existing one. Harvard Business Review, citing Bain & Company
  • 25% to 95% profit increase from a 5% improvement in customer retention. Bain & Company research reported by HBR
  • 63% of consumers are willing to switch to a competitor after just one bad experience. Zendesk CX Trends 2025
  • 1 billion+ conversation threads with businesses every day across WhatsApp, Messenger and Instagram. Meta, Q3 2025 earnings call

A loyalty program is simply the system that turns those numbers in your favour. It gives regulars a reason to choose you again when a competitor is offering 20% off, it gives you a way to notice when someone has gone quiet, and, done well, it makes your best customers feel like members rather than transactions.

There’s a second reason it matters now: the channel. Meta reported more than 1 billion active conversation threads between people and businesses every day across WhatsApp, Messenger and Instagram. A program that lives inside those chats, where the reward arrives as a message and the redemption happens at the counter, has none of the friction of an app or a card. That is the whole idea behind running loyalty on WhatsApp.

Takeaway: retention is the highest-return marketing a small business can do, and chat is where it happens with the least friction.

What You Need Before You Start Your Loyalty Program

Skip this part and you will build a loyalty program nobody joins. Before you touch any settings, get four things straight.

  • A single, honest goal “More visits per client”, “more members on a monthly plan” or “bring back lapsed clients” lead to different designs. Pick one to start.
  • Your unit economics Know your average ticket and margin. A “tenth coffee free” costs you a coffee; a “10% off every visit” costs you 10% of your best customers’ revenue forever. Rewards should be generous enough to notice and cheap enough to repeat.
  • Consent to message people WhatsApp only allows business-initiated messages to people who have opted in, and you must honour opt-outs. Capture opt-in at booking, at the counter (a QR code that opens a chat) and on your website, and store it on the contact. Our guide to sending bulk messages officially covers the consent side in detail.
  • Your catalogue and payments in one place Points are earned on real transactions: paid invoices, confirmed orders, completed appointments, attended classes. If your services, prices and payments live in five different apps, no loyalty system can see them. In DMly they live in Offerings and Finance, with a payment gateway connected.

Then choose your mechanic. Most small business loyalty programs are one of four building blocks, and the best ones combine two of them.

Building blockWhat the customer experiencesBest forWatch out for
Points and rewardsEarn on every visit or every unit spent; hit a threshold; get a reward automaticallySalons, cafés, restaurants, retail, clinics with repeat treatmentsThresholds set so high nobody reaches them; staff forgetting to log visits
Automatic reward triggersA perk that arrives because something happened: a birthday, a milestone, a lapseAny business with a contact list and datesMessages outside the WhatsApp window need approved templates
Membership plansBuy a bundle: eight classes, six massages, a monthly “glow” plan with member pricingGyms, studios, spas, tutors, clinicsCredits that never get used; members who feel locked in
Recurring subscriptionsCard saved once, billed on a schedule, reminded before renewal, retried when it failsAnyone selling a monthly plan or retainerFailed payments and silent churn if nobody follows up

We compare these more deeply in a companion piece on loyalty points versus discounts versus memberships. The short version: points reward frequency, memberships reward commitment, subscriptions make commitment effortless, and triggers make all three feel personal.

Ladder diagram showing four rungs of small business retention: capture the contact on the first visit, points and rewards for repeat visits, a membership plan with credits for regulars, and recurring subscription billing for long-term members, with review requests and referrals alongside
Figure 1. You don’t need all four rungs on day one. Most businesses start with points, add a membership plan when regulars ask for one, and switch the plan to recurring billing when the admin gets old.

Takeaway: decide the goal, the economics and the consent story first; then pick the rung you’ll build this month.

How to Build a Points-Based Loyalty Program in DMly

With a platform like DMly, your loyalty program isn’t a separate app bolted onto your messaging. It sits on top of the same invoices, orders, appointments and classes you already run, so points are earned by real activity and rewards are delivered in the same WhatsApp chat the customer booked in. Here’s the mechanic first, then the build.

In DMly, every loyalty reward is a coupon. Your clients earn points for qualifying activity; when a balance reaches the threshold you set, DMly mints a coupon for that client, with a code suffix unique to them, and messages the code on their active channel automatically. The client shows the code next time, your team enters it on the invoice, and the discount comes off. There is no second discount system to learn.

Eight-step diagram of a points loyalty program in DMly: a paid invoice, confirmed order, completed appointment or attended class adds points, the balance reaches the redeem threshold, a personal coupon is minted and messaged in chat, the client redeems it on a later invoice, and a void, refund or cancellation claws points back
Figure 2. The loop DMly runs for you. Steps 2 to 5 happen without anyone on your team touching it; steps 1 and 6 are the normal work of taking a booking or a payment.

Now the build. Budget an hour for the settings and a week of quiet running before you announce it.

  1. Design the program on paper. Three decisions. How points are earned: per activity (one point per visit or order, a digital stamp card) or per amount spent (one point per unit of currency, which rewards bigger tickets). The threshold: how many points unlock a reward. The reward: a percentage or a fixed amount off, because a DMly loyalty reward is a coupon. A nail studio might choose one point per completed appointment and a reward at 9, so the tenth visit is discounted; a D2C brand might choose one point per unit spent and a reward at 200.
  2. Get the plumbing in place. Points come from paid invoices, confirmed orders, completed appointments and attended classes, so your services and products need to be in Offerings and a payment gateway connected under Configurations → Integrations (Stripe, PayPal, Paystack, Razorpay, MyFatoorah or Mercado Pago). Cash is fine too: your team records the payment on the invoice and the points still count.
  3. Open Finance → Settings → Loyalty and set the earning method. The switch offers Earn per amount spent (with a “Points per unit spent” field) or Earn per activity (with “Points per activity”). Per activity is the default and gives a stamp-card feel; per amount spent suits shops and brands where basket size varies.
  4. Set “Points needed to redeem” and the reward. This is the balance a client has to reach. As soon as it’s reached, DMly creates the coupon for that client and spends the threshold’s worth of points, so the count starts again. Two purchases landing at the same moment can’t mint two coupons or push a balance below zero. Set the reward the coupon carries on the same tab.
  5. Choose the earning conditions. Three dropdowns decide when activity counts: orders on Paid (default) or Confirmed; appointments on Completed (default) or Confirmed; classes on Attended (default) or Booked. Two exceptions: an invoice for an appointment earns when the appointment is completed, not when it’s paid, so someone who pays upfront and no-shows earns nothing; and an invoice that sells a gift card earns nothing, because the points come later, from the invoice the card is spent against.
  6. Tell people, in the channel they already use. Build a small flow in the flow builder: on Contact converted to client, send a two-line welcome that explains the program. Add a keyword reply so “POINTS” answers with the live balance using the {{loyalty.points}} token, and put one line about the program in your booking confirmation. No app, no card, no sign-up form.
  7. Run it as part of normal work. Your team marks appointments completed and classes attended and takes payments as usual; the points follow. For a walk-in that didn’t go through an invoice, or a goodwill gesture, open the contact and use Adjust loyalty: enter points to grant, or a negative number to take points away, with a reason. The profile shows a live “Loyalty points” tile and a Loyalty tab with the latest movements.
  8. Redeem cleanly. When a client brings their code, your team types it into the “Coupon code (optional)” field while raising the invoice, or a flow applies it with the Apply Coupon step. The discount comes off the gross total (subtotal plus tax). A coupon outside its window or past its limits is refused and the bill is issued at full price, so nobody can double-dip by accident.

Three of those award moments are configurable, and the defaults are the right way round. Orders award on Paid or Confirmed, appointments on Completed or Confirmed, and classes on Attended or Booked. In each pair the default is the later one, because points should follow the thing actually happening rather than the thing being promised. Two consequences catch people out. An invoice raised from an appointment awards its points when the appointment is marked completed, not when the invoice is paid, so a client who settles up front earns nothing until somebody closes the booking. And moving classes to Booked means a customer who reserves six and turns up to one still earns six times over, which is exactly the behaviour a loyalty scheme should not be paying for.

Do the arithmetic once before you set the coupon value. Because the discount comes off the gross total, a 10 per cent coupon on a bill of 100 plus 20 in tax takes off 12, not 10. Budget the cost of your programme against ex-tax figures and it will quietly cost you more than you planned. A minimum subtotal on the coupon is measured the same way, against the gross rather than the subtotal alone.

The DMly loyalty settings screen under Finance, Settings, Loyalty: loyalty switched on, the earning method set to earn per amount spent, one point per unit spent, and five hundred points needed to redeem, beside an earning conditions panel with invoice paid, order confirmed and appointment completed switched on and class attended off, and a note explaining that at the threshold DMly mints a coupon with a code unique to the client and messages it on their active channel.
Figure 3. Three decisions live on this tab: how points are earned, which activity earns them, and the balance that mints the reward coupon.

Worked example: A nail studio sets one point per completed appointment and nine to redeem, with a fixed amount off worth roughly one gel manicure. After a client’s ninth completed appointment, DMly messages her a personal code in the WhatsApp chat she books in; on the tenth visit the receptionist types it into the invoice. Nobody counted stamps.

Takeaway: the settings take an hour; the discipline that makes it work is marking appointments completed and taking payments through DMly, which you should be doing anyway.

How to Add Membership Plans and Recurring Billing

Points reward frequency; memberships reward commitment, and they smooth your cash flow. In DMly a membership is a Plan (the catalogue entry: price, one-time or recurring, and what it includes) plus a Subscription (that plan started for a particular client, with billing attached). Plans can grant credits, a prepaid balance that later bookings spend, which is how “eight classes a month” or “a pack of six massages” works.

Diagram of a recurring membership in DMly: a plan with a price, interval and credits, a subscription started for the client, a saved card via the auto-charge link, the nightly billing cycle that charges, rolls the period, grants credits and sends a receipt, a reminder three days before renewal, and retries two days apart before a subscription is paused
Figure 4. The important line is the bottom one: a subscription only bills itself when a card is saved through auto-charge. Otherwise DMly rolls the period and waits for you.
  1. Create the plan in Offerings → Plans. Name it, set the price, and choose One-time (a pack bought once: ten classes, six massages) or Recurring on an interval of days, weeks, months or years. Add items: a Service, a Product with a quantity, or a Credit with an amount. A recurring plan re-grants its credits each cycle that is actually charged; a one-time plan’s credits never expire.
  2. Put a Credit cost on the services the credits should buy. A yoga class with a credit cost of 1 spends one credit per booking. Two things to know: credits are one pool per contact, not a per-service allowance, so only set a credit cost on services you’re happy for any credit to buy; and cancelling a booking does not give the credit back, so say so in your terms.
  3. Start the subscription for the client. Finance → Subscriptions → New subscription, choose the client, Select a plan, use Price override if this person pays a different rate, then Start subscription. The plan’s credits land in the client’s balance immediately. Nothing is charged yet.
  4. Turn on auto-charge. From the subscription’s menu choose Set up auto-charge. DMly sends the client a link to save their card once; you never see or handle the card details. Stripe, PayPal, Paystack, Razorpay and MyFatoorah support this; Mercado Pago takes pay links but can’t auto-charge. From then on, each billing date charges the card, rolls the period, grants the period’s credits, sends and marks the invoice paid, and sends a receipt.
  5. Or bill by hand, on purpose. Some clients won’t save a card. Share subscription link issues the invoice for the current period and sends a pay link over WhatsApp, SMS or email; Generate invoice drafts one for you to send from Invoices. On a manually billed subscription credits aren’t re-granted each period, so add them from the profile with Add credits when the client pays. Our guide to recurring subscriptions and automatic billing goes deeper on choosing between the two.
  6. Leave the reminders on. Three days before the next billing date DMly messages the client that the plan is about to renew; receipts and failure notices go the same way, WhatsApp first. They’re on for every subscription and can be switched off per client under Edit notifications (Renewal reminder, Payment receipt, Payment failed).
  7. Know the controls. Pause subscription stops billing immediately but doesn’t move the billing date, so if you resume after the date has passed the nightly run treats it as due; Adjust end date is usually the better tool for “stop it later”. Change plan swaps the plan at the next renewal or immediately, with the prorated difference invoiced on an upgrade; a downgrade never claws back credits. Cancel subscription stops future billing, refunds nothing and can’t be undone; credits already in the balance stay.
  8. Sell it in chat. Build a flow that shows the plan with the Send service/product/plan step, offers a button such as “Join Glow Membership”, and uses the Create Subscription step to start it and grant credits. Your team then completes the auto-charge setup or shares the subscription link for the first payment. Selling membership plans through WhatsApp is its own guide, and it also covers letting members pause instead of cancelling.
The DMly Finance Subscriptions tab listing four memberships with plan, price, status, next billing date and auto-charge state: two active with a card on file and a billing date in September, one paused with billing on hold and no auto-charge, and one active whose amber chip says the auto-charge link was sent but has not been set up yet, with the row action menu open below the list showing set up auto-charge, share the subscription link, change plan, pause, adjust the end date, edit notifications and cancel.
Figure 5. A membership only renews on its own once the client has set up auto-charge.

The mistake that costs money: Creating a plan does not sell it, and starting a subscription does not charge for it. A subscription without auto-charge rolls its period on the billing date and stops there: no invoice, no payment. Either set up auto-charge or make sharing the subscription link part of someone’s weekly routine.

Takeaway: a membership is a plan plus a subscription plus a saved card. Get all three in place for your first ten members and the admin disappears.

What a Loyalty Program Looks Like in Six Industries

The mechanics are the same everywhere; the recipe changes. Here’s how we’d start in each of the businesses DMly is built for. Salons, restaurants and gyms each have a fuller loyalty guide of their own, so treat these as starting points.

Salon or spa

Earn per activity: one point per completed appointment. Reward at 9 so the tenth visit carries a fixed amount off, roughly the price of an add-on like a scalp treatment. Add a “Glow” recurring plan: one facial credit a month, billed by auto-charge, with a members-only coupon for add-ons. Win-back segment: no purchase in 60 days.

Restaurant or café

The digital stamp card: earn per activity on confirmed WhatsApp orders, reward at 9 for “tenth coffee free” as a fixed amount off. For dine-in, staff raise the invoice in DMly or Adjust loyalty when the bill is paid. Birthday trigger: a dessert coupon with a per-contact limit of 1 and a 30-day validity window.

Gym or fitness studio

Memberships first, points second. An “Unlimited classes” recurring plan on auto-charge, or an eight-class one-time pack with a credit cost of 1 per class. The low-credit warning fires when a balance drops to 3, which is your cue to offer the next pack. Points per attended class feed a quarterly reward.

Clinic or dental practice

A “Care plan” recurring yearly with two hygiene-visit credits, billed once a year with a reminder three days before. Points on appointment invoices are awarded only when the visit is completed, so no-shows never earn. Keep rewards modest and professional: a fixed amount off, not a percentage.

Tutor or education centre

Monthly billing for a set number of lessons: a recurring monthly plan granting four lesson credits, each lesson costing one credit. Credits from a recurring plan lapse when the cycle ends, which keeps parents booking. Points per attended class can unlock a free assessment.

D2C brand

Earn per amount spent on orders paid through DMly invoices or WhatsApp catalogue orders; reward at 200 points as a fixed amount off. If your store runs on Shopify or WooCommerce, DMly’s store triggers add a “Customer milestone” event (a spend or order-count threshold) that can mint a store discount code and message it.

NGOs and non-profits can use the same tools for supporter recognition: a recurring plan for monthly giving, a receipt each cycle, and the “Birthday / key date” trigger for the anniversary of a first donation, with the language kept to thanks rather than rewards.

Takeaway: appointment businesses lean on points and completed visits; class and studio businesses lean on plans and credits; brands lean on spend-based points. Mix once the first mechanic is running.

Which Loyalty Program Automations Should You Add Next?

The loyalty program above already runs itself: points accrue, coupons mint, messages go out, cards get charged. The automations below add the personal touches customers remember. Each one is a trigger you pick in DMly’s trigger list plus a few steps in the flow builder. Rewarding repeat customers automatically gets a whole guide of its own; here are the six we’d build first.

Table of six loyalty automations built from DMly triggers and actions: a points progress nudge, a thank-you and Google review request after a coupon is redeemed, a birthday coupon, a failed subscription payment message, a low-credit top-up offer and a win-back broadcast to a lapsed segment
Figure 6. None of these needs code. Each is a trigger, one or two message steps and, where useful, a Tag or Request Google review step.

1. The progress nudge

Trigger: Loyalty points activity, which fires when a client earns, redeems or has points revoked. Action: a Send Message step with the live balance: “Thanks {{first_name}}, you now have {{loyalty.points}} points. Rewards unlock at 9.” Keep it short. If your points are per unit spent and small purchases are frequent, send the balance from a monthly broadcast to a segment instead of on every movement; the live token works there too.

2. The thank-you and review request

Trigger: Coupon redeemed. Actions: a thank-you, then the Request Google review step. Someone who has just used a reward is your happiest customer of the day; that’s the moment to ask. Our Google Business Profile automation guide covers the review side end to end.

3. The birthday coupon

Trigger: Birthday / key date. First create the coupon under Finance → Settings → Coupons: a fixed amount off, a minimum subtotal if you want one, a per-contact limit of 1 and a validity window of a month. Then the flow sends it with a warm line. Birthdays come from the contact’s date field, so ask for it at booking, and because most birthday messages land outside the 24-hour window, send it as an approved template.

4. The failed-payment message

Trigger: Subscription payment failed. DMly already tells the client and retries two days later, then once more, then pauses after three failures. Your flow adds the human layer: a short explanation, the offer to update the card, and a Handover to Human step if they reply. Recovering failed membership payments automatically gets its own guide; this is the outline.

5. The top-up offer

Trigger: Credits low, which fires once when a deduction takes a balance from above 3 to 3 or below (the threshold is fixed at 3). Action: “You have {{credits.balance}} classes left” followed by a Send service/product/plan step offering the next pack. This is the highest-converting message a studio can send.

6. The win-back

Not a flow trigger but a segment: in Contacts, build a saved segment on Last purchase older than 60 days (or Number of days since last activity), excluding members on an active plan by tag. Use it as the audience of a broadcast with an approved marketing template and a coupon with a short validity window. Segments are re-evaluated when you use them, so the list is always current, and “Reachable contacts only” keeps opted-out contacts out. Our post on driving repeat sales with WhatsApp marketing has the follow-up messages.

Client pays for the ninth appointment → appointment marked completed → 9th point lands → DMly mints a personal coupon and spends the 9 points → WhatsApp: “Your reward is ready, here’s your personal code” → next visit, code typed into the invoice → discount off the total → “Coupon redeemed” fires → thank-you message → Request Google review

Takeaway: add one automation a week. The progress nudge and the review request move the needle most; the win-back keeps the list alive.

Best Practices That Keep the Program Healthy

  • Make the first reward reachable. A threshold most regulars hit within six to eight weeks keeps the program alive in their heads. You can raise it later; you can’t rescue a program nobody ever redeemed.
  • Reward with a fixed amount, not a percentage, when tickets vary. A fixed amount off is predictable for your margin and easy to explain in a chat message. Percentages are for programs where the average ticket is stable.
  • Earn on completion, not on booking. DMly’s defaults (appointments on Completed, classes on Attended, orders on Paid) mean no-shows never earn. Change them only if you understand why.
  • Treat the WhatsApp rules as design constraints. As of August 2026, WhatsApp lets you message freely for 24 hours after the customer’s last message; outside that, only approved templates, and offers count as marketing templates that need opt-in. Reward messages usually land inside the window because they follow a visit; birthdays and win-backs don’t, so template them. Never send offers to people who haven’t opted in, and let DMly’s opt-out handling (STOP adds an Unsubscribe tag and suppresses automated sends) do its job.
  • Build tiers with segments and tags, not spreadsheets. A saved segment on Loyalty points or Total spend above a level, plus a “Gold” tag applied by a flow, gives you member tiers you can broadcast to and greet by name. Keep two tiers at most.
  • Review the numbers monthly. Segments on Loyalty points, Order count and Last purchase show who’s engaged; the Lifetime value tile on each profile shows what a regular is worth; the Subscriptions list shows Active versus Paused. Our post on metrics to track after automating messaging gives you the wider dashboard.
  • Be honest about credits. Say when they expire and that cancellations don’t refund a credit. Members who understand the rules stay; members who feel tricked churn loudly.

For the broader retention playbook that surrounds a loyalty program, from response times to re-engagement, see our guide on using messaging to improve customer retention.

Takeaway: generous, reachable, honest, and inside the chat. That’s the whole philosophy.

Troubleshooting: When Points, Coupons or Renewals Misbehave

SymptomLikely causeWhat to do
“She paid but got no points”The invoice was for an appointment; points are awarded when the appointment is completed, not when it’s paid. Or orders are set to Confirmed, so paid invoices don’t earn.Mark the appointment completed. Check the earning conditions on the Loyalty tab.
Balance dropped overnightAn invoice was voided, a payment refunded or a confirmed order cancelled; each claws points back and deactivates one unredeemed loyalty coupon.Open the client’s Loyalty tab and read the movements. If the reversal was a mistake, use Adjust loyalty with a reason.
Coupon refused at the counterOutside its validity window, below the minimum (measured against subtotal plus tax), usage or per-contact limit reached, or the invoice already carries a coupon.Check the coupon’s rules under Finance → Settings → Coupons; the bill is issued at full price when refused, so nothing has been lost.
Reward message didn’t arriveThe client’s active channel wasn’t reachable (on WhatsApp, check whether the 24-hour window had closed).Look in the inbox: the code is logged against the conversation. Send it by hand with an approved template if needed.
Membership never chargedAuto-charge isn’t set up; DMly rolled the period and stopped.Set up auto-charge (the client saves a card once) or Share subscription link each period.
Subscription went to Paused by itselfThree auto-charge attempts failed, two days apart.Open the subscription; the red banner shows the gateway’s reason. Turn off auto-charge, Set up auto-charge for a working card, then Resume subscription.
Member says classes “vanished”Recurring-plan credits lapse when the cycle ends; expiry only removes what wasn’t used.Show the Credits tab on the profile. Explain the rule at sign-up next time.
Resumed a paused plan and it charged immediatelyPausing doesn’t move the billing date; the nightly run saw an overdue date.Next time: Resume subscription first, then Adjust end date to a future date before the nightly run.

Takeaway: almost every “bug” is a status that wasn’t set (completed, paid, attended) or a subscription without a saved card. Check those first.

Why DMly Is the Best Place to Run a Small Business Loyalty Program

Plenty of tools will send a WhatsApp message; very few can run a loyalty program off your real transactions. Very few can award a point because an appointment was completed, mint a reward, deliver it in the same chat, take the payment for the membership that goes with it and retry the card when it fails. That’s the difference between a chat tool with a loyalty add-on and a platform that runs the business.

Loyalty is built on your real transactions

Points in DMly come from paid invoices, confirmed orders, completed appointments and attended classes, all of which already happen inside DMly’s appointments, offerings and invoicing. Nobody logs a visit twice, and a refund or a void takes the points back automatically. Chat-only tools can’t do this because they never see the sale.

Rewards arrive where the customer already is

The moment a reward coupon is minted, DMly messages the code on the client’s active channel and records it in the inbox. No app, no plastic card, no “I forgot my code”, and your team sees the same thread the customer sees. Because DMly runs loyalty in chat across WhatsApp, Instagram, Messenger, TikTok, Telegram, SMS and live chat, the program works whichever channel a customer prefers.

Memberships and recurring billing are native

Plans and subscriptions live in the same product: one-time packs and recurring plans with credits, auto-charge with a card saved once through Stripe, PayPal, Paystack, Razorpay or MyFatoorah, renewal reminders three days out, receipts, failure notices, retries two days apart, pause, plan changes with proration, and an end date you can adjust. Most loyalty tools don’t attempt that part.

The CRM already knows who your regulars are

Every contact carries a live Loyalty points balance, credits, lifetime value, tags and stages in the contacts and CRM. Segments filter on Loyalty points, Credit balance, Total spend, Last purchase, Order count and Birthday month, so tiers, win-backs and VIP broadcasts are a filter, not an export.

Triggers, tokens and steps for the personal touches

Loyalty points activity, Coupon redeemed, Credits low, Subscription renewed, Subscription payment failed and Birthday / key date are triggers in the flow builder. {{loyalty.points}} and {{credits.balance}} are live tokens for any message. Apply Coupon, Issue Credits, Create Subscription and Request Google review are steps. The same events go out as webhooks and through Zapier, n8n and the API if you want them in a sheet or another tool.

What a small business needsTypical chat or loyalty toolDMly
Earning pointsManual entry, QR scans or a separate POS integrationAutomatic on paid invoices, confirmed orders, completed appointments and attended classes; manual Adjust loyalty when needed
Delivering the rewardApp notification or emailPersonal coupon code messaged on the client’s active channel and logged in the inbox
RedeemingShow the app; staff look it upCode typed into the invoice or applied by a flow; discount off the gross total; refused if invalid; reversals claw points back
MembershipsSeparate billing toolPlans with credits, subscriptions with auto-charge, reminders, retries, pause and plan changes in the same product
Segments and automationsExport a CSV; messaging triggers onlySaved segments on Loyalty points, Total spend and Last purchase; loyalty, coupon, credit, subscription and payment triggers plus finance steps
Cost of messagesOften marked upNo markup on WhatsApp; you pay Meta’s standard rates
A DMly client record on the Loyalty tab showing a balance of 242 loyalty points with 258 to go before the next reward, cards for credits, lifetime value and an active Colour club membership, and five movements: points earned on two visits and on a subscription renewal, a manual referral award, and the 500 points spent when the reward coupon was minted and its code messaged.
Figure 7. Every line came from a payment, a renewal or a deliberate award, which is why the balance can be trusted at the till.

Launch a loyalty program

Points that earn themselves, rewards delivered in WhatsApp, membership plans that bill on schedule and retry when a card fails. Invoices and payments are included on every DMly plan, and the trial is 7 days with no card required.

Start your free trial

Final Thoughts

A loyalty program for a small business doesn’t need an app, a card or a marketing agency. It needs a clear reward, a system that counts visits without anyone remembering to, a way to deliver the reward where the customer already is, and, when regulars are ready, a membership that bills itself.

DMly gives you all four in the same place your customers already book and pay: points on real transactions, coupons minted and messaged automatically, plans with credits, subscriptions with auto-charge and retries, and triggers for the birthday, the milestone and the win-back. Start with one rung of the ladder this week, add the progress nudge and the review request next week, and let the regulars you already have become the growth you were paying strangers for.

Frequently Asked Questions

Do my customers need an app or a card to join the loyalty program?

No. In DMly the program lives in chat. Points are added automatically on a booking, an order or a payment (or by your team for a walk-in), the reward code is messaged to the customer, and staff type it into the invoice when they redeem. There’s nothing to download or carry.

Points per visit or points per amount spent: which should I choose?

Per activity (one point per completed appointment, order or attended class) behaves like a stamp card and suits salons, cafés and clinics where visits are similar in value. Per amount spent suits shops and brands where basket size varies. Both are a switch on DMly’s Loyalty tab, with a single “Points needed to redeem” threshold.

How much should the reward be worth?

Enough to notice, cheap enough to repeat. A common starting point is a reward worth about one visit after nine or ten visits, or a few percent back on a spend-based program. Prefer a fixed amount off when ticket sizes vary. Because a DMly reward is a coupon, you can also set a minimum subtotal so a reward isn’t spent on a tiny bill.

What happens to points if I refund a payment or void an invoice?

DMly claws them back automatically. Voiding an invoice, refunding a payment on a paid invoice, or cancelling a confirmed order removes the points and deactivates one still-unredeemed loyalty coupon for that client. A coupon the client has already used is left alone.

Can I run a membership without saving customers’ cards?

Yes, but nothing will charge itself. Without auto-charge, DMly rolls the period on the billing date and stops. Use Share subscription link to issue the period’s invoice and send a pay link over WhatsApp, SMS or email, and add credits from the profile when the client pays. Auto-charge, with the card saved once through Stripe, PayPal, Paystack, Razorpay or MyFatoorah, is the version that runs on its own.

What if a member’s payment fails?

DMly tells the client and retries two days later, then once more after another two days. After three failed attempts the subscription is paused and the failure reason is shown on the subscription in the gateway’s own words. To restart, turn off auto-charge, set it up again with a working card, and resume. A flow on the “Subscription payment failed” trigger can add a personal message and a hand-over to your team.

Can I send reward and win-back messages on WhatsApp at any time?

As of August 2026, WhatsApp allows free-form messages for 24 hours after the customer’s last message; outside that window only approved templates can be sent, and promotional messages need the customer’s opt-in. Reward messages usually land inside the window because they follow a visit or payment; schedule birthday and win-back messages as templates, and let DMly’s opt-out handling exclude anyone who has said stop. Our guide to running a loyalty program on WhatsApp, and which of its messages count as marketing, works through the categories, what they cost and what the customer actually receives.

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 *

Scroll to Top