Loyalty Referrals
Give every active-student family their own referral link and QR code, automatically refreshed each month — a friend who books a trial through it, or goes on to join, raises a reward reminder for you to action.
Off by default. Nothing is generated, and nothing is ever sent, until you turn it on.
Turning it on
Go to Admin → Integrations → Loyalty Referrals and switch Enable Loyalty Referrals on.
Turning this on doesn't generate anything right away — the first batch of codes is issued on the next daily check (within 24 hours) and lands in your Suggested Comms queue for you to review, same as any other suggestion. There's no need to wait around after flipping the switch.
How a code is issued
Once a day, r4ptor checks every family with at least one active student (families are matched by parent/carer email, same as everywhere else duplicate-booking checks happen — one family with two kids enrolled shares a single code). A family that doesn't have a current code yet, or whose code is over a month old, gets a fresh one minted and queued as a suggestion.
Each code:
- Resolves to a link in the form
https://<your-club>.r4ptor.app/join?ref=<token> - Is attached to the queued suggestion's email as a QR code, so a friend can scan it straight into the booking form instead of typing a link
- Rotates monthly — the just-rotated-out code keeps working for a 7-day grace period, so a code someone shared a few days before rotation doesn't suddenly break
Review and send — like every other suggestion
Codes don't send themselves. They queue on the Comms → Suggested tab in their own "Loyalty Referrals" group, with the same Send / Test send / Dismiss controls as birthdays, anniversaries and the rest — see Suggested Comms for the full mechanics (Test Mode behaviour, dedup, the comms log).
Approve all — for a group with more than one pending suggestion, a one-tap "Approve all (N)" action appears next to the group heading, with a confirm step before it sends. Useful the first time you turn the feature on, when every eligible family is likely to show up in the queue at once rather than trickling in. This control isn't specific to referrals — it works the same way on any suggestion group.
Who gets attributed
The referral link is read from ?ref= on the public /join booking form. If a new lead books a trial through a valid link:
- A Trial Bonus reward reminder is raised as a Task the moment they book
- A Joining Bonus reward reminder is raised as a separate Task if they go on to convert to a paying member
Both just name the referring family and ask you to action the reward — r4ptor never decides or pays out a reward amount itself; that stays a manual, off-system decision for your club (see Reward wording below for how to show your own figures in the message).
A lead can't refer themselves — if the new lead's own email matches the referring family's, the booking still goes through as normal, it's just not attributed to anyone.
Tracking rewards
Reports → Loyalty Referrals tallies, per family: trials referred, conversions, and how many Trial/Joining Bonus Tasks have been raised vs already actioned. Mark the Task complete once you've sorted the reward out with that family.
Letting a family opt out
Every student's profile has its own Loyalty Referral card, showing that family's current code, a copy-link button, and an Opt out of loyalty referrals toggle. A family that opts out:
- Stops being issued or rotated a code
- Has its existing link stop resolving for new attribution immediately — even inside its old grace period
Opting back in picks up where any other new family would — a fresh code on the next daily check.
Reward wording
The seeded template (Admin → Comms → Templates → Loyalty Referral Code) uses two plain variable tokens for the reward amounts rather than hardcoding a figure, since the actual reward is your own club's decision:
| Token | Set under |
|---|---|
{{TRIAL_BONUS}} | Admin → Comms → Variables — e.g. £15 |
{{JOINING_BONUS}} | Admin → Comms → Variables — e.g. £25 |
Both are blank by default. Leaving either blank renders as an empty gap in the message — fill them in once you've decided your own reward amounts, or edit the template to remove the wording entirely if you'd rather not state a figure at all.
Settings reference
| Key | Description |
|---|---|
REFERRAL_PROGRAM_ENABLED | true / false (default off) — master switch. While off, nothing is created at all, not just nothing sent |
INSTRUCTOR_SMS_COPY_ENABLED | Unrelated master toggle that happens to also gate whether you get copied on a referral SMS — see App Settings → Club Settings |
See App Settings for where these live.