Skip to main content

Loyalty Program

The loyalty program lets you reward students with points for attending classes, making purchases, and referring friends. Students accumulate points and redeem them for rewards you define — discounts, free classes, account credit, or custom prizes.

Enabling the program

Go to Settings → Loyalty and toggle Enable Loyalty Program on.

Configuring point rules

SettingDescriptionDefault
Points per dollar spentPoints awarded for every $1 paid on class bookings and package purchases1
Points per check-inPoints awarded each time a student checks in to a class10
Points per referralPoints awarded when a referred student makes their first booking50
Points expiry (months)How many months before unused points expire. Leave blank for no expiry.No expiry

Click Save Configuration to apply your changes. The program starts awarding points immediately when enabled.

Creating rewards

In the Rewards Catalog section, click Add Reward and fill in:

FieldDescription
NameThe reward name students will see, e.g. "Free Class" or "10% Off"
DescriptionOptional details about the reward
Points requiredHow many points the student must spend to redeem
Reward typeOne of: % Discount, Fixed Discount, Free Class, Account Credit, Custom Reward
ValueFor discounts: the percentage or dollar amount. For credit: the amount added to the student's balance. Not used for Free Class or Custom.
Max redemptionsOptional limit on total redemptions. Leave blank for unlimited.

Reward types explained

  • % Discount — Gives the student a percentage off their next purchase (e.g. 10% off).
  • Fixed Discount — Gives a fixed dollar amount off (e.g. $5 off).
  • Free Class — Entitles the student to attend one class at no charge.
  • Account Credit — Adds a dollar amount to the student's credit balance, which is automatically applied to their next booking.
  • Custom Reward — A reward you fulfill manually (e.g. studio merchandise, a private session). Track redemptions in the dashboard and fulfill offline.

You can deactivate a reward at any time by toggling its Active status. Deactivated rewards can no longer be redeemed but previously redeemed rewards remain valid.

How students earn points

Points are awarded automatically:

ActionWhen points are awarded
Class check-inWhen studio staff checks the student in to a class
PaymentWhen a payment is completed (class booking or package purchase)
ReferralWhen a student referred by this student completes their first booking

Points are recorded in a ledger. Each entry shows the points earned, reason, and running balance. Points from the same event are never awarded twice (idempotent).

Manual awards

Studio owners and admins can manually award points to any student via the API (POST /api/loyalty/points). This is useful for special promotions, contest prizes, or correcting errors.

How students redeem rewards

Students view their points balance and available rewards on their dashboard. To redeem:

  1. Student selects a reward from the available catalog.
  2. If they have enough points, the redemption is processed instantly.
  3. Points are deducted from their balance.
  4. For Account Credit rewards, the credit is automatically added to their balance.
  5. For other reward types, the redemption is marked as Pending until used.

Points expiry

If you configure a points expiry period, points that are older than the configured number of months will expire. Expired points are deducted from the student's balance automatically.

tip

Setting a points expiry (e.g. 12 months) encourages students to stay active and redeem their rewards regularly.

Viewing loyalty data

As a studio owner

  • Settings → Loyalty — Configure point rules and manage the rewards catalog.
  • Student profile — View individual student point balances and transaction history.

As a student

  • Dashboard — View your current points balance and available rewards.
  • Redeem — Browse rewards and redeem directly from the dashboard.

API reference

EndpointMethodDescription
/api/loyalty/configGETGet loyalty configuration
/api/loyalty/configPUTUpdate loyalty configuration (owner/admin)
/api/loyalty/rewardsGETList all rewards
/api/loyalty/rewardsPOSTCreate a reward (owner/admin)
/api/loyalty/rewards/:idPATCHUpdate a reward (owner/admin)
/api/loyalty/rewards/:idDELETEDelete a reward (owner/admin)
/api/loyalty/pointsGETGet current user's points balance and history
/api/loyalty/pointsPOSTManually award points (owner/admin)
/api/loyalty/redeemGETGet current user's redemption history
/api/loyalty/redeemPOSTRedeem a reward