Club OS writes and provides technology solutions for the fitness industry. Not only does its software streamline club operation, but its sales and marketing tools will increase retention while driving revenue toward the club simultaneously. Still, despite its easy-to-use interface, its complex features might prove daunting to users who have yet to undergo proper Club OS training. Here is a quick glimpse at Club OS’ core features and how they apply toward daily operations.
Entering the System
The Club OS Experience begins when a Prospect enters a club and inputs their info into the Digital Guest Waiver (DGW). The data the DGW collects will vary depending on a club’s preference, often drawn from the previously administered guest intake form.
Typically, the fields will include First/Last Name, Address, Phone Number, and Email. Each DGW will also include that club’s Liability Waiver. At the moment that a Prospect’s profile is generated in Club OS, it is then also transferred to that club’s billing provider. (Note: Later, when selling a membership, look to this ABC profile to convert the Prospect to Member.)
The Follow-Up Schedules
Depending, first, on such factors as ‘how the lead was acquired’ (ex. Web Lead, Referral) and the outcome of their visit (ex. Active/Missed Guest), this lead will automatically filter into a corresponding status on the Membership Follow-Up Schedule.
The Membership Follow-Up Schedule exists to catalog leads while keeping communication flowing in a systematic effort to convert a Prospect into a Member. Follow-ups may be performed via call, email or text.
As you can see, each status can have up to ten stages. (All except Appt Booked -a feature explained below.) Each status, as seen on the left side of the page, indicates a specific “position” a lead may fall within its effort toward conversion. Across the top, are the potential stages one through ten.
If the first follow-up stage displays a ‘0’, then that lead will be contacted on the same day in which they first entered that new status. (In the case of a Lead, an ‘0’ would instruct that the Prospect be contacted on the same day as they entered Club OS.) Each subsequent stage’s number, then, indicates the wait (in days) before that Prospect is meant to be contacted again. If a number occupies the tenth stage, follow-up contact will repeat indefinitely upon every entered number of days. To calculate what total number of days a lead will be followed up with in any given status, simply add together each number in the row.
Appt Booked is the only membership follow-up status that uses alternate logic. There is one follow-up point. This time, the number displayed within the stage indicates how many days prior to the appointment the Prospect is scheduled to be contacted. Here, a ‘0’ signifies contact on the day of the appointment whereas a ‘1’ signifies contacting the day before.
When a membership agreement is sold, that Prospect then converts to Member status within Club OS. From here, they are transferred to a second PT Follow-Up Schedule. Much like the Membership Follow-Up Schedule, this table will now seek to sell PT to committed club Members. The logic between the two schedules are identical. (FC Booked runs just like Appt Booked.) If, ever, a club seeks to modify a schedule, this can be accomplished by contacting Club OS.
Syncing
When a club books a PT calendar event, or a membership sale occurs, Club OS will recognize the event and change the follow-up status of the corresponding individual. Changes to prospect profile data should be made in Club OS, which will update the data in the billing provider. Once an agreement is sold, Club OS will sync the latest profile data from the billing provider.
When Club OS syncs is controlled by two factors: Full Cron and Hourly Cron. The Full Cron is the event in which a club’s entire system, except for its Point of Sales transactions and its recurring services, syncs at once. (Only the past thirty days are synced in the case of Point of Sales transactions and recurring services.) Full Cron occurs once a day, every day, at 9pm local time. By contrast, the Hourly Cron syncs data from the last day, only. Also, Hourly Cron occurs at various times each day. By default, the Hourly Cron occurs at 12pm and 5pm (also local time).
However, by upgrading, a club’s Hourly Cron can occur every hour, on the hour, from 9AM until 8PM, with the Full Cron syncing at 9PM, as shown below.
Each club syncs at Full Cron as well as during their own designated Hourly Cron times. If uncertain about a club’s sync times, contact Club OS.
Translations
Finally, provided below is a raw representation of the table data that gets passed from ABC to Club OS and vice versa. If any assistance is needed in translating the data, feel free to reach out to Club OS’ support for clarification. Click each link to jump ahead to their corresponding table.
Translation to ABC Prospect • Translation from ABC Member • Translation from ABC Employee • Translation from ABC Member Service Agreement • Translation from ABC Invoice • Translation from ABC Check In
A. Translation to ABC Prospect
Club OS Field |
ABC Field |
Notes |
firstName |
firstName |
|
lastName |
lastName |
|
gender |
gender |
|
dateOfBirth |
dateOfBirth |
|
mobilePhone |
cellPhone |
|
mobilePhone |
primaryPhone |
|
workPhone |
workPhone |
|
|
|
|
address1 |
street |
|
city |
city |
|
state |
state |
|
zip |
zip |
|
notes |
miscellaneous1 |
if notes are greater than 50 characters, first 50 will be stored in miscellaneous1 and the rest in miscellaneous2 |
salespersonSystemId |
salesPerson |
salespersonSystemId is the ABC GUID of the Membership Follow-Up Person |
employer |
employer |
|
barcode |
barCode |
|
guestPassStart |
issueDate |
|
guestPassStart |
beginDate |
|
guestPassEnd |
expirationDate |
B. Translation from ABC Member
Club OS Field |
ABC Field |
Notes |
clubSystemId |
homeClub |
|
firstName |
Personal.firstName |
|
middleName |
Personal.middleInitial |
|
lastName |
Personal.lastName |
|
gender |
Personal.gender |
|
dateOfBirth |
Personal.BirthDate |
|
occupation |
Personal.occupation |
|
|
Contact.email |
|
mobilePhone |
Contact.cellPhone |
|
homePhone |
Contact.homePhone |
|
workPhone |
Contact.workPhone |
|
addressLine1 |
Contact.address |
|
city |
Contact.city |
|
state |
Contact.state |
|
zip |
Contact.zip |
|
marketingSource |
Membership.campaign |
|
group |
group |
|
barcode |
barcode |
|
createdDateTime |
Agreement.Dates.contract if not empty Membership.createTimestamp otherwise |
|
joinDate |
Agreement.Dates.sign if not empty Club OS createdDateTime otherwise |
|
isProspect |
Agreement.number |
If Agreement.number contains "PROSP" |
Membership.systemId |
Agreement.number |
|
Membership.agreementName |
Membership.type |
|
Membership.agreementType |
Membership.type |
|
Membership.isActive |
Status.active |
|
Membership.isPrimaryAgreement |
Agreement.primaryMember |
|
Membership.isOnlineSignup |
Agreement.stationName |
If Agreement.stationName is "Home" |
Membership.entrySource |
Agreement.EntrySource.name |
|
Membership.recurringPayment |
Agreement.Payment.dues |
|
Membership.downPayment |
Agreement.Payment.downPayment |
|
Membership.pastDueBalance |
Agreement.Payment.pastDueBalance |
|
Membership.startDate |
Agreement.Dates.effective |
|
Membership.endDate |
Agreement.Dates.expiration |
|
Membership.saleDate |
Agreement.Dates.lastRenewal if not empty Agreement.Dates.lastRewrite otherwise if not empty Agreement.Dates.sign otherwise |
|
Membership.isRenewal |
Agreement.Dates.lastRenewal if not empty |
|
Membership.isRewrite |
Agreement.Dates.lastRewrite if not empty |
|
Membership.isAutoRenew |
true if Agreement.Dates.expiration is empty and Agreement.Payment.dues is not empty and is greater than zero true if Agreement.renewalType is not empty and contains "Auto" |
|
Membership.billingStatus |
Agreement.Queue.name if not empty |
|
Membership.billingStatusDate |
Agreement.Queue.entryDate if Agreement.Queue.Name is not empty |
|
Membership.alert |
Status.alert if not empty |
|
Membership.alertDate |
Status.alertDate if Status.alert is not empty |
|
Membership.alertReason |
Status.alertReason if Status.alert is not empty |
|
C. Translation from ABC Employee
Club OS Field |
ABC Field |
Notes |
firstName |
Personal.firstName |
|
middleName |
Personal.middleInitial |
|
lastName |
Personal.lastName |
|
dateOfBirth |
birthDate |
|
|
Contact.email |
|
mobilePhone |
Contact.cellPhone |
|
homePhone |
Contact.homePhone |
|
workPhone |
Contact.workPhone |
|
addressLine1 |
Contact.address |
|
city |
city |
|
state |
state |
|
zip |
zip |
|
barcode |
barcode |
|
D. Translation from ABC Member Service Agreement
Club OS Field |
ABC Field |
Notes |
salesperson |
salesperson |
|
serviceEmployee |
serviceEmployee |
|
member |
member |
|
unitQty |
totalPeriods |
|
unitPrice |
invoiceTotal |
|
description |
serviceItem and recurringTypeDesc |
|
agreementName |
serviceItem |
|
isAutoRenew |
autoRenew |
|
isActive |
active |
|
repeatType |
Club OS RepeatType.MONTHLY |
|
saleDate |
Dates.sale |
|
startDate |
Dates.firstBilling |
|
endDate |
Dates.finalBilling |
E. Translation from ABC Invoice
Club OS Field |
ABC Field |
Notes |
systemId |
id |
|
receiptNumber |
receiptNumber |
|
member |
member |
|
salesperson |
employee |
|
IntInvoiceItem.saleDate |
timesstamp |
|
IntInvoiceItem.systemId |
PosTransactionItem.id |
|
IntInvoiceItem.description |
PosTransactionItem.name |
|
IntInvoiceItem.upc |
PosTransactionItem.upc |
|
IntInvoiceItem.unitQty |
PosTransactionItem.quantity |
|
IntInvoiceItem.unitPrice |
PosTransactionItem.unitPrice |
|
IntInvoiceItem.packageQty |
PosTransactionItem.packageQuantity |
|
IntInvoiceItem.subTotal |
PosTransactionItem.subtotal |
|
IntInvoiceItem.tax |
PosTransactionItem.tax |
|
IntInvoiceItem.profitCenter |
PosTransactionItem.profitCenter |
|
IntInvoiceItem.isPaid |
PosTransactionItem.getSale |
|
IntInvoiceItem.systemMemberServiceAgreementId |
PosTransactionItem.RecurringService.id |
F. Translation from ABC CheckIn
Club OS Field |
ABC Field |
Notes |
systemClubId |
clubNumber |
|
checkInTimestamp |
checkInTimestamp |