> For the complete documentation index, see [llms.txt](https://docs.harmony.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.harmony.io/asset-management/managing-asset-organization-and-importing.md).

# Managing Asset Organization and Importing

{% hint style="info" %}
**Path:** `/assets`
{% endhint %}

### Managing Asset Organization

Asset organization controls where assets are, who owns them, and who they are assigned to. Update these values individually on the asset detail page or in bulk from the asset list.

![Asset detail page with Asset details card (Ownership, Assigned to)](/files/KEOovKMF5kDCXE8V6dy8)

#### Updating Asset Location

**Single asset:** On the asset detail page or in the list view Location column, click the cell to open the location selector. Choose an existing location, type to create a new one, or select **Clear location** to remove it. An autocomplete dropdown surfaces existing location values to keep naming consistent and prevent duplicates (for example, avoiding both "TLV" and "TLV Office"). Location is stored as manual location; it overrides MDM-derived and employee-derived locations when set.

**Bulk:** Select multiple assets, then use **Change location** in the bulk actions toolbar. Pick a location or create a new one; it applies to all selected assets.

#### Changing Asset Ownership

**Single asset:** On the asset detail page, use the **Ownership** dropdown in the Asset details card. Options: Company Owned, Leased, Personal, Released.

**Bulk:** Select multiple assets, then use **Change ownership** in the bulk actions toolbar. Choose an ownership value; it applies to all selected assets. This is especially useful during onboarding, offboarding, or team restructuring when ownership needs to change across many assets at once.

#### Assigning Assets to Employees

On the asset detail page, use the **Assigned to** dropdown in the Asset details card. Search for an employee and select them. To remove an assignment, select the **Unassigned** option from the dropdown. Assets with no employee assigned display **"Unassigned"** clearly rather than an empty field.

Assigned assets appear in the employee's profile in the People directory.

**Note:** Unassigning an asset does not automatically trigger a status change. Only assigning an asset to an employee activates the IN\_STOCK status transition.

When you assign a device, the Department field is automatically pre-populated based on the assigned employee's department, saving manual data entry. If Harmony later discovers via your MDM that a device belongs to a different employee, the assignment may be updated accordingly.

#### Understanding Asset Compliance Status

Compliance status comes from your MDM or integration (e.g., policy compliance). It is read-only and cannot be edited directly. Use the compliance filter in the list and the compliance badge on the asset detail page.

#### Managing Asset Metadata

Asset metadata (name, model, serial, manufacturer, source, etc.) is primarily sourced from MDM or integrations. For manually imported assets, you can add or edit purchase details, notes, location, ownership, and assignment. The asset detail page shows the full set of properties.

#### Viewing Estimated Asset Prices

If an asset does not have a purchase price manually entered, Harmony automatically displays a catalog-derived estimated price sourced from a hardware price database. An info icon appears next to any estimated price with an "Estimated price" tooltip, so it is always clear when a price is an estimate rather than an actual recorded value. If neither a purchase price nor an estimated price is available, no price is shown.

#### Auto-Assigning Owners to Autodiscovered Assets

When an autodiscovery scan runs on a device that already has an employee assigned, all peripherals and accessories found on that device - such as monitors, headphones, and keyboards - automatically inherit the same owner. This keeps your asset inventory accurate and ownership tracked from the moment a new asset is discovered, without any manual assignment needed. This applies to assets discovered in new scans going forward; previously scanned assets are updated in the next scan cycle.

***

### Using Bulk Actions on Assets

#### Selecting Multiple Assets

In the asset List view, use the checkboxes in the first column to select rows. Select individual assets or use the header checkbox to select all on the current page. Bulk actions apply only to the currently selected assets.

![Asset list with checkboxes and bulk actions bar](/files/Q6H1EdUTrHWJVJbkG6kv)

#### Bulk Updating Asset Location

1. Select one or more assets.
2. Click **Change location** in the bulk actions bar.
3. Choose an existing location or type to create a new one. Use **Clear location** to remove location from all selected assets.
4. Confirm. The update applies to all selected assets.

#### Bulk Updating Asset Ownership

1. Select one or more assets.
2. Click **Change ownership** in the bulk actions bar.
3. Select an ownership value (Company Owned, Leased, Personal, Released).
4. Confirm. The update applies to all selected assets.

#### Understanding Bulk Action Limits

Bulk location and ownership updates apply to all assets you have selected. Selection is limited to assets on the current page unless you select all on the page. For large updates, apply filters first to narrow the list, then use the header checkbox to select the filtered set.

***

### Adding Assets Manually

You can add individual assets directly through the UI without preparing a CSV file. On the Assets page, click **Add asset** and choose to add a single asset manually or import from CSV - both workflows are available from the same place.

The manual entry form supports the following fields:

* **Display name** (required), **Asset type** (required), and **Vendor** (required)
* **Model**, **Serial number**, **Quantity**, **Ownership**, **Location**, and an optional **Note**
* **Status** defaults to "In stock" automatically
* Serial numbers are optional and can be left blank

***

### Importing Assets

#### Importing Assets from CSV

1. Open **Assets** and click **Import** in the toolbar.

![Import dialog with template download](/files/1bDlbAGq74Gczp4cEE9G)

2. Download the CSV template from the import dialog.
3. Fill the template with your asset data. Required columns: Display name, Asset type, Manufacturer.
4. Upload the CSV file. The file is validated before import.
5. If validation passes, click **Import**. After import completes, a summary shows records created, updated, and failed.

If you have assets in an eToro spreadsheet template, Harmony recognises eToro's specific column structure and layout directly - you do not need to reformat your data before uploading. Assets without serial numbers are also handled correctly during import.

#### Understanding Asset Import Fields

The CSV must use these exact column headers. Data is matched by column name, not by position.

| Column            | Required | Description                                                                                                                                                     |
| ----------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Display name**  | Yes      | Asset name. Max 100 characters.                                                                                                                                 |
| **Asset type**    | Yes      | One of: LAPTOP, DESKTOP, MONITOR, PRINTER, MOUSE, KEYBOARD, PHONE, TABLET, SERVER, DOCKING\_HUB, HEADPHONES, MICROPHONE, WEBCAM, MOBILE\_CONNECTIVITY, UNKNOWN. |
| **Manufacturer**  | Yes      | Manufacturer name. Max 100 characters.                                                                                                                          |
| **Asset Tag**     | No       | Stored in note with Description.                                                                                                                                |
| **Description**   | No       | Stored in note with Asset Tag.                                                                                                                                  |
| **Asset State**   | No       | Status: in\_stock, active, in\_repair, planned, grace\_period, expired, retired. Case insensitive. Defaults to in\_stock.                                       |
| **Serial number** | No       | Max 100 characters. Auto-generated if empty or if Quantity > 1.                                                                                                 |
| **Model**         | No       | Model name. Max 100 characters.                                                                                                                                 |
| **P.O Number**    | No       | Purchase order number. Max 100 characters.                                                                                                                      |
| **Location**      | No       | Manual location. Max 255 characters.                                                                                                                            |
| **Quantity**      | No       | 1-1000. Defaults to 1. When > 1, serial numbers are auto-generated.                                                                                             |
| **Ownership**     | No       | COMPANY\_OWNED, LEASED, PERSONAL, RELEASED.                                                                                                                     |
| **MDM Status**    | No       | ACTIVE, INACTIVE, IN\_REPAIR, END\_OF\_LIFE.                                                                                                                    |

#### Mapping CSV Columns During Import

Import uses fixed column headers. Your CSV must include the exact header names from the template (e.g., `Display name`, `Asset type`, `Manufacturer`). Rename your columns to match; there is no column-mapping UI.

#### Previewing Asset Import Data

After you upload a CSV, the import dialog validates the file. If validation succeeds, a green message shows how many assets are ready for import. If validation fails, up to 10 errors are shown (row number, field, and message). Fix errors in your CSV and upload again.

#### Handling Import Errors

* **File-level errors:** Missing required columns, file too large (5MB max), too many rows (1000 max), total assets exceed limit (10,000 after quantity expansion). Resolve these before import.
* **Row-level errors:** Invalid asset type, invalid status, invalid ownership, invalid MDM status, length limits exceeded. Rows with errors are skipped; valid rows are imported.
* **Post-import:** The summary shows successful inserts, successful updates, and failed inserts. Duplicate assets from MDM supersede manually imported assets when both exist.

***

### Exporting Assets

#### Exporting Assets to CSV

Click **Export** in the Assets toolbar. The export uses the current filters, search, and sort settings. A CSV file downloads with a name like `harmony-assets-export-YYYY-MM-DD.csv`. Export includes all assets that match the filters; large exports may take a moment.

The exported CSV reflects exactly what you see on screen - including which columns are visible and the order they appear in your table. Any columns you have hidden will not appear in the export, and the column order in the CSV matches the order shown in your table. This makes exported data easier to work with and consistent with your configured view.

#### Filtering Assets for Export

Apply filters before exporting to limit which assets are included. Supported export filters: search, MDM status, status, compliance, assignee, source, asset type, vendor, model, supplier, OS version, ownership, retirement reason, age, location. Sort order is also applied to the export.

#### Understanding Asset Export Fields

The CSV includes columns such as Asset, Asset Type, Status, Retirement Reason, Vendor, Model, Serial, OS Version, Supplier, Ownership, Source, Location, Compliance, MDM Status, EOL Date, Warranty End Date, Assignee, Assignee Email, Last seen, Age, and others. The columns shown and their order reflect your current table layout. Any columns you have hidden in the table will be excluded from the export.

***

### Related Resources

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Asset Management Settings</strong></td><td>EOL policies, low stock, discovery policies</td><td><a href="https://github.com/harmonyso/public-docs/tree/main/guides/configuring-asset-management/README.md">https://github.com/harmonyso/public-docs/tree/main/guides/configuring-asset-management/README.md</a></td></tr><tr><td><strong>Asset Views &#x26; Details</strong></td><td>View asset details, purchase info, and specifications</td><td><a href="https://github.com/harmonyso/public-docs/tree/main/guides/managing-asset-views-and-details/README.md">https://github.com/harmonyso/public-docs/tree/main/guides/managing-asset-views-and-details/README.md</a></td></tr><tr><td><strong>Managing People</strong></td><td>Assign assets to employees and view employee profiles</td><td><a href="https://github.com/harmonyso/public-docs/tree/main/guides/managing-people/README.md">https://github.com/harmonyso/public-docs/tree/main/guides/managing-people/README.md</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.harmony.io/asset-management/managing-asset-organization-and-importing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
