Skip to content
Knowledge ERP Docs
API Reference ↗
Getting Started

What's New

A running list of notable changes and new features in Knowledge ERP.

This page tracks notable, user-facing changes to Knowledge ERP.

We're pre-1.0, so this is a running highlights list for the current (0.x) line — entries are added as features ship. Once we cut official releases, this page becomes versioned release notes tied to each release.

Recent highlights #

Global search now covers the records you transact on #

The search box at the top of every page used to reach only Products and Units, so looking up a customer by name came back empty. It now searches customers, vendors, sales orders, quotes, customer invoices, customer returns, purchase orders, vendor invoices, vendor returns, rental agreements, loan agreements and work orders — and documents match on the counterparty's name as well as their own number, so typing a customer's name brings back their orders, invoices and agreements next to the customer record. Each result carries a line of detail (who it's for, its status, the amount or date) so you can pick the right one without opening it. See Finding Records.

SKUs are now Products, and Items are now Units #

Usability testing kept catching people out on the old naming, so the catalogue record is now called a Product and the tracked physical record is a Unit: a Product is the catalogue entry; a Unit is one tracked item of it. A Product's unit-of-measure field is now labelled Unit of Measure.

Nothing moved — but the REST API was renamed to match, so there is no UI-vs-API mismatch. Products are served from /api/v1/inventory/products and referenced as product_id; Units from /api/v1/inventory/units and referenced as unit_id; and the measurement catalogue moved from /api/v1/inventory/units to /api/v1/inventory/units-of-measure to free that path up. SKU now means what it means everywhere else — the identifier code on a Product, including the supplier's own number on a Vendor SKU link.

Upgrading a script? Rename the paths above, and swap the payload fields sku_idproduct_id and item_idunit_id. Database columns and table names are unchanged.

A full self-service customer portal #

The customer portal grew from a read-only window into a real self-service area. Customers sign in passwordlessly and can now accept or decline quotes, pay invoices, request returns on shipped orders, reschedule, cancel, and edit appointments (including the requested equipment), and request due-date extensions on rentals and loans — all from clickable detail pages, with PDFs viewable in the browser. Tabs appear based on the account's modules or the customer's records, so prior history stays visible even if a module is later dropped. Every portal change is recorded in the change history as the customer.

Account branding on the portal, emails, and PDFs #

Upload an account logo under Account Settings → Branding. It now appears on the portal, in the emails the portal sends, and as a letterhead on every document PDF (quotes, invoices, sales orders, rental/loan agreements, returns, purchase orders) — alongside the issuing location's address, phone, and email.

Appointment rescheduling & approvals #

Customers can reschedule a pending appointment to any open slot themselves; a confirmed appointment becomes a reschedule request for staff to approve in a Filament queue — or applies immediately when the location turns on auto-approval. See Appointments.

Due-date reminders & extensions for rentals and loans #

Rentals and loans now email borrowers a due-date reminder before they're due (per a per-location lead time) and let customers request an extension from the portal — auto-applied or staff-approved per location. Rental extensions show an estimated added cost and bill through the normal rental cycle, so no separate invoice is created.

Configurable quote validity #

A new quote's "Valid Until" date now pre-fills from a per-location default (Location → Sales). Leave the location setting blank for quotes that never expire. See Quotes.

Sales orders: separate delivery status #

A sales order's status is now split into a clean lifecycle (Draft → Confirmed → Processing → Closed, or Cancelled) and an independent delivery status (New → Picking → Packed → Shipped → Delivered) you can filter on separately. Billing is derived from the order's invoices, and an order closes automatically once they're paid in full. See Sales Orders.

Equipment Loans #

Loan equipment to a customer at no charge — reserve it, check it out, and get it back — with the same availability and due-date tracking as rentals, minus the billing. Lives in the Inventory module (no Rentals subscription required). See Equipment Loans.

Shared customer directory #

Customer and contact records are now reachable from any customer-facing module (Inventory, Appointments, Rentals, Sales) — so you no longer need the Sales module just to keep customers. Sales transactions and the CRM pipeline stay under Sales. See Customers.

Smarter reorder suggestions #

Reorder suggestions now offer a second, trend-aware demand forecast method alongside the usage-and-lead-time baseline, shown side by side so you can compare — all computed on-server, no external service. See Smart Reorder Suggestions.

Sales orders: equipment vs. consumable #

Reusable equipment no longer goes out through sales orders — it's loaned or rented instead — and the Product usage type was renamed to the clearer Consumable / Returnable. Existing data is unaffected. See Sales Orders & Invoicing.

Documentation site #

This documentation site launched — public and searchable, organized by module, versioned, with links into the API reference. Start at the Quick Start.

Looking for the full history? #

Day-to-day changes are tracked in the project's version control. This page focuses on the changes that affect how you use the product.