# Location Imports

### Overview

Location imports let you bulk-create or update factory locations. Column headers are matched case-insensitively and extra whitespace is trimmed.

### Import Options

| Option        | Description                                                                                 |
| ------------- | ------------------------------------------------------------------------------------------- |
| Validate Only | Run validation without committing changes. Useful for checking a file before a real import. |

### Columns

| Column                              | Required | Description                                                                                                                                                  |
| ----------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`                              | Yes      | Location name. Must be unique within the CSV and cannot exceed 128 characters.                                                                               |
| `original_name`                     | No       | If renaming an existing location, this is the current name in ION. Max 128 characters.                                                                       |
| `parent_name`                       | No       | Name of the parent location. Used to build nested hierarchies.                                                                                               |
| `description`                       | No       | Description of the location. Max 512 characters.                                                                                                             |
| `address`                           | No       | Physical address. Max 128 characters.                                                                                                                        |
| `available`                         | No       | Whether the location is available. Boolean field (see [accepted values](https://manual-v2.firstresonance.io/platform/importers/..#accepted-boolean-values)). |
| `archived`                          | No       | Whether the location is archived. Boolean field.                                                                                                             |
| `exclude_from_merge_part_inventory` | No       | Exclude this location from merged part inventory views. Boolean field.                                                                                       |
| `latitude`                          | No       | Latitude coordinate. Must be between -90 and 90. Empty cells are treated as unset (not `0`).                                                                 |
| `longitude`                         | No       | Longitude coordinate. Must be between -180 and 180. Empty cells are treated as unset (not `0`).                                                              |
| `type`                              | No       | Location type (must match a valid location type in your organization).                                                                                       |
| `supervisor`                        | No       | Email address of the supervisor. Must match an existing user in ION.                                                                                         |

***

## Custom Attributes

Any columns beyond the standard set are matched against your organization's custom location attributes. If a column header does not match a standard column or a configured custom attribute, the import will fail with a validation error.

***

## Parent-Child Hierarchies

You can define nested locations by specifying a `parent_name` for each row. ION resolves parents automatically, including parents that are created within the same import. Parents are always processed before their children regardless of row order.

Circular parent-child relationships (e.g., Location A is the parent of Location B, which is the parent of Location A) are detected and rejected.

***

### Related Pages

For general import behavior, empty cell handling, and error reporting, see [Importers](https://manual-v2.firstresonance.io/platform/importers).

For managing locations through the UI, see [Manage Locations](https://manual-v2.firstresonance.io/production/locations/manage-locations).
