How to normalise crm contact names to proper case in a csv
- Step 1Export contact records as CSV — Download from your ad platform, form tool, or CRM.
.csv/.tsv/.txtload directly;.xlsx/.xls/.odsare read from the first sheet. - Step 2Drop the file onto the converter — Column checkboxes appear from the header row. Identify the name columns (FirstName, LastName, FullName).
- Step 3Tick the name columns — Check FirstName and LastName (or FullName). Leave email, phone, and company unticked — Title Case on an email or company name is usually wrong.
- Step 4Choose Title Case (proper case) — Select the Title Case radio (preview
John Smith). It capitalises the first letter of each word and lowercases the rest. - Step 5Convert and scan the preview — Click Convert case and read the first-10-rows preview. Look specifically for Mc/Mac/O' and hyphenated surnames that the mechanical pass got wrong.
- Step 6Patch surnames, then import — Download the
.title-case.csv, fix prefixed/hyphenated surnames with csv-find-replace, and import into HubSpot, Salesforce, or Mailchimp.
How proper-case (Title Case) transforms real names
The converter capitalises the first letter of each whitespace-separated word and lowercases the rest (regex \w\S*). It has no surname intelligence — the gotcha column shows where a human pass is still needed.
| Input name | Title Case output | Correct? |
|---|---|---|
JOHN SMITH | John Smith | Yes — the main win |
john smith | John Smith | Yes |
john SMITH | John Smith | Yes |
MCDONALD | Mcdonald | No — should be McDonald |
o'brien | O'brien | No — should be O'Brien |
MACLEOD | Macleod | No — should be MacLeod |
MARY-JANE WATSON | Mary-jane Watson | No — should be Mary-Jane |
VAN DER BERG | Van Der Berg | Depends on style (often van der Berg) |
Mode choice for a name column
Title Case is the right proper-case mode. The others are situational.
| Mode | `JOHN SMITH` becomes | Use for names? |
|---|---|---|
| Title Case | John Smith | Yes — proper case, both words capitalised |
| Sentence case | John smith | Only if names live in one FullName cell AND you want just the first word capitalised (wrong for surnames) |
| lowercase | john smith | No — for matching/dedup keys only, not display |
| UPPERCASE | JOHN SMITH | No — that's the problem you're fixing |
Cookbook
Before/after rows from real lead and CRM exports, showing the proper-case win on common names and the surnames that still need a manual touch.
All-caps ad leads fixed for the mail merge
ExampleA Facebook lead-form batch came in all caps. Title Case on the name columns turns them into proper case so the welcome email greeting reads correctly.
Input: FirstName,LastName,Email JOHN,SMITH,john@x.com SARAH,JONES,sarah@x.com Convert case → Title Case, columns: FirstName + LastName Output (.title-case.csv): FirstName,LastName,Email John,Smith,john@x.com Sarah,Jones,sarah@x.com
All-lowercase legacy CRM export normalised
ExampleAn export from an old system stored every name lowercase. Title Case restores proper capitalisation in one pass.
Input: FullName,Company jane doe,acme ltd Convert case → Title Case, column: FullName (Company unticked) Output: FullName,Company Jane Doe,acme ltd
Surname gotchas — proof and patch
ExampleThe mechanical pass gets Mc/Mac/O' and hyphenated names wrong. Run Title Case for the bulk fix, then patch the known patterns with find-replace.
Input: LastName MCDONALD o'brien mary-jane Convert case → Title Case: LastName Mcdonald O'brien Mary-jane Fix step (csv-find-replace, case-sensitive): Mcdonald→McDonald, O'brien→O'Brien, Mary-jane→Mary-Jane
Names only — email and phone untouched
ExampleTitle Case would mangle an email if you ticked it. Restrict the selection to the name columns so contact handles stay exactly as captured.
Input: FirstName,Email,Phone MARIA,Maria@X.com,+1 555 0100 Convert case → Title Case, column: FirstName only Output: FirstName,Email,Phone Maria,Maria@X.com,+1 555 0100
Header row stays so the CRM map keeps matching
ExampleTitle Case skips the header, so the CRM's import field mapping against First Name / Last Name continues to work after the values are normalised.
Input: First Name,Last Name JOHN,SMITH Convert case → Title Case, columns: First Name + Last Name Output (headers preserved): First Name,Last Name John,Smith
Errors and edge cases
Real errors and silent failures sourced from each platform's own documentation. Match the wording to the row, fix what the row says to fix.
Mc / Mac surnames lose the internal capital
Known limitationMCDONALD→Mcdonald, MACLEOD→Macleod. The pass capitalises only the first letter of each word and lowercases the rest, with no surname dictionary. Fix the known patterns with csv-find-replace (case-sensitive Mcdonald→McDonald) after the conversion.
Apostrophe surnames not capitalised after the apostrophe
Known limitationo'brien→O'brien, not O'Brien. The apostrophe is a non-space character, so the letter after it is lowercased as part of the same token. Patch with find-replace, e.g. O'brien→O'Brien, D'angelo→D'Angelo.
Hyphenated surnames not capitalised after the hyphen
Known limitationMARY-JANE→Mary-jane, smith-jones→Smith-jones. The hyphen sits inside the token, so the second part is lowercased. Fix hyphenated names with csv-find-replace per pattern, or with a manual review pass.
Nobility / particle surnames (van, von, de, della)
Style-dependentVAN DER BERG→Van Der Berg. Many style guides keep particles lowercase (van der Berg). The tool capitalises every word, so adjust particles afterward if your house style requires it.
Ticking the email or phone column
AvoidTitle Case on an email gives John@example.com (only the first letter changes) and on a phone number it is meaningless. Tick name columns only; for emails use the lowercase mode on the dedicated email-list guide.
No column ticked applies proper case to everything
By designLeaving all boxes unchecked applies Title Case to ALL columns, including email and company. For a name fix you want only the name columns ticked. Verify the selection before running.
Accented names
Supportedjosé garcía→José García — accents are handled by Unicode-aware case methods, so international first names normalise correctly. The surname-prefix limitations above still apply to accented prefixes.
Initials and suffixes (J.R., Jr, PhD)
Mostly preservedj.r. smith→J.r. Smith (the letter after the dot is lowercased, same token rule), and JR→Jr. Review names with embedded initials or suffixes; patch with find-replace if J.R. must stay uppercased.
File over the free 2 MB / 500-row limit
BlockedLarge lead exports are blocked on free. Split with csv-row-limiter or upgrade to Pro (100 MB / 100,000 rows).
Frequently asked questions
Will proper case handle surnames like McDonald or O'Brien correctly?
No. The proper-case (Title Case) mode capitalises only the first letter of each word and lowercases the rest, with no surname dictionary. mcdonald→Mcdonald and o'brien→O'brien. It is great for the bulk all-caps / all-lowercase fix, but Mc/Mac/O'/hyphenated names need a follow-up pass with csv-find-replace or manual review.
What about hyphenated names like Mary-Jane?
The letter after the hyphen is not re-capitalised — mary-jane→Mary-jane. The hyphen is treated as part of the same word. Patch hyphenated surnames with find-replace (Mary-jane→Mary-Jane) after the conversion.
Can I convert first and last name in the same run?
Yes. Tick both the FirstName and LastName checkboxes (or just FullName) and they are converted together in one pass. Other columns stay untouched.
Does this affect email or phone columns?
Only if you tick them — and you should not. Title Case on an email or phone produces wrong output. Restrict the selection to name columns. For emails, use the lowercase mode instead.
Will it change my column headers?
No. The converter skips the first row, so First Name / Last Name / FullName stay exactly as written and your CRM import field-mapping keeps working. Only the data values change.
Should I use Title Case or Sentence case for names?
Title Case — it capitalises every word, so JOHN SMITH→John Smith. Sentence case capitalises only the first word of the whole cell, giving John smith, which is wrong for a surname. Use Sentence case only for single-word fields where that's intended.
Why do some names still look wrong after conversion?
Because the transform is mechanical, not linguistic. It cannot know that O'brien should be O'Brien or that van der berg is often van der Berg. Scan the preview, then fix the small number of prefixed/hyphenated/particle surnames with csv-find-replace.
Can I upload an Excel contact export?
Yes — .xlsx, .xls, and .ods are accepted (first sheet), with the result downloaded as .xlsx. Plain .csv, .tsv, and .txt work too.
How many contacts can I process for free?
Up to 2 MB and 500 data rows on the free tier. For a larger lead list, split with csv-row-limiter or upgrade to Pro (100 MB / 100,000 rows).
Is my contact PII uploaded anywhere?
No. PapaParse runs entirely in your browser; names, emails, and phone numbers never reach a server. Signed-in users get a single anonymous run counter only — no cell content is transmitted, which matters for GDPR/CCPA handling.
What does the Cells converted count tell me?
It counts the name cells whose value actually changed case. If you imported 200 leads and the count is 200, all of them were mis-cased; if it's low, most were already proper case. It's a quick sanity check on how dirty the source was.
Can I automate name normalisation on inbound leads?
Yes. GET /api/v1/tools/csv-case-converter returns the schema (caseType, columnIndices); pair the JAD runner and POST the payload to Title-Case the name columns on every lead export, then chain a find-replace step for your common surname fixes before the CRM import.
Privacy first
Processing runs locally in your browser with PapaParse. No file is uploaded — only metadata counters are saved for signed-in dashboard stats.