SalesThumb's CSV import handles customers and their vehicles. There's no fixed column format to match — you upload your CSV as-is, map its columns to SalesThumb's fields, tell us which platform the file came from, and review a live preview before anything is imported. It's built to work with exports from ShopMonkey, Tint Wiz, Urable, AutoLeap, Tekmetric, MobileTechRX, or a generic spreadsheet.
How it works
1. On the Customers → Import screen, drop in a CSV or click to browse. Up to 5,000 rows per file; the first row must contain your column headers. 2. SalesThumb parses those headers and opens the column mapper: every column in your file gets a dropdown where you choose which SalesThumb field it fills, or leave it as "— Don't import —". We pre-guess a mapping from common header names — "First Name", "fname", and "Given Name" all guess to First name; "Customer Name" or "Client" guess to Full name — but always check the guesses before importing, since anything we don't recognize defaults to "Don't import" until you map it yourself. 3. You also have to answer "Which platform is this export from?" (see below) — the Import button stays disabled until you do. 4. A live status box shows how many rows are ready to import, and a preview table shows the first 5.
Required fields
Only two fields are actually required: First name and Last name. You can map them as two separate columns, or map a single column to Full name and SalesThumb will split it — the first word becomes first name, everything after becomes last name. If a Full name value is a single word with nothing after it, last name is filled with a placeholder dash ("—") rather than left blank, so the row still counts as valid. Neither phone nor email is required — a row with a name and no contact info at all still imports fine.
Rows that don't resolve to both a first and last name (via direct columns or a split Full name) don't block the file — they're called out under the mapper as "N skipped (missing name)" and left out of the count that will actually be imported.
Which platform is this export from? (required)
This selector has to be answered before you can import. Leave it blank and you'll see an amber warning — "Pick the platform this CSV was exported from to continue" — and the Import button stays disabled. Options: Tint Wiz, Urable, AutoLeap, Tekmetric, MobileTechRX, ShopMonkey, or Other (CSV).
Whatever you pick stamps a canonical source tag (e.g. `tintwiz_import`) on every customer created or updated by the import. That tag is what your Referrals report uses to show where a customer originally migrated from — there's no way to skip this step or import without choosing one.
Fields you can map
The mapper's field list is grouped:
- Customer — First name*, Last name*, Full name (splits into first/last), Email, Phone, Company name
- Address — Address line 1, Address line 2, City, State, ZIP code
- Other — Notes, Tags (comma-separated, e.g. "vip,fleet")
- Vehicle (optional) — Vehicle year, Vehicle make, Vehicle model, Vehicle trim, Vehicle color, Vehicle VIN, License plate
\* required
Multiple vehicles per customer
Add each vehicle as its own row, using the same email as the customer's other row — email is the only thing SalesThumb actually matches existing customers on, not phone and not name. If a customer only has a phone number on file (no email), there's no way for a later row to match back to them — it will always create a brand-new customer, even under Merge. But your duplicate-handling choice on the import screen matters here: the default, Skip, skips the whole row — customer and vehicle both — whenever the email matches an existing customer, so a second row meant only to add a second vehicle won't do anything under Skip. Use Merge if you're adding rows (with a matching email) to attach more vehicles to customers that already exist (in SalesThumb or earlier in the same file). Allow duplicates will create a second customer record instead of attaching to the first.
Sample file
Click "Download sample CSV" on the upload screen for a ready-to-edit template. It looks like this:
First Name,Last Name,Email,Phone,Address,City,State,ZIP,Company,Vehicle Year,Vehicle Make,Vehicle Model,VIN,License Plate,Notes
Jane,Cooper,jane@cooper.com,555-010-2277,142 Main St,Austin,TX,78701,,2021,Tesla,Model 3,5YJ3E1EA8MF000123,TSX 442,Ceramic tint front 2These exact headers aren't required — they're just what the sample uses, and the mapper will pick them up on its own.
Common gotchas
- A VIN over 17 characters blocks the whole import, not just that row. SalesThumb caps VIN length at 17 characters; if any row's mapped VIN is longer, the entire file fails validation before anything is written — trim or clear that VIN and re-upload.
- Phone isn't validated or normalized — it's stored exactly as typed, with no reformatting to a standard layout. Email isn't format-checked either (no @ / shape validation), but it is automatically lowercased and trimmed of whitespace before it's stored, so " Jane@Cooper.com " and "jane@cooper.com" end up identical in SalesThumb even though phone gets no such cleanup. Clean up phone formatting in your source file first if you care about consistency.
- Color and trim alone won't create a vehicle. A vehicle record is only created for a row if at least one of year, make, model, VIN, or plate has a value — if you only map color and trim, nothing gets attached.
- Unmapped columns are dropped, not guessed from position. If the mapper defaulted a column you want to "Don't import," you have to fix that mapping yourself — nothing is inferred from column order.
After import
The results screen shows Added / Updated / Skipped / Vehicles counts, plus a list of any row-level errors (row number and message, first 10 shown). There's no way to re-import just the failed or skipped rows — fix your source CSV and re-upload the whole file. Rows that already succeeded will be matched on email (not phone) and handled per whatever duplicate-handling option you pick on the next pass.