Skip to main content

QR Codes & Public Unit URLs

QR codes are the bridge between the physical equipment in the field and the TuffOps record for it. Stick a QR sticker on a chiller, and anyone with a phone camera can pull up that unit's page and request service — no app install, no login.

What a QR code is, exactly

A QR code in TuffOps is a label that encodes a URL of the form /u/<guid>, where <guid> is a UUID. The GUID is stored on the unit record as qr_code_guid. The URL is:

  • Opaque — knowing one GUID tells you nothing about the next one.
  • Non-guessable — UUIDs are 128-bit; brute-forcing the space isn't practical.
  • Stable — the GUID lives with the unit forever. If the sticker survives, the link survives.

There's no separate "QR code record" once it's assigned to a unit. The GUID is the unit's public identifier.

The QR code lifecycle

A QR code can be in one of three states:

StateWhat it means
BlankPrinted on a label but not yet associated with a unit. Scanning the URL returns a not-found page; assignment happens from inside TuffOps.
AssignedTied to a specific unit. Scanning it opens that unit's public page.
ReassignedThe label is reused for a different unit (rare, usually after equipment replacement).

Blank labels are useful when you want to pre-print a batch of stickers, hand them to a tech in a roll, and have the tech assign them on-site. Assignment happens from inside the TuffOps app: the tech opens a work order or unit, scans the blank label with the in-app QR scanner (or pastes the URL), and the GUID is bound to that unit. The customer-facing public page only appears once a unit is bound.

The public unit page

When someone scans an assigned QR code, they land on the public unit page. That page deliberately exposes very little:

  • A friendly identifier (something like Lobby AC #2 or the unit's serial number)
  • The customer name
  • A way to request service or report an issue (which creates a Customer Request)

What's not on the public page:

  • No financial info (no quotations, no invoices, no totals)
  • No service history detail
  • No internal notes
  • No technician info
  • No other units belonging to the same customer

Treat the QR URL as semi-public. It's not a secret — anyone holding the equipment can scan it — but the page behind it is intentionally lean. Anything sensitive lives behind authentication.

The "scan to request service" flow

The most common reason a QR code exists is to give building staff or homeowners a frictionless way to flag a problem. Scanning produces a customer request that includes:

  • The unit GUID, so triage knows exactly which piece of equipment.
  • Whatever the requester typed in the description box.
  • The requester's name and contact info (if they provided it, or if they're a returning contact TuffOps recognizes).

That request lands in the office's triage queue and gets converted to a work order on the next pass. See Customer Requests for the full triage flow.

Why QR codes instead of NFC or barcodes

QR codes won out for three boring reasons:

  1. Every modern phone camera reads them with no special app.
  2. They survive being printed on a sticker and weathering on the back of an outdoor condenser.
  3. They're cheap to print, cheap to replace, and cheap to scale to thousands of units.

NFC needs the phone close enough to a transmitter; barcodes need an app for most phones; both lose to QR for the field-service use case.