Inventory
A product catalog with automatic stock management. Stock is held when proposals are sent, decremented when invoices are created, and restored when documents are deleted.
Products
Create and manage your product catalog:
| Name | Product display name |
| Product type | Physical, digital, or service |
| Unit cost | Cost per unit |
| Unit price | Selling price per unit |
| Currency | Currency for pricing |
| Description (optional) | Detailed product description |
| SKU (optional) | Stock keeping unit identifier |
| Taxes (optional) | One or more named taxes applied by default when this product is used on a proposal or invoice. Each entry has a name and a percent, so split taxes can be listed as separate lines (for example "Tax 1 4%" and "Tax 2 4%") rather than as a single combined rate |
| Track inventory | Enable to track stock levels |
| Stock quantity (optional) | Total stock on hand |
| Low stock threshold (optional) | Triggers a notification to admins when stock falls below this level |
| Allow oversell | When enabled, proposals and invoices can be created even if stock is insufficient |
Go to Settings → Inventory to manage products.
Stock levels
Products with inventory tracking show three stock values:
| Stock | Total units on hand |
| On Hold | Units reserved by sent proposals (highlighted in amber when above zero) |
| Available | Stock minus held. This is what can be committed to new orders |
Automatic stock management
Stock adjusts automatically throughout the proposal and invoice lifecycle:
| Proposal sent | Stock is placed on hold for each product in the line items |
| Proposal rejected or expired | Held stock is released back to available |
| Proposal deleted | Held stock is released |
| Invoice created | Stock is decremented. If the invoice was created from a proposal, the hold is also released |
| Invoice updated | Old line item stock is restored, new line item stock is applied |
| Invoice deleted | Stock is restored to previous levels |
If a product has Allow oversell disabled and available stock is insufficient when sending a proposal, a warning is shown but the proposal can still be sent.
Low stock notifications
When an invoice sale brings a product below its low stock threshold, all company admins receive an in-app notification with the product name and current stock level.
Stock adjustments
Record manual stock changes with a reason:
| Restock | Received new inventory |
| Sale | Manual sale outside of invoices |
| Return | Customer returned items |
| Correction | Inventory count adjustment |
View the full adjustment history per product in the stock management view. Each entry shows the adjustment type, quantity change, before/after levels, and source. Entries created by proposals or invoices link back to the originating document.
Serial numbers
For products where individual units need to be identified later, such as equipment with a unit-specific warranty, enable serial number tracking:
| Track serial numbers | Enables per-unit serial tracking for this product |
| Serial capture | Track from stock-in and sale, or track at sale only |
| Default warranty (optional) | Warranty period in months, applied when a serial number is sold. Can be overridden on individual units |
The Serial capture setting determines when serial numbers get entered:
| Track from stock-in and sale | Serial numbers are entered when stock arrives, then matched against that record when the unit is sold. Selling a serial number that was never received is rejected |
| Track at sale only | No serial entry when stock arrives. Serial numbers are entered only when an invoice is created, reducing admin work for companies that don't need warehouse-level tracking |
A serial number must be unique per product, though the same serial number can appear on different products.
When restocking a product tracked from stock-in, enter one serial number per unit added. Serial numbers can be listed one per line, or as a range, for example PANEL-001..PANEL-010, which expands automatically to the individual units.
When a line item for a serial-tracked product is added to an invoice, enter the serial numbers being sold on that line. The count must match the line item quantity. Warranty coverage starts from the sale date, not the date stock arrived.
An invoice can be created without serial numbers for a product that tracks them, for example one generated automatically by an automation. In that case, the invoice detail view shows how many units on the line are missing serial numbers, with an option to fill them in afterward. This has no effect on sending or paying the invoice. It exists only to keep the serial number record complete for later lookup.
Search a serial number in the command palette (Cmd+P / Ctrl+P) to find the item it was sold against.
From Settings → Inventory, use the serial numbers action on a tracked product to search its serial numbers and filter by status. A sold unit can be marked under warranty claim, or marked returned. Marking a unit returned restocks it: stock quantity increases by one, and the unit becomes available to sell again.
Bulk updates
Update stock levels for multiple products at once using the bulk update dialog. Products tracked from stock-in aren't available here, since bulk updates don't collect serial numbers. Use a single stock adjustment for those instead.
Using products in documents
Products serve as the line item catalog for proposals and invoices. When adding a line item:
- Select a product from the catalog
- Name, description, SKU, price, and any configured taxes fill automatically
- Adjust quantity, price, discount, or taxes on the line if needed
- Stock is managed automatically when the document is sent or created