Axiomancer

Asset inventory

Manage devices, SaaS apps, licenses, cloud resources, and vendors in Layer's unified asset inventory with manual entry, CSV bulk import, and status tracking.

Layer's asset inventory is a single workspace for everything you own — laptops, monitors, SaaS subscriptions, software licenses, cloud resources, and vendor relationships. Most assets are discovered automatically through your integrations, but you can also add anything Layer can't see — a personal laptop on loan, a niche tool no connector covers, or a hardware purchase that hasn't reconciled yet — by hand or by CSV upload.

Asset types

TypeDescription
DeviceLaptops, monitors, phones, peripherals, and any other physical hardware.
SaaS appA SaaS subscription or web application.
LicenseA software license tied to a specific vendor and seat count.
Cloud resourceA specific resource in AWS, Azure, GCP, or another cloud provider.
VendorA vendor or supplier relationship.

Each asset has a statusactive, inactive, managed, or under_review — plus a free-form metadata blob for type-specific fields like serial number, monthly cost, seat count, or renewal date.

Add an asset manually

Open the assets page

Go to Assets in your Layer dashboard and click New Asset.

Pick an asset type

The form adapts to the type you choose. For a Device you'll see fields for serial number, model, manufacturer, purchase date, and monthly cost. For a SaaS app, you'll see vendor, URL, monthly cost, and total seats. For a License, you'll see license type, seats, annual cost, and renewal date.

Fill in the details

Only Name is required. All other fields go into the asset's metadata and become available across the rest of Layer — for example, a cost_monthly field shows up in spend management, and a renewal_date feeds the renewal calendar.

Create the asset

Click Create Asset. The asset appears in the inventory immediately with discovery_source: manual.

Only Admin and Owner roles can create or modify assets.

Bulk-import from CSV

For larger imports — migrating from a spreadsheet, onboarding a new business unit, or a one-time hardware audit — upload a CSV instead of creating assets one at a time.

CSV format

ColumnRequiredNotes
nameYesThe asset name.
asset_typeNoDefaults to device. Must be one of device, saas_app, license, cloud_resource, or vendor.
statusNoDefaults to active. Must be one of active, inactive, managed, or under_review.
canonical_idNoA stable ID for upserts. Auto-generated if omitted.
any other columnNoAny other column becomes a metadata field on the asset.

Common metadata columns include serial_number, model, manufacturer, cost_monthly, vendor, seats_total, renewal_date, and purchase_date. You can include any column name you want — Layer stores extras as-is on the asset's metadata.

Example CSV

asset_type,name,status,serial_number,model,manufacturer,cost_monthly
device,MacBook Pro 16-inch,active,C02XJ0JAJGH7,MacBook Pro 16,Apple,150
device,Dell U2722D Monitor,active,,U2722D,Dell,20
saas_app,Slack,active,,,,15
license,Adobe Creative Cloud,active,,,,60

Quoted fields with embedded commas, quotes, or newlines are supported.

Import

Open the import dialog

Go to Assets and click Import CSV.

Upload the file

Drag a CSV file onto the drop zone or click to browse. Layer shows a preview of the first five rows so you can confirm the columns parsed correctly. If you don't have a starting CSV, click Download template CSV for a ready-to-edit example.

Run the import

Click Import. Layer creates assets row by row and returns a summary with how many were created and a per-row error list for any that failed validation.

CSV imports are capped at 1,000 rows per upload. Split larger files into multiple imports.

Error handling

Each row is validated independently. If row 12 has an invalid asset_type, Layer reports it but still creates the rest of the rows that pass validation. The response surfaces the original row number (counting the header as row 1) so you can fix the source spreadsheet and re-upload only what failed.

Manual versus discovered assets

Manually-created assets and integration-discovered assets live side by side in the same inventory. They're distinguished by their discovery_sourcemanual for hand-created or CSV-imported assets, and source-specific values like google_workspace, github, or aws for discovered ones.

If a manual asset later turns up through a connector with a matching canonical_id, Layer reconciles them into a single record. Set canonical_id on your manual rows when you know what the connector will use (for example, an email address for a SaaS user) so the records merge cleanly on the next sync.

Provision a bundle of assets to a user

To allocate a repeatable hardware kit — for example, a laptop and monitor for a new hire — use asset bundles. Bundles match the kit against existing serialized devices, surface required and optional shortages, and never create synthetic assets. Manage SaaS applications and licenses through their dedicated Layer workflows.

Was this page helpful?

On this page