Shelf™|
Shelf Logo

Asset Identifiers: QR ID, SAM ID, and Property ID

Shelf has three ways to identify an asset — the system QR ID, sequential SAM IDs, and your own Property IDs. This guide explains each, when to use them, and how to choose which one shows on your list views and printed labels.

Shelf has three ways to identify an asset, and a workspace settingPreferred display code — that controls which identifier appears next to each asset on list views (and underneath the code on downloaded QR labels). This article covers all of them.

What's new (May 2026): the QR Code Display setting has been renamed to Preferred display code and expanded. Workspaces with the alternative-barcodes add-on can now choose a barcode type (Code 128, Code 39, DataMatrix, External QR, or EAN-13) as the workspace default, and override the choice per asset. See Section 4 below.

At a Glance

IdentifierSet byFormatPurpose
QR Code IDShelf (auto)clxegnjcm005b11tn2cszkw6cThe canonical system ID; the target of every QR code
SAM ID (Sequential Asset Number)Shelf (auto)SAM-0001, SAM-0042Human-friendly reference used in conversation, reports, labels
Property IDYou (optional)LAPTOP-001, CAM-02Your own numbering scheme, if you have one. Supports custom URL lookups.

All three are searchable. If a label gets damaged and the QR can't be scanned, you can type any of the three into Quick Find (⌘K) to locate the asset and relink a fresh QR code.


1. QR Code ID (system-generated)

The QR Code ID is the canonical, system-generated identifier every asset has from creation. It looks like clxegnjcm005b11tn2cszkw6c — unique across your whole workspace, guaranteed never to collide.

Every QR code you print from Shelf encodes a URL containing this ID. When someone scans the code, Shelf resolves the ID and opens the right asset page.

You can't change this ID. But you can re-link an asset to a different QR code — see QR code swapping for when that matters.


2. SAM ID — Sequential Asset Numbers

SAM IDs are clean, human-friendly numbers assigned automatically in order: SAM-0001, SAM-0002, SAM-0042, and so on. They make asset management conversational:

  • "Can you check on SAM-0892?" is clearer than referencing the long system ID.
  • Sequential numbers simplify tracking — spotting gaps, estimating growth, scanning down a list.
  • Clean formatting looks more professional on reports, labels, and documentation.

Assets index with SAM IDs shown as a column

How SAM IDs work

  • Automatic assignment: new assets receive the next number in sequence.
  • Workspace-scoped: each workspace has its own independent sequence starting at SAM-0001.
  • Permanent once assigned: deleted assets keep their SAM ID — numbers aren't reused, which keeps the historical record clean.
  • Non-breaking: SAM IDs are display identifiers; URLs and integrations continue to use the QR Code ID.

Enabling SAM IDs

  • New workspaces: enabled by default. Every asset gets a SAM ID at creation.
  • Existing workspaces: a one-time migration dialog appears on your first login after SAM IDs are available. Shelf generates IDs for existing assets in order of their creation date. Migration is irreversible, but it doesn't affect any existing workflows or URLs.

SAM ID settings

Searching by SAM ID

Use the search bar or Quick Find (⌘K):

  • Type SAM-0001 to find your first asset.
  • Type 1500 alone to find SAM-1500 (partial match works).

Can I change the SAM prefix?

Not currently — it's fixed at SAM (Shelf Asset Management). Custom prefixes may become configurable in a future update.


3. Property ID — your own identifier

Property IDs let you record your own identifier on an asset — on top of the QR Code ID and SAM ID. Useful when:

  • You're migrating from an existing tracking system and need to preserve old labels or numbers in your records.
  • Your organisation already has a numbering scheme (e.g. LAPTOP-001, CAM-02, VEH-004).
  • You want asset references that embed meaning (asset type, department, location).

Important — Property ID does NOT print on QR labels. The Property ID is a stored value you can search and reference, not a printable label format. Only QR Code ID or SAM ID can appear under the QR code on a downloaded Shelf label — see section 4 below for how to control that. If you need your own IDs on the printed labels themselves, that is a custom-template workflow, not a built-in Property ID feature.

Setting a Property ID

  1. When creating or editing an asset, locate the Property ID field.
  2. Enter any string (letters, numbers, hyphens).
  3. Save.

Property IDs are optional. If you don't set one, nothing changes — the asset still has its system ID and SAM ID.

Bulk-importing Property IDs from your old system

Migrating from another asset tracker? Your existing IDs can come in via CSV import. Map your old-ID column to Property ID (or to a custom field — see below) when uploading. The imported value is searchable from Quick Find and the asset index, exactly like a Property ID set by hand. See Importing Assets to Shelf — CSV Guide.

Alternative: Use a custom field for your own identifier scheme

If you want a different field name (e.g. Tag Number, Inventory ID, Old Asset No.), or you want multiple parallel ID columns, create a custom field of type Text. You can:

  • Name it anything that matches your existing system
  • Make it required for new assets if you rely on it
  • Include it as a column when importing assets via CSV — old IDs from your previous system land directly in the new field
  • Search for assets by that value from the asset index and Quick Find

A custom field behaves like the built-in Property ID for search, display, and import. The same caveat applies: a custom-field value does not appear on the printed QR label — only QR Code ID or SAM ID can show there.

The Property ID custom URL

Every Property ID gets a custom lookup URL:

Code
https://app.shelf.nu/property/YOUR-PROPERTY-ID

Example: if your Property ID is LAPTOP-001, visiting https://app.shelf.nu/property/LAPTOP-001 redirects to the full asset page. This is useful for:

  • Printing QR codes that encode your Property ID URL instead of the Shelf URL (requires a custom label template — see Printing Custom Branded QR Labels).
  • Typing a familiar ID directly into your browser when you need to look something up fast.
  • Sharing a compact link with team members.

Property ID best practices

  • Keep them unique within your workspace — Shelf doesn't enforce uniqueness on Property IDs.
  • Use a consistent naming convention (pick a separator and stick to it).
  • Consider encoding type or location information (LAB-OSC-003 tells you it's a lab oscilloscope without looking up the asset).

4. Preferred display code — the workspace setting

Every list row in Shelf now ends with a small chip showing each asset's chosen identifier. The Preferred display code workspace setting controls which identifier that chip shows — and which identifier appears underneath the code on downloaded QR labels. It lives at Settings → General.

Every row on the simple assets index ends with a code chip under the status badge — same chip primitive renders on kits, bookings, audits, locations, and kit-detail lists

Where chips appear

The same chip vocabulary renders on every list view, so a label on the warehouse floor matches the row on the screen:

  • /assets — both Simple and Advanced index modes (in Advanced mode the chip lives inside the QR ID and SAM ID columns).
  • /kits and the asset list inside a kit's detail page.
  • /locations.
  • The booking detail page.
  • The "add assets/kits to booking" modals.
  • The audit overview.

Who can change it

Both the workspace setting (Settings → General) and per-asset overrides are gated by the standard update permissions in the Shelf permission model — that means Owner and Administrator. Base and Self-Service users see the chips on every list but the controls themselves are hidden.

How to change the workspace setting

  1. Open Settings → General.
  2. Scroll to Preferred display code.
  3. Click the dropdown — each option shows a live preview chip so you can see what your list rows will look like before saving.
  4. Pick a value.
  5. Click Save changes.

Settings → General → Preferred display code — one dropdown controls every list chip across assets, kits, bookings, audits and locations

Dropdown open showing the seven options, each with its description and a live preview chip — and a preview chip beneath the trigger that updates as you change the selection

Available options

Every workspace gets two free options:

  • QR Code ID (default) — Shelf-generated; every asset has one (e.g. abc123xyz).
  • SAM ID — Sequential Asset Marker; short, human-readable (e.g. SAM-0001).

Workspaces with the alternative-barcodes add-on (a 7-day free trial is available — any Owner can start it directly without contacting sales) unlock five more:

  • Code 128 — most flexible: letters + numbers + symbols (e.g. ABC-123).
  • Code 39 — letters and numbers only, no symbols (e.g. ABC123).
  • DataMatrix — 2D matrix code, supports any characters (e.g. ABC-123).
  • External QR — third-party QR codes; URLs or text (e.g. https://example.com).
  • EAN-13 — retail barcodes, exactly 13 digits (e.g. 9780201379624).

Without the add-on the five barcode-type options are hidden from the dropdown — QR Code ID and SAM ID remain available to everyone.

What this setting affects

  • List-view code chips — every row across all the surfaces listed in "Where chips appear" above.
  • Printed QR labelsonly when the preference is QR Code ID or SAM ID. Those are the two options whose value also appears underneath the code on the default Download output. A SAM-ID preference also adds the SAM prefix to bulk-download filenames (e.g. SAM-0001_Laptop_Dell_abc123.png instead of Laptop_Dell_abc123.png).

What it does NOT affect

  • Printed QR labels for barcode-type preferences — if your workspace prefers Code 128, Code 39, DataMatrix, External QR, or EAN-13, the printed label still shows the QR Code ID underneath the code today. Barcode-type label printing is on the v1.1 roadmap. Until then, if you need a specific barcode value on the physical label itself, use a custom-branded label template.
  • The QR code itself — it still encodes the canonical asset URL regardless of the preference.
  • Existing printed labels — they keep working. The setting only affects the next label you download or print from Shelf.
  • Integrations, exports, or URLs — those continue to use the QR Code ID as the unique key.

Per-asset override — picking a different code for one item

Most assets should leave the override on Workspace default. But sometimes one asset needs to show a different code than the rest — a partner-supplied loaner with its own sticker, demo gear that carries a manufacturer barcode, or an asset that has multiple barcodes of the same type where you want a specific one to surface.

Open the asset's edit page (Owner / Admin) and scroll to "Preferred display code for this asset" below the Barcodes section.

Per-asset override radio group on an asset with one persisted barcode — the Workspace default row says "Currently set to QR Code ID for this workspace", and the EAN-13 row shows a live preview chip with the value that will override it

The radio group has a Workspace default row at the top plus one row per persisted barcode on the asset. The Workspace default row tells you in plain English what it will resolve to right now:

  • If your workspace prefers QR Code ID or SAM ID, the row reads: "Currently set to QR Code ID for this workspace." (or "… SAM ID …").
  • If your workspace prefers a barcode type and the asset has one of that type, same wording with the type label.
  • If your workspace prefers a barcode type but this asset has none of it, the row shows a fallback warning: "Currently set to Code 128, but this asset has no Code 128 barcode. List views will fall back to its QR code (add a Code 128 above to fix)."

Selecting a specific barcode row forces that value to show on every list view for this one asset, regardless of the workspace preference. The chip's tooltip then explicitly reads as an override — see "Tooltip vocabulary" below.

If an asset has zero persisted barcodes, the section shows an empty state: "This asset has no barcodes yet, so there's nothing to override. … Add a barcode in the section above and save the asset — it will become selectable here on your next edit."

Per-asset overrides require the alternative-barcodes add-on. Without it, the entire override section is hidden and every asset follows the workspace default.

Chip color states — filled vs outlined

The chip renders in one of two visual states:

  • Filled gray — the chip is showing the workspace's preferred type (or your per-asset override) and the asset has that data. The default, confident state.
  • Outlined white — the workspace prefers a barcode type but this asset has no barcode of that type. The chip falls back to the QR Code ID and renders with a thin ring instead of a filled background. The row doesn't change height, but the missing data stays visible as a quiet hygiene signal.

To go from outlined back to filled on one asset, either add a barcode of the preferred type to that asset, set a per-asset override, or change the workspace preference itself.

Tooltip vocabulary — what each chip says on hover

Every chip has a structured tooltip with a bold title (code type + value) and a body explaining what's going on. The three states use distinct, verbatim copy from the product:

StateTooltip titleTooltip body
Default (matches workspace)Code 128: ABC-123Matches your workspace's preferred display code. Change in workspace settings.
Per-asset overrideCode 39: TARGETPer-asset override — overrides workspace's preferred Code 128.
Fallback (asset has no preferred type)QR Code ID: abc123 (fallback)Your workspace prefers Code 128 but this item has no Code 128. Add one (or change the workspace setting) to fix.

The tooltip text is also mirrored to the chip's aria-label, so screen-reader users get the same explanation without opening the tooltip.

Clickable chips vs display-only chips

Some chips open a code-preview dialog when clicked — notably the chips in the QR ID and SAM ID columns of the Advanced asset index. Those chips show a small maximize-glyph at 50% opacity on the right edge — an at-rest interactivity hint, not just on hover. Chips without that glyph are display-only.

Activity log

Two activity events are emitted automatically:

  • Workspace setting changes are logged as ORGANIZATION_QR_ID_DISPLAY_PREFERENCE_CHANGED — captures the old preference, the new preference, and the actor.
  • Per-asset override changes are logged as ASSET_PREFERRED_BARCODE_CHANGED — captures the old and new barcode id (or null when reverting to Workspace default).

Both events appear in the standard activity feed and surface in reports alongside other asset-change events.

Troubleshooting — my chips didn't update

Chips render from loader-fetched data, not from the in-progress edit state. After saving a workspace-preference change or a per-asset override, refresh the list view (or navigate away and back) — the chips reflect the new preference on the next load.

When to pick each option

QR Code ID is the right choice when your team primarily scans labels rather than reading them — the visible chip is incidental because the scanner does the matching. It's also the safe default if you haven't yet standardised on a physical-label scheme, and the only sensible choice for workspaces that don't have SAM IDs assigned (the chip would fall back to QR Code ID anyway).

SAM ID is the right choice when your team talks about assets by short numbers in real workflows ("can you grab SAM-0042 from the cage?"), when you're migrating from a manual tracking system that already used short reference numbers, or when you print Avery-style sheets where a human-readable number under the QR makes pack-outs faster.

A barcode type (Code 128, Code 39, DataMatrix, External QR, EAN-13) is the right choice when your fleet is already stickered with physical barcodes — from a previous system, a manufacturer, or a retail purchase — and the sticker's value is what your team reads off pack-out lists, types into search, or matches against a screen during check-in/check-out. Pick the type that covers the majority of your assets and use per-asset overrides for the outliers; mixed populations fall back gracefully via the outlined chip state.

Hiding the SAM ID column in the asset index

If your team relies on Property IDs or a custom field for day-to-day reference and the SAM ID column is creating noise, you can hide it from the asset index:

  1. Open the asset index.
  2. Click Configure columns (the column-toggle control above the table).
  3. Uncheck SAM ID.
  4. Save.

The SAM ID is still assigned and still searchable from Quick Find — you've just removed the column from the table view. Anyone on the team can re-enable it from the same menu later.

See: Advanced Asset Index — Complete Guide.


FAQ

Can I use all three identifier types at once?

Yes. Every asset automatically has a QR Code ID and a SAM ID. You can optionally add a Property ID on top. All three are searchable in Quick Find and the asset index.

Which one should I use when searching?

Whichever you remember. Shelf's search resolves all three. If you see an asset labelled SAM-0042, type SAM-0042 or just 42. If you see a Property ID like LAPTOP-001 on a sticker, type that.

What if I delete an asset and want the SAM ID back?

SAM IDs are not reused. A deleted asset's SAM ID stays out of circulation — this preserves historical accuracy. The next new asset receives the next unused number.

Can I change a Property ID after assigning it?

Yes — open the asset, edit the Property ID field, save. The old value is replaced.

Do Property IDs need to be unique?

Shelf doesn't enforce uniqueness on Property IDs, so technically two assets can share one. In practice, keep them unique — you'll have a bad time searching if two assets both claim LAPTOP-001.

Will changing the Preferred display code setting break existing labels?

No. The QR codes on existing printed labels encode the canonical asset URL, not the displayed text — scanning them still resolves to the right asset regardless of the setting. The setting only affects (a) the chips on list views in the app, and (b) what value Shelf prints under the QR on the next label you download. For (b), only the QR Code ID and SAM ID preferences change the printed text; barcode-type preferences don't affect printed labels yet (see "What it does NOT affect" in Section 4 above).

Can I print my own Property ID (or a custom-field value) on the QR labels Shelf generates?

Not in the default downloaded labels. The Preferred display code setting picks among QR Code ID, SAM ID, or — with the alternative-barcodes add-on — a barcode type as the value shown on list-view chips, with QR Code ID and SAM ID also appearing as the text under the code on downloaded labels. Property IDs and custom-field values are stored on the asset and searchable, but Shelf does not currently inject them into the printed label format. If you need your own IDs physically on the labels, the path today is a custom-branded label template using unclaimed QR codes — you design the layout in your own tool and print externally.

Can I override the preferred display code on a single asset?

Yes — with the alternative-barcodes add-on. Open the asset's edit page, scroll to "Preferred display code for this asset", and pick a specific barcode from the radio group (or leave it on Workspace default). The chip on every list view will then show that asset's overridden value with a tooltip noting it as an override. Without the add-on, the override section is hidden and every asset follows the workspace default.

What happens if my workspace prefers Code 128 but an asset doesn't have one?

The chip falls back to that asset's QR Code ID, rendered with a quieter outlined style (instead of the filled gray used when the preference is satisfied). The tooltip title becomes QR Code ID: <value> (fallback) with body "Your workspace prefers Code 128 but this item has no Code 128. Add one (or change the workspace setting) to fix." To resolve it, either add a Code 128 barcode to that asset, set a per-asset override, or change the workspace preference.

Why does one chip in my list look outlined while the rest are filled gray?

That's the fallback state — your workspace prefers a barcode type, but that one asset has no barcode of that type, so its chip falls back to the QR Code ID rendered with a thin ring instead of a filled background. Hover the chip to see exactly which type is missing.

Is there an activity log entry when someone changes the setting or sets an override?

Yes — workspace-preference changes emit ORGANIZATION_QR_ID_DISPLAY_PREFERENCE_CHANGED and per-asset override changes emit ASSET_PREFERRED_BARCODE_CHANGED. Both appear in the standard activity feed alongside other asset and workspace events.

Who can change the workspace setting or set an override?

Owner and Administrator roles. Base and Self-Service users see the chips on every list view but the controls themselves are hidden.

My team uses Property IDs (or a custom field) for our IDs and the SAM ID column is confusing. Can I hide it?

Yes. Open the asset index, click Configure columns, uncheck SAM ID, and save. The SAM ID stays assigned and remains searchable in Quick Find — you have just removed the column from the table.


Ready to try Shelf?

Put what you're learning into practice. Free plan available — no credit card required.