Assets
Assets are the core records in InvyMate: laptops, monitors, phones, tools, and any equipment you want to track.
What an asset contains (current data model)
- Identity:
name,uniqueTag - Classification:
category,location - Lifecycle:
status:draft,in_stock,active,reserved,maintenance,lost,retiredcondition:new,as_new,used,damaged,needs_repair
- Assignment: optional person assignee
- Details: description, images
- Purchase metadata: purchase date, warranty end date, purchase price + currency
- Optional depreciation inputs: useful life (months), salvage value
- Custom fields (key/value) — see Custom Fields
Core workflows
Create or edit an asset
Create from the Assets list (Add New Item) or edit from an asset’s detail page.
Quick Add (default create mode)
The create form opens in Quick Add mode by default, focused on fast entry for the first assets:
- required: asset name, category, location
- optional: assignee, notes
- action: Save + add next keeps you in flow for rapid entry
When you use Save + add next, InvyMate keeps the current category/location context for faster repeat entry, but clears transient values such as name, assignee, notes, financial inputs, and custom field values.
Use Show advanced when you need lifecycle or financial fields (condition, warranty, purchase metadata, depreciation inputs, custom fields).
Advanced financial fields include inline hints for:
- useful life
- salvage value
- warranty end
- purchase price
- purchase currency
- purchase date
Change status
Assets support explicit status transitions (e.g., In Stock → Active → Maintenance). In the UI, changing status allows adding an optional comment.
When moving to maintenance, record completion via a maintenance log before returning to active.
For reserved, capture reservation context (reservedUntil, reason) so operators understand why the asset is blocked.
Financial estimates (depreciation)
Think of this as: “How much value is left in this asset over time?”
If you fill in these fields, InvyMate can estimate that for you:
- purchase price (how much it cost)
- purchase date (when you bought it)
- useful life in months (how long it should last, e.g. 36)
- salvage value (what it may still be worth at the end; optional, default is 0)
InvyMate uses a simple “same amount each month” method. This gives you:
- estimated value left today (book value)
- estimated value used up (amount + %)
- months used and months left
- estimated end-of-life date
- replacement badge:
- 🟢 Normal
- 🟠 Near replacement
- 🔴 End-of-life
UI note:
- “These numbers help with planning. They are not official accounting statements.”
Assign to a person
Assignments answer: “Who has what?”
- Assign during import (by assignee email)
- Check out from asset detail (optional due date)
- Check in from asset detail or person offboarding
- Review history in the asset timeline and person profile (see Assignments & History)
Guardrail:
- You cannot assign assets while status is
draft,lost, orretired. - Assigning a person auto-switches status to
active.
Check-out / Check-in and due date
When an asset is assigned, it is treated as checked out to the current custodian.
Check out: set assignee and optional due-back dateCheck in: clear assignee (returned to IT / unassigned)- location remains unchanged during check-in/out
UI indicators:
- asset detail shows due-back state (due soon / overdue)
- person view lists currently checked-out assets with due state
Asset timeline
The asset detail page uses a two-column layout: the header duplicates key identity fields for quick scanning, contextual asset details, timeline, images, and maintenance history sit in the main column, while health, QR label template preview/download, and financial estimates stay in a right-side context column. Very long asset names are constrained in the header so they do not overtake the rest of the page layout; the full name remains available on hover.
The unified timeline stream helps operators quickly answer:
- what changed
- when it changed
- who changed it
The timeline is grouped by day and uses compact typed markers for assignments, status changes, scans, and maintenance. Operators can filter the stream by event type; the app loads the filtered stream and renders the first 7 events with local "Load more" batches for longer histories.
Current timeline event coverage:
- asset created
- assignment / unassignment
- location moved (from audit)
- maintenance completed
- verified in inventory check
- status changed (including retired)
Maintenance operations on asset details are grouped in tabs:
- Maintenance Schedules
- Maintenance History
Asset health score (detail view)
Each asset detail page now shows a simple health score:
- 🟢 Healthy
- 🟠 Attention
- 🔴 At risk
The score is based on operational signals (not hardware telemetry). Workspace settings let owners tune how conservative or strict the score should be. The asset detail health card shows each signal directly:
- current risky status (e.g.
lost,maintenance) - maintenance overdue / due soon
- verification recency
- lifecycle age (when useful life is provided)
- warranty coverage when purchase or warranty dates are available
Active signals include reasons and quick links to the related workflow when available.
Health cache writes occur only when the cached score/badge changes or is missing, and they do not change the asset's main updatedAt timestamp.
Asset health on list view
The Assets list now supports health visibility and control:
- per-row health badge (
Healthy,Attention,At risk) - filter by a specific health badge in Advanced Filters
- filter by one or more lifecycle statuses in Advanced Filters with the Status multi-select
- filter assigned assets with the Advanced Filters
Assigned onlycheckbox, which matchesassigned=true - sort by health priority directly from the Health column header
- health values are computed in backend and returned on the list response
- health filtering/sorting runs on backend (
healthBadge,healthSort) so pagination stays consistent - optional layout columns, including custom fields, appear only when they are enabled in the active layout
The dashboard's Active Assets KPI deep-links to the combined operational set (in_stock and active), while the Assigned Assets KPI still uses assigned=true. The Inventory Status Overview rows still open a single exact status.
Print / download QR labels
Each asset has a QR label preview on the asset detail page, with template selection and direct label download.
QR labels are configurable in Configuration → QR Labels.
The QR code payload uses a short /t/:uniqueTag link that first honors app auth and then resolves to the canonical asset detail page.
The app header also includes a scan icon button next to global search for opening the built-in modal scanner when you want to scan or paste a code from inside the web app.
See QR Labels.
Import assets via CSV
See CSV Import (Assets) for a full guide.
Export assets via CSV
Export is available on Team/Pro (see Export (CSV)).
Inventory sessions
Inventory sessions (audits) use your assets to generate an expected list and capture verification events. Inside a running session, you can now search session items by asset name or tag to find items faster. See Inventory Sessions (Audits).