Skip to content

Importing Data

Admins can bulk import members and staff, vehicles, and bookings from CSV files on Settings → Import data.

Imports are create-only. Existing records are never updated, and no emails are sent during import.

Who can import

Only platform users with the Import data permission (typically your team's Admin role) can open the import page or merge CSV files.

Import in this sequence:

  1. Members & staff
  2. Vehicles
  3. Bookings

Booking rows reference members (by email) and vehicles (by registration) that must already exist in your team.

How the import page works

Each tab follows the same four steps:

  1. Download sample CSV — column headings the importer understands
  2. Fill in your spreadsheet — use Excel, Google Sheets, or LibreOffice Calc, then export as CSV UTF-8
  3. Upload CSV — we parse and validate every row
  4. Preview and merge — review errors, fix your file if needed, then merge when all rows are valid

Limits:

  • Preview table shows up to 500 rows (the full file is still validated)
  • Maximum 2,000 rows per merge

Members and staff

Required columns:

  • name
  • member_types — pipe-separated values such as member, driver, or assigned_driver|volunteer_driver

Optional columns include email, phone, emergency contact details, and home address (text only — geocoding is not applied on import).

Imports are create-only:

  • If a member with the same email already exists, the row is rejected
  • If no email is provided, a member with the same name is treated as a duplicate

Vehicles

Required columns:

  • registration — must be unique in your team
  • vehicle_type — for example minibus or wav
  • seat_capacity

Optional columns include fuel type, allowed booking types, and home address (text only).

Bookings

Supported booking types in CSV import:

  • internal
  • block
  • open
  • one_to_one

Required columns:

  • type
  • starts_at and ends_at — use YYYY-MM-DD HH:MM in your team timezone
  • vehicle_registration — must match an existing vehicle

driver_email is required for internal, open, and one-to-one bookings.

Optional columns include passenger emails (pipe-separated), status, name, and notes.

Use draft status unless you intentionally need confirmed bookings. Even then, import does not send booking emails.

Rows are checked for vehicle availability, driver eligibility, and other booking rules before merge is allowed.

Onboarding

During team setup, Import your data appears in the onboarding checklist. You can:

  • Open Settings → Import data to import CSV files, or
  • Choose Skip for now on the onboarding checklist and return later

The onboarding step completes after you successfully merge any import, or when you skip it from onboarding.

Troubleshooting

ProblemWhat to try
Column not recognisedDownload the sample CSV and match header names
Dates rejectedUse YYYY-MM-DD HH:MM text, not locale-formatted dates
Duplicate rowImports are create-only — remove or change matching email/registration/name
Booking driver errorImport the member first with the correct member_types and email
Vehicle unavailableChoose a time without conflicts, or import after resolving existing bookings