---
schema_version: "1"
id: c1a14cd1b4d6901cb37620cbfc46bd6809ccc5de089560a4b1b972ffffba35f8
title: Booking ETL File Schema
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/mktg/264-0-0/mc_pers_hotel_gear_etl_schema.md
canonical_url: https://help.salesforce.com/s/articleView?id=mktg.mc_pers_hotel_gear_etl_schema.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 47dc0f2f2910ca48ef2ceb71a7237515434cec1fc32c2d6b99ca397ac29f9df2
description: If you send data from your hotel booking system to Personalization, configure your file according to the Booking ETL file schema.
products:
  - Marketing
  - Salesforce Personalization
release: "264"
---
# Booking ETL File Schema

If you send data from your hotel booking system to Personalization, configure your file according to the Booking ETL file schema.

## File Name Format

`booking-YYYY-MM-DD_HH-MM-SS.csv`

## Required Identity Fields

You must include one identity field in your Booking ETL file. Depending on whether you use the multiple identities system, the required identity field is different.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:16.211878009630816%">
          <col style="width:34.831460674157306%">
          <col style="width:17.49598715890851%">
          <col style="width:13.643659711075443%">
          <col style="width:17.81701444622793%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" id="d34543e60">Field Name </th>
            <th scope="col" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" id="d34543e63">Minimum Requirements </th>
            <th scope="col" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" id="d34543e66">Sample Values </th>
            <th scope="col" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" id="d34543e69">Maximum Length </th>
            <th scope="col" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" id="d34543e72">Data Type </th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d34543e60 ">
              <ul>
                <li>
                  <code>userId</code>
                </li>

                <li>another identity attribute, such as email address</li>

              </ul>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e63 ">
              <p>Required.</p>
              <ul>
                <li>If you aren’t using Personalization's multiple identities system, you
                  must include a user ID for each record. The user ID must be one that
                  the Personalization platform tracks so that it can attach events to
                  the specific user profile.</li>

                <li>If you’re using Personalization's multiple identities system, you
                  must include at least one identity attribute because ETL file loads
                  don’t reference userID. You can include multiple identity attributes
                  for a single user by adding multiple columns to the file. For more
                  information, see <a href="https://help.salesforce.com/s/articleView?id=mktg.mc_pers_hotel_gear_etl_multiple_identities.htm&amp;release=264.0.0&amp;type=5" title="If you use the multiple identities system, you must include at least one identity attribute in the Booking ETL file. You can send multiple identity attributes for a single bookingID by adding multiple identity attribute columns in the file.">Guidelines for Sending Multiple Identities in a Booking ETL File</a>. </li>

              </ul>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e66 ">
              <ul>
                <li>user168515262</li>

                <li>jdoe@test.com</li>

              </ul>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d34543e69 ">
              <p style="margin-bottom:0;">120</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d34543e72 ">
              <p style="margin-bottom:0;">String</p>
            </td>

          </tr>
        </tbody>
      </table>

## Other Required Fields

There are additional fields that you must include in any Booking ETL file you send. Match the field names and meet the requirements.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:14.606741573033707%">
          <col style="width:41.25200642054575%">
          <col style="width:16.211878009630816%">
          <col style="width:13.32263242375602%">
          <col style="width:14.606741573033707%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d34543e174">Field Name </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d34543e177">Minimum Requirements </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d34543e180">Sample Values </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d34543e183">Maximum Length </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d34543e186">Data Type </th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e174 ">
              <code>bookingId</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e177 ">
              <p style="margin-bottom:0;"> Required. The <code>bookingId</code> is a unique
                identifier for an individual booking, and is a requirement for each
                record in the file. All line items from a booking must share a <code>bookingId</code>. Sort Booking ETL files by
                bookingID so that all records that share a <code>bookingId</code> are in consecutive rows.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e180 ">
              <p style="margin-bottom:0;">860340254</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e183 ">
              <p style="margin-bottom:0;">255</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e186 ">
              <p style="margin-bottom:0;">String</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e174 ">
              <code>bookingDate</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e177 ">
              <p style="margin-bottom:0;"> Required. The <code>bookingDate</code> is the
                date of the transaction. Format booking date and time strings in <a href="https://www.iso.org/iso-8601-date-and-time-format.html" target="_blank">ISO 8601</a> format. Personalization
                uses the first booking record for a <code>bookingId</code> to define the overall order of booking events.
                Personalization stores all dates in UTC time.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e180 ">
              <p>2020-10-15</p>
              <p style="margin-bottom:0;">2020-01-09T11:24:59Z</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e183 ">
              <p style="margin-bottom:0;">1023</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e186 ">
              <p style="margin-bottom:0;">Date</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e174 ">
              <code>productId</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e177 ">
              <p style="margin-bottom:0;"> Required. The <code>productId</code> represents
                the product in the catalog that is booked in the transaction. If the ID
                doesn’t reflect an existing product in the catalog, Personalization
                creates an item in your catalog with the <code>productId</code>. The <code>productId</code> value must match the format of other product IDs
                that exist in your catalog, that you send through the Product ETL data
                feed, or that you track on your website.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e180 ">
              <p>prod001,</p>
              <p style="margin-bottom:0;">prod1101</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e183 ">
              <p style="margin-bottom:0;">255</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e186 ">
              <p style="margin-bottom:0;">String</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e174 ">
              <code>price</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e177 ">
              <p style="margin-bottom:0;"> Required. The <code>price</code> is the unit
                price to charge the user. Use a period as the decimal separator. Don’t
                include a thousand separator. Personalization multiplies the price by the
                quantity to determine the total cost of the booking record. For example,
                if the price is $1.10 and the quantity is 3, the total cost of the line
                item is $3.30.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e180 ">
              <p style="margin-bottom:0;">150, 63.25, 10</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e183 ">
              <p style="margin-bottom:0;">1023</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e186 ">
              <p style="margin-bottom:0;">Decimal</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e174 ">
              <code>quantity</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e177 ">
              <p style="margin-bottom:0;"> Required. The <code>quantity</code> is the net
                quantity a user purchases. Personalization multiplies the quantity by the
                price to determine the total cost of the line item in the transaction.
                Personalization adds all line items for a single bookingID, which equals
                the total value of the order.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e180 ">
              <p style="margin-bottom:0;">1, 50, 100</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e183 ">
              <p style="margin-bottom:0;">1023</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e186 ">
              <p style="margin-bottom:0;">Integer</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e174 ">
              <code>attribute:property</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e177 ">
              <p style="margin-bottom:0;"> Required. The property name that is associated with the booking. The
                property name must match the property catalog object that’s stored with
                the catalog item being booked in the transaction.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e180 ">
              <p style="margin-bottom:0;">Downtown Main Hotel</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e183 ">
              <p style="margin-bottom:0;">255</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e186 ">
              <p style="margin-bottom:0;">String</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e174 ">
              <code>attribute:bookedCheckInDate</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e177 ">
              <p style="margin-bottom:0;"> Required. Format the scheduled check-in date in <a href="https://www.iso.org/iso-8601-date-and-time-format.html" target="_blank">ISO 8601</a> format. Multiple line
                items for the same booking must have the same check-in date.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e180 ">
              <p>2020-10-15</p>
              <p style="margin-bottom:0;">2020-01-09T11:24:59Z</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e183 ">
              <p style="margin-bottom:0;">1023</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e186 ">
              <p style="margin-bottom:0;">Date</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e174 ">
              <code>attribute: bookedCheckOutDate</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e177 ">
              <p style="margin-bottom:0;"> Required. Format the scheduled check-out date in <a href="https://www.iso.org/iso-8601-date-and-time-format.html" target="_blank">ISO 8601</a> format. Multiple line
                items for the same booking must have the same check-out date.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e180 ">
              <p>2020-10-15</p>
              <p style="margin-bottom:0;">2020-01-09T11:24:59Z</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e183 ">
              <p style="margin-bottom:0;">1023</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e186 ">
              <p style="margin-bottom:0;">Date</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e174 ">
              <code>attribute: adults</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e177 ">
              <p style="margin-bottom:0;"> Required. The number of adults on the booking.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e180 ">
              <p style="margin-bottom:0;">1, 2</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e183 ">
              <p style="margin-bottom:0;">1023</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e186 ">
              <p style="margin-bottom:0;">Integer</p>
            </td>

          </tr>
        </tbody>
      </table>

## System Fields

Additional system fields aren’t required in the file, but if you include them, you must match the field names and meet the requirements.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:17.335473515248793%">
          <col style="width:38.362760834670944%">
          <col style="width:15.730337078651685%">
          <col style="width:12.680577849117174%">
          <col style="width:15.890850722311397%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d34543e576">Field Name </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d34543e579">Minimum Requirements </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d34543e582">Sample Values </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d34543e585">Maximum Length </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d34543e588">Data Type </th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e576 ">
              <code>attribute:checkInTime</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e579 ">
              <ul>
                <li>Format the scheduled check-in time in <a href="https://www.iso.org/iso-8601-date-and-time-format.html" target="_blank">ISO 8601</a> format. </li>

                <li>Multiple line items for the same booking must have the same check-in
                  time.</li>

                <li>If you don’t send a value, the system assigns the required check-in
                  date value until you send a check-in time in a subsequent Booking ETL
                  file. For more information, see <a href="https://help.salesforce.com/s/articleView?id=mktg.mc_pers_hotel_gear_booking_update.htm&amp;release=264.0.0&amp;type=5" title="You can use the Booking ETL data feed to update booking information in Personalization, such as updating a check-in time that wasn’t in the initial booking.">Update a Booking</a>. </li>

              </ul>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e582 ">
              <p>2020-10-15</p>
              <p style="margin-bottom:0;">2020-01-09T11:24:59Z</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e585 ">
              <p style="margin-bottom:0;">1023</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e588 ">
              <p style="margin-bottom:0;">Date</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e576 ">
              <code>attribute:checkOutTime</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e579 ">
              <ul>
                <li>Format the scheduled check-out time in <a href="https://www.iso.org/iso-8601-date-and-time-format.html" target="_blank">ISO 8601</a> format. </li>

                <li>Multiple line items for the same booking must have the same check-out
                  time.</li>

                <li>If you don’t send a value, the system assigns the required check-out
                  date value until you send a check-out time in a subsequent Booking ETL
                  file. For more information, see <a href="https://help.salesforce.com/s/articleView?id=mktg.mc_pers_hotel_gear_booking_update.htm&amp;release=264.0.0&amp;type=5" title="You can use the Booking ETL data feed to update booking information in Personalization, such as updating a check-in time that wasn’t in the initial booking.">Update a Booking</a>. </li>

              </ul>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e582 ">
              <p>2020-10-15</p>
              <p style="margin-bottom:0;">2020-01-09T11:24:59Z</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e585 ">
              <p style="margin-bottom:0;">1023</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e588 ">
              <p style="margin-bottom:0;">Date</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e576 ">
              <code>attribute:children</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e579 ">
              <p style="margin-bottom:0;">The number of children on the booking. If you don’t send a value, the
                system assigns a value of 0.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e582 ">
              <p style="margin-bottom:0;">2, 3</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e585 ">
              <p style="margin-bottom:0;">1023</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e588 ">
              <p style="margin-bottom:0;">Integer</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e576 ">
              <code>attribute:bookingStatus</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e579 ">
              <p style="margin-bottom:0;">The current state of the booking, which your administrator must configure
                for the Hotel Gear. The value in the ETL file and in the Hotel Gear
                configuration screen aren’t case-sensitive. For more information, see
                <a href="https://help.salesforce.com/s/articleView?id=mktg.mc_pers_hotel_gear_activate.htm&amp;release=264.0.0&amp;type=5" title="Activate the Hotel Gear to bring in data from your hotel booking systems. The Hotel Gear is dataset-specific, so you must activate it for each dataset that has campaigns or promotions that you want to target with booking system data. You send booking system data by the Booking ETL data feed.">Activate the Hotel Gear</a>.
              </p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e582 ">
              <p style="margin-bottom:0;">Reserved, Canceled, In-House, No Show</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e585 ">
              <p style="margin-bottom:0;">255</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e588 ">
              <p style="margin-bottom:0;">String</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Field Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e576 ">
              <code>attribute:currency</code>
            </td>

            <td data-label="Minimum Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e579 ">
              <p style="margin-bottom:0;">The currency of the transaction. The currency must be consistent across
                all records in a transaction. If you don’t send a currency, the system
                assigns the currency defined in Catalog Setup for that dataset. Currency
                must be in <a href="https://www.iso.org/iso-4217-currency-codes.html" target="_blank">ISO 4217</a> format and include
                three uppercase letters.</p>
            </td>

            <td data-label="Sample Values" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e582 ">
              <p style="margin-bottom:0;">USD, AUD, EUR</p>
            </td>

            <td data-label="Maximum Length" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e585 ">
              <p style="margin-bottom:0;">3</p>
            </td>

            <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d34543e588 ">
              <p style="margin-bottom:0;">String</p>
            </td>

          </tr>
        </tbody>
      </table>