First-visit & birthday
Automatic rewards for new clients and birthdays — a warm gesture that brings people back.
The first-visit discount is the quietest advertising you own: nothing to type, nothing to remember, the client simply sees a lower price on their first appointment. This article covers how to set it up, when the system considers a client new, and — the important part — why it sometimes fails to fire even though the client genuinely is new.
The second half of the title deserves an honest answer: Mountify has no automatic birthday reward. §6 explains why, and what to do instead.
Requires the Growth plan or higher and the
manage_loyaltypermission.
1. Creating a first-visit discount
- Open the board and click the Setup hub in its column.
- In the Salon operations group choose the Loyalty row.
- Press New rule.
- Choose the First-visit discount card and press Use this template.

The wizard opens pre-filled: −20 %, order 60.
- Fill in:
| Card | Field | Advice |
|---|---|---|
| Meta | Internal name | ”Welcome — first visit” |
| Meta | Customer-facing description | ”First-visit discount” — this is what the client reads on the payment screen |
| Reward | Percent off or Flat amount | 15–20 % is a sensible start. A flat amount sounds more concrete (“−15”) |
| Who qualifies | Applies to services | Optional. Narrow it to the services you want newcomers to try |
| Who qualifies | Minimum spend | Protects you from “−20 % on a 10-unit service” |
| Advanced | Discount ceiling | ”−20 %, but never more than 30” — recommended with a percentage reward |
- Press Save rule.
The When card has no field. Instead it shows an explanation: “Fires automatically on the very first booking made by a customer on this board. No customer input.”
2. When the system considers a client “new”
The rule fires only if the count of that client’s previous bookings on this board is zero.
| What counts as a previous visit | Counts |
|---|---|
| A confirmed, completed or future booking | Yes |
| A booking the client cancelled themselves | Yes |
| A booking cancelled by your team | No |
| A booking auto-cancelled by the system (confirmation or payment deadline passed) | No |
| A booking on another board in the same workspace | No |
In other words: a client who booked and then cancelled it themselves is no longer new. That’s deliberate — otherwise “book → cancel → book” would hand out an endless first-visit discount.
There is a second, independent check: if the same email address has already booked on this board — even under a different client record — the rule does not fire. That catches the “guest who later created an account” case.
3. The hidden identity requirement
This is the number-one reason the discount “doesn’t work”.
The first-visit rule requires a verified identity. There is no field for it in the wizard — it is applied automatically.
Verified identity means one of two things:
- the client is signed in on the public booking page; or
- the client confirmed a booking via the link sent to their email (which proves the address is theirs).
A guest who simply fills in a name and email and confirms does not get the discount.
Why: without that check anyone could type a fresh email and be a “new client” every time. The first-visit reward is precisely the one that is easiest to abuse.
How to turn guests into verified clients
Switch the confirmation window on. Then every public booking is created as Pending and the client must click the link in their email. That click verifies the address — and unlocks the first-visit discount.
The path: Setup → Settings → Confirmation window (minutes) → put a number in (e.g. 60) → Save changes. Details in The confirmation window.
4. What the client sees
On the public page the rule only appears for clients who qualify:
- In the perks strip — First-visit discount.
- On the payment screen — the line you wrote in Customer-facing description, plus a Loyalty savings (est.) row in the price breakdown.
There is no code to type and no button. If the client doesn’t qualify they simply see nothing — there is no “you don’t qualify” message.
5. Granting the discount by hand
If a client is new but the rule didn’t fire for some reason (booked over the phone, or a guest with an unverified email), you have two tools.
A. Apply the rule manually
- Clients → open the client → the “Loyalty” tab.
- Press Apply rule manually.
- Pick a Booking, then a Rule, enter the Discount amount (in money, not percent) and write a Note.
- Press Apply.
B. Reset the “new client” status
If the client was wrongly counted (an old cancelled booking, merged duplicate records), you can reset the counter:
- Clients → the client → the “Loyalty” tab → Eligibility overrides → Add override.
- In Override kind choose Reset first-visit.
- Write a note in Note (audit log) and press Create override.
On that client’s next booking the first-visit rule fires once, after which the override is marked Consumed.
6. Birthdays: why there aren’t any
Short and honest: Mountify has no “birthday” condition, and it cannot have one today.
The reason is simple — there is no date-of-birth field on the client card. There is nowhere to enter it and nothing to compare against. The conditions that exist are exactly three: promo code, first visit and stamps.
The Loyalty page description mentions “BOGO, birthday, referral, tier, cashback”. That copy describes where the mechanism is heading, not what you can build today.
What to do instead
| Approach | How |
|---|---|
| A personal promo code | Create a code like BDAY26 with Valid from / until set to the month, any discount, and Max uses per customer = 1. Send it personally |
| One code per campaign | A single code for the whole month (“JUNEBDAY”) that you only give to people whose birthday you know |
| A note on the card | Record the date in the client’s Notes and make a habit of checking once a month |
| A manual discount | When they come in, apply a rule manually from the “Loyalty” tab with a “birthday” note |
If you create a code with Max uses per customer = 1 it automatically requires a verified identity (§3). For a personal gift it is usually better to leave that field empty and put a short Valid until date on it instead.
7. If something isn’t working
| Symptom | Check |
|---|---|
| A new client got no discount | Are they signed in, or did they confirm the booking via the email link? See §3 |
| A “new” client isn’t counted as new | Is there an old booking they cancelled themselves? Any earlier booking with the same email? |
| The discount is larger than expected | Set a Discount ceiling in Advanced |
| The discount fired and then vanished | The booking was cancelled, moved or changed — the application is voided |
| The rule won’t save | Are you on Growth? Do you have manage_loyalty? |
| The rule stacks with a promo code | Check Combine with other rules on both rules — see Stacking & budgets |
What’s next
- Promo codes — the birthday substitute, step by step.
- Loyalty rule types — the three conditions, in tables.
- The confirmation window — how to turn guests into verified clients.
- The client card — where applications and overrides live.