Skip to content

Check a CSV before it goes into your CRM.

Drop the file before it goes into HubSpot, Salesforce or Pipedrive. CRM Import Check flags rows that will be rejected, values that will be cut, and duplicates.

CSV, TSV or Excel, up to 20 MB

Free, no account, and the file never leaves your browser.

Watch CRM Import Check find what HubSpot, Salesforce or Pipedrive would reject, in 81 seconds.

A real contact file, checked in the actual product — no account, and nothing to upload to watch it happen.

The CRM Import Check film's title card, “27 findings. 11 rewrites.”, beside the export screen, with the cleaned file ready to download and the line that says blockers remain.1:21

One minute twenty-one seconds, narrated, with music playing from the first frame.

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.

  1. 0:03Already wrong on open
  2. 0:06Twice, and two as one
  3. 0:10One column, two date formats
  4. 0:15Looks fine. Isn't.
  5. 0:18HubSpot, Salesforce or Pipedrive.
  6. 0:21Rejected, truncated or silently merged.
  7. 0:25Your columns, their field names.
  8. 0:32A date column is written in more than one format
  9. 0:46A column matched no field
  10. 1:02Fourteen of them fix themselves.
  11. 1:06Blockers remain.

youtu.be/3ycBu-UauWQ · published September 24, 2026

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.

  1. You find out afterwards

    The CRM picks which duplicate row survives

    HubSpot does compare the rows of your file against each other, and names the collision as an import error. What it does not do is let you choose: only one of the colliding rows is imported, HubSpot picks which, and the other row's values do not arrive. You read about it afterwards, in the error report, once the import has already run.

  2. 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.

  3. 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.

Drop, review, export. That is the whole tool.

As it arrives

contacts-q3.csv

HubSpot · People

What the check finds

  • Same email address on two rows

    4 rows

    Blocker
  • Email address the importer will reject

    11 rows

    Blocker
  • Phone number contains text

    38 rows

    Warning

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 cleaned file, and what it could not fix

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 one of these two rows and reports the other as a duplicate. Decide which job title is right before you import.

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

Drop the file 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 you did not choose is applied, 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.

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, and against the other rows of your file, where it imports one of the colliding rows and reports the rest as errors. Rejects a workbook with more than one sheet.

    Key limitsEmail · Company domain name · Record ID · 1 MB per cell · 1,048,576 rows (paid plans) · under 1,000 columns

  • 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 · under 50,000 records

  • Pipedrive

    What's checkedPeople need a name, rows missing a mandatory value are skipped into a separate file rather than failing the import, and one import reads one tab of the workbook.

    Key limitsName required · skip file · one tab · 200,000 rows · 50 MB file

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.

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 youtube-nocookie.com, for the demo video's YouTube player frame, though nothing is loaded from YouTube until you press play. 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.

Our privacy approach

Questions people ask first

If something here is not answered, the contact form reaches a person.

More questions

Verifying data is accurate before you import

Six more questions — what "accurate" can and cannot mean for a file, picklists and owners, company records — plus three worked examples.

Read the questions page
What does CRM Import Check actually do?
You drop 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 youtube-nocookie.com, for the demo video's YouTube player frame, though nothing is loaded from YouTube until 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 carries your file. There is no account and no CRM connection.
Why does it care about duplicates when my CRM deduplicates?
Because your CRM deduplicates inside the file too, and it does not ask you first. HubSpot compares the rows of your file against each other and raises “Duplicate unique property value”: only one of the colliding rows is imported, HubSpot picks which, and the other row's values do not arrive. You find that out afterwards, from the error report, once the import has already run. This tool tells you before you upload — which rows collide, on which property, and how their values differ — so the choice of which record survives is yours rather than the importer's.
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. For HubSpot, which rejects multi-sheet files outright, and Pipedrive, which takes one tab per import, it tells you so; for Salesforce it reads the first sheet without a note.
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 dropped, 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 fewer than 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.

Drop the CSV you're about to import. Nothing to install, no account, no upload.

Check a file

Free, no account, and the file never leaves your browser.