Home Features Products & inventory
Operations

Products & inventory

Manage your product catalog with cost prices and stock movements. Get low-stock alerts; when a deal is won, stock is deducted automatically and the cost is logged as an expense.

Products & inventoryNew
Catalog
stock movements

What it offers

Product catalog with cost prices, stock movements, low-stock alerts and automatic deduction on won deals.

Catalog
stock movements
alerts

Related modules

In short

The products module is a catalog that knows what things cost, not just what they sell for. Every product carries a sale price and a cost price, can have its own custom fields, and tracks stock movements with low-stock alerts. Products are attached to deals, and when a deal is marked won the stock is deducted and the cost of goods is written to finance automatically. Catalogs import and update from CSV, including bulk price changes across a category. It is included on every plan from Starter.

Why the cost price is the point

Most CRMs have a product list. It exists so that a quote can be built from a dropdown instead of typed, and that is roughly where it stops: a name and a price.

The difference here is the second price. Each product carries the price you paid as well as the price you charge, and that single extra field changes what the rest of the system can tell you. Without it, a won deal is revenue. With it, a won deal is revenue, cost of goods and margin — and those three numbers disagree far more often than people expect. The salesperson with the highest turnover is frequently the one discounting hardest, and only the cost price makes that visible before the accountant does.

Everything else in this module — stock levels, alerts, imports, custom fields — is useful on its own, but the cost price is the reason the module is in the CRM rather than in a spreadsheet next to it.

What a product record contains

Name, code and category
Categories are created automatically on import if they do not exist yet, so a supplier spreadsheet with a "category" column becomes a structured catalog without manual setup.
Sale price and cost price
Two independent figures. The sale price feeds deal values; the cost price feeds the expense written on won deals and the margin reports.
Stock quantity and low-stock threshold
The current level and the point at which an alert fires. Quantity changes through movements, not by editing the number, so the history stays auditable.
Custom fields
Whatever your business needs on a product — colour, size, warranty period, supplier lead time, regulatory code. Five types, defined once in settings.

The product list itself is editable in place: click a cell, change the value, move on. For a catalog of a few hundred items this is faster than opening each record, and for a catalog of thousands the CSV route below is faster still.

Custom product fields

Products vary between industries more than leads do. A tyre has a size and a season; a treatment has a duration and a practitioner; a course has a start date and a capacity. Rather than a fixed schema you work around, you define the fields your products actually have.

Custom field types available on products
TypeExampleWhere it appears
TextSupplier reference, colourProduct form, list column, click-to-edit cell
NumberWeight, warranty monthsSame, plus filter and report measure
DateExpiry, next price reviewSame, plus date filters
ListSize (S/M/L), seasonSame, plus report dimension
CheckboxRequires installation, hazardousSame, plus yes/no filter

Fields can be marked required, so a product cannot be saved without the data your process depends on. Once defined, a field is a column in the product list, editable directly in the cell, and a filter — which means "all products in category X with warranty under 12 months" is a saved view rather than an export.

Importing and bulk price changes

The import is designed for the realistic case: a supplier price list that arrives every quarter and overlaps almost entirely with what you already have.

  1. Download the templateA CSV with the exact columns the importer expects, including any custom fields you have defined, so there is no guessing at headers.
  2. Fill it or map your supplier's file to itCategory names that do not exist yet are created on the way in.
  3. Upload — the importer upsertsA row with an ID that already exists updates that product; a row without one creates a new product. An empty cell means "leave this field alone", not "blank it out", so a partial file cannot wipe data you did not intend to touch.
  4. Adjust prices in bulk if you need toApply a percentage or a fixed amount up or down, or set a fixed price, across a filtered set — the usual case being a supplier increase applied to one category before tomorrow's quotes go out.
Why "empty means untouched" matters

Most importers treat an empty cell as a value, and a price list with a blank cost column silently zeroes every cost price in your catalog. The upsert rule here is the opposite: only the cells you filled are written. It is the difference between an import you can run without reading the file twice and one you cannot.

Stock movements and alerts

Stock is tracked as a ledger of movements rather than a number you overwrite. Goods in, goods out, corrections and automatic deductions each write a line with a timestamp and a reason, so the current quantity is always explainable.

Each product has a low-stock threshold. When a movement takes the quantity below it, an alert is raised — which in practice is how the sales team finds out they are about to promise something that is not on the shelf, before rather than after the promise.

What this is deliberately not is a warehouse system: there are no bin locations, no picking routes and no multi-warehouse transfers. Stock here is tracked as it relates to selling — see what this is not.

What happens when a deal is won

Attaching products to a deal does two things at once when the deal is marked won:

Automatic actions on a won deal with products attached
ActionUsesLands in
Stock is deducted by the quantities soldProduct stock levelsStock movements, with the deal as the reason
Cost of goods is written as an expenseProduct cost pricesFinance, attributed to that deal
Margin becomes calculableSale price minus cost priceDeal profitability (Business plan)

The salesperson does nothing extra. Dragging the card to "won" is the stock action and the bookkeeping action, which is exactly why the CRM's numbers and the finance numbers stop drifting apart — nobody has to remember to tell anybody.

What you can measure

Products are a dataset in the pivot report builder alongside leads, deals, calls and finance. The reports that tend to change decisions:

  • Units and revenue by product — the obvious one, and the least useful on its own.
  • Margin by product — frequently the report that changes what a company decides to push. The best-selling line is not always the most profitable one.
  • Margin by salesperson — which reorders the leaderboard when discounting is uneven.
  • Stock-outs and near-misses — how often the alert fired, and whether a deal was lost around the same time.
  • Product by custom field — sales by size, season, supplier or any list field you defined.

What this is not

It is worth being explicit, because assuming otherwise leads to a bad surprise a month in.

This is not a warehouse management system. It does not model bin locations, picking and packing, multi-warehouse transfers, serial or batch tracking, or purchase orders to suppliers. It does not replace an ERP for a manufacturer or a distributor with complex logistics.

What it is: product and stock tracking as it relates to selling. It answers "what do we have, what did it cost, what did we sell it for, and are we about to run out" — which is what a sales team needs to know, and what a warehouse system is usually too heavy to tell them quickly.

When the numbers look wrong

Common product and stock problems and their usual cause
SymptomMost likely causeFix
Margin is 100% on everythingCost prices are empty (default zero)Import a cost column, or bulk-set costs per category
Stock went negativeSales recorded before opening stock was enteredAdd an opening-balance movement; history stays intact
Import created duplicatesRows had no ID, so each became a new productExport first to get IDs, then re-import with the ID column filled
Import blanked some fieldsIt did not — empty cells are ignored; check the source file for a literal "0" or a spaceClean the cell; re-import updates in place
Alert never firesNo low-stock threshold setThreshold defaults to none; set it per product or in bulk
Old deals changed value after a price updateThey did not — deal lines are stored at the price in forceNothing to fix; historical margin stays stable

How products connect to everything else

Product → deal
Line items on a deal compute its value from sale prices, and the cost prices travel with them so margin is known at the same moment.
Deal won → stock and finance
Deduction and cost-of-goods expense happen automatically, with the deal recorded as the reason on the movement.
Product → reports
Units, revenue, margin and any custom list field are dimensions and measures in the pivot builder.
Product → inbox
Photos and price lists are sent from the shared WhatsApp inbox, which for retail, automotive and real estate is where most of the selling happens.
Alert → task or notification
From the Growth plan a low-stock alert can trigger an automation — a reorder task for purchasing, a message to a manager.

Which plan includes what

Product and inventory features by plan
PlanCatalog, cost prices, stock & alertsAuto deduction + cost on wonPivot reportsDeal profitability
StarterIncludedIncluded——
GrowthIncludedIncludedIncluded—
BusinessIncludedIncludedIncludedIncluded
EnterpriseIncludedIncludedIncludedIncluded

The catalog, cost prices, custom product fields, CSV import, stock movements, alerts and automatic deduction on won deals are all on Starter. See the pricing page for the full comparison and finance and commissions for how cost of goods flows into margin.

Frequently asked questions

Does every product need a cost price?
No, but the module is far more useful with one. Without cost prices, won deals record revenue only; with them, the cost of goods is written to finance automatically and margin becomes visible per product, per salesperson and per deal. Cost prices can be imported in a CSV column or set in bulk per category.
What happens to stock when a deal is won?
The quantities on the deal's product lines are deducted from stock automatically, and a movement is written with the deal as the reason. At the same time the cost of those goods is recorded as an expense in finance. The salesperson does nothing beyond moving the deal to won.
Can I import my product list from a spreadsheet?
Yes. Download the template, fill it or map your supplier's file to it, and upload. Rows with an existing ID update that product; rows without one create new products; categories that do not exist are created automatically. An empty cell leaves the field untouched, so a partial file cannot blank data you did not mean to change.
How do I raise prices across a whole category?
Filter the product list to the category and apply a bulk price change: a percentage up or down, a fixed amount up or down, or a fixed price. It applies to the filtered set in one operation, which is the usual way a supplier increase is pushed through before the next quotes go out.
Can I add my own fields to products?
Yes — text, number, date, list and checkbox fields, defined once in settings and optionally required. They appear on the product form, as columns in the product list where cells are editable by clicking, and as filters and report dimensions.
Will I be warned before something runs out?
Yes, if you set a low-stock threshold on the product. When a movement takes the quantity below it, an alert fires. From the Growth plan the alert can also trigger an automation, such as a reorder task for purchasing.
Is this a warehouse management system?
No. There are no bin locations, picking routes, multi-warehouse transfers, serial or batch tracking, or supplier purchase orders. It tracks products and stock as they relate to selling — what you have, what it cost, what you sold it for and whether you are about to run out.
If I change a price, do old deals change?
No. Product lines on a deal are stored at the price in force when they were added, so changing the catalog price affects future deals only. Historical revenue and margin reports stay stable after a price update.
Is the products module extra?
No. The catalog, cost prices, custom fields, CSV import, stock movements, alerts and automatic deduction on won deals are all included from the Starter plan. The pivot report builder starts at Growth and deal profitability at Business.

Ready to grow your business?

Set up your workspace in under a minute — free for 14 days.

Create your workspace