> ## Documentation Index
> Fetch the complete documentation index at: https://docs.helmkit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CSV Import

> Import bookings and experiences into Helm from CSV files

If you're migrating from another system or need to bulk-add data, you can import bookings and experiences into Helm using CSV files. The import wizard guides you through mapping your columns to Helm's fields, validating the data, and reviewing everything before the import runs.

## Getting started

Navigate to **Settings → Integrations** and select **CSV Import**. Choose whether you're importing bookings or experiences, then follow the wizard.

## Import types

<Tabs>
  <Tab title="Bookings" icon="calendar">
    Import customer bookings with passenger details, dates, and tour assignments.

    **Supported fields:**

    * **reference** — Your booking reference or ID
    * **date** — The tour date
    * **start\_time** and **end\_time** — Tour timing
    * **experience** — Which experience this booking is for (must match an existing experience in Helm)
    * **rate** — The pricing rate applied
    * **language** — Customer's language preference
    * **status** — Booking status (confirmed, pending, etc.)
    * **notes** — Any booking notes or special requests
    * **guide\_email** — Email of the guide to assign (must be on your roster)
    * **Contact fields** — Customer name, email, phone
    * **Passenger fields** — Passenger names and details
    * **Pickup fields** — Pickup location and time

    <Note>
      The experience and rate must already exist in Helm before importing bookings. If you need to create them first, import your experiences CSV first.
    </Note>
  </Tab>

  <Tab title="Experiences" icon="compass">
    Import your tour offerings with descriptions, pricing, and configuration.

    **Supported fields:**

    * **experience\_title** — Name of the tour or experience
    * **descriptions** — Tour description text
    * **city** — Where the tour operates
    * **timezone** — Timezone for scheduling
    * **image\_url** — URL to a tour image
    * **is\_private** — Whether this is a private tour
    * **enabled** — Whether the experience is active
    * **rate\_name** — Name of the pricing rate
    * **rate\_indicates\_private** — Whether this rate is for private bookings
    * **rate\_capacity\_max** — Maximum capacity for this rate
  </Tab>
</Tabs>

## The import wizard

<Steps>
  <Step title="Select import type">
    Choose whether you're importing bookings or experiences.
  </Step>

  <Step title="Upload your CSV file">
    Upload a `.csv` file with your data. The file should have a header row with column names.
  </Step>

  <Step title="Map columns">
    Match each column in your CSV to the corresponding field in Helm. The wizard shows a preview of your data to help you map correctly. Columns you don't need can be skipped.
  </Step>

  <Step title="Validate">
    Helm checks your data for issues — missing required fields, unrecognized experiences or rates, invalid dates, and duplicate entries. Any problems are flagged for you to fix before proceeding.
  </Step>

  <Step title="Review">
    See a summary of what will be imported: how many records, which experiences and rates are referenced, and any warnings.
  </Step>

  <Step title="Import">
    Confirm and run the import. Records are processed in the background — you can navigate away and check back later.
  </Step>

  <Step title="Results">
    Review the import results to see how many records were created successfully and whether any were skipped.
  </Step>
</Steps>

## Tips for a smooth import

* **Match your experiences first.** Booking imports reference experiences and rates by name. Make sure the names in your CSV match what's already in Helm exactly.
* **Check date formats.** Use a consistent date format across your file (e.g., YYYY-MM-DD).
* **Guide assignments are optional.** If you include a guide\_email column, that guide must already be on your roster and not blocked.
* **Start small.** Try importing a few rows first to verify your column mapping before uploading your full dataset.

<Warning>
  CSV import does not check for duplicates against existing bookings in Helm. If you import the same CSV twice, you may end up with duplicate records. Use unique booking references to help identify and clean up duplicates if needed.
</Warning>
