Appearance
Importing from a spreadsheet β
Who this is for: anyone who already tracks gear in Excel, Numbers or a Google Sheet and does not want to retype it.
After this you will have your existing list in Shelf, with categories, locations, tags and custodians already attached β not a flat list you then have to organise by hand.
Most people arrive with a spreadsheet. Importing it is usually the fastest hour you will spend on setup, because Shelf creates the categories, locations and tags it finds in your file as it goes. You do not have to build that structure first.
Before you start β
Two things are worth doing to the spreadsheet first, and they save far more time than they take.
Decide what one row means. One row is one asset. If you own eight identical lighting stands and you want to book them individually, that is eight rows. If you treat them as a pool β "four of the eight are out" β that is one row using the quantity columns further down.
Get the names right, once. Whatever you type in the category column becomes a category. "Camera", "camera" and "Cameras" become one category, not three (matching ignores case), but "Cam" becomes a separate one. Five minutes tidying the column now is better than merging categories later.
The columns β
Only title is required. Everything else is optional, and any column you leave out is simply not set.
| Column | What it does |
|---|---|
title | The asset's name. The only required column. |
description | Free text. |
category | Created if it does not exist yet. |
kit | Puts the asset in a kit, creating the kit if needed. |
tags | Comma-separated. Created if they do not exist. |
location | Where it lives. Created if it does not exist. |
custodian | A team member's name. They must already be in the workspace. |
bookable | yes or no. Leave blank for bookable. |
imageUrl | A link to a photo; Shelf fetches and stores it. |
valuation | Replacement value, as a number. Used by reports. |
qrId | An existing Shelf QR id, if you are re-importing. |
assetModel | Make and model, matched case-insensitively. |
Barcode columns β
One column per barcode type, so a single asset can carry more than one.
| Column | For |
|---|---|
barcode_Code128 | The common warehouse barcode. |
barcode_Code39 | Older equipment labels. |
barcode_DataMatrix | Small square codes, often on lenses and batteries. |
barcode_ExternalQR | A QR code somebody else printed. |
barcode_EAN13 | Retail product barcodes. |
Use these when your gear already wears a label you do not want to replace. Shelf will find the asset when that existing code is scanned. See Barcodes and codes.
Counted stock β
For consumables and anything you track by quantity rather than individually β gaffer tape, batteries, cable ties.
| Column | What it does |
|---|---|
type | INDIVIDUAL (default) or QUANTITY_TRACKED. |
quantity | How many you hold. Required for quantity-tracked rows. |
minQuantity | Warn below this level. |
unitOfMeasure | Free text: rolls, metres, packs. |
consumptionType | Required for quantity-tracked rows. |
Your own fields β
Any column named cf:Something becomes a custom field. A column headed cf:Test and tag due creates that field and fills it in. This is how PAT testing dates, serial numbers and insurance references come across.
Doing the import β
- Save the sheet as CSV.
- Go to Assets β Import.
- Upload the file and read the preview. It shows what will be created, including how many new categories, locations and tags.
- Confirm.
The preview is worth reading properly. It is the point at which a stray category called Camera with a trailing space is still cheap to fix.
Updating what is already there β
Assets β Import β Update takes the same file shape but matches existing assets on the id column and edits them instead of creating duplicates.
The reliable way to get that file is to export your assets first: the export already carries the right headers and the correct ids, so you edit the cells you want to change and upload it back. Building an update file by hand and guessing at ids does not end well.
One-way trip
An import is not undoable in one click. If a file is wrong, you are deleting the assets it created. On a big list, import a ten-row slice first and look at the result before running the rest.
When it does not work β
"Custodian not found" β the person must already be a member of the workspace. Invite them first, then import.
Everything landed in one category β the category column was empty or misspelt on those rows. Fix the sheet and re-import only those rows.
A row was rejected for quantity β a QUANTITY_TRACKED row needs both quantity and consumptionType. Blank either one and the row will not import.
The photos did not come through β imageUrl has to be reachable publicly. A link to a file in your own Drive that requires sign-in will not fetch.
Next β
- Organising your gear β categories, locations and tags, and which to use for what
- Printing labels β getting a code onto the gear now that it is listed
- Your first week β where this fits in the wider setup
