Why do expiring class packs cost you clients?
Unused credits that disappear quietly feel like lost money to a client. Most of them don’t complain. They just stop booking, and a few months later they are gone.
A pack that expires with credits left is a different problem from one used up on time. The client who lets 4 visits lapse has already shown they wanted to attend. They are the easiest people to win back, and the reminder is how you reach them before the date passes.
This page covers class pack expiry. Memberships and autopay renew on their own, so they don’t need the same reminder.
This is an illustrative setup, not a customer story. A pilates studio sells 10-packs valid for 90 days. A client with 4 visits left stops booking in week 10, and nobody notices until the pack has already expired.
How do I see which clients have visits left in Mindbody?
Start with the Visits Remaining report in Mindbody. Look for it in your Reports menu, because menu labels differ by plan and version. Run it for the pricing options you sell, such as your 10-pack or intro offer.
For each row, read three things:
- Client: who holds the credits.
- Pricing option: which pack it came from.
- Visits remaining: how many credits are left.
Then pull the expiration date for the same pricing option. A visit count without a date tells you nothing about urgency. You can also view active pricing options directly on an individual client’s account in Mindbody to confirm details before sending a manual message.
Check how each pack starts its clock
Some pricing options start on the sale date. Others start on the first visit. A pack that activates on first visit has no running clock until someone books, so it won’t show a near-term expiry. Check the activation setting for each pricing option before you trust an expiry-date filter.
Booker clients
Booker keeps its own package and membership records. Use the equivalent balance or package report in your account, and check the exact name there.
When should you send the reminder, and what should it say?
Send the first reminder about 14 days before expiry. Send a second, shorter one at about 3 days to anyone who hasn’t booked or renewed since the first.
Match the message to the situation:
| Situation | Timing | Message focus | Channel |
|---|---|---|---|
| Several visits left, about 14 days to expiry | 14 days out | Here’s what’s left and when it ends; link to book classes | Email (SMS if opted in) |
| Few visits left (1–2), about 14 days to expiry | 14 days out | Use the last credits and renew at the same price | Email with renewal link |
| Visits still left, 3 days to expiry, no booking since first reminder | 3 days out | Short last call with a book link | SMS if opted in, otherwise email |
| 0 visits left, pack not yet expired | Within a day or two of the last visit | Renewal offer, no mention of expiry | |
| Already bought a newer pack | Never | Suppress the reminder | None |
Keep each message to one fact and one action: what they have left, when it ends, and a link to book or renew. ‘Your 10-pack expires on the 28th’ makes people feel cheated. ‘You have 3 visits left until the 28th. Book them here, or renew before then and keep your rate’ gives them something to do.
Default to email. Send texts only to clients who have opted in, because Twilio carries the message but doesn’t record consent for you.
Where does the manual way break?
A monthly export can work for a small list. It breaks in four predictable places.
One client, several rows. The report lists one row per pricing option. A client with an intro offer, a 10-pack and a gift-card-funded pack can appear three times. A plain mail merge sends three emails. Group by client and use the earliest expiry that still has visits left.
Stale data. Front-desk staff extend dates and add courtesy visits. Clients buy new packs. An export from last Tuesday can already be wrong.
Uneven timing. If you run the report weekly, some clients get the reminder at 11 days out and others at 17. Someone has to remember to run it, every week, forever.
No suppression. Nothing in a manual process stops a reminder reaching someone who renewed yesterday. That is the message that makes loyal clients feel ignored.
Feature limitations and texting. Mindbody’s marketing tools and smart lists assist with segmentation, but verify whether your tier supports automated triggers based on pack expiration dates. At the time of writing, documented Lead Management triggers focus on milestones like attendance and intro offer expiration rather than ongoing pack expiry. Texting also requires managing consent separately on client records.
How do you automate the reminder with Pandaflow?
Nothing here involves leaving Mindbody. Pandaflow connects around it, so your Mindbody setup stays as it is.
The steps:
- Start free.
- Connect your apps: Mindbody, HubSpot, and Twilio. The Mindbody integrations page covers what Mindbody data is available, and the HubSpot and Mindbody page covers how the two connect.
- Describe what you want in plain English. For example: ‘Two weeks before a class pack expires, if the client has visits left, email them with what’s left and a book link. If they haven’t booked or renewed three days before expiry, text them if they’ve opted in. Skip anyone who has bought a newer pack.’
- Review a few records. Check that the right clients, visit counts and expiry dates show up, and that the client with two packs appears once.
- Go live.
Pandaflow’s AI sets up the sync and keeps it running. If something upstream changes, such as a field format or an API update, it repairs the sync directly.
What the owner sees: each client’s record in HubSpot shows visits left and the expiry date, plus a record of which reminders went out. Your front desk doesn’t need to run regular manual reports.
Pandaflow is free to start. Plans are Lite at $79, Silver at $299, and Gold at $499 a month. You can deploy in Pandaflow’s cloud or your own. See pricing for details.
How do you turn the reminder into a renewal?
Put the renewal in the message itself. Offer the same pack at the same price, with a link that goes straight to the purchase. Making people hunt for the store checkout is where renewals drop off.
You can add a small incentive for renewing before expiry, such as a bonus class or a few extra days on the new pack. Keep it modest. If every renewal comes with a bonus, clients learn to wait for one.
Don’t extend expired packs by default. A one-time extension tied to booking a class or buying a new pack protects the relationship without teaching people that dates don’t matter. Check your local rules on expiring prepaid credit.
Afterwards, track two numbers: how many reminded clients booked within 7 days, and how many renewed before expiry. Compare both with clients you didn’t remind. That tells you whether the reminder is working, without needing a benchmark from anyone else.
For more on keeping clients after their first pack, see the retention guides.
What can go wrong?
- Reminding someone who just renewed. Always check for a newer purchase before sending.
- Texting people who never opted in. Only send SMS to clients with recorded consent.
- Trusting an export from last week. Refresh the list right before you send.
- Sending the same client three emails. Group rows by client.
- Assuming every pack has an expiry date. Packs that activate on first visit have no running clock yet.
- Waiting too long. A 3-day reminder only helps if the client can still book a class in that window.