Every customer has one record, and everything about them — invoices, orders, tickets, portal access — hangs off it.
The customer number
Each record gets a sequential number the system generates (CU-1, CU-2, …) and never changes. When you refer to a customer in a note or to a colleague, that number is the unique handle — the name is not.
Person or company
The type decides which fields mean anything: a person has a ten-digit national ID; a company must have a company name, and its company registration number is a separate field.
This is not just a label — the form's validation changes with it.
The portal account lives here
If a customer signs in to the portal, their account state — active, invited, unverified — is shown on this same record. There is no separate list of portal accounts, and you should not go looking for one.
The practical consequence: nobody ever has two records, one as "a customer" and one as "a portal user".
An incomplete record is not necessarily a broken one
The admin's create form requires a name, a mobile number and a province. A customer who registered themselves in the portal, or arrived through an invitation, may have filled in none of them yet.
So a record carrying only an email or a phone number is not corrupt data — it is a customer who has not completed their profile.
The full profile is read from other modules
The full customer view has several tabs: finance, commerce, support and activity. None of that content is stored in this module — it is read from invoices, the store and support.
An empty tab therefore means one of two quite different things: that customer genuinely has no history there, or that module is not enabled on this install. Neither is an error.