Skip to main content

Bulk Inventory Import

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

Updated over a month ago

Overview

The Bulk Inventory Import feature allows you to update inventory data (rates, availability, restrictions) for multiple properties, room types, rate plans, and channels in a single upload.

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:

  • Importing data when migrating from other systems

  • Importing data from external tools or workflows

  • Bulk availability changes

  • Making seasonal rate adjustments

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: Build an Import Template

You can configure and download an empty example template to use for population, or you can build your own from scratch or via scripting.

Accessing the Bulk Inventory Template Download Page

Navigate to Admin > Settings > Bulk Inventory Import > Bulk Inventory Import Template (upper right-hand corner).

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

CSV Format Requirements

Column Summary

  • Required columns: Date, PropertyId, RoomTypeId, ChannelId

  • Optional columns: RatePlanId, Rate, Allocation, StopSell, CTA, CTD, MinNights, MinNightsThrough, MaxNights, MaxNightsThrough, CutOffDays

  • Date format: YYYY-MM-DD (e.g., 2025-01-15)

  • Boolean values: true/false, 1/0, yes/no

  • Empty cells: No change will be made for that field

  • ChannelId = 0: Updates will be sent to all configured channels

Column Details

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, 1/0, yes/no

CTA

Closed to Arrival

true/false, 1/0, yes/no

CTD

Closed to Departure

true/false, 1/0, yes/no

MinNights

Minimum nights requirement

MinNightsThrough

Minimum nights through requirement

MaxNights

Maximum nights limit

MaxNightsThrough

Maximum stay through limit

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

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

Admin > Settings > Channel Manager > Bulk Inventory Import

Note: You can include multiple properties to update 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: 100,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 processing completion, you'll receive a confirmation email.

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

Import History

On the Bulk Inventory Import page you can view the status and history of all files uploaded for processing.

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. Check Channel Configuration

  • Ensure channels are configured for inventory send before importing

  • Updates for unconfigured channels will be rejected or skipped

4. Mind the Timezone

  • Date validation uses your property's timezone

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

5. Partial Updates Are OK

  • You don't need to fill in every column

  • Only include the data you want to change

6. Review Before Processing

  • Validation always happens before you confirm processing, review to learn which rows will not be processed and why.

  • 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 100,000 rows

  • The file has the correct header row

Did this answer your question?