How can we help?

    Integration Workflows: Motionsoft (MoSo)

    Follow

    What is Motionsoft?

    Motionsoft is a club management and billing system. Club OS locations use Motionsoft as their membership management provider, primarily the billing and check-in services.

    Goal of the Integration

    Customers using Motionsoft as their billing provider can use Club OS for Lead Management and PT Sales, and Fitness Tracking. They intend to continue using Motionsoft for selling memberships, managing club access, and running reports related to that data.

    Charts and tables contained within this article will aid in both visualizing and comprehending the MotionSoft/Club OS integration process.

    Integration Workflow

     

    Explanation:

    MotionSoft syncs the following features to Club OS (MoSO > Club OS):

    • Employees
    • Members
      • Note: This data is delivered via a CSV file every 24 hours.
    • Agreements

    Meanwhile, Club OS syncs the following features to MotionSoft (Club OS > MoSo):

    • Prospects

    Features That Do Not Sync:

    1. From MoSo to Club OS:
        • Member Photos
        • Check-Ins
        • PT Orientations
        • Prospects
        • PT Services/Events
        • Product Information
        • Marketing Source

       2.  From Club OS to MoSo:
                •  Marketing Source

    Integration Details

    A. Members

    • Club OS pulls from Motionsoft at each sync time

    B. Agreements

    • Club OS pulls from Motionsoft at each sync time

    MoSo allows customization of values for certain fields, e.g. membership types, member status, and agreement status. Club OS needs to know to update it's logic that uses those values to determine if a user is a member/prospect and whether their membership is active.

    C. Employees

    • Club OS pulls from Motionsoft at each sync time. Only employees that have made a sale will be synced from MoSo. We do not do a general employee sync of all employees.

    D. Prospects

    • Club OS pushes to Motionsoft when a prospect is added or updated

    Sync Frequency

    Translations

    Lastly, presented below is a raw representation of the data that gets passed from Club OS to MoSo and vice versa. If any assistance is needed in translating this data, feel free to reach out to Club OS’ support for clarification. Click each link to jump ahead to its corresponding table.

    From MoSo:

    Member (w/out Agreement)Member (w/ Agreement)

    AgreementEmployee

     

    A. Translation from Motionsoft Member without Agreement

    This is used to update a member's personal or contact information if no new agreement is present

    Club OS Field

    Motionsoft Field

    Notes

    externalSystemId

    memberId

     

    clubSystemId

    homeClub

     

    barcode

    barcode

     

    firstName

    firstName

     

    lastName

    lastName

     

    gender

    gender

     

    dateOfBirth

    dateOfBirth

     

    occupation

    occupation

     

    isWebLead

    memberLeadSource

    isWebLead is true if memberLeadSource is "Online", "Internet", or "Web

    createdDatetime

    recordCreateDate

     

    joinDate

    recordCreateDate

     

    mobilePhone, homePhone, workPhone

     

    Motionsoft passes three phone numbers with types:

    If type is "Mobile" or "Cell", mobilePhone is set

    If type is "Home" or "Personal" homePhone is set

    (If homePhone is "1111111111" from Motionsoft it is not set in Club OS as this is a placeholder for prospects without phone numbers since homePhone is required in Motionsoft)

    Otherwise workPhone is set

    A member from Motionsoft can have any number or all phone types

    addressLine1

    address1

    Address type from Motionsoft must be "Home" or "Personal"

    addressLine2

    address2

    Address type from Motionsoft must be "Home" or "Personal"

    city

    city

    Address type from Motionsoft must be "Home" or "Personal"

    state

    stateCode

    Address type from Motionsoft must be "Home" or "Personal"

    zip

    zip

    Address type from Motionsoft must be "Home" or "Personal"

    country

    countryCode

    Address type from Motionsoft must be "Home" or "Personal"

    email

    email

    Email type from Motionsoft must be "Home" or "Personal"

     

    B. Translation from Motionsoft Member with Agreement

    This will only be used to add members to Club OS when syncing with Motionsoft for the first time

    All fields from "Translation from Motionsoft Member without Agreement" are also applicable here

    Club OS Field

    Motionsoft Field

    Notes

    IntMembershipAgreement.agreementName

    agreementDescription

     

    IntMembershipAgreement.agreementType

    bundleName

     

    IntMembershipAgreement.isActive

    status

    If status is "Member" isActive is true

    Otherwise isActive is false

    IntMembershipAgreement.alert

    freezeStartDate, freezeEndDate

    expirationDate

    cancelReason

    If freezeStartDate exists and freezeEndDate does not, alert is Freeze

    If both freezeStartDate and freezeEndDate exist or both don't exist and expirationDate exists and is in the past, alert is Expired

    Otherwise if cancelReason exists, alert is Canceled

    IntMembershipAgreement.isPrimaryAgreement

     

    Always set to true

    IntMembershipAgreement.downPayment

    initiationFee

     

    startDate

    visibleStartDate

     

    endDate

    expirationDate

     

    saleDate

    recordCreateDate

     

    isAutoRenew

    expirationDate

    If expirationDate exists, isAutoRenew is false

    Otherwise isAutoRenew is true

     

    C. Translation from Motionsoft Agreement

    This is used in conjunction with "Translation from Motionsoft Member without Agreement" during all syncs except the first

    All fields from "Translation from Motionsoft Member without Agreement" are also applicable here

    Club OS Field

    Motionsoft Field

    Notes

    systemId

    memberAgreementId

     

    agreementName

    agreement

     

    agreementType

    bundleName

     

    isActive

    agreementStatus

    If agreementStatus is "Active" or "Pending Start" isActive is true

    Otherwise isActive is false

    alert

    cancelDate

    If cancelDate exists alert is Canceled

    Alert.reason

    cancelReason

    If cancelDate exists and cancelReason exists, alert is set to Canceled

    and Alert.reason is set to cancelReason

    isPrimaryAgreement

     

    Always set to true

    downPayment

    totalInvoiceAmount

     

    recurringPayment

    nextInvoiceAmount

     

    startDate

    startDate

     

    endDate

    obligationDate or expirationDate

    If obligationDate exists endDate is set to obligationDate

    Otherwise endDate is set to expirationDate

    isAutoRenew

    expirationDate

    If expirationDate exists isAutoRenew is set to false

    Otherwise isAutoRenew is set to true

     

    D. Translation from Motionsoft Employee

    Club OS Field

    Motionsoft Field

    Notes

    externalSystemId

    roleId

    salesPersonID is first taken from Motionsoft member which is then used to get employee information from Motionsoft

    clubSystemId

    Location.code

     

    firstName

    name

    Split name into two strings on "," then trim leading and trailing whitespaces

    lastName

    name

    Split name into two strings on "," then trim leading and trailing whitespaces

    gender

    characteristics

    Characteristic type name equals ignoring case "gender"

    If "female" or "F" ignoring case, ClubOS gender is "F"

    Otherwise ClubOS gender is "M"

    dateOfBirth

    characteristics

    Characteristic type name equals ignoring case "date of birth"

    occupation

    characteristics

    Characteristic type name equals ignoring case "occupation"

    email

    emailAddresses

    EmailInformation type equals ignoring case "personal"

    mobilePhone

    phoneNumbers

    PhoneInformation type equals ignoring case "mobile", "cell", or "personal"

    homePhone

    phoneNumbers

    PhoneInformation type equals ignoring case "home"

    workPhone

    phoneNumbers

    PhoneInformation type equals ignoring case "business"

    addressLine1

    address1

    AddressInformation type equals ignoring case "home" or "personal"

    addressLine2

    address2

    AddressInformation type equals ignoring case "home" or "personal"

    city

    city

    AddressInformation type equals ignoring case "home" or "personal"

    state

    stateCode

    AddressInformation type equals ignoring case "home" or "personal"

    zip

    postalCode

    AddressInformation type equals ignoring case "home" or "personal"

    country

    countryCode

    AddressInformation type equals ignoring case "home" or "personal"



     

    Was this article helpful?
    0 out of 0 found this helpful

    Comments