What This Screen Does
This is where you update an existing campaign membership type. Think of a campaign as a special, time-limited membership offer — like a summer promotion or a New Year deal. On this screen you can change everything about the campaign: its name, pricing rules, how long it lasts, which classes members can access, and more. When you save, the system updates the campaign and any changes take effect right away.
How to Get There
Open the dashboard.
In the left-hand menu, click Campaign type.
Find the campaign you want to edit in the list.
Click on it to open its details, then click the Edit button (or click the edit action directly from the list).
You are now on the Edit Campaign Type screen.
Step-by-Step Guide
1. Basic Information
This section covers the core details that describe your campaign to members and staff.
Field | Required | What to Enter |
Name | Yes | The display name of this campaign type. This is what members see when browsing memberships. |
Short Description | No | A brief summary (a few sentences) that appears alongside the name in lists and cards. Use the multiline text box to write it. |
Cover Image | Yes | Upload an image that represents this campaign. Click the image area to open the uploader. The image will be cropped to a 4:3 ratio. Only one image is allowed. |
Description | Yes | A full, detailed description of the campaign, including benefits and features. Use the rich-text editor to format the text with bold, lists, links, etc. |
Contract | Yes | Pick the legal contract template that members must agree to when purchasing. Select one from the dropdown. |
Converts to contingent | No | Choose a contingent (ongoing) membership type that this campaign will automatically convert to after it expires. Select “None” if you do not want automatic conversion. |
2. Properties
These settings control how the campaign behaves day-to-day.
Field | Required | What to Enter |
Frequency | Yes | How often members are charged (e.g. Monthly, Quarterly, Yearly, OneTime). Pick the billing cycle from the dropdown. |
Product Code | No | An internal product code for your own records and reporting. |
Product SKU | No | A Stock Keeping Unit identifier, useful if you track inventory. |
Number of seats | No | The maximum number of members who can hold this campaign membership at the same time. Leave empty for unlimited. |
Account number for bookkeeping | No | The account number used when exporting financial data to your accounting system. |
Publicly available | No | Toggle on to make this campaign visible in your online store and member portal. Toggle off to hide it. Defaults to on. |
Has access to door system | No | Toggle on to allow members with this campaign to unlock doors via the access control system. Defaults to on. |
Limit training hours | No | Only available on Premium or Platinum plans. Toggle on to restrict when members can access the facility (see the Training Hours section below). |
Allows training in all gyms | No | Toggle on to let members train at any location in your chain, not just the one they signed up at. |
Counts towards global limit | No | Only shown if your chain has a maximum number of active memberships configured. Toggle on to include this campaign when counting against that limit. |
Anchor memberships renewal to the 1st day of the month | No | Only shown for certain billing frequencies (e.g. Monthly, Quarterly). Toggle on to align all renewals to the first day of each month. This may be locked on if set at the gym level. |
Lock Access (shown only if your gym has locks configured)
Field | Required | What to Enter |
Limit lock access | No | Toggle on to restrict which doors this membership can open. |
Lock ID | Yes (if limit lock access is on) | Select one or more locks from the dropdown. Members will only be able to open these specific doors. |
3. Validity
Define when the membership is active and when it expires.
Field | Required | What to Enter |
Membership becomes active on | No | The date the membership starts being usable. Leave empty to activate immediately upon purchase. Useful if you sell memberships before they should begin (e.g. selling in December for a January start). |
Membership expires on (fixed date) | No | A specific calendar date when the membership ends. Only shown if you have not entered a duration in months or days. |
Duration in months | No | Number of months the membership remains valid after activation. Only shown if no fixed expiration date is set. For example, enter 3 for a three-month campaign. |
Duration in days | No | Number of days the membership remains valid after activation. Only shown if no fixed expiration date is set. For example, enter 90 for a 90-day campaign. |
Note: The expiration fields are mutually exclusive. If you enter a fixed expiration date, the duration fields hide. If you enter a duration in months or days, the fixed date field hides. Clear the value to switch between them.
4. Training
Control how members book classes with this campaign membership.
Field | Required | What to Enter |
Maximum number of active bookings | No | How many upcoming classes a member can be registered for at the same time. Leave empty for unlimited. |
Days in advance for bookings | No | How many days ahead members can book a class. For example, 7 means they can book up to one week in advance. |
Maximum number of bookings | No | Total number of classes a member can book within the selected training limit period. |
Training limit period | No (shown only if maximum bookings is set) | The time window for the booking limit: Monthly, Weekly, etc. |
Allowed classes | No | Select which class types members can book. Leave empty to allow access to all classes. |
5. Training Hours (optional)
This section only appears if you toggled on Limit training hours in the Properties section. It lets you define specific days and times when members can access the facility.
Each row represents a time window on a specific day of the week.
For each row:
Field | Required | What to Enter |
Day of week | Yes | Pick the day (Monday through Sunday). |
Open | Yes | The time the facility opens for this membership on that day (24-hour format). |
Closed | Yes | The time the facility closes for this membership on that day (24-hour format). |
Click Add opening hour to add another row (for example, to add a second time slot on the same day or a new day).
Click the red X button next to a row to remove it.
If you do not set any training hours, the system uses the gym’s regular opening hours.
6. Communication
Set up automated emails for this campaign.
Field | Required | What to Enter |
Welcome email | Yes | Choose the email template sent to new members when they purchase this campaign. Only templates of type “Welcome Email” appear in the dropdown. |
7. Pricing
Configure the cost and availability of this campaign.
Note: When editing an existing campaign, the Regular Price, VAT rate, and Available in gyms fields are not shown. Price is managed separately through the campaign’s price list. Only the fields below appear.
Field | Required | What to Enter |
Setup fee (toggle) | No | Toggle on to charge a one-time fee when a new member purchases this campaign. Defaults to on. |
Setup fee amount | Yes (if setup fee is on) | Enter the one-time fee amount. The VAT for the setup fee is based on your global chain settings. |
Can be purchased from | Yes | The first date this campaign becomes available for purchase. |
Can be purchased until | No | The last date this campaign can be purchased. Leave empty if there is no end date. Must be later than the “purchased from” date. |
8. Save Changes
Review all sections to make sure everything is correct.
Click the Save Changes button in the bottom-right corner.
The system will:
Validate all your inputs.
Update the campaign record via the API.
Upload the cover image (or replace the existing one).
Navigate you back to the previous page.
You will see a green “Update success!” notification at the bottom of the screen.
What Happens Behind the Scenes
You click "Save Changes"
|
v
Form validates all fields (Yup schema)
|
v
API call: CampaignTypesService.edit({ id, body: formData })
|
v
Campaign record is updated on the server
|
v
API call: CampaignTypesService.addCoverImage({ id, files: [image] })
|
v
Cover image is uploaded / replaced
|
v
Success notification "Update success!" appears
|
v
You are navigated back to the previous page
Troubleshooting
“I filled everything in but the Save Changes button does not work”
Make sure all required fields have values. The form will not submit if anything is missing.
Look for small red error messages below the fields — they tell you exactly what needs fixing.
Check that the Description field is not empty. It uses a rich-text editor and may look filled but actually be blank.
Ensure a Contract and Welcome email are selected — the dropdowns default to a placeholder and must be changed.
“I cannot find the contract I need in the dropdown”
Contracts are loaded when the page opens. If the list is empty or missing your contract, try refreshing the page.
Make sure the contract has been created in the Contracts section first. You cannot select a contract that does not exist yet.
“The cover image did not upload”
The image must be a supported format (JPEG, PNG, or GIF).
The file must not exceed the maximum allowed size.
If the campaign was updated but the image failed, reload the edit page and try uploading the cover image again.
Make sure your internet connection is stable — large images take longer to upload.
“I do not see the Welcome email dropdown options”
Only email templates marked as Welcome Email type appear in this dropdown.
If the list is empty, go to the Email Templates section and create a template of type “Welcome Email” first.
Try refreshing the page — the templates load when the page opens.
“The ‘Valid to’ date shows an error”
The “Can be purchased until” date must be later than the “Can be purchased from” date.
Make sure you have not accidentally set them to the same day or reversed them.
Clear the “Can be purchased until” field if you want the campaign to have no end date.
“I do not see the ‘Limit training hours’ toggle”
This feature is only available on Premium or Platinum subscription plans.
If your chain is on a lower plan, this toggle will not appear. Contact your administrator about upgrading if you need this feature.
“I got an error after clicking Save Changes”
A red error message will appear. Read it carefully — it usually explains what went wrong.
Common causes: a server timeout, a required field that was missed, or a network issue.
Try again after a moment. If the error persists, contact support with the exact error message.
“I changed the price but it did not update”
When editing an existing campaign, the Regular Price and VAT rate fields are not shown on this screen. Prices for existing campaigns are managed through the campaign’s price list, not through the edit form.
Navigate to the campaign’s detail page and look for the price management section there.
“The ‘Membership expires on’ field disappeared”
The expiration fields are mutually exclusive. If you enter a value in Duration in months or Duration in days, the fixed date field hides automatically.
To use a fixed expiration date instead, clear the duration fields first, then the date picker will reappear.
“I cannot toggle the renewal anchor setting”
If this toggle is greyed out and stuck on “on”, it means your gym has already been configured to anchor all renewals to the first of the month at the gym level.
This gym-level setting overrides the per-campaign setting. To change it, go to your Gym settings and update the membership renewal date anchor there.
