If your customer list lives in Excel, Google Sheets, or another shop tool, export it to CSV and you can pull it into SalesThumb in one pass. This walks through the import end-to-end.
Step 1 — Prepare your file
SalesThumb's importer accepts CSV only — if your list is an Excel workbook, use "Save As" / "Export" to CSV first (Google Sheets: File → Download → Comma Separated Values). Up to 5,000 customers per file.
- A name column (full name, or a separate first/last split — either works)
- At least one of: phone number, email address
Optional columns we recognize automatically:
- Address (street, city, state, zip)
- Company name
- Vehicle make / model / year / trim / color / VIN / plate
- Tags (comma-separated)
- Notes
Column headers don't have to match exactly — the importer does fuzzy matching ("Cell" → phone, "E-mail" → email, "Year" → vehicle year).
Step 2 — Clean the data first
Five minutes of cleaning saves an hour of fixing imports. Look for:
- Test rows ("John Doe", "Test Customer", phone 5555555555). Delete.
- Duplicates. Sort by phone or email — if you see the same number twice, merge before import.
- Blank rows. Common in exported spreadsheets. Delete.
- Phone format consistency. SalesThumb normalizes formats automatically, but if you have a mix of international, parenthesized, and dashed numbers, scan for obvious errors.
Step 3 — Upload
In SalesThumb, go to Customers → Import (there's an Import button on the customer directory). Drop the CSV in. The importer reads your headers, guesses a mapping for each column, and shows a preview so you can confirm or fix any misreads before continuing.
Step 4 — Choose duplicate handling
Before the import runs, pick how to handle rows that match an existing customer by phone or email, under "On duplicate email":
- Skip (default) — matching rows are left alone
- Merge — new fields from the file are added onto the existing record
- Allow duplicates — creates a new record anyway; useful for B2B fleets where one phone might legitimately have multiple records
For most shops, "Skip" is correct.
Step 5 — Run the import
Click Import. The import runs while you wait — it processes row by row in a single request, so for a few thousand rows expect it to finish in well under a minute; there's no background job and no completion email or in-app notification. When it's done you'll see a summary right on the page:
- Imported successfully
- Skipped (duplicates)
- Failed (with row-level error reasons)
Common errors
- Invalid phone — number is too short, has letters, or has a country code we don't recognize. Fix in source file, re-import just those rows.
- Missing required field — row has no name. Fix in source.
What gets imported, what doesn't
- Customer records: yes
- Vehicles attached to customers: yes
- Tags: yes
- Notes: yes
- Quote/job history: NO — we can't import legacy quotes/jobs from a spreadsheet because the structure is too lossy. Most shops keep the old tool read-only for 60 days for historical lookups.