Help Center / Customers / Customer Subscriptions

Customer Subscriptions

Mar 11, 2026 · 105 views

Manage customer subscriptions for membership-based products like gym passes, club memberships, and session packages. Subscriptions support time-based expiry, session-based tracking, and automatic renewal.

Setting Up Subscription Products

  1. Go to Products → Edit on any product.
  2. Set the product type to Subscription.
  3. Configure:
    • Duration Type — Monthly, Yearly, or Session-Based
    • Duration Value — how many months/years, or total sessions
    • Auto-Renew — whether to automatically create a new subscription when it expires

How Subscriptions Are Created

  • From POS — when a customer purchases a subscription product, a subscription is automatically created with the calculated end date or session count.
  • Manual — go to Customers → Subscriptions and click Assign Subscription.

Subscription Lifecycle

StatusDescription
ActiveCurrently valid, customer can use services
PausedTemporarily frozen (can be resumed)
ExpiredEnd date passed or all sessions used
CancelledManually cancelled with a reason
RenewedExpired and a new subscription was created

Managing Subscriptions

  • Pause/Resume — temporarily freeze a subscription
  • Cancel — end a subscription early with a reason
  • Use Session — for session-based subscriptions, decrement the remaining count
  • Bulk Actions — pause, resume, or cancel multiple subscriptions at once

Automatic Processing

The system runs daily to:

  • Expire time-based subscriptions past their end date
  • Auto-renew expired subscriptions that have auto-renew enabled
  • Flag subscriptions expiring within the next 7 days

Opening a Subscriber's Contact Profile

Every customer name on the Subscriptions page is a link. Click it to open that customer on the Contacts page — the same profile you'd reach from the contacts list, with their details, notes, activity, and message history in one place.

Useful when a subscription is about to expire and you want to reach out: click the name, check the last conversation, and message them without retyping anything.

  • The Contacts page opens filtered to the customer's name with their profile already selected, so you land on the right person even in a long contact list.
  • The phone and email lines under the name still work as before — the phone number dials and the email opens your mail app directly, without leaving the page.
  • Customers added before contacts were introduced may not have a linked profile yet; for them the link opens the contacts list searched by their name instead.

Cancelling: Tell Us Why

Cancelling a subscription now opens a small dialog instead of a plain text prompt. Pick why it's being cancelled:

  • Member left / didn't continue — the default. Counts as churn in your reports.
  • Data correction / re-encode — wrong input, re-entry, a superseded term. Excluded from churn stats.
  • Duplicate entry — excluded from churn stats.

The reason note is still required, and the same choices apply to bulk cancels. Classifying corrections properly keeps your churn rate meaning "members we lost" instead of "rows we tidied up".

Focusing the Win-back List

The Expired and Cancelled tabs have a "Lapsed within" filter — last 30, 60, or 90 days, 6 or 12 months, or any time. Someone who lapsed two weeks ago is a phone call; someone gone a year is a different campaign. Pick the window your outreach can realistically win back.

It combines with the existing switches (latest expired per customer, hide members who still have an active subscription) and the product filter. Arriving from a report's win-back button pre-selects your tracked products automatically, so the list matches the number you clicked.

Where the Stats Went

The summary cards that used to sit at the top of this page were removed — the status tabs carry the same counts, and the real statistics live on the reports. The Performance Report button beside Assign Subscription opens the Subscription Performance report directly.

Repeat Purchases: Stack, or Run on Their Own Clock

When a member buys a time-based subscription they already own, the system normally stacks it: the new term starts the day after their current coverage ends, so buying two months in a row gives two months back-to-back, never overlapping. That's right for memberships — and it stays the default.

It's wrong for consumable perks. A "1 FREE PT session" valid one month is a use-it-or-lose-it grant: if the member earns a second one two weeks later, it should run its own month from the day it was given — not queue up behind the first.

Each product now chooses its behavior. On the product's edit form, under the subscription settings, find Stack Repeat Purchases:

  • ON (default) — repeat purchases extend coverage. Terms chain one after another, including multiple quantities in a single sale.
  • OFF — every purchase starts its own term on the sale date with its own expiry, overlaps allowed. Two freebies granted a week apart expire a week apart.

The switch takes effect for future sales immediately; terms already sold keep their dates. Session-based packs ignore it — extra purchases always just add sessions.

Voiding a Past (Expired) Term

Expired terms now offer Cancel alongside Renew. Cancelling a past term voids it — it stops counting as coverage.

Why that matters: stacking counts expired terms too, so when re-encoding a member's history with a backdated order, leftover terms from an earlier mistaken entry would silently push the new terms to start after them — even when that earlier order was already cancelled. Void the leftover terms first, and the backdated order starts exactly on the date you filed.

Cancel always asks for a reason — classify data corrections and duplicates as such so they never skew your churn stats — and a term cancelled by mistake can be restored with Reactivate.

Related Articles

On this page