The Property Data Importer brings property, reservation, guest, space, and rate plan data into Bookboost from an external system. This is the field reference: what each field is called, what it accepts, and which ones are required.
Read the required-field rules first. Four of the five models accept more than one field as their identifier, so "required" means "one of these", not "all of these". Getting that wrong is the most common reason a mapping fails before anything else is looked at.
Fields containing a colon, such as address:city, are nested data that create or update a related record. They are listed with their prefix.
Property model fields
id (Required*)
Unique identifier for the property. Either id or name must be provided.
PROP-00112345hotel-downtown-nycproperty_abc123
Note: Required if name is not provided.
name (Required*)
Name of the property. Either id or name must be provided.
Grand Hotel DowntownBeachside Resort & SpaCity Center HotelMountain View Lodge
Note: Required if id is not provided.
Reservation model fields
id (Required*)
Unique identifier for the reservation. Either id or booking_reference must be provided.
RES-2024-00123412345678booking-abc-xyz-12320240115-001
Note: Required if booking_reference is not provided.
booking_reference (Required*)
Booking reference number from the source system. Either id or booking_reference must be provided.
BK-2024-001234ABC123XYZ1234567890WEB-2024-01-15-001
Note: Required if id is not provided.
status (Optional)
Current status of the reservation. Bookboost normalises common variations, so you do not have to reformat your source values.
confirmed→ normalised toexpectedcheckin/checked in/check_in/check-in→ normalised tochecked_incheckout/checked out/check_out/check-out→ normalised tochecked_outdue in/duein/due_in/due-in→ normalised todue_indue out/dueout/due_out/due-out→ normalised todue_outno show/noshow/no-show→ normalised tono_showcanceled→ normalised tocancelledAccepted as they are:
enquired,requested,transferred,waitlisted,other
Format: String, 2 to 16 characters
market_segment (Optional)
Market segment classification for the reservation.
GroupBusinessLeisureCorporateIndividualFamily
Format: String, max 255 characters
market_category (Optional)
Market category classification.
PromotionNon-PromotionStandardPremiumDiscount
Format: String, max 255 characters
channel_segment (Optional)
Channel segment through which the reservation was made.
MessagingPhoneChannel ManagerDirectOnlineWalk-in
Format: String, max 255 characters
channel_category (Optional)
Specific channel category or booking source.
BookingcomExpediaAirbnbHomeAwayAgodaWebsiteMapsChatbotWhatsappFacebookWeChatSiteminderBookingEngineSMXOKTA
Format: String, max 255 characters
agency_name (Optional)
Name of the travel or booking agency.
ABC Travel AgencyGlobal Travel ServicesCorporate Travel SolutionsVacation Experts Inc.
Format: String, max 255 characters
iata_code (Optional)
IATA code for the travel agency.
12345678ABC1234598765432
Format: String, max 255 characters
arrival_date_time (Optional)
Date and time of guest arrival.
2024-01-15 14:00:002024-01-15T14:00:00Z2024-01-1515/01/2024 14:002024-01-15 2:00 PM
Format: Any common date or date-time format
departure_date_time (Optional)
Date and time of guest departure.
2024-01-20 11:00:002024-01-20T11:00:00Z2024-01-2020/01/2024 11:002024-01-20 11:00 AM
Format: Any common date or date-time format
number_of_units (Optional)
Number of units, meaning rooms or spaces, in the reservation.
12510
Format: Integer
number_of_adults (Optional)
Number of adults in the reservation.
1246
Format: Integer
number_of_children (Optional)
Number of children in the reservation.
0123
Format: Integer
start (Optional)
Start date of the reservation.
2024-01-152024-01-15 00:00:0015/01/20242024-01-15T00:00:00Z
Format: Date
end (Optional)
End date of the reservation.
2024-01-202024-01-20 00:00:0020/01/20242024-01-20T00:00:00Z
Format: Date
currency (Optional)
Currency code for the reservation amounts.
USDEURGBPJPYCADAUDCHF
Format: ISO 4217 three-letter code
total_gross_amount (Optional)
Total gross amount for the reservation. How it is read depends on your money_in_cents configuration.
With
money_in_centsset totrue:15000represents 150.00With
money_in_centsset tofalse:150.00is multiplied by 100 and stored as 15000 cents
Format: Integer when money_in_cents is true, otherwise numeric
total_tax (Optional)
Total tax amount for the reservation, in cents.
1500represents 15.002500represents 25.000
Format: Integer
notes (Optional)
General notes about the reservation. Creates a note record attached to it.
Guest requested late checkoutAllergic to peanuts - please noteCelebrating anniversary - room upgrade requestedVIP guest - special attention required
Format: String
connector:created (Optional)
When the record was created in the source system.
2024-01-15 10:30:002024-01-15T10:30:00Z2024-01-15
Format: Date or date-time
connector:updated (Optional)
When the record was last updated in the source system.
2024-01-16 14:20:002024-01-16T14:20:00Z2024-01-16
Format: Date or date-time
User model fields
id (Required*)
Unique identifier for the guest. Either id, email, or phone must be provided.
USER-00112345john.doe@example.com, where email is used as the ID+1234567890, where phone is used as the ID
Note: Required if neither email nor phone is provided. Where none is given, Bookboost generates one from the email, phone, or full name.
full_name (Optional)
Full name of the guest. If provided, it is split automatically into first_name and last_name.
John DoeMary Jane WatsonJean-Pierre DuboisMaria Elena Rodriguez
Format: String
first_name (Optional)
First name of the guest.
JohnMaryJean-PierreMaria Elena
Format: String
last_name (Optional)
Last name of the guest.
DoeWatsonDuboisRodriguez
Format: String
email (Required*)
Email address of the guest. Validated and converted to lowercase. Either id, email, or phone must be provided.
john.doe@example.commary.jane@company.co.ukuser+tag@domain.comtest_user123@example.org
Format: Valid RFC-compliant email address Note: Required if neither id nor phone is provided.
phone (Required*)
Phone number of the guest. Validated on import. Either id, email, or phone must be provided.
+1234567890+44 20 1234 5678+33 1 23 45 67 89(555) 123-4567+1-555-123-4567
Format: Valid phone number Note: Required if neither id nor email is provided.
gender (Optional)
Gender of the guest.
MaleFemaleOtherPrefer not to say
Format: String
nationality (Optional)
Nationality of the guest. Converted automatically to a country code.
United States→USUnited Kingdom→GBFrance→FRGermany→DE
Format: Country name, stored as an ISO country code
language (Optional)
Preferred language of the guest. Converted automatically to an ISO 639 code.
English→enFrench→frSpanish→esGerman→de
Format: Language name, stored as an ISO 639 code
salutation (Optional)
Salutation or title.
Mr.Mrs.Ms.Dr.Prof.
Format: String
birthday (Optional)
Date of birth.
1990-05-151985-12-2515/05/19901990-05-15T00:00:00Z
Format: Date
address:address_line1 (Optional)
First line of the guest's address.
123 Main Street456 Oak Avenue, Apt 4B789 Park Road
Format: String
address:address_line2 (Optional)
Second line of the guest's address, such as an apartment or suite.
Apt 4BSuite 200Building 2, Floor 3P.O. Box 123
Format: String
address:city (Optional)
City.
New YorkLondonParisTokyo
Format: String
address:country (Optional)
Country.
United StatesUnited KingdomFranceJapan
Format: String
address:zip_code (Optional)
ZIP or postal code.
10001SW1A 1AA75001100-0001
Format: String
The consent fields below all require consent:consent_code. A consent value with no code attached has nothing to attach itself to. For what the statuses mean, see Consent management essentials.
consent:consent_code (Optional)
Code identifying the consent type. It has to match a consent code that already exists in Bookboost.
marketing_emailsms_notificationsdata_processingthird_party_sharing
Format: String, must already exist Note: Requires consent:is_granted to be true for the consent to be granted.
consent:is_granted (Optional)
Whether the consent is granted.
true/True/TRUE/1/yes/Yes→ grants consentfalse/False/FALSE/0/no/No→ does not grant consent
Format: Boolean
consent:is_pending (Optional)
Whether the consent is pending.
true/True/TRUE/1/yes/Yes→ consent is pendingfalse/False/FALSE/0/no/No→ consent is not pending
Format: Boolean
consent:requested_at (Optional)
When the consent was requested, for example when a double opt-in confirmation was sent. Use this to bring a historical consent timeline across from a previous system.
2024-01-15 10:30:002024-01-15T10:30:00Z2024-01-15
Format: Date or date-time Note: Requires consent:consent_code. Without it, the date recorded is when the event reached Bookboost, not when it happened.
consent:granted_at (Optional)
When the guest granted the consent. Use this to preserve the original opt-in date during a migration, rather than letting the import date stand in for it.
2024-01-16 09:12:002024-01-16T09:12:00Z2024-01-16
Format: Date or date-time Note: Requires consent:consent_code. Without it, the date recorded is when the event reached Bookboost, not when it happened.
consent:revoked_at (Optional)
When the guest withdrew the consent. Only applies where consent was revoked.
2025-03-02 18:45:002025-03-02T18:45:00Z2025-03-02
Format: Date or date-time Note: Requires consent:consent_code. Leave empty for consents that were never revoked.
Consent status (Optional)
You can import the consent status directly, as an alternative to the consent:is_granted and consent:is_pending booleans. Select the consent status field in the data mapper and map your own column to it.
grantedpendingrevokedgranted implicit
Note: Requires consent:consent_code. Use either the status field or the booleans for a given consent, never both.
company:name (Optional)
Name of the company associated with the guest.
Acme CorporationTech Solutions Inc.Global Enterprises Ltd.Smith & Associates
Format: String
classification (Optional)
Guest classification or category. Synced with the PMS integration where one is available.
VIPCorporateMemberRegularPremium
Format: String
loyalty_programs:name (Optional)
Name of the loyalty programme.
Gold RewardsPlatinum EliteStar AllianceHotel Rewards Program
Format: String, max 255 characters Note: Required if loyalty_programs:external_membership_id is provided.
loyalty_programs:external_membership_id (Optional)
Membership ID in the loyalty programme.
123456789GOLD-ABC-123PLT-987654MEM-2024-001
Format: String, max 255 characters Note: Required if loyalty_programs:name is provided.
Space model fields
id (Required*)
Unique identifier for the space, meaning a room or unit. Either id or name must be provided.
ROOM-101101Suite-201space_abc123
Note: Required if name is not provided. Where it is missing, Bookboost uses the name value.
name (Required*)
Name of the space. Either id or name must be provided.
Deluxe Room 101Suite 201Ocean View RoomPenthouse Suite
Note: Required if id is not provided. Where it is missing, Bookboost uses the id value.
state (Optional)
Current state of the space.
AvailableOccupiedOut of OrderMaintenanceCleaning
Format: String
number (Optional)
Room or space number.
101201ASuite-301Villa-5
Format: String, max 1024 characters
type:code (Optional)
Code for the space type. This is the primary identifier for a space type, and the type is created or updated when it is provided.
DLXSTDEXEPRESSTU
Format: String, max 64 characters
type:name (Optional)
Name of the space type.
Deluxe RoomStandard SuiteExecutive RoomPresidential SuiteStudio Apartment
Format: String Note: Requires type:code for the type to be created or updated.
type:description (Optional)
Description of the space type.
Spacious room with king-size bed and city viewLuxury suite with separate living areaStandard room with two queen bedsPremium accommodation with ocean view balcony
Format: String
RatePlan model fields
id (Required)
Unique identifier for the rate plan. This is the only model where a single field is required outright.
RATE-001BAR, for Best Available RateCORP-2024PROMO-SUMMER
Format: String
name (Optional)
Name of the rate plan.
Best Available RateCorporate Rate 2024Summer PromotionEarly Bird SpecialWeekend Package
Format: String
code (Optional)
Code for the rate plan.
BARCORPPROMOEBWKND
Format: String
description (Optional)
Description of the rate plan.
Our best available rate with flexible cancellationSpecial corporate rate for business travelersLimited time summer promotion with 20% discountEarly booking discount for advance reservations
Format: String
Which field is required on each model
Four of the five models accept alternatives, so you need one of the listed fields rather than all of them.
Property.
idornameReservation.
idorbooking_referenceUser.
id,email, orphoneSpace.
idornameRatePlan.
id, with no alternative
What the colon prefixes mean
A colon in a field name means the value belongs to a related record rather than to the model itself.
address:creates or updates the address on the guest.consent:attaches a consent. The consent code has to exist in Bookboost already.company:creates or updates the company relationship.loyalty_programs:creates or updates the loyalty programme relationship.type:creates or updates the space type.connector:carries metadata about the source system.
What gets converted on the way in
You do not need to normalise these before importing. Bookboost handles them.
Dates. Read from a wide range of formats.
Integers.
number_of_units,number_of_adults,number_of_children, andtotal_taxare converted to whole numbers.Money.
total_gross_amountis read according to yourmoney_in_centssetting.Booleans. Consent fields accept true, TRUE, 1, yes, and their opposites.
Email. Validated and lowercased.
Phone. Validated for a usable format.
Country and language. Converted from names to ISO codes.
Reservation status. Common variations are normalised, so
checkin,check-in, andchecked inall becomechecked_in.
What this does not do
It does not create consents. A
consent:consent_codethat does not already exist in Bookboost causes the row to fail rather than creating the consent.It does not fill in consent dates for you. Where
consent:requested_at,consent:granted_at, andconsent:revoked_atare missing, the dates recorded are when the import ran, not when the guest acted.It does not guess the money format.
total_gross_amountis read according tomoney_in_cents, so getting that setting wrong shifts every amount by a factor of a hundred.It does not pair loyalty fields for you. Provide one of the two loyalty fields and the other becomes required.
It is not the one-off file import. Uploading a guest list by hand is a different thing. See Import guest data from a file.
What to do next
If you are importing consent, read Consent management essentials first, so the statuses and dates you map mean what you expect them to.
Getting help
Open Help at the bottom of the left menu and choose Talk to Us, or email support@bookboost.io.