CRM import preflight
Find out what the import will break, before it runs.
Upload the contact or company file you are about to push into HubSpot, Salesforce or Pipedrive. CRM Import Check tells you what will be rejected, truncated or silently merged — and hands back a cleaner file.
CSV, TSV or Excel, up to 20 MB
Free, no account, and the file never leaves your browser.
- Blocker
Same email address on two rows
4 rows
- Blocker
Email address the importer will reject
11 rows
- Warning
Phone number contains text
38 rows
Watch CRM Import Check find what HubSpot, Salesforce or Pipedrive would reject, in 30 seconds.
A real contact file, checked in the actual product — no account, and nothing to upload to watch it happen.
Thirty seconds, and it starts silent — turn the sound on in the player once it loads.
Nothing has been sent to YouTube yet: the image and this text came from us, and pressing play is what connects your browser to YouTube.
- 0:00HubSpot, Salesforce or Pipedrive.
- 0:02Rejected, truncated or silently merged.
- 0:05Your columns, their field names.
- 0:08Every finding names the value.
- 0:11Fifteen of them fix themselves.
- 0:14Each one, before and after.
- 0:18Nothing changes without saying so.
- 0:21Take the file it accepts.
A CRM import does not fail loudly. That is the problem.
Some rows are rejected and land in an error file you can re-import. The expensive ones are the rows the CRM accepts — and quietly changes.
No error, no warning
The CRM does not deduplicate inside your file
HubSpot checks an email address against records it already has, not against the other rows of the file you just gave it. Two rows with the same address both import, in order, and the second one overwrites the first one's fields. Nothing tells you it happened.
Silently shortened
A value longer than the field is cut, not refused
Salesforce's standard Email field takes 80 characters where the email standard allows 254, and Phone takes 40. A longer value is rejected or stored short, and a spreadsheet shows you nothing either way.
Imported as the wrong day
One date column, two date formats
You tell the importer one format for the whole column. Rows written the other way round import as a different date entirely — 03/09 is two different days depending on who typed it, and the CRM will not ask.
Every rule here is checked against the target CRM's own published import documentation, not against a generic idea of a tidy spreadsheet.
Upload, review, export. That is the whole tool.
As it arrives
contacts-q3.csv
What the check finds
- Blocker
Same email address on two rows
4 rows
- Blocker
Email address the importer will reject
11 rows
- Warning
Phone number contains text
38 rows
What you take back
contacts-q3-clean.csv
Email,First Name,Last Name,Phone
ada@example.co,Ada,Diaz,+1 512 555 0110
Checked against your CRM
Pick HubSpot, Salesforce or Pipedrive and the rules change with it: their required fields, their unique keys, their field lengths, their import limits.
Every finding names its rows
Not a score and not a percentage. Each finding says what it is, which rows carry it, what the CRM will do about it, and whether it can be fixed for you.
A file that is ready to import
Download the cleaned CSV with the CRM's own column names, an issues report for the rows that still need a person, and the original, unchanged.
What a finding actually looks like
Three real cases, with the row that causes them and the sentence the tool writes about it.
- The same customer, twice
Input: row 12 and row 340 both carry ada@example.co, with different job titles.
Output: one blocker, both row numbers, and the two values side by side.
Finding: HubSpot imports both and row 340 overwrites row 12's job title. Merge them first.
- An address too long for Salesforce
Input: an 84-character email address in a file targeting Salesforce.
Output: one blocker naming the field, the limit, and the row.
Finding: Salesforce's Email field takes 80 characters. The same file passes for HubSpot.
- A date column in two minds
Input: a Created column holding both 2024-03-11 and 12/04/2024.
Output: one warning naming the column and both formats found.
Finding: nothing is converted for you — the tool will not guess which day 12/04 means.
Three steps, then you are back in your CRM
Upload and pick the target
A CSV, TSV or Excel file, and the CRM it is going into. The file is read in your browser tab — it is never uploaded anywhere.
Read the verdict
Ready, review needed, or not ready — with the blockers first, the column mapping laid out beside it, and the affected rows named.
Choose the fixes, take the file
Tick the fixes you want. Every changed cell shows its before and after, nothing is applied you did not choose, and the original is always one click away.
What it looks for
Forty-five checks, each one a claim about what the target CRM does with the row rather than an opinion about tidy data.
Duplicates the CRM will not catch
The same email or domain twice in one file, identical rows, and the same person under two addresses — same name at the same company, or the same phone number.
Contact details that do not work
Malformed addresses, two addresses in one cell, throwaway domains, role mailboxes, likely typos, phone numbers with text in them, and rows nobody can reach at all.
Formatting the importer chokes on
Mangled accents from an encoding mismatch, invisible characters, spreadsheet errors like #REF!, cells that begin like a formula, and numbers written with thousands separators.
Values longer than the field
Checked against the target's own published field lengths, so you see what would be cut before it is cut — and can decide what to lose.
Columns that will not map
Each column matched to a CRM field, unmatched ones flagged, two columns fighting over one field reported, and every match overridable by you.
Records that should not be there
Test rows left over from a form, placeholders typed to get past a required field, and columns that carry the same value for every row.
Who runs this
Anyone who is about to push a list of real people into a system other people will trust.
Revenue and sales ops
You own the data quality nobody thanks you for. This is the check that happens before the import, when the fix is still free.
Agencies and consultants
You run this job per client, several times a year, on a file that is different every time. No connection to set up and nothing to install for each engagement.
Anyone importing a list
A conference export, a bought list, a spreadsheet a colleague has maintained for three years. Find out what is in it before your CRM does.
CRM migrations
Moving from one system to another means an export nobody has read end to end. Check the file against the destination's rules first.
Three CRMs, three sets of rules
A file that is fine for one is not automatically fine for another. Switching the target re-runs every check.
HubSpot
What's checkedDeduplicates on Email for contacts and on Company domain name for companies — against records it already holds, never against the rows of your file. Rejects a workbook with more than one sheet.
Key limitsEmail · Company domain name · Record ID · 1 MB per cell
Salesforce
What's checkedStandard fields are short and the limits are strict: a value over them is rejected or stored cut. Last Name is required on both contacts and leads.
Key limitsEmail 80 · Phone 40 · First 40 · Last 80 · Account 255 · 50,000 rows
Pipedrive
What's checkedPeople need a name, rows missing a mandatory value are skipped into a separate file rather than failing the import, and a sheet carrying formulas rather than values causes problems.
Key limitsName required · skip file · no formulas
What it does not do
Stated plainly, because the boundaries are what keep this one tool instead of four.
It does not import for you
No connection, no API, no push. You take the cleaned file to your own CRM's importer, which is also what keeps the privacy claim true.
It does not verify mailboxes
Whether an address actually receives mail is a network question, and asking it would mean transmitting your contacts. Syntax and structure only.
It does not merge duplicates
It finds them, groups them and shows what each row carries. Which record survives is a decision about a customer, not something a rule should make.
It does not invent a country code
It strips junk from a phone number and flags what a CRM will reject. Inferring a country from a bare number is a guess, and it does not guess.
Privacy
The file stays in your browser
A contact list is the most personal data any WorkAlio tool handles — names, work and personal addresses, phone numbers, employers. So none of it is transmitted.
Your file is parsed in the browser tab. It is never uploaded, because no code on this page sends it — that is what our code does, not something the browser enforces. What the browser does enforce is reach: the page's content-security policy lets the page itself contact only our own origin, Cloudflare's two analytics hostnames and, once you press play on the demo video, the host YouTube's player is loaded from. That is where our policy stops: the player is YouTube's own document, and what it loads inside that frame we neither govern nor count. Nothing from your file is in any of it.
There is no CRM connection. CRM Import Check never authenticates into HubSpot, Salesforce or Pipedrive, never reads your database, and never writes to it. It only looks at the file you are about to give the CRM yourself.
Email checks are offline. Syntax, structure, role addresses, throwaway domains and likely typos are all decided from lists compiled into the page. Nothing looks an address up, because looking it up would mean sending it.
No account, no sign-in, no cookie banner. What the page sends is one anonymous event saying a file was checked — no file name, no row count, no column names — and Cloudflare's anonymous page-view measurement. Pressing play on the demo video hands your browser to YouTube's player, which then loads whatever it loads from Google's own hosts; we neither control nor count those requests, and nothing from your file is in any of them.
Questions people ask first
If something here is not answered, the contact form reaches a person.
- What does CRM Import Check actually do?
- You upload the CSV or Excel file you are about to import into your CRM and choose the target — HubSpot, Salesforce or Pipedrive. It maps your columns to that CRM's fields, checks every row against that CRM's own documented import rules, and gives you a verdict plus a list of findings. You then choose which fixes to apply and download a cleaned file.
- Which CRMs are supported?
- HubSpot, Salesforce and Pipedrive, for both people and companies. Each one has its own required fields, unique keys, field lengths and import limits, and switching the target re-runs every check against the new rules.
- Is my contact file uploaded anywhere?
- No. The file is read and checked in your browser tab. The page's content-security policy lets the page itself reach only our own origin, Cloudflare's two analytics hostnames — one serves the measurement script, the other receives anonymous page-performance data — and the host the demo video's player is loaded from once you press play. Our policy stops at that frame: what YouTube's player loads inside it is not ours to govern or count, and none of it is sent your file. There is no account and no CRM connection.
- Why does it care about duplicates when my CRM deduplicates?
- Because your CRM deduplicates against records it already holds, not against the rows of the file you are importing. A file containing the same email address twice imports both rows in order, and the later one silently overwrites the earlier one's values. That is the single most valuable thing this tool catches.
- Does it read Excel files?
- Yes — .xlsx, including files where cells hold formulas, since it reads the cached values a CRM would receive. Pre-2007 .xls files are not read; open one and save it again as .xlsx or CSV. If a workbook has more than one sheet it reads the first and tells you, because HubSpot rejects multi-sheet files outright.
- Will it change my data without asking?
- No fix is applied unless you tick it. Every changed cell shows its value before and after, the change log downloads as its own file, and the original stays one click away. Fixes are always recomputed from the file you uploaded, so unticking one restores exactly what was there.
- How large a file can it check?
- Up to 50 MB, which is a limit on what a browser tab can comfortably hold rather than a CRM limit. If your file is larger, split it — and note that Salesforce's Data Import Wizard takes 50,000 records per run anyway, which the tool will also tell you.
- What does it cost?
- Nothing. There is no sign-up, no trial and no row limit inside the 50 MB ceiling. WorkAlio builds focused tools that work immediately; if a paid tier ever exists it will be for something this free version does not do.
- Can it clean the data already in my CRM?
- No, and deliberately not. Tools that connect to your CRM and clean what is in it already exist and charge by the record. This is the check that happens before anything is written to your system of record — when the fix costs nothing and nothing has to be undone.
Check the file first. It takes about a minute.
Free, no account, and the file never leaves your browser.