This integration is powered by Singer's Club Speed tap. For support, visit the GitHub repo or join the Singer Slack.
Club Speed integration summary
Stitch’s Club Speed integration replicates data using the Club Speed API . Refer to the Schema section for a list of objects available for replication.
Club Speed feature snapshot
A high-level look at Stitch's Club Speed (v1) integration, including release status, useful links, and the features supported in Stitch.
STITCH | |||
Release status |
Released on February 1, 2019 |
Supported by | |
Stitch plan |
Standard |
API availability |
Available |
Singer GitHub repository | |||
REPLICATION SETTINGS | |||
Anchor Scheduling |
Supported |
Advanced Scheduling |
Supported |
Table-level reset |
Unsupported |
Configurable Replication Methods |
Unsupported |
DATA SELECTION | |||
Table selection |
Supported |
Column selection |
Supported |
Select all |
Supported |
||
TRANSPARENCY | |||
Extraction Logs |
Supported |
Loading Reports |
Supported |
Connecting Club Speed
Club Speed setup requirements
To set up Club Speed in Stitch, you need:
-
A Club Speed API key. To use Stitch’s Club Speed integration, you’ll need an API key generated by Club Speed. Reach out to Club Speed support to have them generate this credential for you.
After you’ve received the API key, you can complete the setup in Stitch.
Step 1: Add Club Speed as a Stitch data source
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the Club Speed icon.
-
Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.
For example, the name “Stitch Club Speed” would create a schema called
stitch_club_speed
in the destination. Note: Schema names cannot be changed after you save the integration. - In the Club Speed Subdomain field, enter your Club Speed subdomain. For example: If the full subdomain were
stitchdata.clubspeedtiming.com
, you’d only enterstitchdata
into this field. - In the Club Speed Private Key field, paste your Club Speed private API key. Note: You’ll need to contact Club Speed to obtain this credential.
Step 2: Define the historical replication start date
The Sync Historical Data setting defines the starting date for your Club Speed integration. This means that data equal to or newer than this date will be replicated to your data warehouse.
Change this setting if you want to replicate data beyond Club Speed’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.
Step 3: Create a replication schedule
In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.
Club Speed integrations support the following replication scheduling methods:
-
Advanced Scheduling using Cron (Advanced or Premium plans only)
To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.
Initial and historical replication jobs
After you finish setting up Club Speed, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.
Free historical data loads
The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.
Club Speed table reference
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is for version 1 of this integration.
This is the latest version of the Club Speed integration.
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs
> customers
), while case is maintained in PostgreSQL destinations (CusTomERs
> CusTomERs
). Refer to the Loading Guide for your destination for more info.
booking
The booking
table contains info about bookings. A booking record exposes a heat
to the online booking interface in Club Speed.
Full Table |
|
Primary Key |
onlineBookingsId |
Useful links |
Join booking with | on |
---|---|
booking_availability |
booking.onlineBookingsId = booking_availability.products.onlineBookingsId booking.heatId = booking_availability.heatId booking.heatId = booking_availability.heatSpotsAvailableCombined booking.productsId = booking_availability.products.productsId |
reservations |
booking.onlineBookingsId = reservations.onlineBookingsId |
heat_main |
booking.heatId = heat_main.heatId |
heat_main_details |
booking.heatId = heat_main_details.heatId |
check_details |
booking.productsId = check_details.productId |
event_types |
booking.productsId = event_types.onlineProductId |
products |
booking.productsId = products.productId |
heatId INTEGER |
isPublic BOOLEAN |
onlineBookingsId INTEGER |
productsId INTEGER |
quantityTotal INTEGER |
booking_availability
The booking_availability
table contains info about the current availability for online bookings. These take into account both online and local booking reservations.
Full Table |
|
Primary Key |
heatId |
Useful links |
Join booking_availability with | on |
---|---|
booking |
booking_availability.products.onlineBookingsId = booking.onlineBookingsId booking_availability.heatId = booking.heatId booking_availability.heatSpotsAvailableCombined = booking.heatId booking_availability.products.productsId = booking.productsId |
reservations |
booking_availability.products.onlineBookingsId = reservations.onlineBookingsId |
heat_main |
booking_availability.heatId = heat_main.heatId booking_availability.heatSpotsAvailableCombined = heat_main.heatId booking_availability.heatTypeId = heat_main.type |
heat_main_details |
booking_availability.heatId = heat_main_details.heatId booking_availability.heatSpotsAvailableCombined = heat_main_details.heatId |
event_heat_types |
booking_availability.heatTypeId = event_heat_types.heatTypeId |
event_rounds |
booking_availability.heatTypeId = event_rounds.heatTypeId |
heat_types |
booking_availability.heatTypeId = heat_types.heatTypesId |
check_details |
booking_availability.products.productsId = check_details.productId |
event_types |
booking_availability.products.productsId = event_types.onlineProductId |
products |
booking_availability.products.productsId = products.productId |
heatDescription STRING |
|||||||
heatId INTEGER |
|||||||
heatSpotsAvailableCombined INTEGER |
|||||||
heatSpotsAvailableOnline INTEGER |
|||||||
heatSpotsTotalActual INTEGER |
|||||||
heatStartsAt DATE-TIME |
|||||||
heatTypeId INTEGER |
|||||||
isPublic BOOLEAN |
|||||||
products ARRAY
|
check_details
The check_details
table contains info about line items and quantity info attached to checks
.
as the [Replication Key](/docs/replication/replication-keys). This means that check details will be selected for replication only when they are initially created. Any subsequent updates made to the check detail will not be detected, as the
value will not be updated. Refer to the Key-based Incremental Replication documentation for more info and examples.
Key-based Incremental |
|
Primary Key |
checkDetailId |
Replication Key |
createdDate |
Useful links |
Join check_details with | on |
---|---|
gift_card_history |
check_details.checkDetailId = gift_card_history.checkDetailId check_details.checkId = gift_card_history.checkId check_details.g_CustId = gift_card_history.customerId check_details.p_CustId = gift_card_history.customerId check_details.s_CustId = gift_card_history.customerId check_details.discountUserId = gift_card_history.userId |
checks |
check_details.checkId = checks.checkId check_details.g_CustId = checks.customerId check_details.p_CustId = checks.customerId check_details.s_CustId = checks.customerId check_details.discountId = checks.discountId check_details.discountUserId = checks.discountUserId check_details.discountUserId = checks.userId |
event_reservation_links |
check_details.checkId = event_reservation_links.checkId |
payments |
check_details.checkId = payments.checkId check_details.g_CustId = payments.customerId check_details.p_CustId = payments.customerId check_details.s_CustId = payments.customerId check_details.discountUserId = payments.userId check_details.discountUserId = payments.voidUser |
payments_voided |
check_details.checkId = payments_voided.checkId check_details.g_CustId = payments_voided.customerId check_details.p_CustId = payments_voided.customerId check_details.s_CustId = payments_voided.customerId check_details.discountUserId = payments_voided.userId check_details.discountUserId = payments_voided.voidUser |
reservations |
check_details.checkId = reservations.checkId check_details.g_CustId = reservations.customersId check_details.p_CustId = reservations.customersId check_details.s_CustId = reservations.customersId |
event_heat_details |
check_details.g_CustId = event_heat_details.customerId check_details.p_CustId = event_heat_details.customerId check_details.s_CustId = event_heat_details.customerId |
heat_main_details |
check_details.g_CustId = heat_main_details.customerId check_details.p_CustId = heat_main_details.customerId check_details.s_CustId = heat_main_details.customerId check_details.discountUserId = heat_main_details.userId |
memberships |
check_details.g_CustId = memberships.customerId check_details.p_CustId = memberships.customerId check_details.s_CustId = memberships.customerId check_details.discountUserId = memberships.byUserId |
discount_types |
check_details.discountId = discount_types.discountId |
booking |
check_details.productId = booking.productsId |
booking_availability |
check_details.productId = booking_availability.products.productsId |
event_types |
check_details.productId = event_types.onlineProductId |
products |
check_details.productId = products.productId check_details.taxId = products.taxId |
taxes |
check_details.taxId = taxes.taxId |
event_tasks |
check_details.discountUserId = event_tasks.completedBy |
users |
check_details.discountUserId = users.userId |
event_reservations |
check_details.discountUserId = event_reservations.userId |
calculateType INTEGER |
checkDetailId INTEGER |
checkId INTEGER |
createdDate DATE-TIME |
discountApplied NUMBER |
discountDesc STRING |
discountId INTEGER |
discountNotes STRING |
discountUserId INTEGER |
g_CustId INTEGER |
g_Points NUMBER |
gst NUMBER |
m_DaysAdded INTEGER |
p_CustId INTEGER |
p_Points INTEGER |
productId INTEGER |
productName STRING |
qty INTEGER |
r_Points INTEGER |
s_CustId INTEGER |
s_NoOfLapsOrSeconds INTEGER |
s_SaleBy INTEGER |
s_Vol INTEGER |
status INTEGER |
taxId INTEGER |
taxPercent NUMBER |
type INTEGER |
unitPrice NUMBER |
unitPrice2 NUMBER |
voidNotes STRING |
checks
The checks
table contains info about checks, or financial invoices, that have been closed.
as the [Replication Key](/docs/replication/replication-keys). This means that checks will not be selected for replication until the record has a
value, which should occur when the check has a status
of closed
.
Key-based Incremental |
|
Primary Key |
checkId |
Replication Key |
closedDate |
Useful links |
Join checks with | on |
---|---|
check_details |
checks.checkId = check_details.checkId checks.customerId = check_details.g_CustId checks.customerId = check_details.p_CustId checks.customerId = check_details.s_CustId checks.discountId = check_details.discountId checks.discountUserId = check_details.discountUserId checks.userId = check_details.discountUserId |
event_reservation_links |
checks.checkId = event_reservation_links.checkId |
gift_card_history |
checks.checkId = gift_card_history.checkId checks.customerId = gift_card_history.customerId checks.discountUserId = gift_card_history.userId checks.userId = gift_card_history.userId |
payments |
checks.checkId = payments.checkId checks.customerId = payments.customerId checks.discountUserId = payments.userId checks.userId = payments.userId checks.discountUserId = payments.voidUser checks.userId = payments.voidUser |
payments_voided |
checks.checkId = payments_voided.checkId checks.customerId = payments_voided.customerId checks.discountUserId = payments_voided.userId checks.userId = payments_voided.userId checks.discountUserId = payments_voided.voidUser checks.userId = payments_voided.voidUser |
reservations |
checks.checkId = reservations.checkId checks.customerId = reservations.customersId |
event_heat_details |
checks.customerId = event_heat_details.customerId |
heat_main_details |
checks.customerId = heat_main_details.customerId checks.discountUserId = heat_main_details.userId checks.userId = heat_main_details.userId |
memberships |
checks.customerId = memberships.customerId checks.discountUserId = memberships.byUserId checks.userId = memberships.byUserId |
discount_types |
checks.discountId = discount_types.discountId |
event_tasks |
checks.discountUserId = event_tasks.completedBy checks.userId = event_tasks.completedBy |
users |
checks.discountUserId = users.userId checks.userId = users.userId |
event_reservations |
checks.discountUserId = event_reservations.userId checks.userId = event_reservations.userId |
broker STRING |
checkId INTEGER |
closedDate DATE-TIME |
customerId INTEGER |
discount NUMBER |
discountId INTEGER |
discountNotes STRING |
discountUserId INTEGER |
fee NUMBER |
gratuity NUMBER |
invoiceDate DATE-TIME |
isTaxExempt BOOLEAN |
name STRING |
notes STRING |
openedDate DATE-TIME |
status INTEGER |
total NUMBER |
type INTEGER |
userId INTEGER |
customers
The customers
table contains info about the customers for a location.
as the [Replication Key](/docs/replication/replication-keys). This means updated customer data will only be selected for replication when the
value for the customer’s record is updated.
Key-based Incremental |
|
Primary Key |
customerId |
Replication Key |
lastVisited |
Useful links |
Address STRING |
Address2 STRING |
City STRING |
Country STRING |
Custom1 STRING |
Custom2 STRING |
Custom3 STRING |
Custom4 STRING |
LicenseNumber STRING |
State STRING |
Zip STRING |
accountCreated DATE-TIME |
birthdate DATE-TIME |
cardId INTEGER |
company STRING |
creditLimit NUMBER |
creditOnHold BOOLEAN |
customerId INTEGER |
deleted BOOLEAN |
donotemail BOOLEAN |
STRING |
fax STRING |
firstname STRING |
gender INTEGER |
generalNotes STRING |
howdidyouhearaboutus INTEGER |
ignoreDOB BOOLEAN |
isEmployee BOOLEAN |
isGiftCard BOOLEAN |
lastVisited DATE-TIME |
lastname STRING |
memberShipTextLong STRING |
membershipStatus INTEGER |
membershipText STRING |
mobilephone STRING |
originalId INTEGER |
phoneNumber STRING |
phoneNumber2 STRING |
priceLevel INTEGER |
privacy1 BOOLEAN |
proskill INTEGER |
racername STRING |
status1 INTEGER |
status2 INTEGER |
status3 INTEGER |
status4 INTEGER |
totalRaces INTEGER |
totalVisits INTEGER |
waiver INTEGER |
waiver2 INTEGER |
webUserName STRING |
discount_types
The discount_types
table contains info about discount types.
Full Table |
|
Primary Key |
discountId |
Useful links |
Join discount_types with | on |
---|---|
check_details |
discount_types.discountId = check_details.discountId |
checks |
discount_types.discountId = checks.discountId |
product_classes |
discount_types.productClassId = product_classes.productClassId |
products |
discount_types.productClassId = products.productClassId |
amount NUMBER |
calculateType INTEGER |
deleted BOOLEAN |
description STRING |
discountId INTEGER |
enabled BOOLEAN |
needApproved BOOLEAN |
productClassId INTEGER |
event_heat_details
The event_heat_details
table contains info about customers
who have been placed in a queue for a specific event
.
Key-based Incremental |
|
Primary Keys |
customerId eventId |
Replication Key |
added |
Useful links |
Join event_heat_details with | on |
---|---|
check_details |
event_heat_details.customerId = check_details.g_CustId event_heat_details.customerId = check_details.p_CustId event_heat_details.customerId = check_details.s_CustId |
checks |
event_heat_details.customerId = checks.customerId |
gift_card_history |
event_heat_details.customerId = gift_card_history.customerId |
heat_main_details |
event_heat_details.customerId = heat_main_details.customerId |
memberships |
event_heat_details.customerId = memberships.customerId |
payments |
event_heat_details.customerId = payments.customerId |
payments_voided |
event_heat_details.customerId = payments_voided.customerId |
reservations |
event_heat_details.customerId = reservations.customersId |
event_rounds |
event_heat_details.eventId = event_rounds.eventId |
events |
event_heat_details.eventId = events.eventId |
added DATE-TIME |
customerId INTEGER |
eventId INTEGER |
proskill INTEGER |
roundLoseNum INTEGER |
totalRaces INTEGER |
event_heat_types
The event_heat_types
table contains info about event type classifications, which are used to look up event_rounds
when creating events
.
Full Table |
|
Primary Key |
eventHeatTypeId |
Useful links |
Join event_heat_types with | on |
---|---|
booking_availability |
event_heat_types.heatTypeId = booking_availability.heatTypeId |
event_rounds |
event_heat_types.heatTypeId = event_rounds.heatTypeId |
heat_main |
event_heat_types.heatTypeId = heat_main.type |
heat_types |
event_heat_types.heatTypeId = heat_types.heatTypesId |
cadetsPerHeat INTEGER |
description STRING |
eventHeatTypeId INTEGER |
eventTypeId INTEGER |
heatTypeId INTEGER |
heatsPerRacer INTEGER |
racersPerHeat INTEGER |
roundNumber INTEGER |
event_reservation_links
The event_reservation_links
table contains lists of check
and reservation
IDs, or checks that are linked to event reservations.
Full Table |
|
Primary Key |
eventReservationLinkId |
Useful links |
Join event_reservation_links with | on |
---|---|
check_details |
event_reservation_links.checkId = check_details.checkId |
checks |
event_reservation_links.checkId = checks.checkId |
gift_card_history |
event_reservation_links.checkId = gift_card_history.checkId |
payments |
event_reservation_links.checkId = payments.checkId |
payments_voided |
event_reservation_links.checkId = payments_voided.checkId |
reservations |
event_reservation_links.checkId = reservations.checkId event_reservation_links.reservationId = reservations.onlineBookingReservationsId |
events |
event_reservation_links.reservationId = events.reservationId |
checkId INTEGER |
eventReservationLinkId INTEGER |
reservationId INTEGER |
event_reservation_types
The event_reservation_types
table contains info about the descriptions for event reservation types.
Full Table |
|
Primary Key |
eventReservationTypeId |
Useful links |
Join event_reservation_types with | on |
---|---|
event_reservations |
event_reservation_types.eventReservationTypeId = event_reservations.typeId |
description STRING |
eventReservationTypeId INTEGER |
event_reservations
The event_reservations
table contains info about event reservations, which are linked to events
.
startTime
is updated, changes to event reservation records will not be selected for replication.
Key-based Incremental |
|
Primary Key |
eventReservationId |
Replication Key |
startTime |
Useful links |
Join event_reservations with | on |
---|---|
event_reservation_types |
event_reservations.typeId = event_reservation_types.eventReservationTypeId |
event_tasks |
event_reservations.eventReservationId = event_tasks.eventReservationId event_reservations.mainId = event_tasks.eventReservationId event_reservations.userId = event_tasks.completedBy |
event_types |
event_reservations.eventTypeId = event_types.eventTypeId |
events |
event_reservations.eventTypeId = events.eventTypeId |
check_details |
event_reservations.userId = check_details.discountUserId |
checks |
event_reservations.userId = checks.discountUserId event_reservations.userId = checks.userId |
gift_card_history |
event_reservations.userId = gift_card_history.userId |
users |
event_reservations.userId = users.userId |
heat_main_details |
event_reservations.userId = heat_main_details.userId |
memberships |
event_reservations.userId = memberships.byUserId |
payments |
event_reservations.userId = payments.userId event_reservations.userId = payments.voidUser |
payments_voided |
event_reservations.userId = payments_voided.userId event_reservations.userId = payments_voided.voidUser |
allowOnlineReservation BOOLEAN |
deleted BOOLEAN |
description STRING |
endTime DATE-TIME |
eventReservationId INTEGER |
eventTypeId INTEGER |
externalSystemId INTEGER |
isEventClosure BOOLEAN |
mainId INTEGER |
minNoOfAdultsPerBooking INTEGER |
noOfRacers INTEGER |
notes STRING |
ptsPerReservation INTEGER |
repId INTEGER |
startTime DATE-TIME |
status INTEGER |
subject STRING |
typeId INTEGER |
userId INTEGER |
event_rounds
The event_rounds
table contains info about event rounds. This table acts as a link between events
and their corresponding rounds in the heat_main
.
Full Table |
|
Primary Key |
eventRoundId |
Useful links |
Join event_rounds with | on |
---|---|
heat_main |
event_rounds.eventRoundId = heat_main.eventRound event_rounds.heatTypeId = heat_main.type |
event_heat_details |
event_rounds.eventId = event_heat_details.eventId |
events |
event_rounds.eventId = events.eventId |
booking_availability |
event_rounds.heatTypeId = booking_availability.heatTypeId |
event_heat_types |
event_rounds.heatTypeId = event_heat_types.heatTypeId |
heat_types |
event_rounds.heatTypeId = heat_types.heatTypesId |
cadetsPerHeat INTEGER |
eventId INTEGER |
eventRoundId INTEGER |
heatDescription STRING |
heatTypeId INTEGER |
heatsPerRacer INTEGER |
racersPerHeat INTEGER |
roundNumber INTEGER |
event_statuses
The event_statuses
table contains info about event statuses, which are statuses assigned to event_reservations
.
Full Table |
|
Primary Key |
eventStatusId |
Useful links |
colorId INTEGER |
eventStatusId INTEGER |
seq INTEGER |
status STRING |
event_task_types
The event_task_types
table contains info about event task types, which are event_tasks
to be tracked for completion.
Full Table |
|
Primary Key |
eventTaskId |
Useful links |
deleted BOOLEAN |
description STRING |
eventTaskId INTEGER |
name STRING |
seq INTEGER |
event_tasks
The event_tasks
table contains info about the tasks to be completed for a given event_reservation
.
Key-based Incremental |
|
Primary Key |
eventTaskId |
Replication Key |
completedAt |
Useful links |
Join event_tasks with | on |
---|---|
event_reservations |
event_tasks.eventReservationId = event_reservations.eventReservationId event_tasks.eventReservationId = event_reservations.mainId event_tasks.completedBy = event_reservations.userId |
check_details |
event_tasks.completedBy = check_details.discountUserId |
checks |
event_tasks.completedBy = checks.discountUserId event_tasks.completedBy = checks.userId |
gift_card_history |
event_tasks.completedBy = gift_card_history.userId |
users |
event_tasks.completedBy = users.userId |
heat_main_details |
event_tasks.completedBy = heat_main_details.userId |
memberships |
event_tasks.completedBy = memberships.byUserId |
payments |
event_tasks.completedBy = payments.userId event_tasks.completedBy = payments.voidUser |
payments_voided |
event_tasks.completedBy = payments_voided.userId event_tasks.completedBy = payments_voided.voidUser |
completedAt DATE-TIME |
completedBy INTEGER |
eventReservationId INTEGER |
eventTaskId INTEGER |
eventTaskTypeId INTEGER |
event_types
The event_types
table contains info about event types.
Full Table |
|
Primary Key |
eventTypeId |
Useful links |
Join event_types with | on |
---|---|
event_reservations |
event_types.eventTypeId = event_reservations.eventTypeId |
events |
event_types.eventTypeId = events.eventTypeId |
booking |
event_types.onlineProductId = booking.productsId |
booking_availability |
event_types.onlineProductId = booking_availability.products.productsId |
check_details |
event_types.onlineProductId = check_details.productId |
products |
event_types.onlineProductId = products.productId |
heat_types |
event_types.trackId = heat_types.trackId |
deleted BOOLEAN |
description STRING |
displayAtRegistration BOOLEAN |
enabled BOOLEAN |
eventTypeId INTEGER |
eventTypeName STRING |
eventTypeTheme INTEGER |
memberOnly BOOLEAN |
onlineProductId INTEGER |
ptsPerReservation INTEGER |
trackId INTEGER |
events
The events
table contains info about events.
as the [Replication Key](/docs/replication/replication-keys). This means that unless an event's
value is updated, changes to event records will not be selected for replication.
Key-based Incremental |
|
Primary Key |
eventId |
Replication Key |
eventScheduledTime |
Useful links |
Join events with | on |
---|---|
event_reservations |
events.eventTypeId = event_reservations.eventTypeId |
event_types |
events.eventTypeId = event_types.eventTypeId |
event_heat_details |
events.eventId = event_heat_details.eventId |
event_rounds |
events.eventId = event_rounds.eventId |
event_reservation_links |
events.reservationId = event_reservation_links.reservationId |
reservations |
events.reservationId = reservations.onlineBookingReservationsId |
createdHeatSpots INTEGER |
createdHeatTime DATE-TIME |
eventDesc STRING |
eventDuration INTEGER |
eventId INTEGER |
eventNotes STRING |
eventScheduledTime DATE-TIME |
eventTheme INTEGER |
eventTypeId INTEGER |
eventTypeName STRING |
memberOnly BOOLEAN |
reservationId INTEGER |
totalRacers INTEGER |
trackNo INTEGER |
gift_card_history
The gift_card_history
table acts as a transactional log for keeping track of each change that occurs with gift cards.
customer
. This means that each gift card identifier should be considered a customerId
in this table.
Key-based Incremental |
|
Primary Key |
giftCardHistoryId |
Replication Key |
transactionDate |
Useful links |
Join gift_card_history with | on |
---|---|
check_details |
gift_card_history.checkDetailId = check_details.checkDetailId gift_card_history.checkId = check_details.checkId gift_card_history.customerId = check_details.g_CustId gift_card_history.customerId = check_details.p_CustId gift_card_history.customerId = check_details.s_CustId gift_card_history.userId = check_details.discountUserId |
checks |
gift_card_history.checkId = checks.checkId gift_card_history.customerId = checks.customerId gift_card_history.userId = checks.discountUserId gift_card_history.userId = checks.userId |
event_reservation_links |
gift_card_history.checkId = event_reservation_links.checkId |
payments |
gift_card_history.checkId = payments.checkId gift_card_history.customerId = payments.customerId gift_card_history.userId = payments.userId gift_card_history.userId = payments.voidUser |
payments_voided |
gift_card_history.checkId = payments_voided.checkId gift_card_history.customerId = payments_voided.customerId gift_card_history.userId = payments_voided.userId gift_card_history.userId = payments_voided.voidUser |
reservations |
gift_card_history.checkId = reservations.checkId gift_card_history.customerId = reservations.customersId |
event_heat_details |
gift_card_history.customerId = event_heat_details.customerId |
heat_main_details |
gift_card_history.customerId = heat_main_details.customerId gift_card_history.userId = heat_main_details.userId |
memberships |
gift_card_history.customerId = memberships.customerId gift_card_history.userId = memberships.byUserId |
event_tasks |
gift_card_history.userId = event_tasks.completedBy |
users |
gift_card_history.userId = users.userId |
event_reservations |
gift_card_history.userId = event_reservations.userId |
checkDetailId INTEGER |
checkId INTEGER |
customerId INTEGER |
giftCardHistoryId INTEGER |
ipAddress STRING |
notes STRING |
points NUMBER |
transactionDate DATE-TIME |
type INTEGER |
userId INTEGER |
heat_main
The heat_main
table contains info about finished heat mains, which are instances of races on the standard venue calendar.
Key-based Incremental |
|
Primary Key |
heatId |
Replication Key |
finish |
Useful links |
Join heat_main with | on |
---|---|
event_rounds |
heat_main.eventRound = event_rounds.eventRoundId heat_main.type = event_rounds.heatTypeId |
booking |
heat_main.heatId = booking.heatId |
booking_availability |
heat_main.heatId = booking_availability.heatId heat_main.heatId = booking_availability.heatSpotsAvailableCombined heat_main.type = booking_availability.heatTypeId |
heat_main_details |
heat_main.heatId = heat_main_details.heatId |
event_heat_types |
heat_main.type = event_heat_types.heatTypeId |
heat_types |
heat_main.type = heat_types.heatTypesId |
beginning DATE-TIME |
eventRound INTEGER |
finish DATE-TIME |
heatColor INTEGER |
heatId INTEGER |
lapsOrMinutes INTEGER |
memberOnly BOOLEAN |
notes STRING |
numberOfReservation INTEGER |
pointsNeeded INTEGER |
raceBy INTEGER |
racersPerHeat INTEGER |
scheduleDuration INTEGER |
scheduledTime DATE-TIME |
speedLevel INTEGER |
status INTEGER |
track INTEGER |
type INTEGER |
winBy INTEGER |
heat_main_details
The heat_main_details
table contains info about customers that were entered into finished heats.
Key-based Incremental |
|
Primary Keys |
customerId heatId |
Useful links |
Join heat_main_details with | on |
---|---|
check_details |
heat_main_details.customerId = check_details.g_CustId heat_main_details.customerId = check_details.p_CustId heat_main_details.customerId = check_details.s_CustId heat_main_details.userId = check_details.discountUserId |
checks |
heat_main_details.customerId = checks.customerId heat_main_details.userId = checks.discountUserId heat_main_details.userId = checks.userId |
event_heat_details |
heat_main_details.customerId = event_heat_details.customerId |
gift_card_history |
heat_main_details.customerId = gift_card_history.customerId heat_main_details.userId = gift_card_history.userId |
memberships |
heat_main_details.customerId = memberships.customerId heat_main_details.userId = memberships.byUserId |
payments |
heat_main_details.customerId = payments.customerId heat_main_details.userId = payments.userId heat_main_details.userId = payments.voidUser |
payments_voided |
heat_main_details.customerId = payments_voided.customerId heat_main_details.userId = payments_voided.userId heat_main_details.userId = payments_voided.voidUser |
reservations |
heat_main_details.customerId = reservations.customersId |
booking |
heat_main_details.heatId = booking.heatId |
booking_availability |
heat_main_details.heatId = booking_availability.heatId heat_main_details.heatId = booking_availability.heatSpotsAvailableCombined |
heat_main |
heat_main_details.heatId = heat_main.heatId |
event_tasks |
heat_main_details.userId = event_tasks.completedBy |
users |
heat_main_details.userId = users.userId |
event_reservations |
heat_main_details.userId = event_reservations.userId |
autoNo INTEGER |
customerId INTEGER |
finishPosition INTEGER |
firstTime BOOLEAN |
groupFinishPosition INTEGER |
groupId INTEGER |
heatId INTEGER |
lineUpPosition INTEGER |
pointHistoryId INTEGER |
positionEditedDate DATE-TIME |
proskill INTEGER |
proskillDiff INTEGER |
scores NUMBER |
timeAdded DATE-TIME |
userId INTEGER |
heat_types
The heat_types
table contains info about heat types.
Full Table |
|
Primary Key |
heatTypesId |
Useful links |
Join heat_types with | on |
---|---|
booking_availability |
heat_types.heatTypesId = booking_availability.heatTypeId |
event_heat_types |
heat_types.heatTypesId = event_heat_types.heatTypeId |
event_rounds |
heat_types.heatTypesId = event_rounds.heatTypeId |
heat_main |
heat_types.heatTypesId = heat_main.type |
event_types |
heat_types.trackId = event_types.trackId |
cannotBelow INTEGER |
cannotExceed INTEGER |
cost INTEGER |
deleted BOOLEAN |
enabled BOOLEAN |
heatTypesId INTEGER |
isEventHeatOnly BOOLEAN |
isPracticeHeat BOOLEAN |
lapsOrMinutes INTEGER |
memberOnly BOOLEAN |
name STRING |
raceBy INTEGER |
racersPerHeat INTEGER |
scheduleDuration INTEGER |
speedLevel INTEGER |
trackId INTEGER |
winBy INTEGER |
membership_types
The membership_types
table contains info about memberships.
Full Table |
|
Primary Key |
membershipTypeId |
Useful links |
Join membership_types with | on |
---|---|
memberships |
membership_types.membershipTypeId = memberships.membershipTypeId |
description STRING |
enabled INTEGER |
expirationType INTEGER |
expires BOOLEAN |
membershipTypeId INTEGER |
priceLevel INTEGER |
seq INTEGER |
memberships
The memberships
table contains info about memberships, which is a pairing of a customer
and membership_type
.
Key-based Incremental |
|
Primary Keys |
customerId membershipTypeId |
Replication Key |
changed |
Useful links |
Join memberships with | on |
---|---|
check_details |
memberships.customerId = check_details.g_CustId memberships.customerId = check_details.p_CustId memberships.customerId = check_details.s_CustId memberships.byUserId = check_details.discountUserId |
checks |
memberships.customerId = checks.customerId memberships.byUserId = checks.discountUserId memberships.byUserId = checks.userId |
event_heat_details |
memberships.customerId = event_heat_details.customerId |
gift_card_history |
memberships.customerId = gift_card_history.customerId memberships.byUserId = gift_card_history.userId |
heat_main_details |
memberships.customerId = heat_main_details.customerId memberships.byUserId = heat_main_details.userId |
payments |
memberships.customerId = payments.customerId memberships.byUserId = payments.userId memberships.byUserId = payments.voidUser |
payments_voided |
memberships.customerId = payments_voided.customerId memberships.byUserId = payments_voided.userId memberships.byUserId = payments_voided.voidUser |
reservations |
memberships.customerId = reservations.customersId |
membership_types |
memberships.membershipTypeId = membership_types.membershipTypeId |
event_tasks |
memberships.byUserId = event_tasks.completedBy |
users |
memberships.byUserId = users.userId |
event_reservations |
memberships.byUserId = event_reservations.userId |
byUserId INTEGER |
changed DATE-TIME |
customerId INTEGER |
expiration DATE-TIME |
membershipTypeId INTEGER |
notes STRING |
payments
The payments
table contains info about collected payments.
Key-based Incremental |
|
Primary Key |
paymentId |
Replication Key |
payDate |
Useful links |
Join payments with | on |
---|---|
check_details |
payments.checkId = check_details.checkId payments.customerId = check_details.g_CustId payments.customerId = check_details.p_CustId payments.customerId = check_details.s_CustId payments.userId = check_details.discountUserId payments.voidUser = check_details.discountUserId |
checks |
payments.checkId = checks.checkId payments.customerId = checks.customerId payments.userId = checks.discountUserId payments.voidUser = checks.discountUserId payments.userId = checks.userId payments.voidUser = checks.userId |
event_reservation_links |
payments.checkId = event_reservation_links.checkId |
gift_card_history |
payments.checkId = gift_card_history.checkId payments.customerId = gift_card_history.customerId payments.userId = gift_card_history.userId payments.voidUser = gift_card_history.userId |
payments_voided |
payments.checkId = payments_voided.checkId payments.customerId = payments_voided.customerId payments.paymentId = payments_voided.paymentId payments.userId = payments_voided.userId payments.voidUser = payments_voided.userId payments.userId = payments_voided.voidUser payments.voidUser = payments_voided.voidUser |
reservations |
payments.checkId = reservations.checkId payments.customerId = reservations.customersId |
event_heat_details |
payments.customerId = event_heat_details.customerId |
heat_main_details |
payments.customerId = heat_main_details.customerId payments.userId = heat_main_details.userId payments.voidUser = heat_main_details.userId |
memberships |
payments.customerId = memberships.customerId payments.userId = memberships.byUserId payments.voidUser = memberships.byUserId |
event_tasks |
payments.userId = event_tasks.completedBy payments.voidUser = event_tasks.completedBy |
users |
payments.userId = users.userId payments.voidUser = users.userId |
event_reservations |
payments.userId = event_reservations.userId payments.voidUser = event_reservations.userId |
cardType STRING |
checkId INTEGER |
customerId INTEGER |
extCardType STRING |
payAmount NUMBER |
payDate DATE-TIME |
payStatus INTEGER |
payTax NUMBER |
payTerminal STRING |
payType INTEGER |
paymentId INTEGER |
transaction STRING |
userId INTEGER |
voidDate DATE-TIME |
voidNotes STRING |
voidTerminal STRING |
voidUser INTEGER |
payments_voided
The payments_voided
table contains info about voided payments
.
Key-based Incremental |
|
Primary Key |
paymentId |
Replication Key |
voidDate |
Useful links |
Join payments_voided with | on |
---|---|
check_details |
payments_voided.checkId = check_details.checkId payments_voided.customerId = check_details.g_CustId payments_voided.customerId = check_details.p_CustId payments_voided.customerId = check_details.s_CustId payments_voided.userId = check_details.discountUserId payments_voided.voidUser = check_details.discountUserId |
checks |
payments_voided.checkId = checks.checkId payments_voided.customerId = checks.customerId payments_voided.userId = checks.discountUserId payments_voided.voidUser = checks.discountUserId payments_voided.userId = checks.userId payments_voided.voidUser = checks.userId |
event_reservation_links |
payments_voided.checkId = event_reservation_links.checkId |
gift_card_history |
payments_voided.checkId = gift_card_history.checkId payments_voided.customerId = gift_card_history.customerId payments_voided.userId = gift_card_history.userId payments_voided.voidUser = gift_card_history.userId |
payments |
payments_voided.checkId = payments.checkId payments_voided.customerId = payments.customerId payments_voided.paymentId = payments.paymentId payments_voided.userId = payments.userId payments_voided.voidUser = payments.userId payments_voided.userId = payments.voidUser payments_voided.voidUser = payments.voidUser |
reservations |
payments_voided.checkId = reservations.checkId payments_voided.customerId = reservations.customersId |
event_heat_details |
payments_voided.customerId = event_heat_details.customerId |
heat_main_details |
payments_voided.customerId = heat_main_details.customerId payments_voided.userId = heat_main_details.userId payments_voided.voidUser = heat_main_details.userId |
memberships |
payments_voided.customerId = memberships.customerId payments_voided.userId = memberships.byUserId payments_voided.voidUser = memberships.byUserId |
event_tasks |
payments_voided.userId = event_tasks.completedBy payments_voided.voidUser = event_tasks.completedBy |
users |
payments_voided.userId = users.userId payments_voided.voidUser = users.userId |
event_reservations |
payments_voided.userId = event_reservations.userId payments_voided.voidUser = event_reservations.userId |
cardType STRING |
checkId INTEGER |
customerId INTEGER |
extCardType STRING |
payAmount NUMBER |
payDate DATE-TIME |
payStatus INTEGER |
payTax NUMBER |
payTerminal STRING |
payType INTEGER |
paymentId INTEGER |
transaction STRING |
userId INTEGER |
voidDate DATE-TIME |
voidNotes STRING |
voidTerminal STRING |
voidUser INTEGER |
product_classes
The product_classes
table contains info about classes applied to products
. Product classes determine how products are aggregated in Club Speed’s reporting system.
Full Table |
|
Primary Key |
productClassId |
Useful links |
Join product_classes with | on |
---|---|
discount_types |
product_classes.productClassId = discount_types.productClassId |
products |
product_classes.productClassId = products.productClassId |
deleted BOOLEAN |
description STRING |
exportName STRING |
productClassId INTEGER |
products
The products
table contains info about products.
Full Table |
|
Primary Key |
productId |
Useful links |
Join products with | on |
---|---|
discount_types |
products.productClassId = discount_types.productClassId |
product_classes |
products.productClassId = product_classes.productClassId |
booking |
products.productId = booking.productsId |
booking_availability |
products.productId = booking_availability.products.productsId |
check_details |
products.productId = check_details.productId products.taxId = check_details.taxId |
event_types |
products.productId = event_types.onlineProductId |
taxes |
products.taxId = taxes.taxId |
deleted BOOLEAN |
description STRING |
enabled BOOLEAN |
g_Points NUMBER |
p_Points NUMBER |
price1 NUMBER |
price2 NUMBER |
priceCadet NUMBER |
productClassId INTEGER |
productId INTEGER |
productType INTEGER |
r_Points NUMBER |
taxId INTEGER |
reservations
The reservations
table contains info about reservations. Reservations are indications that a customer
is looking to purchase a spot in a booking
or has already purchased a spot.
as the [Replication Key](/docs/replication/replication-keys). This means that reservations will be selected for replication only when they are initially created. Any subsequent updates made to the reservation will not be detected, as the
value will not be updated. Refer to the Key-based Incremental Replication documentation for more info and examples.
Key-based Incremental |
|
Primary Key |
onlineBookingReservationsId |
Replication Key |
createdAt |
Useful links |
Join reservations with | on |
---|---|
booking |
reservations.onlineBookingsId = booking.onlineBookingsId |
booking_availability |
reservations.onlineBookingsId = booking_availability.products.onlineBookingsId |
check_details |
reservations.checkId = check_details.checkId reservations.customersId = check_details.g_CustId reservations.customersId = check_details.p_CustId reservations.customersId = check_details.s_CustId |
checks |
reservations.checkId = checks.checkId reservations.customersId = checks.customerId |
event_reservation_links |
reservations.checkId = event_reservation_links.checkId reservations.onlineBookingReservationsId = event_reservation_links.reservationId |
gift_card_history |
reservations.checkId = gift_card_history.checkId reservations.customersId = gift_card_history.customerId |
payments |
reservations.checkId = payments.checkId reservations.customersId = payments.customerId |
payments_voided |
reservations.checkId = payments_voided.checkId reservations.customersId = payments_voided.customerId |
event_heat_details |
reservations.customersId = event_heat_details.customerId |
heat_main_details |
reservations.customersId = heat_main_details.customerId |
memberships |
reservations.customersId = memberships.customerId |
events |
reservations.onlineBookingReservationsId = events.reservationId |
checkId INTEGER |
createdAt DATE-TIME |
customersId INTEGER |
expiresAt DATE-TIME |
onlineBookingReservationStatusId INTEGER |
onlineBookingReservationsId INTEGER |
onlineBookingsId INTEGER |
quantity INTEGER |
sessionId STRING |
sources
The sources
table contains info about how customers find and register at venues.
Full Table |
|
Primary Key |
sourceId |
Useful links |
deleted BOOLEAN |
enabled BOOLEAN |
locationId INTEGER |
name STRING |
seq INTEGER |
sourceId INTEGER |
taxes
The taxes
table contains info about tax calculations, which are typically applied to products
.
Full Table |
|
Primary Key |
taxId |
Useful links |
Join taxes with | on |
---|---|
check_details |
taxes.taxId = check_details.taxId |
products |
taxes.taxId = products.taxId |
amount NUMBER |
deleted BOOLEAN |
description STRING |
gst NUMBER |
taxId INTEGER |
users
The users
table contains info about employees and system users. Note: While some employees may also be customers
, this table does not contain customer information.
Full Table |
|
Primary Key |
userId |
Useful links |
Join users with | on |
---|---|
check_details |
users.userId = check_details.discountUserId |
checks |
users.userId = checks.discountUserId users.userId = checks.userId |
event_tasks |
users.userId = event_tasks.completedBy |
gift_card_history |
users.userId = gift_card_history.userId |
event_reservations |
users.userId = event_reservations.userId |
heat_main_details |
users.userId = heat_main_details.userId |
memberships |
users.userId = memberships.byUserId |
payments |
users.userId = payments.userId users.userId = payments.voidUser |
payments_voided |
users.userId = payments_voided.userId users.userId = payments_voided.voidUser |
cardId INTEGER |
deleted BOOLEAN |
STRING |
empStartDate DATE-TIME |
enabled BOOLEAN |
firstname STRING |
isSystemUser BOOLEAN |
lastname STRING |
phone STRING |
userId INTEGER |
username STRING |
Related | Troubleshooting |
Questions? Feedback?
Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.