Overview of the data structures within the Retreat Guru software, and details of the format and content of the files that may be imported prior to the initial go-live.
Scope and Limitations
A data import is available as a fee-for-service for centers subscribed to an Enterprise subscription plan. Contact your friendly support guru for more information about this service.
Import of historical data is typically limited to first name, last name, email, program name, program start date, and program end date. This data must be submitted in CSV format using the templates provided by RG.
Import of current and future data may contain additional fields, including transactions and data that will populate custom questions.
Import of data is subject to the following conditions:
- Data must be imported prior to your go-live date.
- Files must use the templates provided by RG and be submitted in CSV format.
- The data structure of the import must match the structure of the data within the RG application.
- The only files that can be imported are registrations, programs, teachers, transactions (charges and payments), rooms, and lodging types.
- Each entry in the registration file must be for a single individual attending a single program with a contiguous date range.
- If a room is assigned it must be the same room for the entire stay.
You will have the opportunity to validate the accuracy of imported data before going live.
Data imports must be completed prior to your go-live date.
No data imports will be conducted post go-live.
Retreat Guru engineering services are limited to the performance of the actual import. Data scrubbing, reformatting, and other pre-import services are not available.
Overview of the data structure
The core RG data component is a registration.
A registration is specific to a single individual attending a single program for a single, contiguous date range.
Registrations are stored in the registrations table, with the registration_id as the key field that uniquely identifies a registration. All transactions associated with the registration (charges and payments) are stored in a transactions table, linked to the registration record by this registration_id field.
Each registration must contain a program_id (a field that references the programs table). If accommodation is associated with the registration, then the registration must also have a lodging_id
(a field that references the lodgings table) and room_id (references the rooms table).
When the multiple registrations feature is enabled in RG, a single guest can book multiple people during the online registration. The resulting registrations differ from the single registrations described above:
- The first guest in a multiple registration is the group lead. All transactions (charges and payments) for all the guests in the group are linked to this group lead registration.
- Although no transactions are associated with group members (all transactions are associated with the group lead), group members do have contact, room, and lodging information.
- The group leader’s registration_ID is used to link the member's registration to the leader's registration.
Files for Import
Files must use the templates provided by RG and be submitted in CSV format, with individual files for registrations, programs, teachers, transactions (charges and payments), rooms, and lodging types.
Field names are case-sensitive.
If you choose to create programs, lodgings, and rooms manually in RG prior to the import, the import data will include fields for program_id, lodging_id, room_id (the existing id’s in RG).
If you choose to import programs, lodgings, and rooms, then the related import files must include fields for program_id_original, lodging_id_original, and room_id_original. These id fields allow the import process to match the imported registrations to the appropriate programs, lodgings, and rooms.
See accompanying templates (CSV files) for examples of import files:
- registrations_example.csv
- programs_example.csv
- transactions_example.csv
- teachers_example.csv
- lodgings_example.csv
- rooms_example.csv
The tables below detail the data stored in RG, and how the data relates to the import files.
We may be able to import additional data to populate custom questions in your RG configuration. Please explore this option with your RG representative before creating your import files.
Historical Data
The import of historical data is limited to first name, last name, email, and program.
Registrations File Record |
||
Field |
Description |
Required for import? |
status |
Options: reserved, pending, need-approval, unconfirmed, canceled, arrived, checked-out, duplicate. |
Required |
time_submitted |
YYYY-MM-DD (the registration date) |
Required |
arrive_date |
YYYY-MM-DD |
Required |
depart_date |
YYYY-MM-DD |
Required |
first_name |
|
Required |
last_name |
|
Required |
|
Optional |
|
registration_id_original |
The key, a unique field in the legacy import registration data. Import files do not supply the registration_id - it is automatically assigned (sequential) during the import process. |
Optional |
program_id_original OR program_id |
If programs are imported, then the registration records need to reference the imported program. If programs are not being imported and are manually created in RG then the file must reference the existing program_id. |
Required |
Future Data
The data included in the future date import is subject to the structure and format of the data within RG.
Registrations File Record |
||
Field |
Description |
Required for import? |
registration_id |
the key, unique field. This is automatically, sequentially assigned (not used in an import. See registration_id_original below) |
n/a |
program_id |
references the program that is associated with the registration (for programs existing in RG) |
Required (If program is already created in RG) |
status |
Options: reserved pending need-approval unconfirmed canceled arrived checked-out duplicate |
Required |
time_submitted |
YYYY-MM-DD (the registration date) |
Required |
arrive_date |
YYYY-MM-DD |
Required |
depart_date |
YYYY-MM-DD |
Required |
first_name |
|
Required |
last_name |
|
Required |
Built-in address, contact info, and registration question fields |
address, address2,city,state,zip, country. email, phone, birth-date, etc IMPORTANT: the field name must be the “slug” displayed in the Questions list in RG |
Optional |
Other fields as needed |
Custom questions already created in RG. IMPORTANT: the field name must be the “slug” displayed in the Questions list in RG |
Optional |
room_id |
references the room that is associated with the registration (for rooms existing in RG) |
Optional (use when a room is already created in RG) |
lodging_id |
references the lodging type that is associated with the registration (for lodgings existing in RG). |
Optional (use when lodging is already created in RG) |
Specific to import data |
||
registration_id_original |
The key, unique field in the legacy import registration data. This is required to match up with imported Transactions. Import files do not supply the registration_id, which is automatically, sequentially assigned during the import process |
Required |
group_lead_id_original |
Where you are importing group members, this field is required to link the group member record with the group leader. If this is blank, then the registration is a single registration. If a value is provided then the registration becomes a member of the group of which the group_lead_id_original is the leader. |
Optional |
program_id_original |
If programs are imported, then the registration records need to reference the imported program. Note that in an import some registrations may need to supply a program_id (where the programs have been manually created in RG. Usually for future programs) and others a program_id_original (programs are to be imported. Usually for past programs) |
Required (If a program is being created in RG during the import) |
room_id_original |
If rooms are imported, then the registration records need to reference the imported room. Note that in an import some registrations need to supply a room_id (where the rooms have been manually created in RG) and others a room_id_original (rooms are to be imported). |
Optional (use when a room is being created in RG during the import) |
lodging_id_original |
If lodgings are imported, then the registration records need to reference the imported lodging. Note that in an import some registrations need to supply a lodging_id (where the lodgings have been manually created in RG) and others a lodging_id_original (lodgings are to be imported). |
Optional (use when lodging is being created in RG during the import) |
parent_registration_id_original |
Needed for Groups. In a Group, a single registration record (Group Leader) contains the transactions for all members of the Group. The group member's registration records need to reference the registration_id_original of the group’s leader in the parent_registration_id_original field. |
Optional |
Teachers File Record |
||
Field |
Description |
Required for import? |
name |
The teacher's full name. This must be unique |
Required |
description |
Optional |
|
featured_image |
Specify a direct URL to an image to download and use it for this teacher (image file is imported into Media) |
Optional |
categories |
Teacher category slugs must match existing teacher categories, separate multiple with | pipe |
Optional |
sort_order |
The order in which to display teachers on the teacher list (in ascending order) |
Optional |
Transactions File Record |
||
Field |
Description |
Required for import? |
object_type |
Normally registration. |
Required |
transaction_id |
the key, unique field, not used for import. Auto sequentially assigned during the import process. |
n/a |
registration_id |
The registration that the transaction is associated with (not used in an import. |
n/a |
status |
Options: complete pending cancel fail. (Defaults to complete). |
Required |
trans_date |
YYYY-MM-DD |
Required |
description |
short text describe transaction |
Required |
charge_amount |
$ amount when category is: refund other-refund cancel donate-reg extra-nights lodging other-charge program-addon program transfer-to-personal-credit or transport. |
Required One of charge_amount or credit_amount |
credit_amount |
$ amount when category is: payment other-payment applied-personal-credit discount financial-aid or other-credit |
Required One of charge_amount or credit_amount |
category |
See options in charge_amount and credit_amount |
Required |
fund_method |
Options: cash check credit-card bank-transfer PayPal debit-card existing-credit other |
Required |
Specific to import data |
||
registration_id_original |
The key, unique field in the import registration data. This is required to match up with imported Transactions. |
Required |
Programs File Record |
||
Field |
Description |
Required for import? |
program_id |
the key, unique field (not used in an import. See program_id_original below) |
n/a |
Title |
|
Required |
description |
|
Optional |
date_type |
fixed, hotel, package, dateless |
Required |
date_start |
YYYY-MM-DD |
Required (for fixed) |
date_end |
YYYY-MM-DD |
Required (for fixed) |
categories |
Program categories will be added on import, separate multiple with | pipe
|
Optional |
Specific to import data |
||
program_id_original |
The key, unique field in the import Program data. This is required to match up with imported Registrations. |
Required |
Lodgings File Record |
||
Field |
Description |
Required for import? |
lodging_id |
the key, unique field (not used in a Lodging import. See lodging_id_original below) |
n/a |
lodging_name |
|
Required |
description |
|
Optional |
hotel_or_shared |
"hotel", "shared" or empty. Hotel-style: people that know each other in a room, price is different per person. Shared style: strangers can share a room. Defaults to shared if left empty. |
Optional |
shared_max_occupancy |
Max number a room can hold (for Shared style lodging type) |
Optional |
shared_price |
Price per person |
Optional |
hotel_max_occupancy |
Max number a room can hold (for Hotel-style lodging type) |
Optional |
hotel_pricing |
The 2nd, 3rd, etc. prices are the DIFFERENCE to the one before it. So if your prices are 1st person: $100, 2nd person: $120, 3rd: $130, then you must enter "100 | 20 | 10". |
Optional |
order |
Use to order the lodging types. Tip: count by 10s to insert others later |
Optional |
Specific to import data |
||
lodging_id_original |
The key, unique field in the import Lodging data. This is required to match up with imported Rooms and Registrations. |
Required |
Rooms File Record |
||
Field |
Description |
Required for import? |
room_id |
the key, unique field (not used in a Room import. See lodging_id_original below) |
n/a |
room_name |
|
Required |
lodging_id |
Where the Lodging is manually created in RG before the import. Note that in an import some rooms will need to supply a lodging_id (where the lodgings have been manually created in RG) and others a lodging_id_original (lodgings are to be imported). |
Required (if Lodging is already created in RG) |
Specific to import data |
||
room_id_original |
The key, unique field in the import Room data. This is required to match up with imported Registrations. |
Required |
Lodging_ids_original |
If lodgings are imported, then the room records need to reference the imported lodging. Separate multiple lodging ids with a |. The first is the primary, others are secondary. |
Required (if Lodging is being created in RG during the import) |
See accompanying templates (CSV files) for examples of import files:
- registrations_example.csv
- programs_example.csv
- transactions_example.csv
- teachers_example.csv
- lodgings_example.csv
- rooms_example.csv
We love data! Do you?
If you have any questions or comments contact your friendly support guru.