Skip to content

Importing spreadsheets

Bring a list into HAPR from a CSV file, match its columns, settle its dates and see which rows will be used before anything is saved.

For planners and admins 7 min read Updated

Five lists in HAPR can be brought in from a spreadsheet. They are attendees, the hotels on a solicitation list, the locations of a rate programme, manual bookings, and the room block grid. All of them read CSV files only and work in the same way. This page covers what they share, and each screen's own page covers its specifics.

Import a file

  1. 1
    Open the screen and press its import button. It is called Import list on the attendee manager, Import CSV or Upload CSV on a solicitation list and on locations, Import followed by the kind of booking on manual bookings, and the Upload room block icon above the room block grid.
  2. 2
    Drop a CSV file onto the window, or click to choose one. Not sure of the format? Press Download template for a ready file with the right columns.
  3. 3
    Check the column matching. HAPR matches each column in your file to the closest field. Change any match that is wrong, or choose to ignore a column. Columns you ignore are not imported, so you can keep extra columns for yourself.
  4. 4
    Answer any date question and read the preview or warnings. See the sections below.
  5. 5
    Press the import button at the foot of the window. It shows how many rows it will bring in.
The import window of the attendee manager.
  1. 1Drop a CSV file here, or click to browse.
  2. 2Download a template if you are not sure of the format.

Save your spreadsheet as CSV

Excel, Numbers and OpenDocument files cannot be read. Open the file in its own app, choose File, then Save As, then CSV, and use the CSV file instead.

The attendee manager and manual bookings refuse these files with a message that names the format and how to fix it. The room block grid answers That needs to be a CSV. Export the sheet as CSV and try again. The attendee manager and manual bookings also accept a plain text file (.txt) with the same layout. Columns must be separated by commas. Put quotation marks around any cell that contains a comma.

Settle the dates

HAPR reads dates written many ways, such as 2026-10-20, 20-Oct-2026, 20 October 2026 and 20/10/2026. Two-digit years are accepted. A date with no year cannot be read. To be safe, write dates as 2026-10-20 or 20-Oct-2026.

Dates such as 05/10/2026 can be read two ways, so HAPR decides from the whole column and not from one cell.

  • If one date in the column can only be day first, such as 20/10/2026, the whole column is read day first. If one can only be month first, such as 10/20/2026, it is read month first.
  • If every date in the column could be read either way, the attendee manager and manual bookings ask. Choose Day / month or Month / day in the attendee manager, or Day first (05/10 = 5 Oct) or Month first (05/10 = 10 May) in manual bookings.
  • If a column holds both kinds, HAPR cannot read its numeric dates safely. Fix the file, or write the dates as 2026-10-20 or 20-Oct-2026.
  • The room block grid does not ask. It uses what the file proves. A numeric date that the file cannot settle is marked as unreadable in the preview, and the row is skipped.

Dates that cannot be read are listed with their row and the reason, so they are never dropped without a word.

Check what each screen needs

Attendees

The attendee manager updates people it already knows and adds the rest. It needs a first name, last name, email, role, arrival date and departure date on every row. Rows with an invalid email, or with a required value missing, are skipped, and each is listed with its reason when the import finishes. One person goes on one row, with up to five trips across the row. Trips are matched by position, blank cells never overwrite, and hotel columns can move a trip to another line of the room block. Read the full rules in Attendee manager before importing a large or repeated list.

Hotels on a solicitation list

Match on property ID first, then on hotel name with address or city. A matching hotel is updated, a new one is added, and Import complete shows how many were added, updated or unchanged. A blank cell never wipes what is already saved. Hotel name, city, country, sales email, spend, spend currency and room nights must be matched. See Hotel transient rate programme.

Locations of a rate programme

City, country, spend, room nights and spend currency must be matched. Every row is added as a new location, so importing the same file twice adds every location twice. See Hotel transient rate programme.

Manual bookings

Each tab has its own import for flights, hotel stays, ground transport or ancillaries, and its own template. HAPR checks every row against your data first and shows a preview. The status is Ready, Already imported, Possible duplicate or Error. Rows with an error are not imported. Tick Import anyway on a possible duplicate to keep it. Rows already imported earlier are recognised and skipped, so fixing a file and uploading it again is safe. A failed row can be downloaded with its error and corrected.

Room block grid

The file has one row for each room type on each night. Room type, date and rooms are required, and rate is optional. A hotel sending back prices uses the same window, where room type, date and rate are required. The import fills in or changes the cells it carries and leaves the others alone, then saves. See Room block sourcing.

Good to know

  • Importing again updates the records that match. It does not undo anything. On a large list, import a small test file first.
  • If the first row of a room block file is not recognisable as column names, HAPR reads it as data and numbers the columns. Every other screen always treats the first row as the column names.
  • The preview in the room block window shows the first 50 rows, and rows it will skip show in red.
  • Keep the window open while an import runs.
  • The attendee manager and manual bookings list every skipped row with its reason. The room block grid names the first three. A solicitation list and locations do not list skipped rows, and a row with no hotel name, city or address is left out, so check the number on the import button before you press it.

If something looks wrong

  • That file has no columns the import could read. The file was read but held no table. Check it opens as a table with the column names in the first row, and that its columns are separated by commas.
  • That file has no rows under its heading. (room block) The file has column names and nothing below them. Add the rows and try again.
  • Could not read any columns from that file. (solicitation list and locations) The file is empty or is not a CSV. Save it as CSV and try again.
  • That needs to be a CSV. Export the sheet as CSV and try again. (room block) Choose a file ending in .csv.
  • That file could not be read. (room block) Save it again as CSV and retry.
  • That file had no rows this block could read. Check the room type, date and rooms columns are matched and hold data.
  • No row can be imported (attendee manager). Match the required fields to columns that hold data, or fix the file.
  • After a room block import the screen names the first three skipped rows and says why, for example a date it could not read or a value that is not a number of rooms. Fix those rows and import the file again. If hotels are already quoting the block, nights or room types that the file would add are not added, and the screen says so.
  • A required field is shown as not matched. Choose a column from your file for each required field, and the import button turns on.