Customers

Your customer directory holds each customer's contact details, billing address, default payment terms, credit limit, and category — plus multiple named contacts per customer. It's the master record that invoices, credit memos, and AR reports all reference, so keeping it accurate keeps your receivables clean. Records are preserved when deleted, so historical invoices never lose their customer.

Key capabilities

  • Core profile: name, email, address, phone, tax ID, website, notes, and category
  • Default payment terms that auto-fill on new invoices for that customer
  • Optional credit limit per customer
  • Status of active, inactive, or blocked
  • Multiple contacts per customer, with a designated primary contact
  • Duplicate detection before creating, by name, email, and tax-ID similarity
  • Bulk Import CSV with a downloadable template; duplicate emails are skipped
  • AI single-customer categorization and bulk Auto-categorize of uncategorized customers
  • AI payment-behavior analysis with per-customer risk signals
  • Fuzzy name search and email/ID lookups, paginated
  • Deletion that preserves references on existing invoices and credit memos
  • Linked to a global counterparty registry for cross-business analytics

How it works

A customer record is the hub: invoices, credit memos, contacts, and payment terms all hang off it. Create or import customers, enrich them with AI, then reference them everywhere downstream.

flowchart TD
  create["Create / import customer"] --> dup{"Possible duplicate?"}
  dup -->|"Yes"| review["Review match"]
  dup -->|"No"| record["Customer record"]
  review --> record["Customer record"]
  record --> invoices["Invoices & credit memos"]
  record --> contacts["Contacts & payment terms"]
  invoices --> ar["AR balance & aging"]

How to use it

  1. Open Customers (/books/customers) and click New Customer.
  2. Enter name and email (required), plus address, phone, tax ID, website, category, and notes as needed.
  3. Set a default payment term and an optional credit limit — the payment term defaults onto every new invoice.
  4. Add named contacts (marking one primary) for invoice delivery and communications.
  5. Use Import CSV to load customers in bulk from the provided template.
  6. Click Auto-categorize to let AI categorize every uncategorized customer in the background, then refresh the list.

Pro tips

  • A customer needs both an active status and an email to be invoiceable, so fill in email up front.
  • Set default payment terms per customer to save time on every invoice — you can still override per invoice.
  • Run the duplicate check before bulk imports; bulk upload skips rows whose email already exists rather than creating doubles.
  • Auto-categorize is safe to re-run: already-categorized customers are skipped, and it processes in the background (up to 500 per call), so refresh to watch progress.
  • A customer can only be fully deleted when it has no invoices; otherwise deletion is non-destructive so existing invoices keep their reference.
  • Use the status field deliberately — blocked signals do-not-invoice, while inactive simply hides routine customers without losing history.

In-depth guide

Status & capabilities

  • is_active — not deleted and status active.
  • can_be_invoiced — additionally requires an email.
  • can_be_deleted — true only when the customer has no invoices; otherwise deletion is non-destructive and keeps the record available for historical documents.
  • Blocked and inactive customers stay in the directory but flag that you shouldn't bill them.

Contacts

  • Each customer can have multiple contacts (name, email, phone, role, primary flag, notes).
  • The primary contact is intended for invoice delivery and communications.
  • Contacts are managed independently from the core record, so you can add or update a billing contact without touching the customer's profile.

Duplicate detection

  • Before creating or updating, the duplicate check compares a prospective customer against existing ones by name, email, and tax ID, returning matches with a similarity score and match type.
  • This is a detection-and-review aid — it surfaces likely duplicates so you can avoid creating them rather than merging after the fact.

AI & automation

Three AI features assist here, all running server-side and writing results back to the customer records:

  • Categorization — suggests a category/subcategory with confidence from name, email, website, and address.
  • Auto-categorize — schedules background categorization for all uncategorized customers.
  • Payment-behavior analysis — assesses each customer's paying patterns with risk scores.

Related features & accounting

  • Customers anchor accounts receivable: their invoices post AR and roll up into the AR Aging report, and credit memos reduce their balances.
  • Default payment terms flow onto invoices to set due dates.
  • The counterparty registry link enables cross-business analytics for advisory firms managing many clients.

Limits & edge cases

  • Listing supports fuzzy name search and exact email/ID filters.
  • Bulk CSV upload returns created and skipped counts plus per-row errors; existing emails are skipped, not overwritten.
  • Email is stored case-insensitively, so casing differences won't create separate records.

Start free and build your customer list.