Where settings live
Two surfaces:
- App Settings tab. The easiest path. Open fiveanddime, tap Settings at the bottom, expand the relevant section (Business identity, Tax, Booth economics, Payments, Custom orders, Operations, etc.), edit, tap Save. The change writes through to your Settings sheet and updates this device immediately.
- Settings sheet in your spreadsheet. The same values, editable directly. Useful if you prefer the spreadsheet, or if you want to add a Key that doesn't have an in-app editor yet (e.g.
API_SECRET). After editing the sheet, tap Pull from Backend Now on each device so it picks up the change.
The reference below names the canonical Key for each setting so you know exactly what's being written, whichever surface you use.
To edit a setting in the app
- Open fiveanddime, tap Settings.
- Expand the topical section (e.g. Tax, Payments).
- Edit the field, tap Save. The status line confirms.
- Other devices pick up the change on their next backend pull (auto every ~30s, or tap Pull from Backend Now).
To edit a setting in the sheet (fallback)
- Open your spreadsheet, click the
Settingstab at the bottom. - Find the row whose Key matches the setting you want to change (use Ctrl+F if there are many), OR scroll to the bottom and add a new row.
- Type the value in the Value column (column B). Help text in column C is optional, for your own future reference.
- In any device's app, go to Settings and tap Pull from Backend Now so the device picks up the change. Repeat on every device.
Shared settings (Settings sheet keys)
Identity
BizName(orVENDOR_NAMEas a synonym). Your business name as it should appear on customer-facing surfaces (receipts, the email "from" name, default email signatures). Example:Wooden Doodle. If both keys are set,BizNamewins.
Tax
TAX_MODE. Eitherincluded(default) oradded. In included mode, the prices inProducts_Masterare what the customer pays all-in; tax is back-computed from those prices. In added mode, the price is pre-tax and tax is added on top at checkout. Most craft vendors use included (sticker price = what you collect). Switch to added only if your state requires tax shown separately on every receipt.HOME_STATE. Two-letter state code (UT, CA, NY). Used as the default state for Events that don't have a State column value set, and as the default pre-fill on per-state Sales report filters. Single-state vendors set this once.
Booth economics
MILEAGE_RATE. Default IRS mileage rate in dollars per mile (e.g.,0.70for $0.70/mile). Applied to events that don't override with their own MileageRate column value. Check the IRS website for the current standard rate; it changes year to year.
Payments
PAYMENT_METHODS. Comma-separated list of payment methods to show as buttons in the cart. Default:Cash,Card,Venmo. Add or remove based on what you actually accept; common variations include adding Zelle, PayPal, or ACH, or removing Venmo if you don't take it. Order matters; first item shows first.PAYMENT_FEE_RATES. Per-method processing-fee rates used by the live per-event P&L. Format:Method:percent:flatentries comma-separated, for exampleCard:2.6:0.10,Venmo:1.9:0.10. Easier to edit in Settings → Payments (the in-app editor handles the string formatting for you). Methods with blank rates pay no fee (Cash, Venmo personal). Numbers from your processor's current published rate. See the Tracking processing fees tutorial for the dual-path approach (live estimate vs tax-accurate statement records).VENMO_USERNAME. Your Venmo handle (with or without the leading@). When set, the cart's Venmo button auto-opens the Venmo app pre-filled with the amount, saving the customer the typing step.
Visual
IMAGES_FOLDER_URL. Drive folder URL containing your SKU-named product photos. Set it in-app at Settings → Product photos (not the spreadsheet); it gets written here automatically. See the Product photos tutorial for the full setup.
Customer engagement (QR-to-form)
PRODUCT_REQUEST_FORM_URL. URL of your Google Form for customer product requests, "I'd love it if you made X." Renders as a fullscreen QR in Settings → Product requests QR for booth display. See the Product requests & mailing list forms tutorial. (Auto-set by the fiveanddime menu → Product requests… → Create/Update Form.)MAILING_LIST_FORM_URL. Same shape, for general newsletter signups. Renders in Settings → Mailing list QR. (Auto-set by the fiveanddime menu → Mailing list… → Create/Update Form.)
Custom orders
DEFAULT_DEPOSIT_PCT. Percentage of total used to pre-fill the deposit field when taking a custom order at the booth. Default50(= 50%). Set to whatever your standard deposit policy is. Override per-order in the form if needed.NOTIFY_EMAIL_ON_READY. Set toTRUEto auto-email the customer when you mark their custom order Ready. Leave blank orFALSEto keep notifications manual.NOTIFY_EMAIL_SUBJECT_READY. Custom subject template for the auto-email. Placeholders:{{customerName}},{{description}},{{vendorName}}. Leave blank to use the default ("Your custom order is ready for pickup").NOTIFY_EMAIL_BODY_READY. Custom body template for the auto-email. Same placeholders. Leave blank for the default body. Supports multi-line text (use Alt+Enter inside the cell to add line breaks).
Full setup for the auto-email is in the Custom orders & deposits tutorial.
Operations
BACKUP_RETENTION_DAYS. Number of days the daily auto-backup keeps backups before pruning. Default90. Set to0to keep all backups forever (no pruning). Pruning only touches files matching the backup filename pattern. See Backups & recovery.
Security (optional, most vendors skip)
API_SECRET. A shared password between your devices and your backend. When set, every request to the backend must include it; requests that don't match are rejected. Most vendors leave this blank.
What it protects against without it. Your Web App URL is already 80+ random characters and effectively unguessable. For most vendors, the URL alone is sufficient protection; nobody's guessing their way in.
When you might want to set one.
- You suspect your Web App URL has leaked (posted publicly somewhere by accident, shared too broadly, sitting in an old email thread).
- You're working with sensitive customer data (lots of custom-order personal info, big mailing lists) and want belt-and-suspenders security.
- You want a quick way to "rotate keys": if you ever suspect compromise, change the secret and every old reference becomes useless without redeploying the entire backend.
What a typical secret looks like. A random string of 16+ characters. Use a password manager to generate one (1Password, Bitwarden, Apple Keychain, etc.) or pick a long phrase you'll remember. Examples:
x7k9-mPq3-vR2t-nLwY-fH8s-cD4w(password-manager output: random, high entropy, hard to guess)wooden-doodle-backup-2026-spring(memorable phrase: lower entropy, easier to type if you ever have to enter it on a new device)
Length matters more than complexity. Aim for 16 characters minimum; longer is better.
The catch. If you set API_SECRET in your Settings sheet, you must also set the matching value as a per-device app setting in every device's app (Settings → Settings → API secret). Devices that don't have it (or have the wrong value) silently fail to sync. If you forget to update one after rotating the secret, that device stops working until you fix it.
To turn it on later. Pick a secret. Add the row to your Settings sheet (Key=API_SECRET, Value=your secret). Open each device's app → Settings → Settings → paste the same secret into the API secret field → save. Test a sale to confirm sync still works. Done.
To turn it off. Delete the value from the Settings sheet row (or delete the row entirely). Clear the API secret field on each device. Pull from Backend Now on each device.
Per-device settings (in the app)
These live on each device individually, set in the app's Settings tab. They don't sync between devices; each device has its own copy.
Connection (in Settings → Settings section)
- Backend URL. The Apps Script Web App URL from your initial deployment. Required for any sync to work.
- API secret. The matching value to your sheet's
API_SECRETsetting, if you've enabled the secret. Leave blank if you haven't. - Device Name. A unique label for this device. Sales rung on this device get tagged with this name. See the Working with two devices tutorial.
License (in Settings → License section)
- License key. Your fiveanddime license key from the welcome email. Validated against the licensing service; cached locally for offline operation.
Operational (set automatically, occasionally vendor-tweaked)
- Current event. Whichever event is currently active for this device (set via the event chip at the top of the Sale view).
- Scan mode. Live or Tap to scan; remembered per device. Set via the scanner overlay; covered in Barcodes & labels.
After changing a setting
If you changed a row in the Settings sheet, every device that uses that setting needs to pull the new value before the change takes effect. Open Settings on each device and tap Pull from Backend Now. The pull takes 10-20 seconds.
If you changed a per-device setting in the app, no pull is needed; it took effect immediately on this device. The other devices keep their own settings.
In your Settings sheet (and every other system sheet), columns the app reads have a pale cream tint on the header row and a hover note ("SYSTEM COLUMN..."). Anything else in the sheet is yours to use; vendors can add Notes columns, custom formulas, comment columns, whatever, and the app won't touch them.
Settings that are NOT in this list
You'll see other rows in the Settings sheet (typically vendor-added columns or system-internal values). Common examples that may be there but you generally don't touch:
LastLabelExportFolderId,LastLabelExportWhen: bookkeeping for the "Open last labels folder" menu item.- Various internal flags written by migrations.
If a key isn't documented here, it's probably set by the app rather than the vendor. Leave it alone unless you have a reason to change it.