Customer record
What it's for
A customer record is one account in full: their sites, the equipment at those sites, the work you have done, what they are covered for, what they owe, and the paperwork attached to them. It is the screen you open before a call and keep open during it.
Reach it by opening any account from Customers, or from any job, invoice,
or unit that names them. The route is /customers/<customer>.
Tabs
- Overview — the account at a glance, with the side panels described below.
- Sites — every service site: label, address, and access notes.
- Equipment — every unit across their sites, with Unit, Serial, Age, Warranty, Type, Make / Model, Refrigerant, and Tonnage.
- Work orders — their jobs, with #, Summary, Status, Date and Value.
- Agreements — coverage, with Plan, Status, Site, Expires and Annual value.
- Invoices — billing, with Invoice, WO, Amount, Balance and Issued.
- Documents — uploaded paperwork, with Type, File, Issued and Expires.
Panels and controls
Fact strip
Primary contact, Phone, Sites · Units, Agreement, and Balance due — the five things you want before you say hello.
Side panels
- Billing — Balance due and Lifetime value.
- Service agreement — Plan, Status, Expires, Annual value.
- Equipment health — Active warranty, Warranty expired, Under agreement, and how much of their equipment is in each state.
- Coverage, Activity, and Lifetime summarise how much of the account is protected, what has happened lately, and what the account is worth over time.
Sites
Add site creates one. Each site takes a Site label ("e.g. Main St rental"), Address line 1 and 2, City, State, Zip, and Access notes — where the gate key is, who to ask for, what time the building opens. Save access notes updates just that field, because it is the one that changes most.
Documents
Upload attaches a file with a Type, an Issued date and an Expires date, so expiring paperwork can be chased before it lapses. Remove takes one off the record.
Portal
You can invite the customer to their own portal from here. The invite needs an email on the account, and the portal has to be turned on for your shop:
- "This customer has no email on file."
- "Customer portal is not enabled for this shop."
- "Could not send the portal invite. Try again."
Empty states
No service sites, No equipment on record, No work orders, No service agreements, and No invoices — each names the thing that is missing rather than showing a blank tab.
What it accepts
| Field | Format | Required | Rule |
|---|---|---|---|
| Site label | Free text | Yes | Names the site everywhere else |
| Address line 1 | Free text | Yes | |
| Address line 2 | Free text | No | Suite, unit, floor |
| City / State / Zip | Free text | Yes | |
| Access notes | Free text | No | "Access notes, description…" — gate codes, contacts, hours |
| Document type | Pick a type | Yes | "Choose a document type." |
| File | PDF, JPEG or PNG | Yes | "Choose a file to upload."; "Only PDF, JPEG, or PNG files are supported."; "File is too large (max 10 MB)." |
| Issued on / Expires on | Dates | No | An expiry is what lets the document be chased before it lapses |
| Default tax class | Pick a class | No | Applies to this customer's billing |
| Bill to | Pick another account | No | Bills this customer's work to a different account |
Document upload needs file storage configured for your shop; without it the upload is refused with "Document storage isn't configured yet — ask an admin to set up Vercel Blob."
How to configure it
- Customer portal settings decide whether the portal invite is available at all.
- Invoicing settings supply the tax classes the Default tax class picker offers.
- Branches and Zones decide the branch and zone a site can be assigned to.
- Agreements settings decide the plans the agreement panel can show.
Who can see it
This screen sits behind the Customers area.
Owners, office managers and dispatchers can open it. Technicians cannot — the field app gives them the customer detail for their own jobs instead. The gate is checked on the server, not just hidden in the sidebar, so a direct link does not get around it.
The full role matrix is on Roles & permissions.