User guide
Asset Management
Looking for what it does rather than how to use it? Read the Asset Management overview .
What it is
Asset Management is the record of every piece of technology an organization owns: hardware, the software licensed to run on it, where it physically sits, and the IP addressing it uses. It covers the whole life of an asset — from a carton arriving at a loading dock to a certificate of destruction.
It spans four connected areas that share one database: Assets (hardware), Software (products, licenses, installations, compliance), Locations (sites down to individual rack units), and Network (VLANs, subnets, IP addresses, DNS, DHCP). Receiving and Inventory feed hardware into the first.
Concepts
| Concept | What it is |
|---|---|
| Asset | One tracked device. Has a type, a status, an owning organization, and optionally a location and parent. |
| Asset hierarchy | An asset can have a parent (parentAssetId) — a blade in a chassis, a VM on a host. |
| Management scope | Whether the MSP manages the asset fully, partially, or not at all (AssetManagementScope). |
| Location | A place, nested arbitrarily deep. A RACK location additionally has numbered rack units. |
| Software product | A catalogue entry (Microsoft 365 E3). Shared library entries or private to your account. |
| Software license | A purchased entitlement to a product: seat count, cost, dates, compliance status. |
| License assignment | One seat of a license consumed by a person or an asset. |
| Installation | An observed copy of a product on an asset. Compared against licenses to compute compliance. |
| Receiving session | A goods-in event at a location. Holds line items, and converts them into assets or stock. |
| Inventory item | Consumable or spare stock at a location, with on-hand / reserved / available quantities. |
| Subnet / VLAN / zone | The IPAM records. Subnets hold IP addresses and DHCP scopes; zones hold DNS records. |
Asset types
SERVER, WORKSTATION, LAPTOP, MOBILE, NETWORK_DEVICE, PRINTER, STORAGE, VIRTUAL_MACHINE, CLOUD_RESOURCE, SOFTWARE, LICENSE, OTHER.
Asset statuses
ACTIVE, INACTIVE, MAINTENANCE, DECOMMISSIONED, DISPOSED, LOST.
There is no
RETIREDstatus. Retiring an asset sets it toDECOMMISSIONED. SendingRETIREDto the API is rejected.
Location types
WAREHOUSE, STOREROOM, CUSTOMER_SITE, VEHICLE, ZONE, RACK, SHELF, BIN, DATA_CENTER, BUILDING, FLOOR, WING, ROOM, CLOSET, CAGE, ROW, CUSTOM.
Roles and permissions
The service enforces one line consistently: every mutation requires organization administrator or above. Reads are limited by tenant scope only.
| Action | CUSTOMER | power user | organization administrator | MSP technician | MSP administrator | platform administrator |
|---|---|---|---|---|---|---|
| View assets in your own organization | ● | ● | ● | ● | ● | ● |
| Create / edit / delete assets | — | — | ● | ● | ● | ● |
| Retire, dispose, transfer, file warranty claim | — | — | ● | ● | ● | ● |
| Bulk status change, bulk transfer, CSV import | — | — | ● | ● | ● | ● |
| Manage locations, racks, floor plans, power, patching | — | — | ● | ● | ● | ● |
| Manage VLANs, subnets, IPs, DNS, DHCP | — | — | ● | ● | ● | ● |
| Receiving sessions and inventory operations | — | — | ● | ● | ● | ● |
| Create software products, licenses, vendors | — | — | ● | ● | ● | ● |
| Assign / revoke license seats | — | — | ● | ● | ● | ● |
| Approve or reject a product into the shared library | — | — | — | — | — | ● |
| Verify a software vendor | — | — | — | — | — | ● |
Tenant scoping is separate from role. A platform admin is unscoped; a customer sees only their own organization; MSP staff see their whole account. A request with no tenant context matches no rows — it fails closed.
A managed client is a separate account, so an MSP cannot transfer an asset from its own organization into a client’s this way.
Walkthroughs
Receive hardware and turn it into assets
- Go to Purchasing → Receiving and choose Start Session.
- Pick the destination Location and, in the MSP portal, the Client Organization that will own what arrives. Optionally link a purchase order.
- Open the new session and choose + Add Item for each line. Description, expected quantity, received quantity and unit cost are required; serial numbers and MAC addresses accept comma-separated lists.
- For any line that should become a tracked device, choose Create Asset on that row. The asset inherits the line’s serial and MAC unless you override them, and is owned by the session’s organization.
- Choose Complete to close the session, or Cancel to abandon it. Completing is what moves remaining quantities into inventory.
Retire and dispose of an asset
- Open the asset from Assets and find Quick Actions in the sidebar (MSP portal) or the header buttons (organization portal).
- Choose Mark as Retired. Give a reason — it is required, up to 500 characters — and an intended disposal route (
RETAIN,DONATE,RECYCLE,SELL,DISPOSE). The asset moves toDECOMMISSIONED. - When the hardware physically leaves, choose Record Disposal. Pick the method, and record the recipient and a certificate number if you have one. The asset moves to
DISPOSED. - Retiring an already-retired or disposed asset is refused with “Asset is already retired or disposed”.
Track software compliance
- Go to Software → Products and add the products you license, or pick them from the shared library.
- Go to Software → Licenses → New and record the entitlement: product, seat count, cost, term dates.
- Open a license and choose Manage Seats to assign it to people or assets, and to revoke seats that are no longer needed.
- Go to Software → Compliance for the position across all products: compliance score, over-licensed products (money being wasted), under-licensed products (exposure), licenses expiring within 90 days, and installations with no license behind them.
- From the under-licensed and unlicensed views you can jump straight to creating the license that closes the gap.
Plan a rack
- Go to Locations, create a location of type
RACK, and open it. - Use the Rack View tab to assign assets to numbered units, singly or in bulk.
- Power & Environment records PDUs and sensors and computes a power budget.
- Network records patch panels, ports and cable runs, and draws a patching schematic.
- Floor Plan accepts an uploaded plan and lets you place annotations that link to locations or assets.
Address a new subnet
- Go to Network → Subnets → New and enter the CIDR.
- Open the subnet. Assign next available finds the first free address and opens the assignment drawer with it pre-filled.
- Choose Add addresses to materialize a block in one go — either the next N free addresses or a specific range, up to 1,024 per run.
- Add a DHCP scope for the dynamic range, then choose Manage on that scope to add static Reservations (MAC → IP) and excluded Ranges. Both are validated against the subnet.
- Before handing an address out, use Network → Tools → Conflict check to confirm nothing already holds that IP or MAC.
- Switch the subnets list to Tree to see the containment hierarchy with per-subnet utilization.
- Record forward and reverse zones under Network → DNS, and their records inside each zone.
Configuration
| Setting | What it does | If unset |
|---|---|---|
Asset purchaseCost | Drives depreciation and total cost of ownership. | Both report “purchase date and cost required”. |
Asset purchaseDate | Start of the depreciation schedule and ownership duration. | As above. |
Asset warrantyExpiry | Drives the warranty dashboards and the claim’s validity stamp. | Asset shows “No warranty information”. |
Asset eolDate | End-of-life date shown on the lifecycle timeline. | Omitted from the timeline. |
Asset managementScope | FULL / partial / none — what the MSP is responsible for. | Defaults to FULL. |
Asset parentAssetId | Nests the asset under another. Blocks deletion of the parent. | Asset is top-level. |
Location type | RACK unlocks rack units and the rack summary. | Non-rack locations hide the Rack View tab. |
Subnet gateway, dnsServers | Populated into DHCP scope defaults. | Scope must supply its own. |
VLAN group minVid / maxVid | Bounds the VID range a group covers (1–4094). | Group is unbounded. |
Tier limits.maxAssets | Caps how many assets an account may own. -1 means unlimited. | Treated as unlimited. |
Plan tiers
Asset Management is included in every tier. The only plan gate in the service is a cap on how many assets an account may own, read from the account’s service tier as limits.maxAssets.
| Tier (MSP / IT partner) | Max assets | Tier (end customer) | Max assets |
|---|---|---|---|
| Free | 50 | Free | 25 |
| Starter | 1,000 | Essentials | 500 |
| Growth | 5,000 | Professional | 2,500 |
| Scale | 25,000 | Business | 10,000 |
| Enterprise | Unlimited | Enterprise | Unlimited |
The cap is block-new-only: existing assets are never touched or hidden when a plan changes, only creation above the cap is refused. It applies to all three ways an asset can be created — the create form, CSV import, and converting a received line item. A bulk import is checked against the whole batch, so an import that would cross the cap is refused in full rather than partially applied. Platform admins and accounts with no resolvable tier are never blocked.
Refusals return HTTP 403 with code PLAN_LIMIT and an upgrade envelope.
Troubleshooting
These are the actual messages the service returns.
| Message | Cause |
|---|---|
| Your plan allows a maximum of N asset(s) | The account is at its maxAssets cap. Upgrade or remove assets. |
| …this request would add N | A bulk import that would cross the cap. Split it or upgrade. |
| Cannot delete asset with child assets | Re-parent or delete the children first. |
| Asset is already retired or disposed | Retire was called on a DECOMMISSIONED or DISPOSED asset. |
| Asset already belongs to target organization | Transfer destination equals the current owner. |
| Target organization (404) | The destination is outside your account. Cross-account transfer is refused. |
| Purchase date and cost are required for depreciation calculation | Set purchaseCost and purchaseDate on the asset. |
| Cannot delete license with active assignments | Revoke the seats first. |
| Cannot delete product with associated licenses | Delete or re-point the licenses first. |
| Cannot delete vendor with associated products | Same, one level up. |
| No available seats for this license | The license is fully assigned. Add seats or revoke one. |
| This license does not support concurrent checkouts | Pool checkout used on a license that is not concurrent-use. |
| This license is already assigned to this person/asset | Duplicate seat assignment. |
| Receiving session is not in progress | The session is completed or cancelled; line items are frozen. |
| Item is not reserved | Release was called on stock that is not RESERVED. |
| Item is already deployed | Deploy was called on a row already DEPLOYED. |
| Insufficient quantity on hand | Deploy quantity exceeds stock. |
| Cannot transfer deployed item | Deployed stock cannot be moved between locations. |
| Cannot delete VLAN with associated subnets | Delete or re-point the subnets first. |
| Cannot delete VLAN group with associated VLANs | Same, one level up. |
| Cannot delete subnet with child subnets | Delete the children first. |
| Exclusion range must be within the subnet | A DHCP exclusion fell outside the scope’s subnet. |
| IP address must be within the scope subnet | A DHCP reservation IP fell outside the scope’s subnet. |
| Invalid MAC address format | The reservation MAC did not parse. |
| minVid must be less than or equal to maxVid | VLAN group range is inverted. |
| Cannot connect a port to itself | Both ends of a cable run are the same port. |
| Query parameter subnetId is required | next-available was called without a subnet. |
Limits and known behaviour
Things the product does not do, stated plainly so you do not plan around them:
- They are
0unless populated directly in the database. Total cost of ownership is therefore acquisition cost plus zero until that data has another source. - They are readable through the API but are not independently queryable or reportable.
- Audit coverage is not uniform. Asset create/edit/delete, the four lifecycle actions, and all IPAM changes write to the audit log. Receiving sessions, inventory operations, and software licence and assignment changes do not — they are recorded only as the resulting row state.
- Warranty claims have no state machine. A filed claim is always
PENDING. - Depreciation is straight-line only. No declining-balance or custom schedules.
- Retiring an asset overwrites its notes. The retirement reason replaces the
notesfield rather than appending to it. - Cross-account asset transfer is not supported (see Roles and permissions).
- Inventory items cannot be created directly. There is no `POST
- The organization portal’s asset detail is narrower than the MSP’s. It offers Overview, Tickets and Notes plus the lifecycle actions; the MSP portal additionally has Health, Monitoring, Financial, Software & Licenses, Network, Credentials, Documents, Changes and Activity tabs.
- The client normalizes both to one shape, so the view is consistent, but a deeply nested plan shows more levels in the MSP portal than in the organization portal.
- Asset export is client-side. The Export button on the MSP asset list pages the API and builds the CSV in the browser.
- License pool operations are for agents. Checkout, checkin, heartbeat and cleanup are designed to be called by software rather than from a screen, and have no UI.