Documentation

Everything you need to set up and use SheetLabel — from first install to printing your first label.

Installation

  1. Install from the Marketplace
    Open the Google Workspace Marketplace™ listing and click Install. Grant the requested permissions when prompted.
  2. Open Google Sheets™
    Navigate to any spreadsheet that contains your inventory data — or create a new one.
  3. Launch the sidebar
    Go to Extensions → SheetLabel → Open Sidebar. The SheetLabel panel will appear on the right side of your sheet.
Tip: If you don't see SheetLabel under Extensions, refresh the page. New add-ons sometimes take a moment to appear.

Quick Start

Get up and running in under two minutes:

  1. Open the sidebar — Extensions → SheetLabel → Open Sidebar.
  2. Map your columns — When the sidebar opens, SheetLabel automatically scans your header row and maps all columns it can recognise. If a column wasn't detected, select it manually from the dropdown.
  3. Save your setup — Click Save Setup. SheetLabel validates your mapping and warns you if anything looks off (e.g., blank SKUs, potential wrong column). This also activates the scanner link for this sheet.
  4. Print labels or scan — Select rows and click Generate Label PDF, or show the scanner QR code and start scanning from your phone.
New spreadsheet? Click Quick Setup in the sidebar to auto-generate a ready-to-use header row with columns for SKU, Name, Status, Timestamp, Quantity, and Location.

Column Mapping

SheetLabel maps your existing spreadsheet columns to inventory fields. You keep your layout — SheetLabel adapts to it.

Fields

FieldRequiredWhat it does
SKU / BarcodeYesThe unique identifier for each item. Used for lookups, scanning, and label barcodes.
DescriptionNoItem name printed on labels above the barcode.
StatusNoToggles between "Checked In" and "Checked Out" on each scan. Also used for batch label filtering.
TimestampNoAutomatically records the date and time of the last scan.
QuantityNoIncremented on check-in, decremented on check-out.
LocationNoWarehouse, shelf, or bin location. Displayed in the scanner for context.

Only SKU / Barcode is required. All other fields are optional — leave them unmapped if your spreadsheet doesn't have that column or you simply don't need that feature.

Auto-Detection

When you open the sidebar, SheetLabel automatically scans your entire header row and maps every column it can recognise — so in most cases you don't need to do anything except click Save Setup. It uses fuzzy matching, so a column named "Part Number" will match the SKU field, and "Qty" will match Quantity.

If a column isn't picked up automatically, click Auto-detect on that specific field's dropdown to retry, or select the correct column manually. If no match is found you'll see a "No match found" hint — rename your header and SheetLabel will catch it on the next open.

Column Drift Warnings

If you insert or delete columns after saving, SheetLabel detects the shift the next time you open the sidebar. You'll see a warning showing which columns moved. Review your mappings and re-save to update them.

Resetting Configuration

Click Reset to clear all column mappings for the current sheet. This also removes the scanner link for this sheet — any bookmarked scanner URLs will stop working until you reconfigure and save again. Reset requires two presses to confirm — the button turns red on the first click as a safety measure.

Printing Labels

Selecting Rows

There are three ways to choose which items get labels:

  • Single row — Click any cell in the row you want, then click Generate.
  • Multiple rows — Hold Shift or Ctrl / to select multiple rows, then click Generate.
  • Batch by status — Check "Filter by status" and enter a value (e.g., "New" or "Ready to Print"). SheetLabel finds all matching rows automatically.

Choosing a Template

Select a label template from the dropdown. See the Label Templates section below for dimensions and recommended printers.

Choosing a Barcode Type

Pick Code 128 for standard linear barcodes or QR Code for 2D square codes. This affects both printed labels and the scanner mode on your phone.

Printer Offset

Use the offset slider (-2.0 to +2.0 mm) to fine-tune vertical alignment. Each printer feeds paper slightly differently — adjust until labels are centered.

Preview

Toggle Show Preview to see a 3× scale rendering of your label before printing. The preview updates live as you change templates, barcode type, or offset.

Generating the PDF

Click Generate Label PDF. The file downloads automatically as sheetlabel-{template}-{timestamp}.pdf. A progress bar tracks generation for larger batches.

Important: Always print at 100% scale. Do not use "Scale to Fit" or "Shrink to Page" — barcodes must be pixel-accurate to scan correctly.
Need multiple copies? SheetLabel generates one label per item. To print multiple copies, use the Copies setting in your printer dialog.

Mobile Scanner

SheetLabel turns your phone into a barcode scanner — no app download required. It works in your mobile browser.

Connecting Your Phone

  1. Save your column mapping first — the scanner QR code is only available after setup is saved.
  2. Click "Show QR Code" in the Scanner section of the sidebar.
  3. Scan the QR code with your phone's camera. It opens the scanner web app with your spreadsheet pre-configured.
  4. Sign in with Google — the scanner needs permission to read and write to your sheet.
Tip: Bookmark the scanner URL for instant access. The URL stays the same for each sheet.

Scanning Barcodes

Point your phone camera at any barcode or QR code. The scanner auto-detects the format — no manual mode switching needed. You can also type a SKU manually for items without a physical barcode.

The scanner reads barcodes from any source — labels you printed with SheetLabel, supplier labels, or any barcode that matches your SKU column.

Supported Formats

The scanner reads QR Code, Code 128, Code 39, EAN-13, EAN-8, UPC-A, and UPC-E. Labels print as Code 128 or QR Code.

Check In / Check Out

Each scan performs one of three actions:

ActionStatusQuantityTimestamp
Check InSet to "Checked In"Increased by scan quantityUpdated
Check OutSet to "Checked Out"Decreased by scan quantityUpdated
LookupRead onlyRead onlyNo change

Stock Protection

You cannot check out more items than are in stock. If you try to check out 5 units but only 3 are available, the scan is rejected with a clear error message.

Duplicate Scan Protection

Every scan gets a unique action ID. If a network glitch causes the same scan to be sent twice, the second request returns the cached result instead of double-counting. This protection lasts for 6 hours.

Viewing Cell Edit History

SheetLabel always writes the current state of a cell — it doesn't keep its own change log. If you need to see what a Status or Quantity value was before the last scan, Google Sheets has a built-in per-cell history feature:

  1. Click the cell you want to inspect (e.g. the Status or Quantity cell for an item).
  2. Right-click to open the context menu.
  3. Select Show edit history.
  4. Use the arrow buttons in the popup to step through every previous value, along with who changed it and when.
Tip: Cell edit history is available on any cell SheetLabel writes to — Status, Quantity, and Timestamp — so you can always audit exactly what changed and when, without needing a separate audit log.

Offline Mode

The scanner works without an internet connection. Here's how:

  • Inventory cache — Your item data is cached locally in the browser for fast lookups (24-hour TTL).
  • Offline queue — When you scan without connectivity, actions are queued locally. Up to 500 actions can be queued.
  • Auto-sync — When you're back online, queued scans are sent automatically in order. Each scan is idempotent, so duplicates are safe.
Note: Offline mode requires that you've loaded the scanner at least once while online, so the app and inventory data are cached locally.

Dark Mode

Click the sun/moon icon in the top-right corner of the sidebar to toggle between light and dark themes. Your preference is saved automatically and persists across sessions. On first use, SheetLabel follows your operating system's theme setting.

Label Templates

TemplateSizeOrientationBest For
Brother QL-80062 × 29 mm (2.4 × 1.1″)LandscapeStandard inventory labels
Dymo LabelWriter57 × 32 mm (2.2 × 1.3″)LandscapeAddress & inventory labels
Munbyn 403B101.6 × 152.4 mm (4 × 6″)PortraitShipping labels
Phomemo M22040 × 30 mm (1.6 × 1.2″)LandscapeSmall price tags
Shipping 4×6101.6 × 152.4 mm (4 × 6″)PortraitGeneric shipping labels
Price Tag 2×150.8 × 25.4 mm (2 × 1″)LandscapeRetail price/inventory tags

Printer Recommendations

  • Brother QL-800 — Excellent for standard inventory labels. Uses continuous DK tape, no driver setup needed on most systems.
  • Dymo LabelWriter — Popular desktop label printer. Works with standard 30334 or 30252 labels and connects via USB on Windows and Mac.
  • Munbyn 403B — Great 4×6 thermal printer for shipping labels. Works with all major carriers.
  • Phomemo M220 — Compact and portable Bluetooth printer for small tags. Ideal for price labels in retail.

Calibrating Your Printer

If labels are printing slightly off-center, use the Printer Offset slider in the sidebar. Adjust in 0.1 mm increments until the barcode and text are centered on the label. The preview updates in real time so you can see the result before printing.

Barcode Formats

For Printed Labels

Choose between two formats when generating label PDFs:

  • Code 128 — Compact linear barcode. Works with all standard barcode scanners. Best for alphanumeric SKUs.
  • QR Code — 2D matrix code. Holds more data and scans from any angle. Good for longer identifiers or URLs.

For the Mobile Scanner

The scanner reads QR Code, Code 128, Code 39, EAN-13, EAN-8, UPC-A, and UPC-E automatically. No manual mode switching is needed — it detects the format from the camera feed.

Subscription & Billing

Free Trial

Every new user gets a 7-day free trial with full access to all features. No credit card required — it starts automatically when you first open the sidebar.

Plans

PlanPriceBilling
Monthly$12.99/monthBilled monthly, cancel anytime
Annual$99.00/yearBilled yearly (~36% savings), cancel anytime

How to Subscribe

When your trial ends, click the license badge in the sidebar or open the upgrade dialog. Select a plan — you'll be redirected to Stripe's secure checkout. Your subscription activates instantly after payment.

Cancellation

Cancel anytime from the Stripe billing portal. After cancellation, you keep access until the end of your current billing period. Your data stays in your Google Sheet — we never hold it hostage.

Data Ownership

Your inventory data lives in your Google Sheet, not on our servers. If you uninstall SheetLabel, your spreadsheet and all your data remain exactly where they are.

Troubleshooting

Camera won't start on the scanner

The scanner requires a secure context (HTTPS) and camera permission. On iOS, it must be opened in Safari — other browsers on iOS don't support camera access for web apps. On Android, Chrome and most other browsers work fine. Check that you've granted camera permission in your device settings.

Scanner says "No configuration found"

This means the column mapping for this sheet was reset. Since the scanner QR code is only generated after a successful save, you must have had a working configuration at some point — it was likely cleared using the Reset button. Open the SheetLabel sidebar in Google Sheets, make sure you're on the correct sheet, configure your columns, and click Save Setup. Unconfigured sheets won't appear in the scanner's sheet picker.

Switched to a sheet with no configuration

Each sheet stores its own column mapping. When you switch to a sheet that hasn't been set up yet, SheetLabel automatically tries to detect your columns from the header row. Review the detected mappings, adjust anything that wasn't picked up, and click Save Setup.

Labels are printing the wrong size

Make sure you're printing at 100% scale. In your print dialog, disable "Scale to Fit", "Shrink to Page", or any similar option. The PDF is generated at exact dimensions — scaling will make barcodes unscannable.

"Rate limit exceeded"

SheetLabel allows 30 requests per 60 seconds per user. If you see this error, wait a moment and try again. This typically only happens during very rapid scanning.

"SKU not found"

The scanned barcode doesn't match any value in your SKU column. Check that the barcode content matches your spreadsheet data exactly, including any leading zeros or special characters.

Offline scans aren't syncing

Make sure you have an active internet connection. Open the scanner and check for a sync indicator. If scans are stuck, try refreshing the page — the queue will attempt to sync again automatically.

"This sheet or range is protected"

The sheet owner has protected cells that SheetLabel needs to write to. Ask the owner to unprotect the relevant columns (Status, Timestamp, Quantity) or grant you edit access.

Columns shifted after adding/removing columns

SheetLabel detects column drift and warns you on load. Open the sidebar, verify your column mapping is still correct, and click Save Setup to update it.

Permission errors on sidebar load

If you see "Permissions required", click the Grant Permissions button to re-trigger the Google OAuth flow. This usually happens if you denied or skipped a permission checkbox during the initial install. Make sure to check all permission boxes — SheetLabel needs each one to function. After granting permissions, refresh the page to clear the built-in permission prompt and reload the sidebar.

I paid but my subscription isn't active

The email address you used at Stripe checkout must match your Google account email. If they don't match, SheetLabel can't link the payment to your account. Click the license badge in the sidebar, then click "Still not active?" to send a support email — include your Stripe receipt and we'll sort it out.

"Server busy, please try again"

This happens when multiple people scan the same spreadsheet at the same time and requests briefly queue up. Wait a few seconds and scan again — it resolves on its own. If it persists, check that no one else is making rapid bulk scans on the same sheet.

Need more help?

Reach out to support@sheetlabel.app — we typically respond within 24 hours.