QR codes that open a machine's own manual, not a search for one
Point the code at a page you control, not a PDF you might move
A code that links straight to a PDF works until the manual is revised, renamed or moved, at which point every printed label on every machine is wrong and nobody notices until someone scans a dead link. Point a dynamic code at a stable page instead, an internal wiki entry, a document library folder, anything with a URL you control, and let that page link to the current file. When the manual changes, you edit the page once. The label on the machine never has to be touched.
“The manual” is rarely the whole answer. What a code on a machine should open depends on who is standing there and why: a callout engineer wants fault-finding steps and a wiring diagram fast, a contractor doing a planned service wants the spec sheet and the service log, an operator who has just noticed something wrong wants to know who to call and what not to touch. One machine can reasonably have all three needs, which argues for a short landing page per asset that links out to each document, rather than a code that only ever opens one file.
| Who scans | What they need first | What to put behind the code |
|---|---|---|
| Engineer on a fault callout | Fault-finding steps and the wiring diagram | The manual's fault-finding section, or the full PDF if it's short |
| Contractor on a planned service | Spec sheet and service history | An internal log page plus the spec PDF |
| Operator who's spotted a problem | Who to call and what to do first | A short page: if this alarms, do X, call Y |
| Health & safety walk-round | Safety data sheet | The COSHH or safety data sheet for that unit |
Ten identical air handling units still need ten codes, because the manual might be shared but the service history, installation date and last fault are not. A shared code on identical machines loses exactly the information the code exists to carry: which one this is. Number the range with the bulk generator's sequence mode (AHU-01 to AHU-10, for example) rather than inventing labels by hand, and keep the number with the physical unit for its whole working life even if it's relocated.
An engineer reading this is often wearing gloves, working by torchlight or looking up at a gantry, so the code needs to be bigger and bolder than a desk label: err toward 30–35mm rather than the 20–25mm that suits a static object read at arm's length in good light. Fix it beside the machine's own nameplate rather than hunting for empty space, keep it off any panel that gets removed to access the unit (the label ends up in a bin, or on the wrong machine after a swap), and keep it away from surfaces that get hot, vibrate or get wiped with solvent, all of which shorten a label's working life fast.
Setting up manuals-by-code for a plant room
Inventory the units
List every machine and decide what each type of scanner needs to see first: fault-finding, service history, or a safety sheet.
Host each document set on a stable page
A page you control that links to the current file, not a direct link to a PDF that will one day move.
Generate one dynamic code per unit
The bulk generator's paste mode, one row per asset, labelled with the asset's own ID.
Print at 30mm or larger with error correction H
Big enough for gloved hands and poor light, tolerant enough to survive a scuffed or oily surface.
Fix it beside the nameplate, not on a removable panel
Then scan-test it yourself with gloves on, in the actual light the machine sits in.
This is the whole case for dynamic over static here. The label stays on the machine for years; the manual gets revised, the service contractor changes, the safety data sheet gets updated. With a dynamic code you edit the destination once, through the dashboard, the API or the MCP server, and every printed label updates instantly. Static codes are free, unlimited and never expire, which suits a tag that only ever needs to encode its own fixed ID, but a manual link is rarely that fixed. Three dynamic codes are free; a plant room with more than a handful of machines is a Pro decision (£9/month), worth making before the first label goes up rather than discovering it at machine four.
What the scan log actually tells you
A scan is evidence someone opened that machine's documentation, which over time becomes a rough “last looked at” signal: a unit nobody has scanned in eighteen months is worth a glance. It is not a maintenance record. It doesn't prove a service happened, and it should never be quoted as if it did; if you need a real service log, that lives in your CMMS or maintenance system, and the code should point at it, not stand in for it. Scan data is aggregated as it's written and no scanner is ever identified.