> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firstresonance.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Tool Inventory Imports

> Create or update tool inventory records from a CSV file, including maintenance dates and asset URIs.

## Overview

The Tool Inventory importer creates or updates inventory records for tools (parts with the **tool** part type). It works like the [Part Inventory importer](/administration/ion-importers/part-inventory) — rows without an `id` create new inventory, rows with an `id` update the matching record — with two tool-specific additions: `last_maintained_date` and `uri`.

Because tools are always serial-tracked, **every create row must provide a `serial_number`** matching the physical asset's tag or manufacturer serial. There is no serial autogeneration and no lot tracking for tool inventory.

## Columns

| Column                 | Required         | Description                                                                                                                                                |
| ---------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                   | No               | Inventory ID. Provide to update an existing record; omit to create new inventory. **Lookup column** — an empty cell is treated as "not provided," not `0`. |
| `part_number`          | Yes (for create) | Part number of the tool. Ignored on update.                                                                                                                |
| `revision`             | No               | Tool revision. Combined with `part_number` to look up the tool; if omitted, the latest revision is used.                                                   |
| `serial_number`        | Yes (for create) | Serial number identifying the physical tool. Update rows inherit the existing serial.                                                                      |
| `location`             | No               | Location name. Must match an existing location in ION.                                                                                                     |
| `last_maintained_date` | No               | Date the tool was last maintained, in ISO 8601 format (e.g. `2026-05-01` or `2026-05-01T12:30:00`). An empty cell leaves the field unset.                  |
| `uri`                  | No               | Link to the physical asset (e.g. an asset-management URL). Must be unique across tool inventory; an empty cell stores no value.                            |

<Info>
  `last_maintained_date` only accepts ISO 8601 — ambiguous formats like `1/2/3` are rejected rather than guessed.
</Info>

## Custom attributes

Any column not in the standard list above is treated as a custom attribute on the inventory record. Custom attribute columns must match a configured attribute key for your organization; unknown columns cause a validation error.

## Related pages

* [Tools Imports](/administration/ion-importers/tools) — import the tool definitions first.
* [Part Inventory Imports](/administration/ion-importers/part-inventory) — shared create/update behavior.
* [Importers](/administration/ion-importers) — general import behavior, empty cell handling, and error reporting.
