Skip to content

How do I import assets from a CSV file?

Requires Basic

Under Import & Export, download the sample CSV, fill it in with your assets, and upload it again. Only the columns asset_type and name are required; all other columns are optional. Notory checks each row individually, skips invalid ones, and imports the rest. Column headers must match the field names (asset_type, serial_number, … — not “Type” or “Serial number”).

Import is included in the Basic plan. Keep in mind your license’s asset limit.

  1. Download the template. Open the Import & Export section (route /data) and click “Download example CSV”. The template contains all supported columns and one sample row — so you can see the exact field names.

    The import area with template download and file upload.
  2. Fill in the CSV. Enter your assets. A minimal, valid example:

    assets-import.csv
    asset_type,name,serial_number,manufacturer,model,status,location,department
    hardware,ThinkPad T14 – Vertrieb,PF-3X9K2L,Lenovo,T14 Gen 4,active,Büro München / Raum 2.14,Vertrieb
    network,Core-Switch 01,SG-88213,Cisco,Catalyst 9300,active,Rechenzentrum / Rack A1,IT
    software,Adobe Photoshop,,Adobe,2026,active,,Marketing
    • asset_type (required): one of hardware, software, network, certificate, license, peripheral.
    • name (required): must not be empty.
    • status (optional): defaults to active.
  3. Upload the file. Drag the CSV into the upload field (“Drag and drop a file here, or click to browse”) or select it. The preview shows the detected rows.

  4. Start the import. Click “Start Import”. When it’s done, Notory reports how many records were imported and how many were skipped.

    The import result: imported and skipped records.
  • Row-by-row validation: Each row is checked against the asset schema. If it fails, only that row is skipped (logged), and the rest goes through. The response states the number of successfully imported assets.
  • Required fields: asset_type (a valid type value) and name (not empty). If they’re missing or invalid, the row is discarded.
  • Watch out for empty cells in typed columns: Optional date (purchase_date, warranty_expiry), number (purchase_cost), and choice (status, data_classification) columns don’t tolerate empty strings. It’s better to leave such columns out entirely rather than leave the cell empty — otherwise the whole row can be skipped. Empty text fields (e.g. serial_number) are unproblematic.
  • Column names = field names: The header row must use the technical field names (asset_type, serial_number, …). Unknown columns are ignored — so you can also re-import a previously exported file (the id column is ignored in that case).
  • No duplicate check: Every valid row is created as a new asset. If you import the same file twice, you get duplicates — there’s no matching by name or serial number.
  • Encoding: UTF-8 is expected; a leading BOM is automatically removed. Umlauts in values are fine.