CSV Import
Bulk data import
Import assets, parts, locations, users, vendors, customers, WOs, PM plans, and requests via CSV.
Supported Types
- Assets
- Parts
- Locations
- Users
- Vendors
- Customers
- Work Orders
- PM Plans
- Requests
Process
- Download template
- Fill with data
- Save as CSV UTF-8
- Upload
- Review validation
- Confirm import
Tip
Updating existing records
Export your data, make your edits, then re-upload the file. FreeMaint matches each row back to its existing record by the ID (or Reference) column, so records are updated in place instead of duplicated. On the preview step you choose how the import is applied:
Create new only
Always add new records. Existing ones are not touched (may create duplicates).
Update existing only
Only update records matched by ID/reference. Rows with no match are skipped and reported.
Update existing & create the rest
Matched records are updated, unmatched rows are created.
Vendor contacts
Vendors support individual contacts directly in import and export. Add numbered columns โ Contact 1 Name, Contact 1 Email, Contact 1 Phone, Contact 1 Role, Contact 1 Primary โ and repeat with Contact 2, Contact 3, and so on for as many contacts as you need. Only the name is required; the email can be left blank. Exporting your vendors already includes these columns, so you can export, edit, and re-upload. When updating, including any Contact column replaces that vendor's contacts; leave the Contact columns out to keep the existing ones.
Importing a location hierarchy
Locations can be nested as deeply as you need. In the Parent Location column, type the parent's name โ or, when sub-locations share the same name in different branches, the full path with each level separated by ' > ' (for example: Site A > Building 1 > Floor 2). This lets you reuse a name like 'Office' or 'Corridor' under different parents without any conflict. Exports already fill this column with the full path, so an exported file re-imports exactly as it was.
Tip
Related articles
Was this page helpful?