Introduction
This is an overview of the Class Types in Perfect Gym Manager. You will find it useful when learning from scratch about the Classes in the PGM system.
- This article presents a detailed description of the Class Types feature.
- This article will be helpful to PG Champion, Club Manager, and Club Owner.
Before you start
You must have the following system permissions:
View:
SystemManTimeTablesTimeTablesViewAdd:
SystemManTimeTablesTimeTablesAddEdit:
SystemManTimeTablesTimeTablesEditDelete:
SystemManTimeTablesTimeTablesDelete
Prerequisites: Ensure that Class Categories are already configured in the system.
Optional: Activity Categories, Activity Levels, Age Limits, and Penalty Products are already configured in the system if you intend to use them.
Feature description
To access class types, go to PGM->Classes->Class types.
This will display a list of classes currently set on the system.
Main class list view
The following features are available on the main Classes page to help you manage and locate specific records:
Add Class: A primary button located in the header used to open the creation modal for a new class.
Name Column Filter: A text input field located within the Name column header. Typing here filters the list to show classes containing specific text in their name.
Description Column Filter: A text input field located within the Description column header used to search for keywords within class descriptions.
Category Column Filter: A dropdown menu in the Category column header that allows you to filter the grid to show only classes belonging to a specific category (e.g., only "Yoga" classes).
Sorting Headers: Clicking on the Name, Description, or Category column headers toggles the sort order between ascending and descending.
Action Menu (Drops Icon): A dropdown button located on the far right of each row. Hovering or clicking this reveals options to Edit or Delete the specific class.
Class Add/Edit Modal
The following settings are available within the Class Add/Edit modal:
Main section
Photo: Allows you to upload a visual representation for the class. The system recommends a resolution of 320x150 pixels. Supported actions include uploading a new photo, overwriting an existing one, or deleting the current photo.
Name: The display name of the class. This is a required field.
Category: The class category the class belongs to (e.g., Aerobics, Yoga). This is a required field.
Description: A text area to provide details about the class content and structure.
Available in clubs: A multi-select list to determine which specific club locations will offer this class.
Pick color: A color picker to assign a visual identifier to the class, which helps distinguish it on the calendar.
Availability in applications: Determines which external applications (System Sources) can display and book this class.
Class type: Tags used to categorize the class specifically for mobile app filtering.
Class target: A numeric value defining the target capacity or goal for the class.
Activity Category: Selects the broader physical activity type (e.g., Martial Arts).
Level: Specific user level associated with the Activity Category (e.g., Beginner, Advanced). This field is disabled until an Activity Category is selected.
Additional settings
Minimal % of booked: The minimum percentage of capacity required for the class to start.
Minimal number of booked: The specific minimum number of attendees required for the class to start.
Penalty Product: Selects a product associated with penalty-free booking scenarios.
Late cancellation charge type: Defines the policy for late cancellations. Options include No additional charge, Product (charges a specific fee product), or Contract (charges based on contract terms, if enabled in settings).
Late cancellation fee product: If the charge type is "Product," this field selects the specific product used to charge the fee.
Late cancellation fee: If the charge type is "Contract," this numeric field defines the fee amount.
Blocking class bookings: A checkbox labeled "Treat late cancellation as missed class." If checked, a late cancel counts as a no-show, which may trigger booking restrictions.
Amount of minutes to be allowed without termination fee: Defines the cut-off time (in minutes) before the class starts during which a user can cancel without a penalty.
Age limit: Sets a restriction on the age of members allowed to book the class.
Custom max time to book in advance: Overrides the system default to set a specific booking window (in minutes) for this class type.
Custom Atributes
Custom Attributes: Dynamic fields (Boolean, Date, List, Text, etc.) that may appear based on your system configuration.
Translations
Translations: A grid allowing you to enter the Name and Description of the class in different supported languages. These translations will appear on the client portal and is great for marketing purposes.
Configuration Settings
Search Class
Navigate to the Classes page to view the main grid.
To find a specific class, type text into the filter fields located in the column headers for Name or Description.
To filter by category, click the filter dropdown in the Category column header and select the desired category.
To sort the data, click on the column headers (e.g., Name, Category) to toggle ascending or descending order.
Adding a class
Navigate to the Classes List: Open the Classes module to view the grid of existing classes.
Initiate Add Class: Click the Add Class button to create a new entry.
Upload Photo (Optional): Click the file chooser to select an image. Click Upload to save it temporarily. If a photo exists, you can choose to Overwrite it or Delete it.
Enter Basic Information: Fill in the Name and select a Category. These are mandatory. Add a Description if necessary.
Configure Availability:
Select the Clubs where this class is available.
Choose a Color for the timetable view.
Select applicable Applications and Class Types for mobile visibility.
Set Activity Levels (Optional): Select an Activity Category and then a specific Level if the class requires skill segmentation.
Define Booking Thresholds: Under "Additional settings," enter the Minimal % or Minimal number of people required for the class to proceed.
Configure Cancellation Policy:
Select a Late cancellation charge type.
If you select Product, choose the Late cancellation fee product from the dropdown.
If you select Contract (and it is available), enter the Late cancellation fee amount.
Check Blocking class bookings if late cancellations should count towards blocking rules.
Enter the Amount of minutes to be allowed without termination fee to define the cancellation deadline.
Set Restrictions: Select an Age limit if applicable and define a Custom max time to book in advance if you wish to override the default.
Fill Custom Attributes: Complete any custom fields (e.g., Dates, Yes/No toggles) displayed in the dynamic sections.
Add Translations: If your system supports multiple languages, enter the translated Name and Description in the Translations grid.
Save: Click the Save button to commit your changes.
Edit Class
Locate the specific class row in the grid.
Click the dropdown icon (drops) in the action column on the right side of the row.
Select Edit from the action menu.
Update the fields as necessary in the Edit class modal.
To change the photo, you can click Overwrite to replace the existing image or Delete to remove it.
Click the Save button to apply your changes.
Note: Adding a penalty or late cancellation fee to an existing class may update all classes on the timetable with those fees. Create a new class instead and replace the old one on the timetable.
Delete Class
Locate the class row you wish to remove in the grid.
Click the dropdown icon (drops) in the action column.
Select Delete from the action menu.
A confirmation dialog will appear: "Are you sure to delete class: {Name}?".
Click the confirmation button to proceed.
Verify the success notification "Class successfully deleted" appears.
Hints
Success Notifications: After saving or deleting, a notification will appear confirming the action (e.g., "Class was successfully saved" or "Class successfully deleted").
Photo Resolution: For best results, use a class photo with a resolution of 320x150 pixels.
Photo Processing: Photos are uploaded to a temporary location first. They are only permanently associated with the class record when you click the final Save button.
Conditional Fields: Some fields only appear based on other selections. For example, the "Level" dropdown is only enabled after selecting an "Activity Category".
Mobile App Categorization: The Class type field is specifically used to categorize classes in the mobile app.
Updating color: Changing a color on Class Types will not automatically update all classes in the timetable. Please contract Support if you wish to update the colours on all existing classes.
Deletion: You can delete a class from the main grid using the trash icon. The system will ask for confirmation ("Are you sure to delete class: {0}?") before proceeding. A success message "Class successfully deleted" will confirm the action.
Contract Charge Visibility: The "Contract" option for late cancellation charges is only visible if the system settings
IsContractInDateActiveRequiredis true andIsNoContractAllowedis false.Validation: If required fields like Name or Category are missing, the form will not submit, and validation errors will be displayed.
Courses: When setting up class types for courses, please ensure the following fields match between PGM -> Classes -> Class Types and PGM -> Classes -> Groups
- Class Categories
- Activity Categories
- Activity Level
- Age Limits (if used)
- Reporting: The class summary report located in PGM -> Reports provides detailed data on how classes are performing:
- Class attendance
- Cancelled classes
- Users that miss classes
- Standby lists
- Class targets
- Instructor Performance
Minutes to Hours/Days conversion
| Days | Hours | Minutes |
| 1 | 60 | |
| 2 | 120 | |
| 4 | 240 | |
| 8 | 480 | |
| 0.5 | 12 | 720 |
| 1 | 24 | 1440 |
| 1.5 | 36 | 2160 |
| 2 | 48 | 2880 |
Troubleshooting
"Add Class" button is missing
If the Add Class button does not appear above the grid, ensure your user account has the
SystemManager.TimeTablesModule.TimeTables.Addpermission.If you cannot edit an existing class, verify you have the
SystemManager.TimeTablesModule.TimeTables.Editpermission.
"Contract" option is missing from Late Cancellation Charge Type
The Contract option is dynamically hidden based on specific system booking settings.
This option only appears if the setting
IsContractInDateActiveRequiredis enabled andIsNoContractAllowedis disabled in the system configuration.
Activity Level dropdown is disabled (greyed out)
The Level dropdown depends on the Activity Category field.
You must select an Activity Category first; once selected, the relevant levels for that category will become available for selection.
Class Photo is not saving
Clicking the Upload button only saves the file to a temporary location.
To permanently associate the photo with the class, you must click the final Save button at the bottom of the modal window to submit the form.
Late Cancellation Product field is required but hidden
The Late cancellation fee product field is only visible and required when the Late cancellation charge type is set to "Product".
Ensure you have selected the correct charge type if you are attempting to link a fee product.
Class not appearing in the Mobile App
Verify the Availability in applications field includes the correct mobile application sources.
Ensure the Class type is selected, as this is used to categorize classes specifically for the mobile app.
Validation Errors prevent saving
If you click Save and nothing happens, check for red validation messages.
Name and Category are strictly required fields and cannot be left blank.
Use Case Examples
Example 1: Creating a Standard General Access Class
Goal: To set up a standard "BodyPump" class available at the Main Street branch with no cancellation fees.
Steps/Settings:
Enter "BodyPump" in the Name field.
Select "Aerobics" in the Category dropdown.
Select "Main Street" in the Available in clubs list.
Set Late cancellation charge type to "No additional charge".
Click Save.
Example 2: Enforcing Penalties for Prime-Time Slots
Goal: To configure a "Peak Hour HIIT" class that charges a $15 fee if cancelled less than 2 hours before the start time.
Steps/Settings:
Set Late cancellation charge type to "Product".
In Late cancellation fee product, select the pre-configured "Late Cancel Fee $15" product.
Set Amount of minutes to be allowed without termination fee to "120".
Check Blocking class bookings (Treat late cancellation as missed class) to count this against their booking privileges.
Example 3: Setting Up a Minimum Attendance Requirement
Goal: To ensure a "Group Cycling" class only runs if at least 5 people book, avoiding the cost of an instructor for an empty room.
Steps/Settings:
Enter "Group Cycling" in Name.
In the Additional settings section, find Minimal number of booked and enter "5".
Alternatively, set Minimal % of booked to "20" if you prefer a percentage based on capacity.
Example 4: Creating a Senior-Specific Program
Goal: To create a "Gentle Yoga" class restricted strictly to members aged 60 and above.
Steps/Settings:
Enter "Gentle Yoga" in Name.
In the Age limit field, select the "Seniors (60+)" age limit configuration.
Add a Description stating "ID may be required at check-in".
Example 5: Configuring an Advanced Skill Workshop
Goal: To categorize a class so it tracks against a user's "Expert" martial arts progression.
Steps/Settings:
Select "Martial Arts" in the Activity Category dropdown.
Once the category is selected, choose "Black Belt" in the Level dropdown.
Note: This ensures the class attendance counts towards the specific activity level in reporting.
Example 6: Mobile App Exclusive Launch
Goal: To promote a new "Zumba Gold" class that is only bookable via the Mobile App to encourage app downloads.
Steps/Settings:
In the Availability in applications field, select "Mobile App" and ensure "Client Portal" or "Kiosk" are unselected.
In Class type, select tags like "New" or "Featured" to highlight the class within the app interface.
Example 7: Contract-Based Fee Enforcement
Goal: To charge a fee defined in the member's contract (rather than a generic product) for late cancellations.
Steps/Settings:
Prerequisite: Ensure the system setting
IsContractInDateActiveRequiredis enabled andIsNoContractAllowedis disabled.Select Contract under Late cancellation charge type.
Enter the specific fee amount (e.g., "10.00") in the Late cancellation fee field.
Example 8: Multi-Site & Multi-Language Configuration
Goal: To roll out a "Global Yoga" class to clubs in English and Spanish speaking regions simultaneously.
Steps/Settings:
In Available in clubs, select all relevant international locations.
Scroll to the Translations grid.
For the "Spanish" row, enter "Yoga Global" in the Class name column and the Spanish description in the Class description column.
Example 9: Restricting Advance Booking Windows
Goal: To prevent users from booking a popular "Friday Night Social" class more than 3 days (4320 minutes) in advance, overriding the system default of 7 days.
Steps/Settings:
Locate the Custom max time to book in advance (minutes) field.
Enter "4320".
The placeholder text usually shows the system default for reference.
Example 10: Performance Target Tracking
Goal: To set a specific attendance target for a "Marathon Prep" class to assist with KPI reporting.
Steps/Settings:
Enter "Marathon Prep" in Name.
In the Class target field, enter the goal number (e.g., "25") representing the ideal participant count for this class.
Select a distinct Color (e.g., Red) to make it stand out on the internal timetable as a high-priority class.
Example 11: Waiving Penalties for Specific Products
Goal: To create a "VIP PT Session" that usually has a cancellation fee, but allows booking via a specific "VIP Pass" that is exempt from penalties.
Steps/Settings:
Configure the standard Late cancellation charge type and fee.
In the Penalty Product (Penalty Free Product) dropdown, select the "VIP Pass" product.
This ensures users booking with this specific product are not charged the fee even if they cancel late.