Underneath
The import that goes wrong is never the one that fails.
A failed import is obvious and somebody fixes it. The expensive one succeeds — creating four hundred records that duplicate people you already had, silently, at two in the afternoon on a Tuesday.
Which is why the interesting part is what happens before anything is written.
Before
Four numbers, and the last one is a file.
What would be created. What would link to somebody you already have — resolved through the same matching the rest of the product uses, so it finds people rather than exact strings. What duplicated inside the file itself, naming the earlier row. And what could not be read, with the reason.
That last one comes back as a file you can fix and re-upload, rather than a count you have to reverse-engineer.
- 1,284would be created
- 417would link to somebody you already have
- 26duplicated within the file itself
- 9could not be read — downloadable, with the reason
- Ten source shapes are recognised —
Including exports from several named recruiting and sales systems, each identified by the shape of its own columns — one of them with a negative test so it cannot claim another system's file.
- Committing is row by row —
So one bad record rolls back only itself rather than the batch.
- And it can be undone for a week —
All or nothing on the window, with the expiry date named if it has passed. It reverses newest first, and refuses rather than deletes a record somebody has since edited and re-attributed.
- A person who already existed survives the undo —
Only somebody the import itself created and who has no remaining links is removed.
- A stalled import is closed out —
Rather than sitting as in-progress forever.
Being straight
Three things about importing worth knowing first.
Three kinds commit today — people, customers and employees. Others can be previewed and will fail at the point of writing, which is the wrong way round and is being fixed; do not plan a migration around them.
A match links rather than updates. Where the preview says it found somebody you already have, it attaches to that person — it does not merge the incoming fields into their existing record.
Mapping is not saved between runs. Each import is mapped afresh, apart from the shipped templates.
›Is there a size limit?
Yes, and the refusal names it rather than timing out.
›Can two people import at once?
There is nothing stopping it today. Coordinate rather than relying on the product to.
›Are imports audited?
The job records what it did. It does not write to the general audit trail — worth knowing if your controls expect it to.