This document describes the JSON payload sent by GymOS when a webhook event fires. Each webhook delivers a single JSON object in the body of an HTTP POST containing:
The event metadata
The subject (member , lead, or attendee), where applicable
The primary business object(s) associated with the event
Only the objects relevant to the event type will be populated.
Top-level webhook object
{
"eventType": "Session Booked",
"eventTimestampUtc": "2025-11-25T13:42:01Z",
"webHookTimestampUtc": "2025-11-25T13:42:01Z",
"clientId": "c340d350-b6a1-434c-bfb6-7703e9cb3215",
"clientBusinessName": "Example Fitness Ltd",
"clientTradingName": "Example Fitness",
"subjectType": "MEMBER",
"subject": { ... },
"payload": { ... }
}
Top-level fields
Field Type Description eventTypestring Logical event type (e.g. Session Booked) eventTimestampUtcdatetime When the original triggering event occurred. webHookTimestampUtcdatetime When the webhook was generated. clientIdGUID GymOS client (facility) ID. clientBusinessNamestring Registered business name. clientTradingNamestring Trading name. subjectTypestring MEMBER, LEAD, or ATTENDEE. May be empty.subjectobject The subject object matching subjectType, where applicable payloadobject The business object(s) relevant to the event.
subject object
The subject represents the individual associated with the event. Some events may not have an associated subject record(s).
"subject": {
"member": { ... },
"lead": null,
"attendee": null
}
member
{
"assignedMentor": "Jim Shark",
"createdUtc": "2025-02-19T16:02:02.7763675Z",
"currentMemberships": [
"Gold Membership",
"Nutrition Bolt-on"
],
"dateOfBirth": "1983-05-15T00:00:00",
"defaultVenue": "Downtown Fitness Centre",
"email": "[email protected] ",
"emergencyAddress": "123 The Street, Townsville, Countyshire",
"emergencyContact": "Jane Credible",
"emergencyPhone": "\u002B441234567890",
"emergencyRelationship": "Spouse",
"firstName": "Justin",
"fullName": "Justin Credible",
"gender": "Male",
"homeAddress1": "123 The Street",
"homeAddress2": "",
"homeAddress3": "",
"homeCity": "Townsville",
"homeCountry": "United Kingdom",
"homeCounty": "Countyshire",
"homePostcode": "TS1 2AB",
"id": "91d6528e-cc6b-4027-9c33-a172ce018c81",
"joinedDate": "2025-01-10T00:00:00Z",
"journeyPoint": "Established Member",
"lastName": "Credible",
"mobile": "\u002B447123456789",
"primaryStatus": "Satisfactory",
"title": "Mr.",
"userType": "Member"
}
Field Type Description idGUID Member ID. createdUtcdatetime When the member record was created. titlestring Name title (E.g., Mr., Mrs., Ms. etc.) firstNamestring First name. lastNamestring Last name. fullNamestring Full name. emailstring Email address. mobilestring Mobile phone. dateOfBirthdate? Date of birth. joinedDatedate? Member join date. This may precede the created date. genderstring Gender. primaryStatusstring Status assigned to the member. journeyPointstring Member lifecycle status. currentMembershipsstring[] List of active membership names. assignedMentorstring Assigned coach/mentor . blockedUntilUtcdatetime? Block expiry time (UTC). defaultVenuestring The member’s primary venue . Address fields string homeAddress1, homeAddress2, homeCity, etc.Emergency contact fields string emergencyContact, emergencyPhone, etc.userTypestring User type (E.g., Member, Employee , Manager , etc.)
lead
{
"createdUtc": "2025-07-28T15:02:02.7763675Z",
"dateOfBirth": "1986-08-22T00:00:00",
"email": "[email protected] ",
"firstName": "Amanda",
"fullName": "Amanda Huggenkiss",
"gender": "Female",
"id": "c28a6e90-95a1-44e9-8d8a-26d5e2cc01e2",
"lastName": "Huggenkiss",
"mobile": "\u002B447987654321",
"preferredVenue": "Uptown Fitness Centre",
"source": "Facebook Ad"
}
Field Type Description idGUID Lead ID. firstNamestring First name. fullNamestring Full name. lastNamestring Last name. emailstring Email address. mobilestring Mobile phone. createdUtcdatetime When the lead was created. genderstring Gender, if provided. dateOfBirthdate? DOB, if collected. sourcestring Lead source. preferredVenuestring Venue preference.
attendee
{
"createdUtc": "2025-11-13T16:02:02.7773686Z",
"email": "[email protected] ",
"firstName": "Alice",
"fullName": "Alice Tikband",
"id": "d4f5e6a7-b8c9-40d1-ef01-23456789abcd",
"lastName": "Tikband",
"mobile": "\u002B447000112233"
}
Field Type Description idGUID Guest ID. createdUtcdatetime When the guest was created. firstNamestring First name. fullNamestring Full name. lastNamestring Last name. emailstring Email address. mobilestring? Mobile number. statusstring Guest status.
payload object
Only relevant objects are populated for each event.
"payload": {
"session": { ... },
"booking": { ... },
"achievement": { ... },
"leadAppointment": { ... },
"assignment": { ... },
"bodyHop": { ... },
"campaign": { ... },
"credit": { ... },
"document": { ... },
"dropSlotEventSlot": { ... },
"dropSlotEventType": { ... },
"dropSlotInvitation": { ... },
"form": { ... },
"injury": { ... },
"inventory": { ... },
"membership": { ... },
"message": { ... },
"order": { ... },
"paymentLink": { ... },
"scheduledAbsence": { ... },
"weighIn": { ... },
"xrcizeSession": { ... },
"supplementalData": { ... }
}
session
{
"endTimeLocal": "2025-11-26T17:00:00+00:00",
"id": "6fd0aa79-e899-4d93-b465-12fa38d96372",
"leadCoach": "Sarah Trainer",
"sessionType": "SGPT (1:6)",
"startTimeLocal": "2025-11-26T16:15:00+00:00",
"venue": "Downtown Fitness Centre",
"venueArea": "Studio 2"
}
Field Type Description idGUID? Session ID. startTimeLocaldatetime? Local session start time. endTimeLocaldatetime? Local session end time. sessionTypestring Session type (E.g., Small Group 1:6) venuestring Venue. venueAreastring Area/room. leadCoachstring Coach name.
booking
{
"autoBooked": false,
"bookedBy": "Justin Credible",
"bookedTimeUtc": "2025-11-26T16:02:00.7793681Z",
"cancelledTimeUtc": "",
"id": "97c6e7c9-0920-438f-828e-25a252d06740",
"paymentMethod": "Credits",
"status": "Booked"
}
Field Type Description idGUID? Booking ID. autoBookedboolean If the booking was auto-booked. bookedBystring Who created the booking. bookedTimeUtcdatetime? UTC booking time. cancelledTimeUtcdatetime? UTC cancellation time. paymentMethodstring Payment method label. statusstring Booking status.
achievement
{
"achievedAtUtc": "2025-11-26T14:29:02.7773686Z",
"achievement": "150kg",
"achievementType": "Deadlift",
"id": "8496f565-88d5-40af-b689-5980452e18c9",
"notes": "Verified by Maya Magination"
}
Field Type Description idGUID? Achievement ID.achievementstring The value of the achievement (E.g., 10kg) achievementTypestring The achievement type (E.g., Deadlift) achievedAtUtcdatetime When achieved. notesstring Notes.
leadAppointment
{
"id": "27ae4056-ef11-4c0c-9952-6ca23dc92f33",
"bookedUtc": "2025-11-23T14:13:09Z",
"cancelledUtc": "",
"campaign": "Black Friday Campaign",
"status": "Attended"
}
Field Type Description idGUID? Appointment ID. bookedUtcdatetime Booking timestamp. cancelledUtcdatetime? Cancellation timestamp. campaign string Campaign name. statusstring Status.
assignment
{
"id": "4325d913-290f-4e3b-85e2-00d83dc1c0f5",
"title": "Check-in",
"details": "Scheduled call as promised to follow-up on discussion from 3 days ago.",
"notes": "Seemed very interested in our personal training packages.",
"startTimeUtc": "2025-11-27T10:00:00Z",
"assignmentType": "Generic Reminder",
"status": "Pending"
}
Field Type Description idGUID? Assignment ID. titlestring Assignment title. detailsstring Assignment details. notesstring Notes. assignmentTypestring Category/type. startTimeUtcdatetime? Start time. statusstring Status.
bodyHop
{
"id": "14686129-c530-4a73-b566-8d5c189f2795",
"datePointUtc": "2025-11-25T19:59:02.7773686Z",
"notes": "Decent progression on my legs. Arms still need more work."
}
Field Type Description idGUID? BodyHop ID. datePointUtcdatetime Timestamp. notesstring Notes.
campaign
{
"id": "d20c2cb8-50fb-4513-a51c-decb39ec50f2",
"campaignName": "Spring into Fitness",
"status": "Active",
"campaignType": "Lead Capture"
}
Field Type Description idGUID? Campaign ID. campaignNamestring Name. statusstring Status. campaignTypestring Type/category.
credit
{
"cost": 149.99,
"creditPack": "8 Session Pack (28 days)",
"creditsIssued": 8,
"creditsRemaining": 8,
"id": "79871a93-7f43-4a71-b0d8-b83ea5b3d69f",
"issuedUtc": "2025-11-26T16:02:02.7783681Z",
"validFromType": "Immediate",
"validFromUtc": "2025-11-27T00:00:00+00:00",
"validToType": "Fixed period",
"validToUtc": "2025-12-25T00:00:00+00:00"
}
Field Type Description costdecimal? Cost of credit pack . creditPackstring Pack name. creditsIssuedint Total credits issued. creditsRemainingint Credits remaining. idGUID? Credit record ID. issuedUtcdatetime Issued timestamp. validFromTypestring How validity begins. validFromUtcdatetime? Valid-from timestamp. validToTypestring How validity expires. validToUtcdatetime? Expiry timestamp.
document
{
"createdUtc": "2025-11-26T16:02:02.7793681Z",
"description": "12 month SGPT membership contract for Justin Credible",
"filename": "contract_justin_credible.pdf",
"id": "24b93d25-559c-4edf-bf45-49ae58f52490",
"name": "Membership Contract",
"notes": "Signed electronically via GymOS app"
}
Field Type Description createdUtcdatetime Creation timestamp. descriptionstring Description. filenamestring Filename. idGUID? Document ID. namestring Document name/title. notesstring Notes.
dropSlotEventSlot
{
"id": "c7be53ec-b1f1-4f91-9e2f-dfc6aba1d866",
"status": "Booked",
"startTimeUtc": "2025-11-28T18:30:00Z",
"endTimeUtc": "2025-11-28T19:30:00Z",
"hosts": "Rick Ottersheese",
"attendees": "Alice Tikband"
}
Field Type Description idGUID? Event ID. statusstring Status. startTimeUtcdatetime? Event start (UTC). endTimeUtcdatetime? Event end (UTC). hostsstring Delimited list of host(s). attendeesstring Delimited list of attendee(s).
dropSlotEventType
{
"id": "93c27cb4-a458-4d5c-8e03-9661336beb18",
"eventName": "Check-In",
"eventDescription": "Regular check-in to ensure that we are on track towards our goals, and to make adjustments as necessary."
}
Field Type Description idGUID? Event type ID. eventNamestring Name. eventDescriptionstring Description.
dropSlotInvitation
{
"createdUtc": "2025-11-26T16:02:02.7803683Z",
"id": "9db526a8-b87e-4d88-8d9d-ae96be1d1a5a",
"invitationsIssued": 1,
"status": "Active",
"validFromUtc": "2025-11-26T16:02:02.7803683Z",
"validToUtc": "2025-12-03T16:02:02.7803683Z"
}
Field Type Description createdUtcdatetime Created timestamp. idGUID? Invitation ID. invitationsIssuedint Number issued. statusstring Status. validFromUtcdatetime? Valid from. validToUtcdatetime? Valid until.
form
{
"id": "38acbd3d-c2fe-434f-88a5-a1d375be08aa",
"form": "Standard PAR-Q",
"requestedUtc": "2025-11-26T14:50:02.7803683Z",
"startedUtc": "2025-11-26T15:41:02.7803683Z",
"completedUtc": "2025-11-26T16:02:02.7803683Z",
"alertsRaised": 1
}
Field Type Description idGUID? Form ID. formstring Form name. requestedUtcdatetime? When form completion was requested. startedUtcdatetime? When the form was started. completedUtcdatetime? When the form was submitted/finished. alertsRaisedint Number of alerts/flags raised.
injury
{
"id": "a6c825d4-fbc4-47b0-8e52-75f513b27d95",
"recordedBy": "Shelia Mazeyer",
"isPregnant": false,
"medications": "Ibuprofen",
"allergies": "Peanuts",
"notes": "",
"injuryCount": 1
}
Field Type Description idGUID? Injury record ID. recordedBystring Staff name. isPregnantboolean Pregnancy flag. medicationsstring Medications listed. allergiesstring Allergies listed. notesstring Notes. injuryCountint Number of injuries recorded.
inventory
{
"id": "ed874620-38fd-4c36-9a67-c5acd761e9bf",
"itemName": "Weight Training Gloves",
"variantName": "Large - Black",
"description": "Durable fitness gloves to protect your hands during weight training.",
"stockLevel": 3
}
Field Type Description idGUID? Variant ID. itemNamestring Product name. variantNamestring Variant name (size/colour). descriptionstring Description. stockLevelint Current stock.
membership
{
"autoRenew": true,
"costPerPaymentPeriod": 249.99,
"createdUtc": "2025-09-27T15:02:02.7813682Z",
"cancelledUtc": "",
"id": "2633cfbd-6c46-43d6-8af9-4bd34453a160",
"joiningFee": 0,
"membershipPlan": "Gold Membership",
"membershipType": "Monthly Recurring",
"startDateUtc": "2025-09-27T15:02:02.7813682Z",
"status": "Active",
"subscriptionLength": 1,
"subscriptionPeriodType": "Month",
"subscriptionPeriods": 12
}
Field Type Description idGUID? Membership ID. createdUtcdatetime When the membership was created. startDateUtcdatetime Start date/time (UTC). endDateUtcdatetime? End date/time (UTC). cancelledUtcdatetime? Cancellation time (UTC). membershipPlanstring Plan name. membershipTypestring Membership category/type. subscriptionLengthint Subscription length. subscriptionPeriodTypestring Period type (Days/Weeks/Months). subscriptionPeriodsint Number of periods. autoRenewboolean Does membership auto-renew? costPerPaymentPerioddecimal? Cost per billing period. joiningFeedecimal? Joining fee applied. statusstring Membership status.
message
{
"from": "Titus Addrum",
"id": "9fa71ca8-246a-4e2e-bc99-f8c8c9032281",
"isInbound": true,
"messageType": "Email",
"receivedUtc": "2025-11-26T16:02:02.7813682Z",
"status": "Received",
"subject": "Enquiry about personal training packages"
}
Field Type Description idGUID? Message ID. fromstring Sender (address, identifier, or mobile). isInboundboolean True if message was inbound. messageTypestring Category/type. receivedUtcdatetime When the message was received. readUtcdatetime? When the message was read. statusstring Message status. subjectstring Message subject/title.
order
{
"placedUtc": "2025-11-26T16:02:02.7813682Z",
"id": "a0b2222a-80e1-47b8-a3c4-d36333ccde92",
"reference": "ORD12345",
"grossTotal": 99.99,
"itemCount": 1
}
Field Type Description idGUID? Order ID. placedUtcdatetime When the order was placed. referencestring Order reference code. grossTotaldecimal? Gross total amount. itemCountint Number of items in the order.
paymentLink
{
"id": "299addec-2a54-4b5a-9741-1bf150e3fcca",
"linkType": "Reusable",
"targetType": "Member",
"title": "Christmas meal deposit",
"description": "Non-refundable deposit for the Christmas meal. Remainder to be paid at the event.",
"amount": 20
}
Field Type Description idGUID? Payment link ID. linkTypestring Link type. targetTypestring Entity the link is for. titlestring Link title. descriptionstring Link description. amountdecimal? Amount requested or paid.
scheduledAbsence
{
"id": "7f9b60c4-6051-4379-b782-17478f55b2cd",
"createdUtc": "2025-11-26T16:02:02.7813682Z",
"absenceStartUtc": "2025-12-01T00:00:00Z",
"absenceEndUtc": "2025-12-10T23:59:59Z",
"reason": "Holiday",
"notes": "Family trip to the beach."
}
Field Type Description idGUID? Absence ID. createdUtcdatetime When the absence was created. absenceStartUtcdatetime Absence start time (UTC). absenceEndUtcdatetime Absence end time (UTC). reasonstring Absence reason. notesstring Additional notes.
weighIn
{
"id": "dad0f80e-1947-4c7c-aec7-f1c145ca54b9",
"dateOfRecordUtc": "2025-11-26T16:02:02.7823685Z",
"heightCm": 176,
"weightKg": 75.2,
"bodyFatPercentage": 19.2,
"notes": "Feeling good, energy levels are up."
}
Field Type Description idGUID? Measurement record ID. dateOfRecordUtcdatetime Date/time of measurement. heightCmdecimal? Height in cm. weightKgdecimal? Weight in kg. bodyFatPercentagedecimal? Body fat %. notesstring Notes.
xrcizeSession
{
"id": "8854b0bb-3293-4d32-9964-bd5b3da4a45c",
"name": "Full Body Strength Workout",
"description": "A comprehensive strength training session targeting all major muscle groups.",
"sessionType": "Master",
"contentFormat": "In-Person Trackable",
"trainingMethod": "Strength Progression (round up)"
}
Field Type Description idGUID? XRcize session ID.namestring Session name. descriptionstring Description of the session content. sessionTypestring XRcize session type. contentFormatstring The type of XRcize session (E.g., Structured, Freeform, etc.) trainingMethodstring Training method used.
supplementalData
This block contains arbitrary key-value metadata that can be added to specific webhook events by including additional merge fields in the trigger step. This facilitates the inclusion of additional data available in the merge fields that may not be included in the default business data objects.
Both keys and values are always strings.
"supplementalData": {
"callpurpose": "To catch up from our last discussion",
"caller": "Hope Lescase"
}
Field Type Description supplementalDataobject (string → string) Additional merge field metadata attached to the event.