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
| Type | Description |
|---|---|
| Device | Laptops, monitors, phones, peripherals, and any other physical hardware. |
| SaaS app | A SaaS subscription or web application. |
| License | A software license tied to a specific vendor and seat count. |
| Cloud resource | A specific resource in AWS, Azure, GCP, or another cloud provider. |
| Vendor | A vendor or supplier relationship. |
Each asset has a status — active, 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
| Column | Required | Notes |
|---|---|---|
name | Yes | The asset name. |
asset_type | No | Defaults to device. Must be one of device, saas_app, license, cloud_resource, or vendor. |
status | No | Defaults to active. Must be one of active, inactive, managed, or under_review. |
canonical_id | No | A stable ID for upserts. Auto-generated if omitted. |
| any other column | No | Any 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,,,,60Quoted 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_source — manual 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.
Access reviews
Run periodic access reviews and enforce multi-stage approval workflows for new access requests across every connected SaaS, identity, and cloud system in Layer.
Asset bundles
Build reusable hardware kits from existing Layer inventory, preview availability and shortages, and assign serialized devices to a person in one operation.