> ## 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.

# Scanning

> How barcode scanning works in ION and the scan-to-action workflows it enables.

ION listens for barcode scanner input across every screen. Scanning a barcode immediately identifies the object, a piece of inventory, a location, or a kit, and presents the actions available for it. Most workflows require only one or two scans.

## How scanning works

Barcode scanners that use the [HID specification](https://docs.microsoft.com/en-us/windows-hardware/drivers/hid/) send keystrokes to whatever window is active. ION detects scanner input by watching for keystrokes that arrive much faster than a human can type and treating the resulting string as a barcode.

For scanning to work:

* An ION tab must be open and focused in the browser.
* The scanner must be connected (USB or Bluetooth HID).
* The cursor must not be inside a text field when you scan. If the cursor is in a field, ION does not intercept the input.

Most USB and Bluetooth scanners work without any driver installation. A scanner that emulates a keyboard and appends a carriage return or line feed after each barcode is the standard expectation.

## Recommended scanners

Any HID-compliant barcode scanner works with ION. For evaluation and testing, the NADAMOO Wireless QR Code Scanner is a straightforward option.

## What can be scanned

ION recognizes three types of objects from a scan:

| Object        | What it identifies                                       |
| ------------- | -------------------------------------------------------- |
| **Inventory** | A specific part inventory record — serial or lot tracked |
| **Location**  | A bin, rack, or other location in the factory            |
| **Kit**       | A kit ready for delivery to a run                        |

Scanning a run barcode navigates you to that run but does not start a workflow.

## Scan feedback

Every scan produces immediate feedback. A banner appears showing what was recognized, the inventory status, and the current location. From the banner you can navigate directly to the scanned object's detail page.

After each scan, an audio chime confirms success or signals an error.

## Scan workflows

Scan workflows are intent-based: scan one object to set the intent, then scan a second object to execute. ION shows which scan to do next.

When a location or kit is held as the active selection, the workflow is **sticky**: you can scan additional inventories one after another without rescanning the location or kit each time. Scan the location again to exit the workflow.

### Move inventory to a location

Scan an inventory, then scan a destination location. The inventory moves to that location.

To move several inventories to the same location in one pass, scan the destination location first to hold it as the active selection. Then scan each inventory. Each scan moves that inventory immediately. Scan the location again to release it.

### Move a kit to a location

Scan a kit, then scan a destination location. The kit moves to that location.

You can also scan a location first and then scan a kit — the kit moves to the held location.

### Add inventory to a kit

Scan an inventory, then scan a kit. The inventory is added to the kit.

To add several inventories to the same kit, scan the kit first to hold it as the active selection. Then scan each inventory. Scan the kit again to release it.

Inventory in **WIP** status cannot be kitted and will produce an error.

### Move a location (nest it under another location)

Scan a location to set it as the active selection. Then scan a different location as the destination. ION shows a confirmation prompt — scan the destination location a second time to confirm, or scan anything else to cancel.

### Install inventory on a run (run execution screen only)

On the run execution screen, scanning an inventory automatically installs it on the as-built BOM (aBOM) for the active step. No second scan is required.

This workflow only works when a run step with build requirements is selected. If no step is active, the scan fails with an error.

For lot-tracked inventory, ION prompts you to confirm the quantity before completing the installation.

ION also supports [requiring barcode scanning for all installations](/administration/production-settings/require-barcode-scanning-for-installations), which disables manual inventory selection.

### Kit inventory on the kitting screen

On the kitting screen with an active kit open, scanning an inventory automatically adds it to the active kit. No second scan is required.

### Navigate to open runs from an inventory scan

Scanning an inventory anywhere in ION shows a link to any open runs that include that part. This is useful in queue-based workflows — for example, in a receiving inspection or NDE lab — where you scan a part from an incoming rack, navigate to the associated run, complete the step, and move the part to the outgoing rack.

## Workflow reference

| Workflow                          | First scan | Second scan        | Notes                                          |
| --------------------------------- | ---------- | ------------------ | ---------------------------------------------- |
| Move one inventory                | Inventory  | Location           | —                                              |
| Move multiple inventories         | Location   | Inventory (repeat) | Scan location again to exit                    |
| Move a kit                        | Kit        | Location           | Or scan location first, then kit               |
| Add one inventory to a kit        | Inventory  | Kit                | —                                              |
| Add multiple inventories to a kit | Kit        | Inventory (repeat) | Scan kit again to exit                         |
| Move a location                   | Location   | Different location | Requires scan-to-confirm                       |
| Install inventory on a run        | Inventory  | —                  | Run execution screen only; step must be active |
| Kit inventory from kitting screen | Inventory  | —                  | Kitting screen only; kit must be active        |

## Scanning barcodes from other systems

If your inventory carries barcodes from a supplier, ERP, or other system, you can configure ION to recognize those barcode formats. See [Scan barcodes from other systems](/build-hardware/labels-and-scanning/scanning/scan-barcodes-from-other-systems).
