Custom Fields
This guide explains how to create and manage custom fields in Tagnet Enterprise & Cloud. Custom fields let you track additional information beyond the standard fields, like serial numbers, purchase orders, calibration dates, or anything specific to your business. They have their own Custom Fields page in the navigation, directly under Items, with an Items tab and an Inventory tab, one per level.
Overview
Tagnet Enterprise & Cloud comes with standard fields for items and inventory (name, description, location, etc.). But every organization has unique tracking needs:
| Industry | Example Custom Fields |
|---|---|
| Manufacturing | Lot Number, Production Date, Quality Grade |
| Asset Management | Asset Tag, Purchase Order, Warranty Expiration |
| Utilities | Pole Number, Installation Date, Last Inspection |
| Healthcare | Sterilization Date, Patient ID, Compliance Code |
| Retail | Vendor SKU, Season Code, Markdown Date |
Custom fields let you capture this information without code changes or custom development.
Understanding Items vs. Inventory
Before creating custom fields, it's important to understand the two levels where data is stored:
| Level | What It Represents | Example |
|---|---|---|
| Item | A product definition (catalog entry) | "DeWalt 20V Drill - Model DCD771" |
| Inventory | A physical instance you own | "Serial #A12345, purchased 2024-01-15" |
Think of it like a library:
- Item = The book title in the catalog ("The Great Gatsby")
- Inventory = A specific copy on the shelf (Copy #3, acquired 2020, slightly worn)
Where Should Your Field Go?
| If the value is... | Create it as... | Example |
|---|---|---|
| Same for all copies | An Item field | List Price, Manufacturer, Model Year |
| Different per copy | An Inventory field | Serial Number, Purchase Date, Condition |
Creating a Custom Field
- Open the Custom Fields page from the navigation
- Open the Add menu in the page header and choose Item field or Inventory field. The form's title names the level you picked, for example Create Inventory Field.
- Fill in the field details (see below)
- Click Create
You can also start from the form where you noticed the need. The Item and Inventory create and edit forms show Need to track something else? Add a custom field after their custom field sections, to users who can manage custom fields. The link opens the create form in a new tab, already set to the right level, so the form you were filling in stays as it was. When you switch back to it, the new field appears on the form and anything you had already entered is kept.
Field Settings
Basic Settings
| Setting | Description | Example |
|---|---|---|
| Field Key | Internal identifier (cannot change after creation) | purchaseOrderNumber |
| Display Name | What users see in forms | "Purchase Order Number" |
| Field Type | Data type (see below) | String, Number, Date, etc. |
| Level | Which forms the field appears on; set by your Add menu choice, not on the form | Item or Inventory |
Tip: Choose your Field Key, Field Type, and level carefully. All three are permanent after creation. Use camelCase with no spaces for the Field Key (e.g., serialNumber, installDate, warrantyExpiration). The Field Key is the name external systems use in JSON, so it follows JSON naming rather than a spreadsheet heading.
Field Types
| Type | Use For | Example Values |
|---|---|---|
| String | Text, codes, identifiers | "ORD-12345", "Zone A" |
| Number | Quantities, measurements, generic numeric values | 150.00, 42, 3.14159 |
| Currency | Money values, shown with a currency symbol and two decimal places | $1,250.00, €499.99 |
| Percentage | Ratio or completion values, shown with a % symbol | 75%, 100%, 0% |
| Date | Dates without a time component | 2024-06-15 |
| Date & Time | Dates with a specific time | 2024-06-15 09:30 AM |
| Boolean | Yes/No, True/False flags | Certified: Yes |
| Color | Color values stored as hex codes | #FF5733, #0078D4 |
| Select (Dropdown) | A fixed list of predefined options | "New", "In Service", "Retired" |
| Image | Photos and diagrams, stored as attachments | Product photo, damage photo |
| File | Documents and certificates, stored as attachments | Warranty PDF, spec sheet |
Note: Image fields accept files up to 1 MB (
.jpg, .jpeg, .png, .gif, .webp). File fields accept files up to 2 MB (.pdf, .doc, .docx, .xls, .xlsx, .txt, .csv). The server also checks the file's content against its extension, so a PDF renamed to.pngis rejected. For uploading Image and File fields through the REST API, see Custom Field Attachment Uploads.
Optional Settings
| Setting | Applies To | Description | When to Use |
|---|---|---|---|
| Required | All types | Users must provide a value | Critical tracking fields |
| Visual Grouping | All types | Groups related fields into sections in forms | Organize complex forms |
| Max Length | String only | Limit text length | Prevent data entry errors |
| Validation Pattern | String only | Regex pattern to enforce a format | Enforce formats like "PO-####" |
| Min Value / Max Value | Number, Currency, Percentage | Constrain the allowed numeric range | Enforce business rules (e.g., Percentage must be 0 to 100) |
| Select Options | Select only | Define the list of choices users can pick from | Required when creating a Select field |
Search & Indexing
Custom fields can be configured for fast searching. This is important for large datasets.
Which Types Support Search Options
Not all field types support every search option. The table below shows what is available per type.
| Type | Indexed | Global Search |
|---|---|---|
| String | Yes | Yes |
| Number | Yes | No |
| Currency | Yes | No |
| Percentage | Yes | No |
| Date | Yes | No |
| Date & Time | Yes | No |
| Boolean | No | No |
| Color | Yes | No |
| Select (Dropdown) | Yes | Yes |
| Image | No | No |
| File | No | No |
The Two Search Options
| Option | What It Does |
|---|---|
| Indexed | Enables fast search and filtering on this field |
| Global Search | Include in "search everything" results (String and Select only) |
When to Enable Indexing
Enable Indexed when:
- ✅ Users need to search by this field ("find all items with a Purchase Order of PO-12345")
- ✅ Reports filter or sort by this field
- ✅ You have thousands of records and need fast lookups
Skip indexing when:
- ❌ The field is just informational (notes, descriptions)
- ❌ Nobody searches by this value
- ❌ You want to minimize database storage
When to Enable Global Search
Enable Global Search (requires Indexed) when:
- ✅ Users search by value without knowing the field name
- ✅ Values are unique identifiers (order numbers, serial numbers)
Skip Global Search when:
- ❌ Searching the raw value is meaningless (costs, dates, weights)
- ❌ Results would be cluttered with false matches
Examples
| Field | Indexed? | Global Search? | Why |
|---|---|---|---|
| Order Number | ✅ Yes | ✅ Yes | Users paste "ORD-123" to find items |
| Serial Number | ✅ Yes | ✅ Yes | Technicians scan barcodes to look up items |
| Purchase Date | ✅ Yes | ❌ No | Filter by date range, but "2024-01-15" search is useless |
| Unit Cost | ✅ Yes | ❌ No | Filter by price range, but "$50" search is useless |
| Internal Notes | ❌ No | ❌ No | Informational only, never searched |
Important: Indexing Existing Data
When you enable indexing on a field that already has data:
- New records will be indexed automatically
- Existing records will NOT be retroactively indexed
As of this writing, backfill operations are not available.
Using Custom Fields
Once created, custom fields appear automatically in the appropriate forms.
In Item Forms
When creating or editing an Item, you'll see custom fields configured for "Item" or "Both" in the Custom Fields section.
Values entered here become defaults for new inventory created from this item.
In Inventory Forms
When creating or editing an Inventory item, you'll see custom fields configured for "Inventory" or "Both."
- Fields set to "Both" will show the Item's default value, which you can override
- Fields set to "Inventory" only appear here, not on Items
Searching with Custom Fields
Field-specific search: Use the advanced search to filter by a specific field:
- Field: "Order Number"
- Operator: "equals"
- Value: "ORD-12345"
Global search: Simply type a value in the search box. If the field has Global Search enabled, matching records will appear.
Managing Custom Fields
The Custom Fields page has a tab per level: Items and Inventory. Each tab is a grid of that level's fields in scope, sorted alphabetically by Display Name. Use the filter bar to narrow it by Field Type or Visual Group, or search by name. Click a field's row (or choose Details from its actions menu) to open its detail page; Back returns you to the field's tab.
A Transactions tab also appears if your system has transaction fields from before they were withdrawn. New transaction fields can't be created for now: workflows don't record them yet, and in an RFID deployment most transactions come from workflows. Existing ones keep working where they did, on manual moves and the transaction detail page, and can still be edited and reordered. They can't be copied; a copy would be a new transaction field.
Editing a Field
You can change most settings after creation:
- ✅ Display Name (what users see)
- ✅ Visual Grouping
- ✅ Required setting
- ✅ Indexed / Global Search settings
- ❌ Field Key (permanent)
- ❌ Field Type (permanent)
- ❌ Level (permanent; the edit form's title names it, for example Edit Item Field)
To edit: choose Edit from the field's row actions menu, or open its detail page and click Edit. Use Copy from the same menu to create a new field pre-filled from an existing one; you'll still need to give it a unique Field Key before saving.
Deleting a Field
Custom fields can be deleted, but with safeguards:
| Scenario | What Happens |
|---|---|
| Field has never been used | Permanently deleted |
| Field has been used | Soft-deleted (hidden but data preserved) |
Soft-deleted fields:
- No longer appear in forms
- Existing data is preserved in the database
- Can be restored by an administrator if needed
Arranging Fields
Each tab's list is sorted by name for finding and managing fields; it doesn't reflect the order fields appear in on forms. To set that order, click Reorder in the search bar. The tab switches to Reorder mode, showing every field at that level grouped by its Visual Grouping:
- Drag a field within its group to reorder it relative to the other fields in that group. Fields with no Visual Grouping appear in an (Ungrouped) section, which always comes first, as it does on forms.
- Move a whole group up or down using the arrow buttons on the group's header, to change which group of fields appears first.
Nothing changes until you click Save order; Cancel discards the draft, and so does switching tabs. The order spans every scope, so entering Reorder mode clears the search and any scope filter.
Each level has its own order, because each form shows one level's fields: the Items tab sets the order on item forms and the Inventory tab the order on inventory forms. A group name used at both levels (a "Details" group on item fields and on inventory fields) is ordered separately on each.
Note: Reordering requires the Admin role. The Reorder button doesn't appear for other users.
Access Scopes and Custom Fields
Custom fields are access scope definitions. This means:
- Fields in the system scope are visible to everyone (read-only for users not assigned to it)
- Fields in a specific site scope are only visible to users assigned to that scope
By default, every new custom field is created in the system scope with no prompt. If your deployment enables the Scoping > Site Catalog policy (see Policies), the scope field becomes an Availability choice, "Shared across {your organization}" or "{Site} only", so individual sites can maintain their own fields alongside shared ones.
Common Patterns
| Pattern | Setup |
|---|---|
| Organization-wide fields | Create in the system scope (the default) |
| Site-specific fields | Create in the site's scope (requires the Site Catalog policy) |
| Department-specific fields | Create in the department's scope (requires the Site Catalog policy) |
Example: A manufacturing company might have:
- System scope: Serial Number, Asset Tag (used everywhere)
- Production scope: Lot Number, Quality Grade (production only)
- Maintenance scope: Last Service Date, Next PM Due (maintenance only)
Best Practices
Naming Conventions
| Do | Don't |
|---|---|
PurchaseOrderNumber | po_num |
InstallationDate | date1 |
WarrantyExpiration | warranty |
Use descriptive names; you can't change the Field Key later.
Planning Your Fields
Before creating fields:
- List what you need to track - Write down all the information you want to capture
- Decide Item vs. Inventory - Is this per-product or per-instance?
- Consider searching - Will users need to search/filter by this?
- Group related fields - Use Visual Grouping to organize complex forms
Start Simple
- Begin with a few essential fields
- Add more as needs become clear
- It's easier to add fields than to remove them
Consistent Data Entry
For String fields, consider:
- Using Validation Pattern to enforce formats (e.g.,
PO-\d{5}for "PO-12345") - Using Max Length to prevent overly long entries
- Documenting expected formats in the Display Name or Visual Grouping
Frequently Asked Questions
Q: Can I change a field's type after creation? A: No, the Field Type is permanent.
Q: Can I change which entity a field applies to after creation? A: No, the level is permanent. If you need a field at the other level (Item vs. Inventory), create a new one there with Add. Copy keeps the original field's level.
Q: What happens to my data if I delete a custom field? A: If the field has been used, it's soft-deleted: hidden from the UI but data is preserved.
Q: Can I have different custom fields for different item types? A: Currently, custom fields apply to all items/inventory within their access scope. Item-type-specific fields may be available in a future release.
Q: How many custom fields can I create? A: There's no hard limit, but for best performance:
- Keep indexed fields under 50 per entity type
- Only enable indexing on fields you actually search
Q: Why can't I edit a custom field? A: You may not have permission (need Contributor or Admin role), or the field may be in the system scope and you're not assigned to it.
Q: Why don't my existing items show up in search after I enabled indexing? A: Enabling indexing only affects new or updated records.