> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firstresonance.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> How ION labels physical material and turns scans into traceable transactions: barcode format, print paths, templates, and scan-to-action workflows.

Labels bind ION's records to the physical material on your floor. A part inventory, kit, or location carries a printed barcode, and scanning it in ION resolves back to that exact record. Every scan that drives an action, such as a move, kit, or install, becomes a traceable transaction against the record.

You print labels from the entity you want to tag and scan them downstream during receiving, kitting, install, location moves, and run-step kiosk operations.

## Barcode format

An ION barcode encodes a JSON payload with the record's `uid` (Universal Identification), for example `{"uid":"24daeec708d84908af9beba707a5241b"}`. When you scan it, ION recognizes characters typed quickly that match the ION ID specification and resolves the `uid` to its record. Because the payload is compact, an ION QR code stays scannable at small label sizes: with the ZPL magnification factor, a `uid` QR code prints reliably at 0.25 x 0.25 inches on a 300 DPI printer. Preview a template's size and density with [Labelary](http://labelary.com/viewer.html).

If your material already carries barcodes from another system, you can map those formats to ION records with a regular expression or a JSON field mapping. See [Scan barcodes from other systems](/build-hardware/labels-and-scanning/scanning/scan-barcodes-from-other-systems).

## Print paths

ION prints over one of two paths, set once for the org by the **Use print server** toggle in **Settings → Organization → Barcode Labels**, not per print:

* **Browser** (Zebra Browser Print) drives a Zebra printer attached to the operator's workstation. ION talks to the local service over `https://localhost:9101`. See [Configure Zebra Browser Print](/build-hardware/labels-and-scanning/printing/configuring-printing-in-ion).
* **Print server** (for example, PrintNode) sends jobs to a central service that manages shared printers across the floor. See [Configure PrintNode server printing](/build-hardware/labels-and-scanning/printing/server-based-barcode-printing-printnode).

The **Barcode Label** dialog shows the printer picker for whichever path is configured. For printing a label, see [Print a label](/build-hardware/labels-and-scanning/printing).

## Templates

Each label is rendered from a ZPL template scoped to an entity type: inventory, kits, or locations. A template defines the field layout and what the barcode encodes, and you can define many templates per entity type for different purposes, such as a shipping label separate from an internal movement label. Templates inject record data through variables like `${part.partNumber}` and `${serialNumber}`. For authoring, see [Create label templates](/build-hardware/labels-and-scanning/templating), and for starting points, see [Sample templates](/build-hardware/labels-and-scanning/templating/sample-templates).

<Tip>
  Templates are defined at the org level in **Settings → Organization → Barcode Labels**. An admin adds or changes them. See [Create label templates](/build-hardware/labels-and-scanning/templating).
</Tip>

## Scan-to-action workflows

Scanning is enabled on every page in ION. You scan three object types: inventory, locations, and kits. After a scan, ION confirms it occurred and offers actions that fit the scanned object, and an action can chain to another scan or a click. Scanning an inventory then a location moves that inventory; scanning an inventory then a kit kits it. One workflow is page-bound: scanning a part inventory on the run execution page installs it if the part is on the aBOM. For the full set of workflows and scanner setup, see [Scanning](/build-hardware/labels-and-scanning/scanning).
