Bulk actions and import
Manage hardware in batches: act on many existing assets at once from the hardware list, or add new devices from a CSV file or a connected MDM.
:::note Before you begin
- You need an admin, IT admin, or super admin role. Bulk actions and imports live under Admin.
- For CSV import: your asset data in a spreadsheet you can save as CSV, XLSX, or XLS.
- For MDM import: a configured Microsoft Intune or Jamf Pro integration. See Run a bulk import from your MDM. :::
Act on multiple assets at once
The hardware list has a selection bar that runs one action across many assets at once.
Select assets
- Open Admin → Hardware.
- Optionally filter or search first so the list shows only the assets you want.
- Select the checkbox at the start of each row. To select everything on the page, use the Select all checkbox in the table header.
A selection bar appears above the table with the count of selected assets and the available actions.
Select all covers the current page only. To act on more assets than fit on one page, narrow the list with search or filters first, then select all and run the action one page at a time.
Available bulk actions
| Action | What it does | Notes |
|---|---|---|
| Assign to… | Assigns the selected assets to one person | Sets each asset to Assigned; sends the assignee one notification for the whole batch |
| Change status… | Sets a new status on the selected assets | Choose from the statuses below; doesn't set Assigned |
| Print labels | Generates QR labels for the selected assets | See QR codes and labels |
| Delete | Moves the selected assets to trash | Far right of the bar; confirm to proceed |
| Clear | Deselects everything and hides the bar | — |
The Change status… menu offers these statuses:
| Status | Meaning |
|---|---|
| Available | Free to assign |
| In storage | Held in stock, not in use |
| In repair | Out for service |
| Reserved | Held for a planned assignment |
| Retired | End of life, kept on record |
| Disposed | Decommissioned and removed from service |
The bulk menu never sets the Assigned status. An asset becomes assigned only through Assign to…, which also records who it went to. To hand an assigned asset back, recover it from the asset's own page first. See Assign and recover hardware.
Run an action
- Select the assets.
- To assign: select Assign to…, search for the person, and select their name. To change status: open the Change status… menu and choose a status.
- Select Apply, then confirm.
To delete instead, select Delete at the right of the bar and confirm.
Assigned assets are skipped by every bulk action — assign, change status, and delete alike. To act on an assigned asset, open it and recover it from its current holder first. After the action runs, a message reports how many assets were updated and how many were skipped because they were still assigned.
Import hardware from a CSV file
Bulk import adds many assets in one upload. The importer matches your columns to asset fields and creates the supporting records it needs.
Download the template first
- Open Admin → Bulk import.
- On the Hardware card, select Download CSV template ↓.
- Open
hardware-template.csv. It lists every column the importer reads and includes a few sample rows you can replace.
The template is saved as UTF-8, so it opens cleanly in Excel and other spreadsheet apps.
Fill in the columns
Only name is required. Leave any other cell blank when you don't have the value. Extra columns the importer doesn't recognize are ignored, so you can keep your own working columns.
| Field | Required | Default | Notes |
|---|---|---|---|
name | Yes | — | The only field you must provide for every row |
asset_tag | No | Auto-generated | A row whose tag already exists is skipped as a duplicate |
category | No | — | Referenced by name; created if it doesn't exist |
manufacturer | No | — | Free text |
model | No | — | Free text |
serial_number | No | — | A row whose serial already exists is skipped as a duplicate |
cpu | No | — | Free text |
ram | No | — | Free text, for example 32 GB |
storage | No | — | Free text, for example 1 TB SSD |
gpu | No | — | Free text |
screen_size | No | — | Free text, for example 16.2" |
operating_system | No | — | Free text, for example macOS |
color | No | — | Free text |
purchase_price | No | Empty | Numeric; non-numeric values are dropped |
currency | No | EUR | ISO currency code |
purchase_date | No | Empty | YYYY-MM-DD; unparseable dates are dropped |
warranty_expires_at | No | Empty | YYYY-MM-DD; unparseable dates are dropped |
location | No | — | Referenced by name; created if it doesn't exist |
vendor | No | — | Referenced by name; created if it doesn't exist |
status | No | available | Unrecognized values fall back to available (see below) |
condition | No | new | One of new, excellent, good, fair, poor, broken; otherwise new |
assigned_to_email | No | Unassigned | Must match an existing person's email; sets the asset to Assigned |
notes | No | — | Free text |
pre_acknowledged | No | Empty | Truthy (1, true, yes, y) marks an existing assignment as already accepted |
The status column accepts available, assigned, in_repair, in_storage, reserved, retired, disposed, lost, and stolen. Set assigned only alongside an assigned_to_email; if the email doesn't match a person, the asset imports unassigned.
For equipment people already use, set pre_acknowledged to 1. Those assets import as assigned without prompting the holder to sign off on hardware they've had for years. Leave the cell blank for new handouts that should go through the normal acknowledgement flow.
Upload the file
- On the Hardware card, select your file. Accepted formats: CSV, XLSX, XLS, and TXT, up to 10 MB.
- Select Upload & import.
Importing never sends email or in-app notifications, even when rows assign assets to people. It's safe to run against a production setup without notifying employees.
Verify the import
After the upload, a banner reports how many assets were imported and how many rows were skipped. Open Admin → Hardware to confirm the new assets, their assignments, and any vendors, categories, or locations the importer created.
Run a bulk import from your MDM
If you manage devices in Microsoft Intune or Jamf Pro, pull them in directly instead of exporting a spreadsheet. The MDM import is idempotent, so it's safe to re-run — matching devices are updated rather than duplicated.
On the Bulk import page, the Import from your MDM section shows a card for Microsoft Intune and one for Jamf Pro, each labelled Configured or Not configured:
| Card state | What to do |
|---|---|
| Configured | Select Import devices from <source> and confirm to pull its managed devices into your hardware list |
| Not configured | Select Configure credentials → (or Set up credentials on that card) to add the connection under Settings → Integrations first |
After an import runs, a banner summarizes the result as devices created, updated, unchanged, and errors. For connection setup steps, see your Integrations settings.
Troubleshooting
| Symptom | What to do |
|---|---|
| A bulk action skipped some assets | Those assets are currently assigned. Open each one and recover it from its holder, then run the action again. |
| The status menu has no "Assigned" option | Expected. Use Assign to… to assign an asset; the bulk status menu only changes unassigned-state statuses. |
| The import banner shows skipped rows | A row was missing name, or its asset_tag or serial_number already exists. Fix those rows and upload again. |
| The import reports validation errors | The page lists the affected rows with the exact column and reason. Correct them and re-upload. |
| The import failed entirely | The file couldn't be read. Confirm it's a CSV, XLSX, XLS, or TXT file under 10 MB, then retry. |
| An MDM source shows "Not configured" | Its credentials aren't set. Add them under Settings → Integrations, then return to the Bulk import page. |