> ## 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 customers, cars, events, and photos

> Bring existing customer lists, vehicle records, historical events, and photo archives into Car Storage Software using the Import Data page.

Use **Import Data** when you already have information in a spreadsheet or photo archive from another system, a paper list, or files your team kept in Excel or Google Sheets.

## What you will accomplish

You will upload files, match spreadsheet columns to the correct fields, review a preview, and create many records at once—without typing each item by hand.

The Import Data page has **four tabs**:

* **Customers** — names, emails, phones, addresses, tags, and additional contacts.
* **Cars** — vehicles linked to customers by email, VIN, or license plate.
* **Events** — historical service visits, intakes, and activity from a legacy system.
* **Photo ZIP** — folders of inspection or event photos tied to customers and cars.

<Frame>
  <img src="https://mintcdn.com/carstoragesoftware/R5kE8xRstcG_Arf7/images/contacts/import-data-all-tabs.webp?fit=max&auto=format&n=R5kE8xRstcG_Arf7&q=85&s=a24c2091f22e1f58ebd29b95ecc1c413" alt="Import Data page showing Customers, Cars, Events, and Photo ZIP tabs at the top" width="1440" height="900" data-path="images/contacts/import-data-all-tabs.webp" />
</Frame>

*Open [Import Data](https://www.carstoragesoftware.com/dashboard/import) from the sidebar. Each tab handles a different kind of bulk upload.*

<Tip>
  **Setting up a new facility?**

  [Load customers, cars, and plans during onboarding](/docs/basics/import-customers-cars-and-plans-during-onboarding) has every example sheet in one place and explains how email links customers, cars, recurring plans, and additional contacts.
</Tip>

## Recommended import order

Follow this order when you are moving a facility onto Car Storage Software for the first time:

<Steps>
  <Step title="Import customers first">
    Customer records are the foundation. Cars, events, and photos all link back to people.
  </Step>

  <Step title="Import cars second">
    Vehicles connect to customers when your spreadsheet includes a matching email, VIN, or plate.
  </Step>

  <Step title="Import historical events third (optional)">
    Use the **Events** tab when you have past service history in a spreadsheet.
  </Step>

  <Step title="Import photo ZIP last (optional)">
    Use **Photo ZIP** when you have folders of photos from a previous system. Photos link best after customers and cars exist.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/carstoragesoftware/R5kE8xRstcG_Arf7/images/contacts/import-customers-page.webp?fit=max&auto=format&n=R5kE8xRstcG_Arf7&q=85&s=c958b23030d15b7c7d9c01d5750ed33d" alt="Import Data page showing tabs for Customers and Cars with a customer template download card" width="1440" height="900" data-path="images/contacts/import-customers-page.webp" />
</Frame>

*The Import Data page lets you import customers first, then cars if you have vehicle records to bring in.*

## Before you start

* Open your spreadsheet and make sure each customer is on one row.
* Use clear column names, such as **First Name**, **Last Name**, **Email**, **Phone**, **Street Address**, **City**, **State**, and **ZIP**.
* Save the file as a **CSV**, **XLS**, or **XLSX** file.
* If you want cars to connect to customers automatically, include a shared value such as the customer's email address, the car VIN, or the license plate.
* If possible, import customers before importing cars. Cars need a customer record to connect to.

<Note>
  **What is a CSV file?**

  A CSV file is a plain spreadsheet file. Most spreadsheet tools can create one. In Excel or Google Sheets, use **File**, then **Download** or **Save As**, then choose **CSV**.
</Note>

## Step 1: Open the import page

Import lives on its own page—not inside the contacts list. That keeps bulk upload separate from day-to-day customer lookup. After import, open [All Contacts](https://www.carstoragesoftware.com/dashboard/contacts/all) to confirm new records appear.

<Steps>
  <Step title="Go to Import Data">
    In the left sidebar, open **Import Data**, or go directly to [Import Data](https://www.carstoragesoftware.com/dashboard/import).

    If your facility is still onboarding, the setup checklist may also link you here.

    **Expected result:** You see tabs for **Customers**, **Cars**, **Events**, and other import types your team uses.
  </Step>

  <Step title="Stay on the Customers tab">
    The page opens on the **Customers** tab. Use this tab for names, emails, phone numbers, addresses, tags, and additional contacts.
  </Step>

  <Step title="Download the template if you are not sure what to use">
    Click **Download** on the **Download customer template** card. The template shows the recommended column names.
  </Step>
</Steps>

<Note>
  **Other import tabs on the same page**

  The **Cars** tab brings in vehicle records after customers exist. Some facilities also use **Events** to import event registrations or attendee lists. Each tab has its own template—stay on **Customers** until people records are in the system, then switch tabs for the next file.
</Note>

## Step 2: Upload the customer file

<Steps>
  <Step title="Click the file picker">
    Click the file field below the template card.
  </Step>

  <Step title="Choose your spreadsheet">
    Select your CSV, XLS, or XLSX file from your computer.
  </Step>

  <Step title="Wait for the row count">
    After the file loads, the page shows how many rows were found. This tells you the file was read successfully.
  </Step>
</Steps>

## Step 3: Match spreadsheet columns to customer fields

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

<Frame>
  <img src="https://mintcdn.com/carstoragesoftware/R5kE8xRstcG_Arf7/images/contacts/import-customer-mapping.webp?fit=max&auto=format&n=R5kE8xRstcG_Arf7&q=85&s=53d61c63e252ca75ca7fb3f9bca4fdd5" alt="Customer import mapping screen showing name format, address format, database fields, spreadsheet columns, additional contacts, and auto-link car options" width="1440" height="900" data-path="images/contacts/import-customer-mapping.webp" />
</Frame>

*The mapping screen lets you review every field before you create customer records. Match each Database field on the left to the correct Spreadsheet column on the right.*

<Steps>
  <Step title="Choose the name format">
    Select **Separate columns (First Name, Last Name)** if your spreadsheet has one column for first name and one column for last name.

    Select **Combined column (Full Name)** if your spreadsheet has one full name column, such as "Alex Morgan".
  </Step>

  <Step title="Choose the address format">
    Select **Separate columns (Street, City, State, ZIP)** if those details are in separate columns.

    Select **Combined column (Full Address)** if the full address is in one column.
  </Step>

  <Step title="Click Auto-Map Columns">
    Click **Auto-Map Columns**. The system will try to match common column names for you.
  </Step>

  <Step title="Review each row in the mapping list">
    Look at each **Database Field** and the selected **Spreadsheet Column** beside it.

    If a match is wrong, open the dropdown and choose the correct column. If you do not want to import a field, choose **-- None --**.
  </Step>

  <Step title="Map additional contacts if needed">
    If each customer has an assistant, spouse, bookkeeper, or other related person in the spreadsheet, use **Additional Contacts (optional)**.

    Click **Add Contact**, then map the contact's name, email, and phone columns.
  </Step>

  <Step title="Use Auto-Link Car only when you have a reliable match">
    Use **Auto-Link Car** if your customer file includes a VIN or license plate that already exists in your car records.

    This helps the system connect imported customers to existing cars automatically.
  </Step>
</Steps>

## Step 4: Review before importing

<Steps>
  <Step title="Click Review Import">
    Click **Review Import** at the bottom of the mapping screen.
  </Step>

  <Step title="Look for missing required information">
    Every customer needs a first name and last name. If either one is missing, go back and fix the mapping or update the spreadsheet.
  </Step>

  <Step title="Check for duplicates">
    Review any customers that look like they may already exist. Duplicate records make billing, cars, documents, and portal access harder to manage.
  </Step>

  <Step title="Confirm the import">
    When the preview looks correct, confirm the import. The system creates the customer records.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/carstoragesoftware/R5kE8xRstcG_Arf7/images/contacts/import-customer-review.webp?fit=max&auto=format&n=R5kE8xRstcG_Arf7&q=85&s=460971ed9034b2f79a49f3c4982c0556" alt="Customer import review screen showing a preview of rows before records are created" width="1440" height="900" data-path="images/contacts/import-customer-review.webp" />
</Frame>

*Review Import shows a preview so you can catch missing names, wrong columns, or possible duplicates before you create records.*

<Tip>
  **Take your time on this screen**

  This is the last safe stop before new records are created. If something looks wrong, use the back action, fix your spreadsheet or mapping, and review again.
</Tip>

## Step 5: Import cars after customers

If you also have a vehicle spreadsheet, return to [Import Data](https://www.carstoragesoftware.com/dashboard/import) and choose the **Cars** tab.

<Frame>
  <img src="https://mintcdn.com/carstoragesoftware/R5kE8xRstcG_Arf7/images/contacts/import-cars-tab.webp?fit=max&auto=format&n=R5kE8xRstcG_Arf7&q=85&s=8d6fd821243c872137211533eb54697c" alt="Import Data page with the Cars tab selected showing the car import template and file upload area" width="1440" height="900" data-path="images/contacts/import-cars-tab.webp" />
</Frame>

*After customers are in the system, use the Cars tab to bring in vehicle records and connect them to the right owners.*

* Include vehicle details such as make, model, year, VIN, color, license plate, and declared value if you have them.
* Include **Customer Email** when possible. This helps match each car to the correct customer.
* After the car import, spot check a few customer records to confirm their cars appear in the **Customer's Cars** section.

## Step 6: Import historical events (optional)

Use the **Events** tab when your old system exported past visits—intakes, detail sessions, transport runs, or other activity you want in customer history.

<Steps>
  <Step title="Open Import Data and choose Events">
    Go to [Import Data](https://www.carstoragesoftware.com/dashboard/import) and click the **Events** tab.

    **Expected result:** You see **Download event template** and an upload area for CSV or Excel files.
  </Step>

  <Step title="Download the event template">
    Click **Download** on the template card if you are building a file from scratch.

    The template includes columns such as **External Event ID**, **Composite Car ID**, **Customer Email**, **VIN**, **Event Date**, **Activity Type**, **Title**, **Notes**, and **Mileage**.
  </Step>

  <Step title="Upload your event spreadsheet">
    Click the file field and choose your CSV, XLS, or XLSX file.

    **Expected result:** The page shows how many rows were found and a mapping table appears.
  </Step>

  <Step title="Map spreadsheet columns to event fields">
    Review each **Field** row and choose the matching **Spreadsheet Column**.

    Click **Auto-Map Columns** if your headers are close to the template names.

    **Why this matters:** At least one identifier should connect each row to a customer or car—such as **Customer Email**, **VIN**, **Composite Car ID** (for example `0003.001`), or **External Customer ID** / **External Car ID** from your old system.
  </Step>

  <Step title="Click Review Import">
    Click **Review Import** at the bottom of the mapping area.

    **Expected result:** You move to the import preview page where you can confirm each row before records are created.
  </Step>

  <Step title="Confirm the import on the preview page">
    Read each row on the preview screen. Skip or fix rows that do not match a customer or car in your system.

    When the preview looks correct, confirm the import.

    **Expected result:** Historical events appear on customer activity timelines and on vehicle history where they belong.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/carstoragesoftware/R5kE8xRstcG_Arf7/images/contacts/import-events-tab.webp?fit=max&auto=format&n=R5kE8xRstcG_Arf7&q=85&s=d3d47d9694f9500c29cc8671b9262d92" alt="Import Data page with Events tab selected showing download event template card and upload area" width="1440" height="900" data-path="images/contacts/import-events-tab.webp" />
</Frame>

*The **Events** tab is for spreadsheet history—not for scheduling future work. Use [Schedule](https://www.carstoragesoftware.com/dashboard/schedule) for upcoming appointments.*

<Warning>
  **Import customers and cars before events**

  Event rows link to people and vehicles already in Car Storage Software. If a VIN or email in your spreadsheet does not match an existing record, that row may not import cleanly. Finish customer and car imports first, then try events again.
</Warning>

<Tip>
  **Activity Type must match your facility**

  The **Activity Type** column should use values your facility recognizes (for example `new_car_intake` or `dealer_service`). Ask your admin which activity types exist in [Settings > Events](https://www.carstoragesoftware.com/dashboard/settings/events) if imports fail on unknown types.
</Tip>

## Step 7: Import event photos from a ZIP file (optional)

Use **Photo ZIP** when you have folders of photos from a previous system—inspection pictures, intake photos, or event images stored on a hard drive.

<Steps>
  <Step title="Open Import Data and choose Photo ZIP">
    Go to [Import Data](https://www.carstoragesoftware.com/dashboard/import) and click the **Photo ZIP** tab.

    **Expected result:** You see **Bulk Event Photo Import** with instructions about folder structure.
  </Step>

  <Step title="Prepare your ZIP folder structure">
    Organize photos in folders before you zip them. Common patterns:

    * **Legacy IDs:** folders like `0003/001/` where numbers match external customer and car IDs from your old system.
    * **VIN folders:** a folder named with the vehicle VIN, with event subfolders inside.

    **Why this matters:** The importer uses folder names to guess which customer and car each photo belongs to.
  </Step>

  <Step title="Zip the folders and upload">
    Create one `.zip` file containing your folder structure. Click **Upload** (or choose the file) on the Photo ZIP tab.

    **Expected result:** The file uploads and the system analyzes the folder structure. This step can take a few minutes for large archives.
  </Step>

  <Step title="Review matched cars and events">
    After parsing finishes, review which folders matched vehicles in your facility.

    Fix any folders that did not match by linking them to the correct car before you start the import.

    **Expected result:** You see how many cars and photos were found before anything is created.
  </Step>

  <Step title="Confirm and run the import">
    When matches look correct, confirm the import. The system creates events and attaches photos.

    **Expected result:** Photos appear on the correct vehicle records and in customer activity history.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/carstoragesoftware/R5kE8xRstcG_Arf7/images/contacts/import-photo-zip-tab.webp?fit=max&auto=format&n=R5kE8xRstcG_Arf7&q=85&s=25bc69692279672353283fc0775a1bdd" alt="Import Data Photo ZIP tab showing Bulk Event Photo Import card with folder structure instructions and upload button" width="1440" height="900" data-path="images/contacts/import-photo-zip-tab.webp" />
</Frame>

***Photo ZIP** imports many photos at once. HEIC files from iPhones are converted to JPEG automatically during import.*

<Warning>
  **Photos link best after customers and cars exist**

  The importer matches folders to VINs and IDs already in your facility. Import customers and cars first so more folders match on the first try.
</Warning>

<Tip>
  **Large ZIP files need time**

  Do not close the browser tab while a large ZIP uploads or parses. If the upload fails, try a smaller ZIP split by year or by customer batch.
</Tip>

## What happens next

After customers are imported, go to [All Contacts](https://www.carstoragesoftware.com/dashboard/contacts/all) and search for a few names from your spreadsheet.

Then open one customer record and confirm:

* The name, email, phone, and address look right.
* Tags were imported cleanly and are not duplicated.
* Cars are linked to the correct customer.
* Additional contacts, if imported, appear in the **Contacts** section.
* Historical events, if imported, appear in [customer activity](/docs/contacts/review-customer-activity-and-history).
* Imported photos, if used, appear on the correct vehicle records.

## Troubleshooting

<Warning>
  **The file will not upload**

  Make sure the file is a CSV, XLS, or XLSX file. If the file came from another system, open it in a spreadsheet tool and save a fresh copy as CSV.
</Warning>

<Tip>
  **Names are split incorrectly**

  Go back to the mapping screen and change the **Name Format** setting. If full names are hard to split, edit the spreadsheet so first name and last name are in separate columns.
</Tip>

<Warning>
  **I see duplicate customers**

  Pause before confirming the import. Search [All Contacts](https://www.carstoragesoftware.com/dashboard/contacts/all) for the duplicate names or emails. It is usually better to update the existing customer than to create a second record.
</Warning>

<Tip>
  **Cars did not link to customers**

  Open a customer record and check the **Customer's Cars** section. If a car is missing, use the steps in [Link cars and documents to a customer](/docs/contacts/link-cars-and-documents).
</Tip>

<Warning>
  **Event rows did not import**

  Check that the customer email or VIN in your spreadsheet matches a record already in Car Storage Software. Open the import preview and look for rows marked to skip. Fix the spreadsheet and try again.
</Warning>

<Tip>
  **Photo ZIP folders did not match**

  Confirm folder names use VINs or external IDs that exist in your facility. Import customers and cars first, then re-upload the ZIP. If your old system used different ID formats, ask your admin whether IDs were stored on customer or car records during customer import.
</Tip>


## Related topics

- [Load customers, cars, and plans during onboarding](/docs/basics/import-customers-cars-and-plans-during-onboarding.md)
- [Add a customer](/docs/contacts/add-a-customer.md)
- [Find and filter contacts](/docs/contacts/find-and-filter-contacts.md)
- [Contacts overview](/docs/contacts/overview.md)
- [Handle duplicate or merged customer records](/docs/contacts/handle-duplicate-or-merged-customer-records.md)


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