Quick Import
This guide explains how to use Quick Import to bulk-load items, inventory, and RFID tag mappings into Tagnet from an Excel spreadsheet.
Overview
Quick Import lets you populate your Tagnet system from a single .xlsx file. You can import:
| What You Can Import | Description |
|---|---|
| Items | Product definitions in your catalog (ID, description, type, unit cost) |
| Inventory | Physical instances of items with locations, quantities, and RFID tags |
| Both | A combined file with item catalog data and inventory instances together |
Quick Import creates the item types, locations, and custom fields your file refers to that don't already exist, so you don't need to set them up beforehand. Before anything is created, the wizard lets you set each new one up: an item type's icon, color, code, and quantity tracking; a custom field's key, type, and the item types it applies to; and where each new location sits in your location tree.
Getting Started
Quick Import is on the Inventory page and needs the Import Inventory permission. Choose Quick Import from the Add menu in the page header to open the Quick Import dialog:
- Drag and drop your
.xlsxfile onto the drop zone, or click it to browse (max 10 MB). The chosen file shows as a chip. - If you can add records to more than one site, choose the Site to import into. If you have only one site, Tagnet uses it and shows it on the wizard's Summary step. If there is no site you can add records to, the dialog says so and the import cannot start: an administrator needs to create a site scope or assign you to one.
- Click Continue to open the import wizard.
Click Download Template in the same dialog to get the template described below.
Where Imported Data Goes
Item types, items, and custom fields are shared across your whole organization, so Quick Import always creates them in the shared System scope, where every site can use them. Locations and inventory belong to a site, so they are created in the site you chose (or your only site). Existing locations are matched within that site only: a location with the same name at another site is never used.
Downloading the Template
Click Download Template in the Quick Import dialog to get quick-import-template.xlsx. The template contains three worksheets:
| Sheet | Use When |
|---|---|
| Full Import | You want to load items and their inventory instances together |
| Items Only | You only need to add or update catalog entries (no inventory) |
| Inventory Only | Items already exist and you're adding inventory instances |
Each sheet includes example rows showing the expected format, including a location written as a path (HQ / IT Room).
Import Modes
Tagnet automatically detects which mode to use based on the columns in your file:
| Mode | Detected When | What It Creates |
|---|---|---|
| Full | Both item columns (Description, Type) and instance columns (Instance Id) are present | Items, inventory, tags, and transactions |
| Items Only | No Instance Id column | Items and item types only |
| Inventory Only | Instance Id column present but no Description/Type columns | Inventory instances, tags, and transactions for existing items |
Standard Columns
Item-Level Columns
| Column | Required | Description |
|---|---|---|
| Item Id | Yes | Unique identifier for the item in your catalog |
| Item Description | Yes for a new item (except Inventory Only) | Human-readable name or description |
| Item Type | No | Category for the item (created if it doesn't exist; you set it up in the Types step) |
| Unit Cost | No | Cost per unit |
Inventory-Level Columns
| Column | Required | Description |
|---|---|---|
| Instance Id | No | Unique ID for this specific instance (auto-generated if blank) |
| Inventory Description | No | Description specific to this instance |
| Quantity | No | Quantity (defaults to 1) |
| Location | No | Where this instance is stored, as a name or a path such as Warehouse / Aisle 3 (created in the site if it doesn't exist) |
| Tag Id | No | RFID tag identifier to assign to this instance |
Location Paths
The Location column accepts a path that describes where a location sits in your tree, with each level separated by a slash: Warehouse / Aisle 3 / Bin 7. Spaces around the slashes are ignored.
- Tagnet looks for the first part (
Warehouse) among the site's existing locations, then each following part among the children of the one before. - Every part that doesn't exist yet is created in the right place. A part that no row is placed in directly (here,
WarehouseandAisle 3if they are new) becomes a container location that holds the others. - A value with no slash is a single location name. If the site already has a location with that name, it is used wherever it sits in the tree; otherwise a new top-level location is created.
Custom Field Columns
Any column beyond the standard columns above is treated as a custom field. Tagnet will:
- Use an existing item or inventory custom field whose display name matches the header (ignoring case)
- Otherwise, turn the header into a field key (
Purchase DatebecomespurchaseDate) and use an existing field with that key, or create a new one that you set up in the Fields step - Infer a new field's data type (String, Number, Date, or Boolean) from the values
- Skip a column whose header cannot form a key (for example
#, or one that starts with a number) and say why
Because existing fields match by display name, a column from a Quick Export file maps back to the field it came from.
Fill-Down Behavior
In Full mode, you often have one item with multiple inventory instances. Tagnet supports a fill-down format where item-level fields only need to appear on the first row:
| Item Id | Item Description | Item Type | Instance Id | Location |
|---|---|---|---|---|
| DRILL-001 | DeWalt 20V Drill | Power Tools | INV-001 | Warehouse A |
| INV-002 | Warehouse B | |||
| INV-003 | Site Office | |||
| DRILL-002 | Makita 18V Drill | Power Tools | INV-004 | Warehouse A |
In this example, rows 2 and 3 inherit the Item Id, Description, and Type from row 1. Fill-down applies to item-level fields, but not to instance-level fields (Instance Id, Inventory Description, Quantity, Location, Tag Id).
Custom field values follow the field's level. An item-level value is read from the item's first row, so it only needs to appear there. An inventory-level value belongs to each instance: a blank cell means that instance has no value, so repeat the value on every row that should have it.
The Import Wizard
After you click Continue, a step-by-step wizard guides you through the import. Existing item types, custom fields, and locations are shown with a lock icon and are used as they are; only new ones can be edited.
Step 1: Analyze
Tagnet reads and validates your file as soon as the wizard opens. If your file has more than one worksheet, a Worksheet picker appears here; changing it analyzes the chosen sheet instead. A summary shows:
- The file and the site the import goes to
- Total rows parsed
- Rows with validation errors
- Column count (standard and custom)
- Detected import mode
Step 2: Types
Lists every item type referenced in your file. For each new type you can set:
| Setting | Default |
|---|---|
| Description | "Auto-created from import" |
| Icon and color | The Category icon in blue-grey. Click the type's chip to change them (see Choosing an Icon and Color) |
| Code | Empty. A code must be unique across all item types |
| Quantity tracking | On if any row of that type has a Quantity other than 1, otherwise off |
The type's Instance ID strategy is set for you: Supplied when every row of that type has an Instance Id, otherwise Auto GUID. Its Tag ID strategy is Supplied. You can change both later on the item type's page.
Creating item types needs the Manage Types permission. Without it, new types show as an error and you can't continue: ask an administrator, or remove those rows from the file. This step is skipped in Inventory Only mode.
Step 3: Locations
Shows the selected site's location tree: existing locations are locked, and the locations the import will create are marked New. Select a new location to set:
- Parent: any existing location in the site, another new location, or the top level of the site. Choose Add container location to insert a new location above it (for example, to group several new aisles under a new zone). A container you add can be renamed or removed.
- Location type: defaults to the first location type by name. If you have no location types yet, Tagnet creates one called General.
- Code: optional, and unique within the site.
- Description
A location's parents can't loop back to it, and the tree can't go deeper than the depth limit. Creating locations needs the Manage Locations permission. This step is skipped in Items Only mode.
Step 4: Fields
Lists each custom field column. For each new field you can set:
| Setting | Default |
|---|---|
| Field key | Generated from the column header. If you change it to the key of an existing field, the column stores its values in that field and takes its settings |
| Type | Inferred from the values |
| Applies to | Inventory in Full mode (you can choose Item); fixed to Item in Items Only mode and Inventory in Inventory Only mode |
| Required | Off. It can only be turned on when every row has a value for the column |
| Indexed | On. Indexed fields can be searched, including from global search |
| Item types | The item types whose rows have a value in this column. Leave it empty to apply the field to all item types |
If a field doesn't apply to an item type that has values in the sheet, the step warns you: those values would be stored but not shown. Creating custom fields needs the Manage Custom Fields permission.
When you leave the Types, Locations, or Fields step, Tagnet checks your settings and validates the rows again, because quantity tracking, required fields, and item types change which rows are valid.
Step 5: Items
A data grid showing all items that will be imported. You can filter the view:
- To Create: New items that will be added
- Existing: Items that already exist in the system
- With Errors: Rows that have validation issues
This step is skipped in Inventory Only mode.
Step 6: Inventory
A data grid showing all inventory instances. You can filter by:
- Valid: Rows that will be imported
- Errors: Rows with validation issues (highlighted with error details on hover)
This step is skipped in Items Only mode.
Step 7: Summary
A final review showing exactly what will be created:
- The site locations and inventory go to
- Item Types, Locations, and Custom Fields to create
- Items and Inventory instances to create
- Tag mappings to assign
Step 8: Import
Click Start Import to execute. A progress indicator tracks the operation. When complete, a results screen shows:
| Result | Description |
|---|---|
| Item Types Created | New item types added |
| Custom Fields Created | New custom fields added |
| Locations Created | New locations added |
| Items Created | New catalog items added |
| Inventory Items Created | New inventory instances added |
| RFID Tags Assigned | Tags linked to inventory |
| Transactions Created | Location transactions recorded |
| Rows Skipped | Rows that had errors and were skipped |
| Correlation ID | Tracking ID for audit purposes |
Everything the import created is recorded in Change History with the action Imported.
Validation Rules
Tagnet validates your data before importing. Common validation errors include:
| Rule | Description |
|---|---|
| Item Id required | Every row must have an Item Id (or inherit one via fill-down) |
| Description required | A new item needs a description (except in Inventory Only mode). An existing item's row may leave it blank |
| Unique Instance Id | Instance IDs must be unique within the file and not already exist in the system |
| Unique Tag Id | Tag IDs must be unique within the file and not already assigned in the system |
| Instance data required | Each inventory row needs at least one of: Instance Id, Description, Location, or Tag Id |
| Quantity | A Quantity other than 1 is only valid for an item type with quantity tracking on |
| Required custom fields | A required field needs a value on every row of an item type it applies to. If the file has no column for an existing required field, those rows are skipped with a message naming the column to add. Image and File fields are never required of a file, since their values are uploads |
Rows with errors are skipped by default, and the rest of the file imports successfully. A skipped row does not create anything: an item type or location that only skipped rows use is left out of the Types and Locations steps. (A quantity or required-field error does not remove an item type, so you can fix it on the Types or Fields step.) If the entire import fails, all changes are rolled back automatically.
Transactions
When inventory is imported with a Location specified, Tagnet automatically creates an inventory transaction (type: ADD) for each instance. This ensures your transaction history accurately reflects when and where inventory entered the system.
Tips
- Start with the template: Download and fill in the template to ensure your columns match exactly.
- Check the preview steps: Use the Items and Inventory grid steps to spot issues before importing.
- Column names are flexible: Tagnet matches column headers case-insensitively and ignores extra spaces (e.g., "Item Id" and "ItemId" both work).
- Custom fields from columns: Any extra columns become custom fields, so name your column headers the way you want the fields to appear in the system.
- Build your location tree in the sheet: Write locations as paths (
Building 1 / Floor 2 / Room 204) to create a whole hierarchy in one import. - Large imports: Files can contain thousands of rows. Tagnet processes them in batches, so large files are supported.
- Safe by default: If anything goes wrong during import, all changes are rolled back. Your existing data is never affected by a failed import.