Key takeaways
- Most import failures are formatting and validation problems, not technical outages.
- Show errors at upload, with the row and column, instead of after the file is accepted.
- Save column mappings so the second import takes minutes, not a support call.
- Measure days from signed contract to first live import before you change anything.
In this post
A new customer signs on Monday. On Tuesday they send their customer list as a spreadsheet. The import fails on row 412, because one date is written as 03/04/2026 and the system expects 2026-04-03. The customer does not know which row is wrong, so they email support. Support asks for the file, finds the problem, and replies two days later. By then the customer has lost a week, and the kickoff call is spent on a spreadsheet instead of the product.
How common is this?
Most of the published numbers come from companies that sell import tools, and we could not find an independent study that counts CSV import failures during SaaS onboarding. The closest data measures data onboarding in general. In a survey of more than 100 businesses reported by RTInsights in 2021, more than three-quarters said they sometimes or often run into problems in the data onboarding process. A survey reported by DBTA named data formatting as the most common challenge, followed by validation and column matching. Read these as direction, not as a rate for your customers.
Share of respondents naming each onboarding challenge
- Data formatting76%
- Data validation69%
- Column matching46%
Source: DBTA report of an onboarding survey (see Sources). Check the original before quoting it.
Why imports stall
A spreadsheet from a customer is written for a person, not a parser. Dates use local formats. Numbers carry currency symbols or thousand separators. Column names differ from your field names, and some columns are missing altogether. Many systems stop the whole file at the first bad row. The customer then fixes one row, re-uploads, and hits the next error. Each round trip costs a day.
Signs you have this problem
- Customers ask support to fix their import files more than once a month.
- Imports fail after upload, not while the customer is looking at the file.
- Error messages say what failed in your database terms, not in the customer's spreadsheet.
- The same column mapping is rebuilt by hand for every new customer.
- Kickoff calls are spent on data cleanup instead of setup.
How to measure your own stall
Pull the last 20 customer onboardings. For each one, record the number of days from signed contract to the first live import, the number of support tickets about the import, and whether a person edited the file by hand. Those three numbers tell you where the time goes. If the median is more than a week, the import is probably the bottleneck.
The tools that help, and the part they leave out
Several open-source projects cover pieces of this. ImportCSV is a React import widget with schema validation. react-dropzone is a drag-and-drop file component, which handles the file input and nothing else. Airbyte is a data integration engine that syncs tables and warehouse data on a schedule. Each one solves one layer: the screen, the file, or the pipeline.
None of them decides what a valid row means for your product, which customers see which error, or how a repaired file is reconciled against what was already loaded. That decision layer is where most of the work is.
Best practice: make imports recover on their own
- Validate in the browser at upload, with the row number, the column name and what the expected format is.
- Suggest column mappings and save them per customer, so the next import reuses them.
- Show a preview with counts (valid, warning, rejected) before anything is written.
- Let the customer fix rejected rows and re-upload only those rows, without support.
- Log every import run and reconcile the counts, so you can prove what was loaded.
The import loop that recovers
- 01Parse the file and map columns to your fields
- 02Validate each row with clear, row-level messages
- 03Show a preview with valid, warning and rejected counts
- 04Customer fixes rejected rows and re-uploads only those
- 05Write the accepted rows and log the run
The steps, in order.
How Asauvia helps
We build the import flow and its validation rules around your data model, then connect it to your database or pipeline. A first engagement usually starts with a review of your last 20 failed imports and your schema, so we can see which errors are formatting and which are real data problems. We agree the scope with you before anything is built.
Whether an import tool should be built in-house or started from an open-source component depends on how much of the customer's data you need to shape. We will tell you which way we would go after the review.
- #CSVImport
- #CustomerOnboarding
- #DataIntegration
- #SaaS
- #DataMigration
Share this post