Skip to main content

Bulk Inventory Export & Import

Update rates, availability, and restrictions for multiple properties, dates, and channels in a single CSV/spreadsheet upload.

Updated today

Overview

The Bulk Inventory Import feature allows you to update inventory data (rates, availability, restrictions) for multiple room types, rate plans, and channels in a single operation. Instead of making updates one at a time through the calendar or daily update screens, you can prepare all your changes in a CSV spreadsheet and upload them all at once.

This feature is especially useful for:

  • Updating rates across multiple dates and room types

  • Making seasonal rate adjustments

  • Bulk availability changes

  • Applying restrictions across multiple channels simultaneously

The workflow has two parts:

Export Template

Download a CSV template pre-populated with your property's room types, rate plans, and channels

Import Template Data

Upload your completed CSV file to create inventory update requests

Step 1: Download the Export Template

Accessing the Template Page

Navigate to Admin > Settings > Bulk Inventory Import Template

Configuring Your Template

1. Select Date Range

  • Choose the start and end dates for the period you want to update

  • Use the month picker for quick month selection, or enter custom dates

2. Select Room Types

  • Check the room types you want to include in the template

  • Click the "Room Types" header to toggle all on/off

  • Each room type shows its ID number for reference

3. Select Rate Plans (if applicable)

  • If your property uses rate plans, check the ones to include

  • Leave unchecked if you only want to update at the room type level

  • Click the "Rate Plans" header to toggle all on/off

4. Select Channels

  • All Channels (ID: 0) - Updates will be sent to all configured channels

  • Or select individual channels for targeted updates

  • Selecting any individual channel automatically deselects "All Channels"

5. Download

  • Click Download Empty Template to generate your CSV file

  • The file will contain one row per date, per room type/rate plan, per channel combination

Template Structure

The downloaded CSV contains these columns:

Date

The stay date (YYYY-MM-DD format)

PropertyId

Your property's ID number

RoomTypeId

The room type ID

RatePlanId

The rate plan ID (if rate plans are selected)

ChannelId

The channel ID (0 = all channels)

Rate

Fill in your rate

Allocation

Available rooms

StopSell

true/false

CTA

Closed to Arrival true/false

CTD

Closed to Departure true/false

MinNights

Minimum stay requirement

MinNightsThrough

Minimum stay through

MaxNights

Maximum stay limit

MaxNightsThrough

Maximum stay through

CutOffDays

Booking cut-off days

ID Reference Download

On the template download screen, you can also download the property, room type, rate plan, and channel IDs for just the active property, or all properties you have access to.

Step 2: Populate Your Data

Open the CSV file in your preferred spreadsheet application (Excel, Google Sheets, Numbers, etc.), or populate with data exported from another tool

Data Entry Rules

Empty Cells = No Change

  • Leave a cell empty if you don't want to change that value

  • Only cells with values will create update requests

Rates

  • Enter the sell rate as a number (e.g., 199.99)

  • Rates must be greater than zero

Allocation

  • Enter the number of rooms available (e.g., 10)

  • Use 0 to close out availability

  • Must be a non-negative whole number

Boolean Fields (StopSell, CTA, CTD)

  • Accepted values: true, false, 1, 0, yes, no

  • Case insensitive

Restriction Fields (MinNights, MinNightsThrough, MaxNights, MaxNightsThrough, CutOffDays)

  • Enter as whole numbers

  • Use 0 to remove a restriction

Example Data

Date,PropertyId,RoomTypeId,ChannelId,Rate,Allocation,StopSell,CTA,CTD,MinNights
2025-01-15,2177,8739,0,199.99,10,false,false,false,2
2025-01-16,2177,8739,0,219.99,10,false,false,false,2
2025-01-17,2177,8739,0,249.99,5,false,false,false,3
2025-01-18,2177,8739,0,249.99,0,true,,,

In this example:

  • Jan 15-16: Standard rates with 10 rooms, 2-night minimum

  • Jan 17: Higher weekend rate, 5 rooms, 3-night minimum

  • Jan 18: Sold out (allocation=0, stop sell=true)

Step 3: Import Your Data

Accessing the Import Page

Organization Admins: Navigate to Org Admin > Bulk Inventory Import

Note: The import page can process CSV files for multiple properties in a single upload.

Upload Process

1. Select Your File

  • Click Choose File and select your completed CSV

  • Maximum file size: 10 MB

  • Maximum rows: 50,000

2. Validation

  • Click Upload & Validate

  • The system validates every row before processing

You'll see a summary showing:

  • Total rows in file

  • Valid rows ready to process

  • Skipped rows (empty data)

  • Error rows (with details)

3. Review Errors

  • If errors exist, review the error list

  • Common errors include:

    • Invalid date format

    • Dates in the past

    • Unknown PropertyId, RoomTypeId, or RatePlanId

    • Channel not configured for inventory send

    • Invalid boolean values

    • Permission issues

4. Process Valid Rows

  • If you have valid rows, click Process [X] Valid Rows

  • Invalid rows will be skipped

  • Valid rows will create inventory send requests

5. Confirmation

  • Upon completion, you'll see a success message

  • The number of inventory send requests created is displayed

Validation Rules

The import validates the following:

Date Format

Must be YYYY-MM-DD (e.g., 2025-01-15)

Future Dates

Dates must be today or in the future (based on property timezone)

PropertyId

Must exist and be in your organization, that you have access to

RoomTypeId

Must exist and belong to the specified property

RatePlanId

If provided, must exist and belong to the specified property

ChannelId

If not 0, must be configured for inventory send on the property

Rate

If provided, must be greater than zero

Allocation

If provided, must be non-negative

Boolean Values

Must be valid format (true/false/1/0/yes/no)

Permissions

Your user account must have the appropriate permissions for the update types

Permission Requirements

Update Type - Required Permission

Rate changes - Update Rates

Allocation changes - Update Availability

StopSell changes - Update Availability (or Update Close-Outs for close-outs only)

Restrictions (CTA, CTD, MinNights, etc.) - Update Restrictions

Tips & Best Practices

1. Start Small

  • Test with a small date range first to verify your data is correct

  • Once comfortable, scale up to larger imports

2. Use ChannelId = 0 for Efficiency

  • Setting ChannelId to 0 sends updates to all configured channels

  • This reduces the number of rows needed in your file

3. Keep Original Files

  • Processed files are saved automatically for reference

  • Keep your own copies as backup

4. Check Channel Configuration

  • Ensure channels are configured for inventory send before importing

  • Updates for unconfigured channels will be rejected

5. Mind the Timezone

  • Date validation uses your property's timezone

  • A date that's "today" in your timezone may be "past" for the property

6. Partial Updates Are OK

  • You don't need to fill in every column

  • Only include the data you want to change

7. Review Before Processing

  • Always review the validation summary before clicking Process

  • You can cancel and fix errors in your file before re-uploading

Frequently Asked Questions

Q: What happens if some rows have errors?

A: Valid rows will be processed; error rows are skipped. You'll see exactly which rows had errors and why.

Q: Can I update multiple properties in one file?

A: Yes! Include different PropertyId values in your CSV to update multiple properties at once.

Q: Can I undo an import?

A: There is no automatic undo. You would need to create a new import with the corrected values.

Q: What if I leave all data columns empty for a row?

A: Rows with no data values are skipped automatically (counted as "Skipped - empty data").

Q: Why was my file rejected?

A: Check that:

  • The file is a .csv format

  • The file is under 10 MB

  • The file has fewer than 50,000 rows

  • The file has the correct header row

Did this answer your question?