Where work gets stuck
Moving batches of records between systems can carry missing values, duplicates, and invalid data downstream. A failed import is harder to fix when nobody knows which rows caused it.
A system for the next step
We agree the source-to-destination mapping, the rules for valid records, and how existing data should be treated. The workflow can include a dry run that makes no destination changes, duplicate checks, row-level correction feedback, and a controlled transfer step. Repeated files, interrupted transfers, and destination errors are handled according to the agreed import policy.
A clear deliverable
- Documented column mapping and CSV or Excel handling for the agreed file formats.
- Validation rules for required values, formats, references, and duplicates, with tested examples.
- A preview or dry run and row-level feedback identifying the field, issue, and correction needed.
- Transfer results showing accepted, updated, skipped, and failed rows, with agreed retry and recovery steps.
Your team can fix invalid entries before transfer instead of finding errors in downstream work.
Catch errors before they spread
Teams were moving batches of records between systems and risking bad data downstream.
We built a bulk-import flow with validation checks and row-level error reporting.
Invalid entries are flagged before transfer, with clear feedback on what to fix.
Is this the right approach?
An import flow is useful when a standard uploader cannot enforce your rules or update the destination reliably. The scope should define whether a file is accepted as a whole or whether valid rows can proceed separately. It should also define what happens when the same file is sent twice.
Map columns and define valid records
Agree what each column means, which destination field it fills, and how dates, decimal values, identifiers, and empty cells are interpreted. A value such as 03/04/2026 needs an agreed date format; an identifier with a leading zero should not lose it when a spreadsheet treats it as a number.
Check more than whether a cell contains a value. A record may need to reference an existing account, use an allowed status, or meet a rule involving several fields. Feedback should identify the row and field, explain the failed rule, and show what the operator needs to correct. Use representative synthetic files when sharing examples for scoping.
Preview changes and resolve duplicates
For example, an import of stock records might match an agreed item code to the destination. A dry run can show which rows would create records, update existing records, or be rejected without changing stock. Compare counts and relevant totals with the source before approving the transfer.
Define duplicates within the file and against existing records separately. Choose whether matching rows are updated, skipped, rejected, or held for review, and identify which system owns each value. A similar name alone may not be a safe match. Also agree whether one invalid row rejects the whole file or valid rows can proceed.
Make failures and retries traceable
If the destination stops accepting records partway through a transfer, the result needs to distinguish confirmed writes from failed or uncertain rows. Keep an import identifier and recorded row outcomes so the operator can investigate the interruption before retrying. Avoid exposing sensitive record contents in logs.
A retry should follow the agreed matching and duplicate policy so sending the same file again does not silently create extra records or repeat an update. Test interrupted transfers and corrected files as well as valid imports. Handover explains how to correct rejected rows, resume or rerun work safely, and verify the final counts.
What to include in your request
- Describe the source file and destination system; use synthetic examples if needed.
- Which values are required, and what makes a record valid?
- Should existing records be updated, skipped, or rejected?
- How often do files arrive, and roughly how many rows do they contain?