BULK IMPORT
Moving twenty years of history in.
Your exports and databases become typed records: through the bulk write API, through your agents, and with our engineers.
A bulk write, not a loop of creates
Taking over a database is not creating twenty thousand records one after another. The schema and the permissions are resolved once for the whole batch, the records go in together, and the side effects follow once behind them: indexing, audit log, computed fields, reciprocal relations.
That is what separates a migration that holds for a night from one that holds for a week.
One bad row does not take the batch down
Every record is checked on its own: defaults applied, relations normalised, label computed, types respected. A row that does not pass is rejected without bringing its neighbours down.
The result hands back both sides: what went in, and what was refused, with the position of the row and the reason. You fix the twenty bad rows, not the twenty thousand.
Your agents know how to use it
Bulk writing is not reserved for a migration script. Your agents get bulk create, update, delete and search, with the same guard rails as the rest of their actions.
That is what makes a messy migration affordable: the agent opens the source file in its sandbox, reads what is in it, composes the records and writes them. What you describe in plain language, it turns into typed records.
No self-service wizard
Better said here than discovered in a demo: there is no screen where you drop a spreadsheet, map columns onto fields and tick a box to merge duplicates.
Migration goes through the workspace API, through your agents, and through our engineers who run it with you. That is the path our heaviest migrations took, and it is also what makes the awkward cases tractable, the ones a generic wizard would have refused anyway.
How it works
You arrive with the export from your previous tool: companies, their contacts, and the links between the two.
Your objects are modelled in the workspace, with their types and their relations.
The batch goes to the bulk write API, pushed by our engineers or by an agent.
Every record is validated: defaults, relations, label, types.
The batch is written together, not one record after another.
The result hands back the records created and the rows rejected, with their reason.
Search, audit log and computed fields catch up behind.
The other pieces of this chapter