Skip to content
Knowledge ERP Docs

API Reference ↗
Administration

Custom Fields

Add your own fields to records — ten field types — with a category → Product → unit inheritance chain so you define once and override where it matters.

When the built-in fields aren't enough, custom fields let you capture your own data on records without changing code.

Defining a field #

Create a custom field definition (in settings) for the resource you want to extend. The resources offered follow your plan: Appointments needs the Appointments module and Rental Agreements the Rentals module. Each field has a type:

  • Text, Textarea — free text
  • Number, Decimal, Currency — numeric values
  • Boolean — a yes/no toggle
  • Select — a fixed list of choices
  • Date, DateTime — points in time
  • User — a reference to a team member

Once defined, the field shows up on that resource's create/edit forms and its detail view automatically. Turn on Show in List View and it also appears as a column on that resource's list — the toggle is called the same thing on the form, on the definition's own page, and in the definitions list.

Required fields #

Two settings decide whether a field can be left blank:

  • Required to save — a staff form cannot be saved while the field is blank. Loan agreements, rental agreements and appointments enforce it over the API and the AI connector too, when you create one or update one and send custom_fields; leaving custom_fields out of an update request is not checked. No other record type's API or AI connector accepts custom fields yet.

  • Required to move past draft — offered on fields of Sales Orders, Loan Agreements and Rental Agreements, except Yes / No fields: a Yes / No field is saved as No when nobody touches it, and No counts as an answer. The record can be saved with the field blank while it is a draft — a sales order while it is Draft or Confirmed, a loan or rental agreement while it is Draft or Reserved — but it cannot move on until the field is filled in:

    • a loan agreement cannot be checked out;
    • a rental agreement cannot be picked up;
    • a sales order cannot be set to, or created as, Processing or Closed, and nothing can be shipped from it. A payment that settles a Confirmed order's invoices does not close the order while the field is blank.

    The message names the fields to fill in. Cancelling is not blocked, and a record that has already moved on still saves with the field blank. Records brought across by an import keep the status they had in the old system.

A field that was Required before these two settings existed is Required to save.

Customer access #

Fields on Customers, Appointments, Sales Orders, Loan Agreements and Rental Agreements have a Customer access section with three settings:

  • Customer can see — allows the field to be shown to the customer. On its own it does not let them change it.
  • Customer can edit — allows the customer to fill in or change the field. Needs Customer can see.
  • Required from the customer — when the customer is asked the field, they must answer it. Needs Customer can edit. Staff forms follow Required to save instead.

Turning a setting off also turns off the settings that need it. The section is not shown on User fields or on fields of other records, and those fields are saved with all three off.

Two places use these settings today:

  • The pre-visit form asks the customer fields the customer can edit, and on a form sent about a sales order, the sales order fields too. Appointment, loan agreement and rental agreement fields are not asked yet.
  • The customer portal's Your details page shows customer fields the customer can see, and lets them change the ones they can edit. Fields on other records are not shown in the portal yet.

Inheritance (Inventory) #

In inventory, custom fields follow an inheritance chain: category → Product → unit (parent categories also chain to child categories). A value set higher up flows down unless a more specific record overrides it. So you can set a field once on a category and have every Product and unit inherit it, while still overriding a single unit where needed. On the edit form, a hint shows the inherited value from the nearest ancestor when the field is left blank.

Where they apply #

Custom fields are available across many resources: inventory units, Products, inventory categories, inventory kits, loan agreements, appointments, rental agreements, customers, sales orders, quotes, customer invoices, customer returns, vendors, purchase orders, vendor invoices, vendor returns, users, and user groups.