Membership Notifications
Set up automatic membership notifications triggered by purchase, balance change, freeze and unfreeze. Learn the trigger types, channels and rule examples.
Notification or reminder
Membership notifications are automatic messages that fire on an event: a membership purchase, a change in its balance, a freeze or an unfreeze. In other words, the system reacts exactly when something happens to the membership and immediately informs the client.
If instead you need to send a message on a schedule (for example, 3 days before the membership ends), use reminders rather than notifications.
Before you begin
To work with membership notifications you need the Memberships module enabled. Without it the section will not appear.
The section itself lives in the Mailings sidebar menu and is named "Notifications: Memberships". That is where you create and edit the rules described below.

Trigger types
The trigger defines which event the notification fires on. Choose it in the Trigger field at the start of the form.
| Trigger | When it fires | Key settings |
|---|---|---|
| Every membership change | On any change to the membership | Number of notifications, list of watched fields |
| Purchase | On the membership purchase selected by number | Purchase number or multiple |
| Balance change | When the remaining visits, time or credits cross a threshold | One or more balance thresholds |
| Freeze / unfreeze | When the membership is frozen or unfrozen | Freeze event |

Every membership change
This trigger fires on any change to the membership. So that the client does not receive excessive messages, it has a Number of notifications policy with two options:
- Send once per membership - the notification is sent only once for the entire lifetime of the membership.
- Send again each time a watched field changes - the notification repeats on every change of a field from the list below.
If you chose the second option, in the Check for field changes selector pick which changes matter:
- start time;
- end time;
- status;
- payment status;
- price;
- services;
- resources.

Purchase
The trigger fires on the membership purchase selected by number. You can send a notification on the 1st purchase, on the 2nd, or on every Nth - for example, to thank the client for every fifth membership purchase.

Balance change
The trigger fires when the remaining visits, time or credits cross a set threshold. Each threshold is described by several parameters:
| Parameter | Value | What it means |
|---|---|---|
| Balance mode | Available balance / Available balance + scheduled | Count only the free balance, or include what is reserved by appointments |
| Unit | Visits / Time / Credits | What this membership's balance is measured in |
| Calculation | Becomes less than / Becomes equal to / Becomes a multiple of | Exactly how the balance must cross the value |
| Value | Number | The threshold the notification reacts to |
You can add several thresholds - for example, warn the client when 3 visits are left, and again when only 1 remains.
Balance threshold does not apply to time-range memberships. For such memberships rely on dates rather than on the remaining balance.

Freeze / unfreeze
The trigger fires when the membership is frozen or unfrozen. This is handy so the client always knows the current status of their membership and the date from which it is active again.

How freezing itself works is described in a separate article:
Channels and fallback order
Notifications can be sent over three channels, at least one is required:
- Telegram
- SMS
The order of the channels defines the fallback sequence: the system tries to send the message over the first channel, and if that is not possible it moves on to the next. To optimize costs we recommend the order Telegram -> Email -> SMS.
This means the system first checks whether the client is subscribed to the Telegram bot. If so, the message goes there. If not, Email is checked. And only when it is impossible to send to either Telegram or Email, the message goes out via SMS.

Recipients
In the Recipients block you choose who to send the notification to - for example, the client, the membership owner. Contacts are taken from the client's details, so make sure they have at least one contact channel filled in.
Filters (include and exclude)
Filters narrow down the set of memberships the rule applies to. For each condition there is an "only selected" variant and a mirror "except selected" variant:
- Templates - specific membership templates.
- Statuses - for example, only active memberships.
- Sources - where the membership was created from.
- Resources - the linked resources.
- Services - the services the membership applies to.
- Client tags - client segments.
- Payment statuses - for example, only fully paid.
The mirror variants ("except selected ...") let you, conversely, remove individual templates, statuses, sources and so on from the scope of the rule.
Message, subject and shortcodes
In the Message field enter the notification text. For Email you can additionally fill in the Subject of the letter.
To insert dynamic data, use the Add shortcode button - it inserts a placeholder into the text that the system replaces with a real value when sending:
- Client: full name, first name, last name, phone, email, plus the client's custom fields.
- Branch: name, address, phone.
- Company: name (
{{company.name}}). - Template: name.
- Membership: number (
{{membership.number}}), start date, end date, available visits, available credits. - Link:
{{link}}.

Advanced settings
In the Advanced settings block additional options control the frequency and timing of sending:
- Number of notifications - the repeat policy for the "Every membership change" trigger (send once per membership or each time a watched field changes).
- Delay before sending - the system sends the message only after editing of the membership is complete (for example, 2 minutes after the last change), ignoring intermediate edits. This saves you from a burst of messages while you actively edit a membership.
Preview and save
Before you save the rule, click Preview - this shows the exact text the client will receive with the placeholder values substituted. If everything is correct, save the notification: from then on it will fire automatically on the chosen trigger.
Example: low balance notification
Suppose you want to bring back clients who have almost run out of visits in advance.
- Trigger - Balance change.
- Add a threshold: mode Available balance, unit Visits, calculation Becomes less than, value 2.
- Channels - Telegram -> Email -> SMS.
- Message - a starter text about the balance with the
{{membership.number}}shortcode and a{{link}}to buy a new membership.
Now as soon as the client has fewer than two visits left, they will receive a reminder to top up the membership.