Two ways to run a promotion.
The first: you post it on Instagram, blast it to everyone in WhatsApp, and at the end of the month decide it "went okay" based on how the month felt.
The second: you attach a code to it, and afterwards you know exactly how many bookings it produced, and whether the discount you gave away was smaller than the business it brought in.
Only one of those tells you whether to run it again.
How it works on your booking page
You create a discount with a redemption code โ say RAYA30 โ and the customer types it at checkout on your booking page. The discount is validated and recalculated on our side, not in the browser, and the booking is charged at the discounted amount.

The customer does not need an account for this. A first-timer who found the code on a poster can use it, which is the whole point of a public code.
Setting one up
In Catalogue โ Discounts, create the discount, then give it a redemption code. Three settings decide how it behaves:
- Where it can be used โ online only, in-store only, or both. A code printed on a flyer for walk-ins and a code for your Instagram campaign are usually not the same code.
- Usage limit โ how many times it can be redeemed in total. This is the one people forget.
- Availability โ the start and end dates the code is alive for. A Raya code that still works in July is a discount you did not mean to give.
Keep codes short, upper-case and unambiguous. No zero-versus-O, no hyphens. People are typing them on a phone with one hand.
One code per source, not one code per campaign
This is the trick that turns promo codes from a discount mechanism into a measurement tool.
Running a Raya offer across Instagram, a flyer drop and a partnership with the gym next door? Use RAYA30IG, RAYA30FLYER and RAYA30GYM. Same discount, three codes.
Your discount list carries a Code column and a Redeemed column, so at the end of the month the counts sit side by side and tell you which channel is worth doing again โ and usually one of the three is carrying the other two.
The flyer drop that everyone assumed was dead either shows up in the count or it does not.
Set a limit before the code leaves the building
A public code is public. Someone will screenshot the poster and put it in a deals group, and by Thursday you are giving 30% to people who would have paid full price.
The usage limit is what stops that being a problem. Twenty redemptions on a flyer campaign is twenty, whoever finds it. Set it a bit above your realistic expectation and you keep the upside without the tail risk.
One honest limitation while you plan: limits are total, not per customer. There is nothing today that stops the same person using a code twice. For a first-visit offer, keep the total limit tight and check the redemptions rather than assuming the code polices itself.
Four that work for appointment businesses
- Quiet-hour code. Tuesday and Wednesday mornings, 20% off, limited to 30 uses. You are not discounting your Saturday; you are selling a slot that expires unsold.
- Win-back. Pull customers who have not visited in six months from your customer list, send one code to them only, and give it a short life. Measure against the group size, not against the month.
- Referral card. A code your regular hands to a friend. The redemption count is your word-of-mouth number, finally visible.
- New-service launch. A code for the first twenty bookings of a treatment you just added, to get photos and reviews fast.
What it costs
Nothing. Promo codes are part of the booking page on every plan, not part of the paid add-on. The discount itself costs you exactly what you set, which is the only part of this you should be arguing about.
After the campaign
Two numbers, five minutes. How many redemptions, and what the average bill was on those bookings versus the ones without a code. If the discounted bills are as big as the normal ones, you attracted business rather than subsidising it.
If they are much smaller, you gave money to people who were coming anyway, and the code did its job by telling you so.







