Practical evaluation guide · Updated 7 September 2026
In this guide
Start with one site and a recoverable copy
Keep an unchanged copy of your workbook. Select one site and a small representative batch: an operating asset, an out-of-service asset and an asset with a meter. Agree who owns the register and which spreadsheet becomes read-only after cutover. This first batch proves the mapping before the rest of the team changes its process.
Prepare the five required columns
Use asset_code, name, site_code, status and criticality. Asset codes must be unique within the workspace. Create the site in Workspace settings first and use its exact code. Status accepts operational, limited, down or retired. Criticality accepts low, medium, high or critical. Optional fields include category, location, manufacturer, model, serial_number, meter_type, meter_value and notes.
Export CSV and preview before committing
Export one worksheet as CSV UTF-8 from your spreadsheet application. Keep leading zeros in identifiers as text. The uploader accepts CSV or text files up to 5 MB and 1,000 data rows per batch. It checks required fields, active site codes, duplicate asset codes and field values. Unknown columns are reported as ignored; review that warning so information is not silently omitted from your migration plan.
Resolve errors, then reconcile
Nothing is created during preview. Correct every invalid row and upload again. Commit only after checking the preview against the source. The final asset import is atomic. Existing asset codes are rejected rather than updated. If the workspace changes after preview, revalidate the file. Compare the resulting asset count and export against your original batch before repeating.
Bring the maintenance process across separately
The asset CSV creates the equipment register. Calendar and meter schedules use a separate schedule CSV and begin paused. Completed work history uses its own validated CSV with original source IDs and UTC dates. Attachments, original user accounts and detailed stock or labor history need a separate migration plan.
Define the migration outcome before changing the workbook
Moving from Excel to a CMMS is a change in the maintenance record and the way people use it. A successful import is one milestone, but the useful outcome is that staff can find the correct equipment, assign maintenance and preserve the resulting history. Start by defining the first workflow that must work after the move. For a small team, that may be one site's asset register and one complete maintenance job.

AI-generated editorial illustration; not a customer photograph or product screenshot.
Keep an unchanged source copy with a recognizable date and owner. Work from a separate preparation copy so that cleaning decisions can be reviewed. Record which workbook or worksheet is authoritative when several versions exist. If two people independently maintain “the latest register,” resolve that ownership before trying to combine their rows.
Set a limited pilot boundary. Choose representative assets rather than the first rows in alphabetical order: include different statuses, a meter-equipped asset and a record with optional details you care about. The pilot should reveal mapping problems before they affect the whole register. It should also be small enough to reconcile manually against the source.
Inventory the data you are actually moving
A maintenance workbook often contains several different kinds of information: equipment identity, service history, future schedules, supplier details and informal notes. These may share a worksheet without belonging to the same destination record. Separate them conceptually before exporting anything. An asset row is not a work-order history row, and a next-service date is not the whole maintenance plan.
Create a simple mapping sheet with the source column, intended destination, transformation and owner. For example, a local “Machine ID” may map to asset_code, while a “Workshop” column may need reconciliation with an active site_code. A long service narrative may belong in a historical record rather than being copied into the asset name.
Mark data that has no supported destination. PreventiveHQ reports unknown asset-import headers as ignored, so an apparently successful preview should not be taken to mean every source column will be preserved. Decide whether each excluded field can be retained in an appropriate notes field, needs a separate workflow or should remain in the source archive.
Establish stable asset codes before importing
Asset codes connect the register with future work, schedules and history. They must be unique within the workspace. Descriptive names alone are not reliable identifiers because several assets may share a model or local nickname. Choose codes that the team can recognize and maintain without rebuilding the naming scheme every time equipment moves.

AI-generated editorial illustration; not a customer photograph or product screenshot.
Preserve leading zeros when they are part of an identifier. Spreadsheet applications may display a value such as 00042 while storing it as the number 42, depending on formatting. Check the exported CSV as data rather than trusting the visual appearance of the worksheet. The importer can only read what the file actually contains.
Review duplicate codes before upload. PreventiveHQ rejects duplicates within the file and codes that already exist in the workspace; the asset import creates records rather than updating existing ones. If a duplicate represents the same physical asset, reconcile the source. If it represents different equipment, assign distinct identities before importing either record.
Create and verify the site references
The asset importer expects an active site in the same workspace. Create the intended site in Workspace settings before preparing the final CSV and use its code consistently. A site name in the workbook may not be the same as the site's code in the application. Keep that mapping explicit so staff do not improvise different spellings across batches.

AI-generated editorial illustration; not a customer photograph or product screenshot.
Decide whether the source's location detail belongs at the site level or in the asset's location field. A campus, building, room and equipment position can describe different levels of context. Do not create dozens of sites merely because a worksheet contains dozens of room names. Use the product's available structure in a way the team can explain and maintain.
During the pilot, inspect the destination site for each asset. A syntactically valid code can still be the wrong operational location if the mapping sheet is incorrect. Have a person familiar with the site verify a few physical assets against the preview and the resulting register.
Map status and criticality deliberately
PreventiveHQ's asset import accepts operational, limited, down and retired for status. Criticality accepts low, medium, high and critical. These values should describe the source record accurately; they should not be selected merely to make a validation error disappear. If the workbook uses different terms, agree the translation with the responsible maintenance team.
For example, “inactive” may mean retired equipment in one workbook and temporarily unavailable equipment in another. Those are different operational states. Review ambiguous values individually or define a clear mapping rule with its owner. Keep the original value in your preparation record so the decision can be revisited if needed.
Criticality is also a maintenance decision rather than a formatting choice. A high purchase price does not automatically establish high operational criticality, and a small component may have a significant consequence if it fails. The migration should preserve the team's reviewed assessment without inventing a new risk model from incomplete spreadsheet data.
Prepare optional fields without hiding uncertainty
Optional asset fields include category, location, manufacturer, model, serial_number, meter_type, meter_value and notes. Use them where the source is reliable and the information will help future maintenance work. A blank unknown serial number is more honest than a placeholder that looks like a real identifier and later confuses a warranty or service search.
Keep manufacturer and model distinct when the source allows it. Combining them into a long asset name may make the initial import easier but reduce the usefulness of the register later. Review repeated formatting differences, unnecessary spaces and copied comments that may have accumulated as people edited the workbook over time.
For meters, verify both type and value. A number without a unit or reading context should be investigated before it becomes the baseline for usage-based maintenance. If the source contains a replaced counter or mixed units, resolve that history separately. Importing a plausible-looking number is not enough to establish a trustworthy maintenance trigger.
Export a clean CSV from one prepared worksheet
Use the downloadable asset register CSV as the destination structure. Prepare one worksheet with a unique, non-empty heading for each column and one asset per data row. Avoid merged cells, explanatory title rows and totals beneath the register. Those presentation features are useful in a workbook but are not part of the import schema.
Export CSV UTF-8 from the spreadsheet application and inspect the resulting file. CSV stores values rather than workbook formatting, formulas, comments or additional sheets. If a formula produces a required value, confirm the exported value is the one you intended. Do not assume the application's upload process can reconstruct a workbook from the CSV.
The asset uploader accepts CSV or text files up to 5 MB and 1,000 data rows per batch. Split larger registers into controlled batches with distinct filenames and a reconciliation log. Keep the header structure consistent across batches, and avoid editing the source in parallel without recording which version each file represents.
Use preview as a review step, not a formality
Preview does not create assets. It identifies valid and invalid rows and shows the core mapped values, including asset code, name, site, status and criticality. Review those values against the preparation copy. A file can pass validation while still containing a human mapping error, such as assigning all equipment to the wrong active site.

AI-generated editorial illustration; not a customer photograph or product screenshot.
Resolve every invalid row before committing the batch. Typical issues include an unknown or inactive site, duplicate asset code, missing required value or inconsistent column count. Correct the preparation file and upload again rather than trying to remember a set of fixes outside the source. The corrected file should remain the record of what was submitted.
Pay attention to ignored headers. A warning about an unused column is a migration-scope decision, not just a cosmetic message. Confirm where that information will remain available and whether its absence affects the first maintenance workflow. If it is essential, resolve the destination before treating the batch as ready.
Commit only after the workspace and file agree
After a valid preview, commit the reviewed batch using the supported importer. The asset import is atomic, so the intended batch is created together rather than leaving an ordinary validation failure as a partially imported register. The application also rechecks relevant workspace conditions, including site availability and existing asset codes.
If the workspace changes after preview, upload the file again to revalidate it. This can happen if another person creates one of the same assets or changes a site's availability. Treat that message as a reason to refresh the review, not as an invitation to bypass validation or alter identifiers merely to force a duplicate into the system.
Coordinate the pilot with the people who can edit the register. A brief, clearly communicated import window can reduce conflicting changes. The aim is to keep the source file, preview and destination consistent long enough to establish the first reliable batch.
Reconcile more than the row count
Compare the number of created assets with the expected batch, but do not stop at totals. Two registers can have the same count and different content. Check identifiers, site assignments, statuses, criticality and representative optional fields. Include the records that were difficult to clean, because they are more likely to reveal a transformation mistake.

AI-generated editorial illustration; not a customer photograph or product screenshot.
Use a simple reconciliation table with expected value, observed value and decision. For an illustrative five-asset pilot, verify all five records manually. For later batches, keep complete count and identifier checks and use an appropriate field review based on the team's requirements. The method should be documented well enough that someone else can repeat it.
If a discrepancy appears, identify whether it came from the source, preparation, export or destination behavior. Preserve the relevant file and record context. Avoid immediately uploading another version with changed codes, because that can create a second problem while obscuring the first.
Bring schedules and completed history across separately
The asset CSV establishes the equipment register. PreventiveHQ provides a separate maintenance schedule import for calendar and meter plans, which begin paused for review. It also provides a separate completed work-history import with original source identifiers and UTC dates. Each process has its own schema and acceptance checks.
Sequence the work so that referenced assets exist before their schedules or history are imported. Reuse the same stable asset codes across files. If a source workbook uses a different historical identifier, maintain a reviewed mapping rather than changing references inconsistently in several places.
Attachments, original user accounts and detailed stock or labor history require a separate migration plan. Do not describe the asset import as a complete transfer of every historical business record. Keep the source archive available and define which information must be accessible for the team's operational and record-retention needs.
Decide when the old workbook stops being operational
Parallel editing can undermine a clean migration. If staff continue recording new assets and maintenance in the old workbook while others use the CMMS, the two systems can diverge quickly. Set a cutover rule that identifies which system is authoritative for each type of record and when that rule takes effect.
Keep the old workbook available as an archive where needed, but make its status obvious. Record the cutover date, owner and any exceptions that still require source access. If part of the process remains outside the CMMS, describe that boundary clearly so staff know where to record new information.
After cutover, review the first real maintenance job against an imported asset. The technician should be able to find the equipment, understand the task and preserve the completion record. That operational check is what turns a successful data import into a useful change for the customer.
Use a practical migration acceptance checklist
Before expanding beyond the pilot, confirm that identifiers are unique, sites are correct, statuses are reviewed and meter baselines are understood. Verify that ignored columns have an agreed disposition and that the source archive is recoverable. Check that the team knows which records belong in the asset, schedule and history import flows.

AI-generated editorial illustration; not a customer photograph or product screenshot.
Have a second person review the reconciliation evidence and perform one ordinary lookup without guidance. They should be able to locate an asset using the code or location information available in the workplace. If they cannot, improve the record before multiplying the same problem across a larger register.
Finally, record the remaining work with owners: additional batches, schedule activation, historical mapping and staff orientation. A migration plan is credible when those boundaries are explicit and the first workflow is demonstrably usable. Open the asset importer when the prepared pilot file is ready for preview.
An illustrative five-row reconciliation
Suppose the pilot file contains three operational assets, one limited asset and one retired asset across two active sites. Before committing, write down those expected counts and the five unique codes. After import, compare the same categories and inspect every code. If the total is five but all records appear at one site, the count check passed while the location mapping failed. Correct the underlying mapping decision before preparing the next batch.
Also inspect one optional field that matters operationally, such as a serial number or meter baseline. A successful import of the required fields does not prove that every optional source value was prepared correctly. Keep the original file and the reviewed destination values together in the reconciliation notes.
Can we use the asset import to update existing records?
The current asset CSV flow creates new assets and rejects codes already present in the workspace. It is not a bulk update mechanism. If the team needs to revise existing records, use the supported editing workflow and agree the scope separately. Changing asset codes simply to get a second import accepted can create duplicate physical identities and make later work-history mapping harder.