BigBooks Docs
Master Data

Customers

As an operator, you will maintain customer records on the upgraded list-detail screen — adding, editing in place, and reading each customer's receivable balance, activity, and statement — so every invoice and receipt links to one clean record.

What you'll accomplish

As an Operator, you will maintain customer records on the upgraded list-detail screen — adding, editing in place, and reading each customer's receivable balance, activity, and statement — so every invoice and receipt links to one clean record.

Before you start

Customers live at /[lang]/customers. The page opens as a master-detail screen: a searchable list of customers on the left, and a tabbed detail panel on the right when you click a row. You need the canViewCustomers permission to open the screen. A customer record is master data — saving one writes no accounting entry; it simply registers the customer (and a sub-ledger under Accounts Receivable) so future documents have something to point at. The /[lang]/customers/new route redirects back to the list, because new customers are created from a slide-in sheet, not a separate page.

Steps

Open the customers list Go to /[lang]/customers. The secondary-header breadcrumb reads Dashboard › Customers, and the list actions (New customer, plus import/template where available) sit on the right of that header. Search the list by name or customer number.

Customers list-detail screen with the search box and the New customer action in the secondary header.
Customers list-detail screen with the search box and the New customer action in the secondary header.

Add a customer Click New customer to open the create sheet. Fill in the name (and Lao name if you use it), and optionally email, phone, tax ID, billing address, payment terms, and credit limit. Save — the customer appears in the list immediately.

The New customer sheet with name, contact, address, payment terms, and credit-limit fields.
The New customer sheet with name, contact, address, payment terms, and credit-limit fields.

Open the record and read the Overview Click a customer row to open the detail panel. A quiet meta strip shows the customer number and an Active/Inactive badge; the breadcrumb already carries the name. The Overview tab leads with the outstanding receivable as the hero figure (shown in rose when money is owed), with open / overdue / paid counts inline, an invoiced-vs-received chart, recent invoices, and a reference grid of contact, address, and account details.

Customer detail panel, Overview tab: outstanding-receivable hero, income chart, recent invoices, and the contact/address reference grid.
Customer detail panel, Overview tab: outstanding-receivable hero, income chart, recent invoices, and the contact/address reference grid.

Edit in place With a record open, press Edit. The panel flips into the edit form (the tabs are hidden) and Save / Cancel appear in the secondary header. Change the fields and save without leaving the record.

Record-level inline edit: the detail panel showing the edit form with Save / Cancel in the secondary header.
Record-level inline edit: the detail panel showing the edit form with Save / Cancel in the secondary header.

Create a document from the customer Use the record's New ▾ menu (or an empty-state CTA) to start an invoice, receipt/payment, or quotation with this customer pre-selected — the link carries ?customerId=, so the new document opens with the customer already chosen. Switch to the Transactions and Statement tabs to review that customer's documents and running balance.

The record's New ▾ menu offering Invoice / Payment / Quotation pre-filled with this customer.
The record's New ▾ menu offering Invoice / Payment / Quotation pre-filled with this customer.

What happens behind the scenes

Creating or editing a customer is a structural change — there is no journal entry. createCustomer (customers/create.ts) saves the record and registers it as a sub-ledger under Accounts Receivable, and updateCustomer (customers/mutations.ts) edits it. The customer's outstanding balance shown on the Overview is computed live from posted invoices and receipts (the queries in customers/queries.ts), not stored on the record — so the figure stays correct as documents post. The Statement tab (customers/statement.ts) derives the opening balance for a date range from the documents that fall before it. Money flows into the customer's AR balance only when an invoice is issued or a receipt is applied; the customer record itself never debits or credits the ledger.

Common problems

  • Screen won't open: Without canViewCustomers the page is blocked by the access guard.
  • /customers/new bounces to the list: That is expected — creation happens in the slide-in sheet, not on a separate page.
  • Balance looks wrong: The Overview figure is live from posted documents; a draft invoice has not posted yet, so it is not counted.
  • Can't delete a customer: A customer referenced by existing invoices or receipts cannot be removed — deactivate it (clear the Active flag) instead.
  • Edits not saving: In inline-edit mode the Save button lives in the secondary header, not in the panel body.

On this page