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

# Import vehicles and photos from a spreadsheet

> Bring an existing vehicle list into Car Storage Software in bulk instead of typing each car one at a time.

Use this guide when you already have vehicle information in a spreadsheet **and** you may also have a ZIP file of historical photos. Importing saves hours of typing and helps your team start with accurate records on day one.

> [!TIP]
>
> **Which import guide should I use?**
>
> * **Spreadsheet only** — follow [Import vehicles from a spreadsheet](/docs/cars/import-vehicles-from-a-spreadsheet.md).
> * **Spreadsheet plus a photo ZIP** — stay on this page. Create the car records first, then upload photos on the **Photo ZIP** tab.

## What you will accomplish

You will upload a vehicle spreadsheet, match each column to the correct field, review a preview, and create many car records at once. You can also import a ZIP file of historical photos so older intake images appear on the right vehicles.

**Expected outcome:** New vehicles appear on the [Cars page](https://www.carstoragesoftware.com/dashboard/cars) with make, model, year, VIN, customer links, and other details filled in from your file.

## When to use import instead of Add a car

* You are onboarding dozens or hundreds of vehicles from a legacy system or Excel file.
* Your team already keeps a master vehicle list with VINs, plates, and customer emails.
* You have folders of historical photos organized by customer ID, car ID, or VIN.

For one vehicle at a time, use [Add a car](/docs/cars/add-a-car.md) instead. Import is for bulk work.

> [!NOTE]
>
> **Import customers first when you can**
>
> Cars link to customer records. If your spreadsheet includes **Customer Email**, the import can connect each vehicle automatically. When possible, import customers first with [Import customers and cars from a spreadsheet](/docs/contacts/import-customers-and-cars.md), then import vehicles.

## Before you start

* Save your vehicle list as **CSV**, **XLS**, or **XLSX**.
* Put each vehicle on its own row. Use clear column names such as **Year**, **Make**, **Model**, **VIN**, **License Plate**, and **Customer Email**.
* Download the car template from the import page if you are unsure which columns to include.
* Confirm you can sign in to the dashboard and open [Import Data](https://www.carstoragesoftware.com/dashboard/import) from the left sidebar.

![Import Data page showing tabs for Customers, Cars, Events, and Photo ZIP](https://mintcdn.com/carstoragesoftware/YaZhPyY4b9Fq3hyS/images/cars/cars-import-data-page-sep17.webp?fit=max\&auto=format\&n=YaZhPyY4b9Fq3hyS\&q=85\&s=5df57b530deeff6a61247b1842032a74)

*Open [Import Data](https://www.carstoragesoftware.com/dashboard/import). The page has separate tabs for customers, vehicles, events, and photo archives.*

## Step 1: Open the Cars import tab

**1. Go to Import Data**

In the left sidebar, click **Import Data**, or go directly to [Import Data](https://www.carstoragesoftware.com/dashboard/import).

**Expected result:** The page title says **Import Data** and you see tabs across the top.

**2. Click the Cars tab**

Click the **Cars** tab (the tab with the car icon).

**Why this matters:** The **Customers** tab is for people. The **Cars** tab is for vehicles. Using the wrong tab will not create car records.

**3. Download the template if needed**

Click **Download** on the **Download car template** card. Open the file to see recommended column names.

**Expected result:** You have a sample CSV with headers such as Year, Make, Model, VIN, and Customer Email.

![Cars tab on Import Data showing Download car template and Choose File](https://mintcdn.com/carstoragesoftware/YaZhPyY4b9Fq3hyS/images/cars/cars-import-cars-tab-sep17.webp?fit=max\&auto=format\&n=YaZhPyY4b9Fq3hyS\&q=85\&s=b508f3f55a5e4a38adc90481587d9ea6)

*The **Cars** tab includes a template download and a file picker for your spreadsheet.*

## Step 2: Upload your vehicle spreadsheet

**1. Click the file field**

Below the template card, click the file picker.

**2. Choose your spreadsheet**

Select your CSV, XLS, or XLSX file from your computer.

**3. Wait for the row count**

After the file loads, the page shows how many rows were found.

**Expected result:** You see a number such as "50 rows found." If the count is zero, check that your file has data rows—not only header names.

## Step 3: Match spreadsheet columns to vehicle fields

After the file loads, you will see a mapping area. **Mapping** means telling the system which spreadsheet column belongs in each vehicle field.

![Car import mapping screen showing database fields on the left matched to spreadsheet columns on the right](https://mintcdn.com/carstoragesoftware/YaZhPyY4b9Fq3hyS/images/cars/cars-import-cars-mapping.webp?fit=max\&auto=format\&n=YaZhPyY4b9Fq3hyS\&q=85\&s=a977083e75e2f22000f53b0e7ff52d52)

*Review every field before you import. Match each **Database field** on the left to the correct **Spreadsheet column** on the right.*

**1. Click Auto-Map Columns when available**

If your column names are close to the template (for example **Year** and **Make**), click **Auto-Map Columns** to fill in matches automatically.

**Why this matters:** Auto-map saves time, but you should still scroll through the list to confirm nothing important was skipped.

**2. Match required vehicle details**

At minimum, connect:

* **Make**, **Model**, and **Year** when your file has them
* **VIN** when you track VINs (the system can try to fill missing make/model/year from the VIN)
* **Customer Email** when you want each car linked to the right owner

**Expected result:** Every field you care about has a spreadsheet column selected—or is intentionally left blank.

**3. Review advanced fields**

Scroll to advanced fields if your spreadsheet includes insurance dates, tire pressure, tags, location names, or external IDs from your old system. Connect only the columns you actually use.

**Tip:** You do not need to map every field. Extra spreadsheet columns can stay unmapped.

**4. Preview before you import**

Use the preview step (when shown) to spot obvious mistakes—wrong year in a VIN column, swapped make and model, or missing customer emails.

**Expected outcome:** The preview rows look like real vehicles your team would recognize.

**5. Run the import**

Click the button to start the import (wording may say **Import** or **Create records**). Wait until the page confirms success.

**Expected result:** New vehicles appear on [Cars](https://www.carstoragesoftware.com/dashboard/cars). Search for a VIN or customer name to confirm.

> [!TIP]
>
> **What if a VIN is missing make or model?**
>
> The import can attempt **VIN decode** to fill year, make, model, color, and trim when a valid VIN is present. Rows still import even when decode fails—you can fix details later on the car record.

## Step 4 (optional): Import historical photos from a ZIP file

If you have folders of older intake photos, you can attach them in bulk after vehicle records exist.

**1. Open the Photo ZIP tab**

On [Import Data](https://www.carstoragesoftware.com/dashboard/import), click the **Photo ZIP** tab.

**Expected result:** You see instructions for folder naming and an upload area.

**2. Organize folders before you upload**

Name folders so the system can match photos to the right car. Common patterns include:

* Customer ID and car ID folders (for example `0003/001/`)
* Folders named by **VIN**

**Why this matters:** Clear folder names prevent photos from landing on the wrong vehicle.

**3. Upload the ZIP file**

Choose your ZIP file and wait for processing. HEIC images from iPhones are converted automatically.

**Expected result:** Photos appear on the matching car records under **Latest Photos** and in the full photo gallery. See [Manage vehicle photos](/docs/cars/manage-vehicle-photos.md).

![Photo ZIP tab on Import Data showing bulk event photo import instructions and upload area](https://mintcdn.com/carstoragesoftware/YaZhPyY4b9Fq3hyS/images/cars/cars-import-photo-zip-tab.webp?fit=max\&auto=format\&n=YaZhPyY4b9Fq3hyS\&q=85\&s=073b33e015916fcdbe6b9a9f619aa961)

*Use **Photo ZIP** when you have archived intake folders—not for photos you are taking live today (use [Start a car session](/docs/cars/start-a-car-session.md) for new photos).*

## After import: confirm records look right

* Open [Cars](https://www.carstoragesoftware.com/dashboard/cars) and search for a few imported VINs or customer names.
* Open a car record and confirm the customer link, plate, and insurance dates look correct.
* Assign parking spots with [Move a car](/docs/cars/move-a-car.md) when vehicles are physically on site.
* Attach service plans with [Assign service plans on a vehicle](/docs/cars/assign-service-plans-on-a-vehicle.md) when your facility uses recurring care packages.

## Common mistakes to avoid

* Do not import cars before customers exist when you rely on **Customer Email** to link owners—create customers first or include emails that will match.
* Do not skip the mapping review. A column mapped to the wrong field can put license plates in the wrong place.
* Do not upload a photo ZIP before car records exist—the folders need matching vehicles in the system.
* Do not run import twice with the same file unless you intend to create duplicate records. Search first to see if a VIN already exists.

## Troubleshooting

> [!WARNING]
>
> **Cars imported but no customer is linked**
>
> Check that **Customer Email** was mapped and that each email matches an existing customer in [Contacts](https://www.carstoragesoftware.com/dashboard/contacts). Import customers first, then re-import or link cars manually on each record.

> [!WARNING]
>
> **The row count is zero**
>
> Open the spreadsheet and confirm it has data rows below the header line. Save again as CSV and re-upload.

> [!WARNING]
>
> **Photos did not attach from the ZIP**
>
> Confirm folder names match your external IDs or VINs. Open one car record and check **Latest Photos**. If still empty, verify the ZIP structure matches the on-screen instructions.

## What to do next

* For day-to-day additions after migration, use [Add a car](/docs/cars/add-a-car.md).
* To find imported vehicles quickly, use [Find and filter cars](/docs/cars/find-and-filter-cars.md).
* To fix details on one record, use [View and edit vehicle details](/docs/cars/view-and-edit-vehicle-details.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.