If your customer list lives in Excel, Google Sheets, or a CSV export from another tool, you can pull it into SalesThumb in one pass. This walks through the import end-to-end.
Step 1 — Prepare your file
SalesThumb accepts .xlsx, .xls, .csv, and .tsv. Required columns:
- A name column (full name OR first/last split)
- At least one of: phone number, email address
Optional columns we recognize automatically:
- Address (street, city, state, zip)
- Vehicle make / model / year
- Vehicle VIN
- Tags (comma-separated)
- Notes
- Last service date
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 Settings → Import → Customers. Drag the file in. The importer reads your headers and shows a preview of the first 10 rows mapped to SalesThumb fields. Confirm the mapping or adjust dropdowns to fix any misreads.
Step 4 — Choose duplicate handling
Before the import runs, pick a duplicate strategy:
- Skip duplicates (default) — any row matching an existing customer by phone or email is skipped
- Merge into existing — add any new fields from the file to the existing record
- Create new anyway — rare, but useful for B2B fleets where one phone might legitimately have multiple records
For most shops, "Skip duplicates" is correct.
Step 5 — Run the import
Click Import. The importer runs in the background — a 1,000-row import takes ~5 minutes, 10,000 rows takes ~30 minutes. You'll get an in-app notification + email when it finishes, with a summary:
- 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.
- Date format unparseable — for "Last service date." Use YYYY-MM-DD format if our parser struggles.
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.