Skip to main content

Inventory

The Inventory page is where you manage the individual tracked instances of items in your system. Each inventory item represents a specific physical object that is mapped to an RFID tag, assigned to a location, and categorized by type. This is where you track what you have, where it is, and what tag identifies it.

Overview​

Inventory items are created from catalog items (defined on the Items page) and represent specific, trackable instances. For example, the catalog item "Cisco Switch CX1233" is the template, while "SN-00451" is a specific inventory item: one particular switch with its own RFID tag, location, and history.

From the Inventory page you can:

  • Create new inventory items from catalog items
  • Map and remap RFID tags
  • Track current locations and view location history
  • Move items between locations or close them out of inventory
  • View and edit custom field values
  • Copy items to quickly create similar entries
  • Search and filter across item IDs, types, tags, locations, lifecycle states, and custom fields

Permissions​

PermissionWhat It Allows
View InventorySee the inventory grid and item details
Edit InventoryCreate, edit, map tags, move items, and copy items
Delete InventoryPermanently delete inventory items

Access scopes control which items a user can see and modify. Items in a scope the user doesn't have access to are hidden.

The Inventory Grid​

Columns​

ColumnDescription
Instance IDThe instance's own ID. Auto-generated GUID ids show as an Auto GUID badge; hover for the full value
ItemThe catalog item ID, with its description beneath
TypeItem type chip with icon and color
TagActive RFID tag mapped to this item. Format follows your tag ID display preference
LocationCurrent location with hierarchy path and last update timestamp
StateLifecycle state chip: New (blue), Active (green), or Closed (gray). Hover the chip for a description of what the state means
Custom FieldsDynamic columns for groupable custom fields
QtyQuantity (shown only if any item type tracks quantity; hidden by default)
ScopeAccess scope (hidden by default)
Created / Last updatedAudit timestamps, hidden by default
ActionsDetails, Edit, Copy, Tag Mapping, Move, Delete

Details is always available from the Actions menu, regardless of edit permission, so read-only users can still open an item's page. Edit, Copy, Tag Mapping, Move, and Delete only appear when you have the matching permission and access to the item's scope.

Column Visibility​

You can show or hide columns using the column visibility controls. Your preferences are saved between sessions. Custom field columns, Qty, Scope, Created, and Last updated are hidden by default.

Search and Filtering​

The Inventory page has a filter bar above the grid with full-text search and advanced filters. Search is server-side for fast performance with large inventories.

Type in the search bar to filter by instance ID, Item ID (name), SKU, item type name, tag ID, or custom field values. Search is case-insensitive and updates automatically after a brief typing pause.

Filter Drawer​

Click the filter icon (funnel) on the right side of the filter bar to open the filter drawer. When any filter is active, the icon appears filled to indicate filters are in use.

Available filters:

FilterDescription
Item TypeSelect one or more item types to show only items of those types
LocationSelect a location from the hierarchical tree picker, including a "No Location" option for unassigned items
Tag StatusFilter by whether items have a mapped tag ("Has Tag") or not ("No Tag")
LifecycleFilter by item lifecycle state (see below)
Created DateFilter by when items were created (from/to date range)
Updated DateFilter by when items were last modified (from/to date range)
Custom FieldsIndexed custom fields appear as additional filters: text fields support contains search, select fields support multi-value match, numeric fields support min/max range, date fields support from/to range, and boolean fields support yes/no selection

Lifecycle filter options:

OptionItems Shown
Live (Active + New)All items that have not been closed out (default)
ActiveOnly items currently at a location
NewOnly items not yet placed into a location
ClosedOnly closed-out items
AllEverything regardless of state

The default is Live (Active + New), which keeps closed-out items out of your day-to-day view. Switch to Closed when you need to review items that were shipped, consumed, or decommissioned. For full details on how lifecycle states work, see Inventory Item Lifecycle.

Note: Only custom fields marked as indexed appear in the filter drawer. See the Custom Fields guide for details on indexing.

Filter Chips​

Each active filter appears as a chip below the search bar showing what is being filtered (e.g., "Type: Asset, Tool" or "Location: Warehouse B"). Click the X on any chip to remove that individual filter. Click the Clear All button to reset all filters at once.

The Lifecycle filter always shows its own chip, including the default Live (Active + New) view, since a filter that silently excludes closed items would otherwise look like "no results" when you're searching for something that was shipped or consumed. Close the Lifecycle chip to switch to All and see items in every state.

Filter Persistence​

Your filter selections, the grouping you chose, and the column you sorted by are remembered as you navigate away from and back to the Inventory page within the same session. This means you can view item details, edit an item, or visit another page and return without losing your filters or your place in the list. Clear all resets the filters but leaves the sort in place; a full browser refresh returns the list to its default order.

Grouped Views​

The Group by dropdown in the filter bar turns the list into a summary table with one row per bucket. Every search and filter still applies, so "inventory in Toledo, type Server, state Active" is one view, summarized however you like.

GroupingOne row per
ListNothing: the flat grid described above
By locationLocation that holds matching instances, with its parent locations as a caption. Instances with no location appear as their own row.
By location typeKind of location (yards, racks, docks), whatever the location's name. Instances with no location appear as their own row.
By itemCatalog item, with the item's description
By typeItem type

Each row shows:

ColumnWhat it means
Quantity (or Items when no type tracks quantity)The sum of the instances' quantities. An instance whose type does not track quantity counts as 1, the same as everywhere else in Tagnet.
ValueUnit cost times quantity. Instances whose item has no unit cost add nothing; hover the value to see how many were left out.
ShareThe row's quantity as a share of all rows.
Trend (30 days)On hand in that bucket over the last 30 days, from the inventory level snapshots. The location filter applies to the trend; search and the other filters do not, because snapshots are recorded per location and item.

Rows sort by quantity; click a column heading to sort by name or value. Click a row to open that bucket's inventory slice, where you can see what is in it and pivot to the other groupings; the slice's View instances button is the flat grid filtered to the bucket, where you can page and sort the instances themselves, and its Open button is the location, location type, item, or item type page. Choosing a location in the filter drawer narrows the rows to that subtree, which is the way to look at one site.

The grouping is part of the page address (for example /inventory?view=location), so a grouped view can be bookmarked or linked.

Inventory Slices​

A slice is the inventory in one bucket, framed from the inventory side: the inventory at Yard A, of item POLE-40, of type Server, or in every location of type Yard. Each has its own page under Inventory:

SliceAddress
A location and everything under it/inventory/location/{id}
A catalog item/inventory/item/{id}
An item type/inventory/type/{id}
A location type/inventory/location-type/{id}
Instances with no location (the No location row)/inventory/unplaced

Every slice page has the same shape:

  • The header names the slice in the entity's own icon and colour, with breadcrumbs back through the grouped list it was opened from, an Open button to the entity's own page (where the location, item or type is configured), and View instances: the flat Inventory grid filtered to the slice.
  • Quantity, Total value and Instances on hand. Value leaves out instances whose item has no unit cost and says how many. An item or item type slice also reports instances that are still new, meaning created but not yet placed in a location.
  • Inventory level over 24 hours, 7, 30 or 90 days, from the inventory level snapshots, and Movement by transaction type over the same ranges, with a link to the matching transactions. The no-location slice counts new instances as on hand, since awaiting placement is what it shows, and has no level chart: level history is recorded per location.
  • Breakdown tables by the other dimensions: where the inventory sits (by location or by location type) and what it is (by item or by item type). Each row shows quantity, value, share and a 30-day trend, and clicking a row opens that row's own slice, so you can walk from a location type to one of its locations to one item without leaving the inventory frame.

A location slice reads the whole subtree by default. Its By location table shows one row per direct child, each covering that child's own subtree, plus a This location row for inventory held at the location itself; clicking that row switches the slice to This location only. The location and item pages show the same slice on their Analytics tab.

Slices respect your access scopes and the scope filter in the top bar exactly as the flat list does.

Creating an Inventory Item​

Choose Inventory Item from the Add menu in the page header to open the item creation page (the menu entry follows the name your organization uses for inventory items):

FieldDescriptionRequired
ItemSelect from the catalog (Items page)Yes
Instance IDGenerated automatically or entered manually, depending on the item's ID strategyDepends on strategy
DescriptionOptional description for this specific instanceNo
LocationInitial location assignmentNo
QuantityStarting quantity (only if the item type tracks quantity)No
Access ScopeVisibility and access controlYes
Custom FieldsValues for custom fields applicable to this item typeNo
RFID Tag IDAppears only for Supplied-strategy types; optional. Leave blank to create untagged and map laterNo

Note: For item types using the Sequence Generator strategy with no pinned generator (Scope default), the Access Scope you choose here is what determines which site's generator mints the Instance ID and/or Tag ID. See Scope Default Resolution for how that lookup works.

Instance ID Strategies​

How the instance ID is generated depends on the catalog item's configuration:

StrategyBehavior
Auto GUIDA unique ID is generated automatically
Manual EntryYou enter the ID (e.g., serial number, asset tag)
Sequence GeneratorMinted from the generator pinned on the item type, or, if the type is left on Scope default, from the default Instance ID generator of the Access Scope selected for this item. Creating the item fails if that scope has no default generator.

RFID Tag at Creation​

The tag step on the create form depends on the item type's Tag ID Strategy (configured on the Item Type; see Types):

Supplied strategy: An optional RFID Tag ID field appears on the form. Type the EPC of the physical tag you want to assign, or leave it blank to create the item without a tag. You can map a tag later from the item's tag action.

Recent reads: Beside the tag field, Recent reads lists up to 50 tags your readers reported in the last 24 hours that no inventory item carries yet, newest first: the tag ID, the reader, the antenna, and how long ago it was read. Click a row to fill the field. Scan the tag at a reader, open the list, and the tag you just read is at the top; if you scan after opening it, use the refresh button in its title bar. The list follows your access scopes and the scope filter, like Live Reads. If your retention policy has stopped keeping raw tag reads, the list is built from scan events instead (without the antenna) and says so. On a busy site where almost every read is of a tag already mapped, the list looks back through the most recent reads only and says so. The picker is for tagging items one at a time; to tag at volume, use the commissioning API (see the Commissioning Log) or a workflow that queues unmapped tags for Pending Mappings. You can also start from the tag: on Live Reads, Map to Item on an unmapped tag has a New button that creates the inventory item without leaving the page (see Live Reads).

Sequence Generator strategy: No tag field appears on the form. After you click Create, a prompt appears asking "Generate an RFID tag?" It shows the generator that will be used, resolved from the pinned generator on the item type or, for a type left on Scope default, from the default Tag ID generator of the Access Scope you selected for this item, and previews the next value that would be minted. Click Generate to mint and assign the EPC now, or Not now to leave the item untagged. You can generate a tag later from the item's tag action.

In both cases, creating an instance without a tag first is a legitimate workflow. For example, you might register items in the system as they are received and apply physical tags to them later on the warehouse floor. The tag action on the item is always available to map or generate a tag after creation.

Importing and Exporting​

To load many items at once, choose Quick Import from the Add menu in the page header and upload an Excel file (see Quick Import). To download items and inventory as Excel, click Export beside the Add menu (see Quick Export). An export uses the same layout Quick Import reads.

Mapping RFID Tags​

Select the tag action from the item's actions menu or click Tag Mapping on the detail page to open the tag assignment panel. The title and button label reflect the item type's Tag ID Strategy and whether a tag is already assigned:

StrategyExisting TagDialog TitleButton
SuppliedNoMap RFID TagMap Tag
SuppliedYesRemap RFID TagRemap Tag
Sequence GeneratorNoGenerate RFID TagGenerate Tag
Sequence GeneratorYesRegenerate RFID TagGenerate New Tag

Supplied strategy: Enter the EPC of the physical tag you want to assign, or pick it from Recent reads (see RFID Tag at Creation). The system checks for conflicts as you type and blocks saving if the tag is already active on another item.

Sequence Generator strategy: No input is required. The panel shows which generator is configured and previews the next value. Clicking Generate Tag or Generate New Tag mints the next EPC from the sequence and assigns it immediately.

In both cases:

  • Each item can have only one active tag at a time
  • Assigning a new tag automatically retires the current one and preserves it in tag history
  • A tag can only be active on one item at a time; the system prevents duplicate mappings
  • All past tag mappings are visible on the Tag Mappings tab of the item detail page

The Supplied vs. Sequence Generator distinction reflects where the tag value comes from: Supplied means you bring the value (for example, from a pre-encoded tag roll or an external EPC database), while Sequence Generator means Tagnet mints the value for you. The strategy is set on the Item Type and applies to all items of that type. See Types for configuration details.

Tag ID Display​

RFID tag IDs (EPCs) are long hex strings, so Tagnet truncates them for readability wherever a tag chip appears: in the Inventory grid, item detail pages, transactions, and pending mappings. You can change how much of the value is shown, and whether a copy button appears next to it, from Account > Profile. Choose from several truncation formats (for example, first 4 + last 4, or the full value) and preview the result live before saving. The preference applies everywhere a tag ID is displayed and persists across sessions.

Location Display​

Location chips follow a similar per-user preference, also on Account > Profile: show the location's name, full path, code, or full code path, optionally with its access scope or top-level location in front. See Locations: Display Format.

Managing Locations​

Select Move from the grid row's actions menu or the detail page's Actions menu to record an inventory transaction for the item.

The form has two fields:

  • Transaction Type: Select the type of event being recorded (Move, Receive, Ship, Consume, etc.). Each type in the dropdown shows its configured icon and color, and close-out types carry a Close-out chip.
  • Destination Location: Select the location the item is moving to. This field is hidden when you choose a close-out transaction type, because a close-out removes the item from inventory entirely rather than routing it to another location.
Transaction Type SelectedWhat Happens
Normal type (Move, Add, Receive, Transfer)Item moves to the selected location; a transaction record is created
Close-out type (Ship, Consume, Decommission, etc.)Item is removed from its current location, marked Closed, and no destination is needed

To return a Closed item to active inventory, open its detail page, select Move from the Actions menu, choose a normal transaction type, and select a destination location.

Moving an Item to Another Scope​

The destination list includes locations in every access scope you can edit, not only the item's own scope, plus shared locations. Scopes you can only view are not offered. When you pick a location in another scope, a note under the field says what will happen, based on the Cross-Scope Transfer policy:

Policy modeWhat happens when you save
TransferThe item moves, and its access scope changes to the destination's scope. The transaction records the transfer
Reject (default)The move is blocked and a message explains why. The item stays where it is, and a Cross-scope movement rejected alert is raised

Even in Transfer mode a move can be refused, for example when the item's catalog item belongs to the item's current scope instead of the shared scope. The message on save gives the reason.

For more detail on lifecycle states and close-out configuration, see Inventory Item Lifecycle.

Item Details​

Click any row (or choose Details from the Actions menu) to open the item's own page at /inventory/{id}, with a tabbed layout: Overview, Location history, Tag mappings, Scan events, and Ingest data.

Overview Tab​

At the top, two cards summarize where the item stands. Each one is a link:

  • Location: Current location (type icon, hierarchy on hover) and how long ago it moved there. If an Active item has no location, this reads as a warning. View inventory opens the inventory list filtered to that location; with no location, View history opens the item's Location History tab.
  • Movement (7d): How many transactions this item has had in the last 7 days, with a daily trend. View transactions opens the Transactions list filtered to this item.

Below the hero row:

  • Basics: Instance ID (with a copy button), Status (lifecycle state chip), current tag, current location, how long the item has been In inventory (counted from when it was created; a Closed item's age freezes at the moment it was closed out), quantity (if tracked), and description. If the item was created through the commission API and you have the View Integrations permission, a Commission batch link jumps to the batch that created it (see Commissioning Log)
  • Item: The catalog item this instance was created from, shown as its own card, item ID, description, type, unit cost, default quantity, and any item-level custom fields that have values, with a View item button to jump to the full catalog record
  • Any instance-level custom field values (grouped and ordered)
  • Audit information (scope, created/updated timestamps and users)

Last seen position​

When a GPS-equipped reader (an FXR90 with Include GPS position on, see GPS Position) reads one of the item's tags and has a fix, Basics shows Last seen position: the coordinates (select them to see the spot on a map) and how long ago the item was seen there. Tagnet sets it when a scan event includes such a read. A read that a tag cooldown on the reader or its group drops before it reaches a scan event does not set it.

It is an observation, not a move. It does not change the item's Tagnet location, create a transaction, or count as an edit of the item, so it adds nothing to Change History or the item's updated timestamp. A newer position replaces an older one, and an older one never replaces a newer one. This suits an asset on a vehicle or a returnable tote that travels between sites: the location says where Tagnet last recorded it, and the position says where a GPS reader last saw it. Use the Move Inventory workflow action when a read should also change the item's location.

Location History Tab​

A timeline showing every location transaction for this item, including:

  • Duration at each location
  • Who created each transaction
  • From and to locations (close-out transactions show the disposition name, such as "Shipped", instead of a blank destination)

Tag Mappings Tab​

A timeline of all RFID tag mappings, showing active and retired tags with timestamps.

Scan Events Tab​

If the item has an active tag, this tab shows scan events where the tag was detected.

Ingest Data Tab​

If the item has an active tag, this tab shows every raw tag read of that tag across all readers, server-paged. It sits one layer below the Scan Events tab: scan events are what Tagnet concluded from the reads, while this tab shows the reads themselves. If the item has no mapped tag, the tab shows an empty state explaining that raw reads appear once a tag is mapped. If the tag has never been read, it shows an empty state too, rather than an empty table.

Note: Reads are scope-filtered by the device that saw them, not by the item. If your access scope doesn't include every reader that could see this tag, the history here can be a partial picture even though the item itself is fully visible to you.

See Ingest History for the columns shown and how to read a tag read's detail dialog.

Detail Page Actions​

From the item's page, you can navigate directly to:

  • Edit: Open the edit page to modify item properties
  • Copy: Open the create form filled in from this item
  • Tag Mapping: Map or remap an RFID tag
  • Move: Record any inventory transaction, including close-outs and returns

Editing an Inventory Item​

Click Edit from the detail page or the grid actions menu to open the edit page. You can update the description, custom field values, quantity, and access scope. After saving, you are returned to the inventory grid.

Tag assignment and location are not part of the edit form. To add, change, or replace a tag, use the tag action on the item (see Mapping RFID Tags). To change the item's location, use Move (see Managing Locations).

Copying an Item​

Select Copy from the actions menu to create a new inventory item with the same custom field values. The copy receives a new instance ID and requires a new RFID tag mapping; the original tag is not copied.

Custom Fields​

Inventory items display custom fields that are configured for the "Inventory" context (see Custom Fields guide). Fields can be further filtered by item type, so different types show different fields.

Custom fields marked as "groupable" appear as additional columns in the main grid for quick visibility and filtering.

Quantity Tracking​

Quantity tracking is enabled per item type. When an item's type has quantity tracking enabled:

  • A quantity field appears during creation and editing
  • The Qty column becomes available in the grid
  • Quantities support decimal values (e.g., 50.5)

Items whose type doesn't track quantity show a dash in the Qty column.

For Integrations​

The Inventory Items REST API (/api/v1/inventory-items) supports creating, reading, updating, and deleting inventory items. When an inventory item has Image or File custom fields, you can upload files to those fields without a separate attachment step.

Uploading to Image and File custom fields​

Use the sub-resource upload endpoints to set an Image or File field in one call:

PUT /api/v1/inventory-items/{id}/custom-fields/{fieldKey}/image
PUT /api/v1/inventory-items/{id}/custom-fields/{fieldKey}/file

Send a multipart/form-data request with a single part named file. The server validates the content, stores the file in the item's access scope, sets the field, and removes any file the field previously held. Requires the EditInventory permission.

Inventory item responses include a customFieldAttachments map alongside customFields. Each entry resolves an Image or File field's attachment ID to its filename, content type, size, and a download URL.

For the complete upload API reference, including validation rules, error codes, content sniffing, and the clearing/deletion pattern, see the Custom Field Attachment Uploads guide.

Best Practices​

  • Use meaningful instance IDs: For manual entry strategies, use serial numbers, asset tags, or other identifiers that match your physical labeling.
  • Map tags early: Map RFID tags to items as soon as they're created so they are tracked automatically from the first scan.
  • Use custom fields: Add groupable custom fields for domain-specific data visible directly in the grid.
  • Review location history: The timeline view helps you trace an item's journey through your facility.
  • Use copy for batch creation: When adding many similar items, copy an existing item and adjust the unique fields.
  • Use filters to narrow results: Combine type, location, tag status, and lifecycle filters to quickly find what you need in large inventories.
  • Keep the default Lifecycle filter: The Live view (Active + New) is the right default for day-to-day operations. Switch to Closed only when auditing what has left inventory.