What This Screen Does
This is the central settings page for your entire gym chain. Think of it as the control panel for your business — everything from your brand name and logo, to how classes are booked, how fines work, which third-party tools you use, and how you communicate with members. Changes you make here apply across all locations in your chain.
How to Get There
Open the dashboard.
In the left-hand menu, click Settings.
You are now on the Edit Chain Settings screen.
Step-by-Step Guide
The settings screen is divided into twelve sections. You can scroll through all of them and make changes to any section before saving at the bottom.
1. Brand & Identity
This section defines how your gym chain looks and feels to members across the mobile app, booking pages, and public-facing screens.
Field | Required | What to Enter |
Chain Name | Yes | The official name of your gym chain or business. |
VAT Number | — | Your business VAT/Tax identification number. This field is read-only and cannot be changed here. |
Subscription Plan | — | Your current subscription tier (Standard, Premium, or Platinum). This field is read-only. |
Logo | Yes | Upload your chain logo. Click the upload area to pick an image. Minimum size: 240×240 pixels. The image will be cropped to a square. |
Primary Brand Color | Yes | Your main brand color in hex format (e.g. |
Secondary Brand Color | Yes | Your accent/highlight color in hex format. |
Check-in Message | No | A custom message shown to members when they check in to a class. Leave empty for no message. |
Apple App Store Link | No | Direct link to your custom iOS app on the App Store. Use the copy button to copy the current link. |
Google Play Store Link | No | Direct link to your custom Android app on Google Play. Use the copy button to copy the current link. |
Sales Page URL | — | The public URL where customers can view and purchase memberships. Read-only. Use the copy button to share it. |
Infoscreen Page URL | — | The public URL for your in-gym display screen showing schedules and announcements. Read-only. Use the copy button to share it. |
Calendar Integration Code | — | HTML code you can embed on your website to show an interactive class calendar. Read-only. Use the copy button to grab the code. |
2. Member Account Requirements
Control what members must provide when they create an account.
Toggle | Required | What It Does |
Require digital signature on contracts | No | Members must digitally sign contracts before finalizing membership agreements. |
Require payment method on signup | No | Members must add a payment method (credit card, etc.) when creating their account. |
Require profile photo on signup | No | Members must upload a profile photo when creating their account. |
Require identity validation | No | Members must complete identity validation during signup. When enabled, additional fields appear (see below). |
If Require identity validation is turned on, additional settings appear:
Field | Required | What to Enter |
Force identity validation | No | When turned on, existing members who have not yet verified their account are forced to do so. |
Identity validation fee | No | The fee charged for the identity validation service (0–1000). |
Identity validation from age | No | Minimum age at which identity validation is required. |
Identity validation until age | No | Maximum age at which identity validation is required. |
3. Booking Rules
Set limits on how members book and view classes.
Field | Required | What to Enter |
Maximum active bookings per member | No | The maximum number of future class bookings a member can hold at once. Leave empty for unlimited. |
Maximum waitlist spots per day | No | The maximum number of waitlist positions a member can hold in a single day. Leave empty for unlimited. |
Calendar visibility (days) | No | How many days ahead members can see in the class calendar. Leave empty for unlimited. |
Advance booking window (days) | No | How many days in advance members can book a class. Leave empty for unlimited. |
Toggle | Required | What It Does |
Limit daily class participation | No | When turned on, a new field appears to set the maximum number of classes a member can attend per day. |
Maximum classes per day | No | Only appears when the toggle above is on. Enter the daily class limit. |
Show all classes in app | No | When activated, all classes are shown in the app regardless of whether they are marked as closed. |
Restrict consecutive class bookings | No | Limits which classes can be booked back-to-back as extensions of each other. |
Invalidate waiting list | No | Invalidates the waiting list after the opt-out deadline. Sign-ups become first-come, first-served when a seat opens up. |
4. Check-in & Attendance Policies
Control when and how members can check in to classes.
Toggle | Required | What It Does |
Restrict early check-in | No | Prevents members from checking in too early. When enabled, set the earliest check-in time below. |
Mark late check-ins | No | Tracks and flags members who check in late. When enabled, set the late interval below. |
Allow check-in after class starts | No | Lets members check in even after a class has begun. When enabled, set the grace period below. |
Auto-cancel unconfirmed bookings | No | Automatically cancels bookings if members do not check in within a specified time. When enabled, set the interval below. |
Auto-enrolled members marked as on-time | No | Members who were auto-enrolled into closed/private classes are automatically marked as on-time. |
When each toggle above is turned on, a time picker appears below it. Enter the hours and minutes for the relevant interval (e.g. 01:00 means 1 hour).
5. Cancellation Policies
Configure deadlines and automatic class cancellation rules.
Toggle | Required | What It Does |
Set cancellation deadline | No | Defines how close to class time members can still cancel. When enabled, two time pickers appear. |
Enable automatic class cancellation | No | Automatically cancels classes that do not meet minimum registration requirements. When enabled, additional fields appear. |
Auto-delete instructor shifts when cancelling classes | No | Automatically removes instructor shifts when a class is cancelled. |
When Set cancellation deadline is enabled:
Field | Required | What to Enter |
Interval where opt out is considered too late | No | Time before class start after which cancelling counts as “late” (hours:minutes). |
When is it no longer possible to opt out | No | The hard cutoff — after this point, members cannot cancel at all (hours:minutes). |
When Enable automatic class cancellation is enabled:
Field | Required | What to Enter |
Minimum number of participants per class | No | The minimum registrations needed to keep a class from being auto-cancelled. Must be at least 1. |
Time before automatic cancellation check | No | How far before class start the system checks registrations (hours:minutes). |
6. Fines & Penalties
Set up financial penalties for late check-ins, no-shows, and late cancellations.
Toggle | Required | What It Does |
Fine for late check-in | No | Charges a fine when a member checks in late. When enabled, enter the amount below. |
Fine for no-show | No | Charges a fine when a member books but never attends. When enabled, enter the amount below. |
Fine for late cancellation | No | Charges a fine when a member cancels too close to class time. When enabled, enter the amount below. |
Deduct fines from punch cards | No | Allows fines to be paid by deducting clips from a member’s punch card. |
When each fine toggle is enabled, a text field appears where you enter the fine amount. The amount is shown in your default currency.
7. Fees, Payments & Financial
Configure your currency, bank details, and various fees.
Field | Required | What to Enter |
Default currency | Yes | The primary currency for all transactions and financial reporting. Pick from the dropdown (e.g. DKK, EUR, USD). |
One-time registration fee | No | A fee charged when a new member joins. Set to 0 for no fee. |
Membership freeze fee | No | A fee charged when a member pauses their membership. Set to 0 for no fee. |
Bank account number | No | Your business bank account number (format: XXXX-XXXXXX). |
Bank account IBAN | No | International Bank Account Number for international transactions. |
Bank account SWIFT/BIC | No | SWIFT/BIC code for international wire transfers. |
Membership renewal offset (days) | No | Number of days (0–5) before the renewal date to charge recurring memberships. |
Default tax rate | No | Select the default tax rate applied to transactions. |
Toggle | Required | What It Does |
Enable payment processing | No | Allows members to make payments through the system. |
Enable member referral program | No | Rewards members with a bonus for referring new members. When enabled, enter the referral bonus amount. |
Charge payment processing fee | No | Adds an administration fee to invoices to cover processing costs. When enabled, enter the fee amount (excl. VAT). |
8. Purchase Options
Control which products members can buy online through your sales page or app.
Toggle | Required | What It Does |
Allow contingent purchases | No | Members can purchase time-based contingent packages online. |
Allow campaign purchases | No | Members can purchase promotional campaign offers online. |
Allow personal training purchases | No | Members can purchase personal training sessions and packages online. |
Allow drop-in purchases | No | Members can purchase single-class drop-in passes online. |
Allow punch card purchases | No | Members can purchase multi-class punch cards online. |
9. Communication Settings
Configure how your gym communicates with members through email, SMS, and in-app messaging.
Field | Required | What to Enter |
No-reply email address | Yes | The sender address for all automated system emails (e.g. confirmations, receipts). |
Mail provider domain | No | Custom domain for your email provider. Only available on the Platinum plan. |
Mail provider API key | No | API key for your custom email provider. Only available on the Platinum plan. |
Email for retention issues | No | Select an email template to send when retention concerns arise. Pick from your existing templates. |
Confirmation email to candidate | No | Email sent to the referred person during the referral process. Premium/Platinum only. |
Confirmation email to referrer | No | Email sent to the referring member during the referral process. Premium/Platinum only. |
Confirmation email for task booking | No | Email sent when a task (personal training, consultation, etc.) is booked. |
General guest welcome email | No | Email sent to guests when they are added to the system. |
Toggle | Required | What It Does |
Enable welcome email for trial lesson | No | Sends a welcome email to guests who book a trial lesson. When enabled, select the email template below. |
Enable follow-up emails on trial lessons | No | Sends a follow-up email after a guest attends a trial lesson. When enabled, select the email template below. |
Enable fine notifications | No | Sends notifications to members when fines are issued. |
Enable in-app chat | No | Allows members and staff to communicate via the mobile app chat. |
Send SMS for class cancellations | No | Sends SMS messages to registered members when a class is cancelled. |
Send email receipts for payments | No | Automatically emails payment receipts after successful transactions. |
10. Member Engagement Features
Control features that enhance the member experience.
Toggle | Required | What It Does |
Disable leaderboard | No | Hides the member performance leaderboard from the mobile app. |
Enable member feedback | No | Allows members to submit feedback and ratings for classes. |
Enable QR code check-in | No | Allows members to check in to classes by scanning a QR code. |
Enable remote door unlock | No | Allows members to unlock gym doors remotely via the mobile app. |
Show employee phone numbers | No | Displays staff phone numbers in the mobile app for member contact. |
11. Third-Party Integrations
Connect your system with external platforms. Some integrations are only available on Premium or Platinum subscription tiers — those fields will be disabled on the Standard plan.
Field | Required | What to Enter |
OneSignal App ID | No | Your OneSignal application ID for push notifications. |
OneSignal API Key | No | API key for authenticating with OneSignal. |
Program Access Key | No | Access key for external workout program integrations. Premium/Platinum only. |
Payroll system | No | Select your payroll integration: None, Danløn, or Generic. Premium/Platinum only. |
Accounting system | No | Select your accounting software: None, Dinero, Billy, or E-conomics. Premium/Platinum only. |
Workout platform | No | Select your workout programming platform: None, SugarWOD, or IceFit. Premium/Platinum only. |
API key for workout platform | No | Only appears when a workout platform is selected. Enter the platform’s API key. |
Analytics platform | No | Select your analytics tool (e.g. Facebook). Premium/Platinum only. |
Analytics tracking code | No | Only appears when an analytics platform is selected. Enter the tracking code. |
Google Tag Manager | No | Enter your GTM container ID in format GTM-XXXXXXXX. Premium/Platinum only. |
Access control system | No | Select your door lock system: None, Danalock, JustFace, Exivo, or OutScale. Premium/Platinum only. |
Payment provider | — | Shows your current payment provider (Stripe or Reepay). Read-only. |
When an access control system other than Danalock is selected, additional fields appear:
Field | Required | What to Enter |
Access system endpoint | No | The API endpoint URL for your access control system. |
Access system username | No | Username for authenticating with the access system. |
Access system password | No | Password for authenticating with the access system. |
Access system group ID | No | The group/zone ID within your access control system. |
If Danalock is selected, a setup dialog will appear to guide you through the Danalock configuration.
If Stripe is your payment provider, a Setup Stripe Connect button will appear to start the Stripe onboarding process.
12. Website Integration
Embed booking widgets on your website and manage API keys for external integrations.
The widget integration code is displayed as a read-only code block. Copy it and paste it into your website’s HTML to embed the booking widget.
Below the code you will see a list of your existing API keys, each tied to a domain name.
Use the copy icon to copy an API key.
Use the delete icon to remove an API key.
Click the Add Domain button to generate a new API key for a specific domain.
Important: When a new API key is created, it is shown only once. Copy it immediately — you will not be able to see it again.
13. Save Changes
Scroll to the bottom of the page.
Click the Save Changes button.
The system will:
Validate all fields across every section.
Send the updated settings to the server.
Show a green “Update success!” notification.
You stay on the same page after saving.
What Happens Behind the Scenes
You click "Save Changes"
|
v
Form validates all fields (Yup schema)
|
v
Time fields are formatted to HH:mm:ss
|
v
API call: ChainSettingsService.update({ id, body: formData })
|
v
Settings record is updated on the server
|
v
(If logo was changed)
Logo is uploaded via ChainsService.uploadLogo({ id, file })
|
v
Success notification "Update success!" appears
|
v
You remain on the settings page with the saved values
Troubleshooting
“I clicked Save Changes but nothing happens”
Scroll through all sections and look for red error messages below fields.
The most common culprits are Chain Name, Primary Brand Color, Secondary Brand Color, No-reply Email Address, Default Currency, and Time Zone — these are all required.
Make sure color values are valid hex codes (e.g.
#FF5500).
“Some integration fields are greyed out”
Certain integrations (payroll, accounting, workout, analytics, access control) are only available on the Premium or Platinum subscription plan.
If you are on the Standard plan, those dropdowns will be disabled.
Contact your account manager to upgrade your subscription.
“I set up a fine but members are not being charged”
Make sure the corresponding fine toggle is turned on (e.g. “Fine for late check-in”).
Make sure you also have the related check-in or cancellation policy enabled. For example, “Fine for late check-in” only works if “Mark late check-ins” is also enabled with a time interval set.
Verify that Enable payment processing is turned on in the Fees, Payments & Financial section.
“My logo did not upload”
The image must be at least 240×240 pixels.
It must not exceed the maximum file size allowed by the system.
Supported formats are JPEG, PNG, and GIF.
If the settings saved but the logo failed, try uploading again and clicking Save Changes.
“I cannot see any email templates in the dropdowns”
Email templates are loaded when the page opens. If the dropdowns say “No email templates found,” you need to create email templates first.
Go to the Email Templates section in the dashboard and create the templates you need (Guest, Referral, Task Confirmation, etc.).
Then return to this settings page — the templates will appear in the relevant dropdowns.
“I selected Danalock but nothing happened”
When you select Danalock as the access control system, a setup dialog should appear.
If the dialog does not open, try refreshing the page and selecting Danalock again.
Make sure you are on a Premium or Platinum subscription plan.
“My API key disappeared after I navigated away”
API keys are shown in full only once — immediately after creation.
After that, the key is masked with asterisks for security.
If you lost the key, delete it and create a new one using the Add Domain button.
“The Google Tag Manager field rejects my code”
The GTM container ID must be in the format
GTM-XXXXXXXX(maximum 12 characters).Make sure you are entering the container ID, not a tracking code or measurement ID from Google Analytics.
“Time picker fields are not accepting my input”
Time fields use a 24-hour format (
HH:mm). Make sure you are not entering AM/PM values.The time pickers represent durations (e.g.
01:30means 1 hour and 30 minutes before/after class), not clock times.
“I got an error after clicking Save Changes”
A red error notification will appear. Read the message carefully — it usually indicates what went wrong.
Common causes: a required field left empty, a number field with invalid input, or a server timeout.
If the error persists, check your internet connection and try again. If it keeps happening, contact support with the error message.
