Import Reservations from a File
Most imports take 3-5 minutes after your file is ready.
Use this flow to create many reservations at once from .xlsx, .csv, or .json files.
Guest email is optional in bulk import, so missing emails do not block the flow.
AVA also reads Excel text-forcing wrappers like ="2/0/0" as plain text.
Single full-name columns can map automatically when the sheet uses labels like Contact Name.
If you import same-day stays, add an explicit Day Use column and mark those rows.
Go to: Operations View
Before You Start
| Requirement | Why It Matters | What to Check |
|---|---|---|
| PMS is Cloudbeds or AVA | Bulk import button only shows for supported PMS | Confirm Settings → Essentials → PMS Integration |
| File is .xlsx, .csv, or .json | Other formats are blocked | Save or export your file in one of those formats |
| File size is 10 MB or less | Larger files are rejected | Check file properties before upload |
| Guest count data is available | AVA can import adults, children, and infants | Include separate count columns, or one HGuru Persons column |
| Room types exist in AVA | Room type matching fails without room types | Confirm room types are available |
| Some values use Excel text forcing | PMS exports may wrap literal text values | AVA strips wrappers like ="2/0/0" automatically |
| Full names use one column | AVA can split one guest name into first and last names | Use a clear label like Contact Name, Guest Name, or Primary Guest |
| Same-day rows are day-use | AVA needs an explicit opt-in for 0-night bookings | Add a Day Use column and mark same-day rows |
What JSON Imports Do
| JSON shape | Example | What AVA does |
|---|---|---|
| Nested object | guest.email | Flattens it into dotted source paths |
| Simple array | roomNumbers: [101, 102] | Joins the values with a pipe separator |
| Array of objects | guests: [{...}] | Skips it and shows an extraction note |
If your JSON contains multiple reservation collections, AVA picks the best match. It also shows a warning when it does.
Import Reservations
- Go to Operations View.
- Click Bulk Import in the top-right actions.
- In Upload, drag and drop your file, or click to select it.
- Set Date format:
- Keep Auto-detect for most files.
- Choose a fixed format if day and month could be swapped.
- Click Analyze file.
- In Review Mapping, confirm each required field maps to the correct source field:
- First Name and Last Name, or one Guest Name column
- Check-in Date
- Check-out Date
- Room Type
- Nationality
- Optional guest counts: Adults, Children, Infants, or one HGuru Persons column (
ADT,CHD,INF) - If the file contains same-day rows, map a Day Use column and mark those rows with
Yes,1, ortrue - Single full-name columns like Contact Name now auto-detect and split into first and last names when the values look like real names.
- Values wrapped like
="2/1/1"now import as2/1/1without manual cleanup. - If a required field is still missing, the mapping checklist shows the blocker before you continue.
- Unmapped fields stay easy to spot, so fix those first.
- JSON source fields may appear as dotted paths like
guest.email.
- Click Generate preview.
- In Preview, review row statuses:
- Ready: Can be created
- Invalid: Has errors that block import
- Duplicate: Already exists in your file or PMS
- Use filters (All, Ready, Invalid, Duplicate) to review problem rows quickly.
- Fix your file and re-upload if needed.
- Click Create reservations when only valid rows remain.
✓ AVA shows a result summary with created, skipped duplicate, and failed rows.
Map Guest Counts
AVA supports two guest count formats during import.
| File Format | Example | Result in AVA |
|---|---|---|
| Separate columns | Adults=2, Children=1, Infants=1 | Creates reservation with adults 2, children 1, infants 1 |
| HGuru Persons column | ADT:2,CHD:1,INF:1 | Parses values and maps to adults, children, and infants |
If both formats are present, mapped count columns take priority in preview.
The same rules apply to JSON files after AVA flattens the fields.
CSV rows that contain text-forced values like ="2/0/0" also parse correctly.
Map Day-Use Rows
Use an explicit Day Use column when your file contains same-day stays.
| File Value | Result in AVA |
|---|---|
Yes, Y, true, 1, x | Marks the row as day-use |
Blank, No, 0 | Treats the row as a regular overnight stay |
AVA only accepts same-day rows as day-use when the PMS supports native day-use. That opt-in protects you from turning a checkout typo into a 0-night booking.
Understand Result Behavior
| Result | What It Means | Action |
|---|---|---|
| Created | Reservation was added successfully | No action needed |
| Skipped duplicate | Row matched existing PMS data or another file row | Review duplicate source details |
| Failed | Import stopped on that row | Fix the issue and re-import remaining rows |
Import runs sequentially. If one row fails, AVA stops at that row. Rows before it can still be created.
Troubleshooting
Bulk Import button is missing
What you see: You cannot find Bulk Import in Operations View.
Fix:
- Confirm your PMS is Cloudbeds or AVA.
- Confirm your account has reservation write access.
- Ask an admin to verify your hotel has a valid merchant configuration.
"Only XLSX, CSV, and JSON files are supported"
What you see: File upload is rejected immediately.
Fix:
- Export the file again as
.xlsx,.csv, or.json. - Remove unsupported formats like
.xls,.numbers, or.ods. - Upload the new file.
JSON extraction notes appear
What you see: The mapping step shows extraction warnings for your JSON file.
Fix:
- Review the dotted source paths in JSON extraction notes.
- Check whether your JSON uses multiple collections.
- Remove unsupported nested arrays of objects if possible.
- Generate the preview again.
JSON fields do not map as expected
What you see: A value exists in the file, but AVA does not map it correctly.
Fix:
- Confirm the source field appears as a dotted path.
- Map that dotted path to the correct reservation field.
- Re-run Analyze file if you changed the source structure.
"Spreadsheet files must be 10 MB or smaller"
What you see: Upload error about file size.
Fix:
- Remove unused sheets and columns.
- Split the file into smaller batches.
- Re-upload each batch.
"Date format is auto-detected or low confidence"
What you see: A warning in mapping or preview.
Fix:
- Set Date format manually.
- Regenerate preview.
- Confirm parsed dates are correct before committing.
Room type errors in preview
What you see: Rows show invalid room type messages.
Fix:
- Match room type values to existing room type names or IDs.
- Create missing room types first if needed.
- Re-upload and generate preview again.
Same-day rows are rejected
What you see: Preview says the check-out date must be after the check-in date.
Fix:
- Add a Day Use column to the file.
- Mark the intentional same-day rows with
Yes,1,true, orx. - Confirm your PMS supports native day-use imports.
- Generate the preview again.
Mapping still shows blockers
What you see: The mapping step will not let you continue, and the checklist still shows missing fields.
Fix:
- Map every required field shown in the checklist.
- Check for any highlighted unmapped fields.
- Generate the preview again after each fix.
HGuru Persons values are not parsed
What you see: Guest counts stay at defaults after preview.
Fix:
- Check Persons uses valid tokens:
ADT,CHD,INF. - Use numeric values only, like
ADT:2,CHD:1,INF:1. - Confirm the Persons field is mapped before generating preview.
"Bulk import stopped at row X"
What you see: Commit result shows a stop row and failure message.
Fix:
- Open the failed row details in the result.
- Correct that row in your file.
- Re-import only remaining rows that were not created.
Still Stuck?
Contact success@vouch-technologies.com if:
- ❌ Import keeps failing after you remap fields and dates
- ❌ Every row becomes invalid unexpectedly
- ❌ Duplicates are flagged incorrectly for valid new reservations
Helpful to include:
- Screenshot of the error or result screen
- A sample of affected file rows
- Your PMS type and hotel name