Keep the original export and map assets first
Export completed work from your previous CMMS and keep an unchanged copy. Import or map the asset register first. Each history row requires an existing asset_code in your workspace. Retired assets are supported so old maintenance records remain attached to the equipment they describe.
Use a stable source and external ID
Download the exact CSV contract from the authenticated importer. Choose a source identifier such as old-cmms and keep the original external_id for each job. The importer rejects repeated source IDs within the file and records already imported into the workspace. It does not overwrite prior work.
Preserve dates and closeout notes
Supply created_at, optional started_at and completed_at in UTC using YYYY-MM-DD HH:MM:SS. Completion cannot precede creation or lie in the future. Supported dates begin in 2000. Include the original title, description, work type, priority, actual minutes, failure code, root cause, corrective action and verification notes when available.
Preview, resolve every error, then commit
Upload at most 500 completed rows in a CSV of at most 1 MB. Preview does not create records. Commit rechecks the workspace and writes the entire batch in one transaction. Imported records retain their original dates and source identity; they do not send technician notifications or create new open work.
Reconcile the result before the next batch
Compare source counts, asset IDs and representative timestamps against the imported records. Attachments, original user accounts, checklist responses, detailed labor entries and historical stock consumption are not imported by this CSV. Preserve those source exports and plan them separately.