This page documents the CRM customer domain in tSM.
It follows the same reference style as Catalog documentation and lists all API model attributes used in this domain.
1. Business Context
Customer is the commercial party context used by operational modules.
It is the anchor for:
- ownership of accounts,
- ownership of orders and inventory entities,
- party segmentation and legal classification,
- primary contact and address context.
In practice, Customer data is reused by Ordering, Inventory, Billing, Ticketing, and workflow/process orchestration.
In telco operations, Customer is the commercial anchor of the full lifecycle:
- acquisition and onboarding,
- ordering and fulfillment ownership,
- billing and dunning context,
- support and assurance interactions.
Typical TMF alignment:
- customer/account context aligns mainly to TMF629 and TMF666 concepts,
- party and contact representation aligns to TMF632/TMF669 concepts,
- address semantics align to TMF673.
In tSM, these concepts are implemented as one coherent CRM model and then reused by other modules through references.
This page covers:
Customer
CustomerType
CustomerSegment
CustomerLegalForm
- shared contact value objects from
Contacts.kt
CrmAddress
CrmAddressRole
CrmAddressRoleType
key is business-facing identifier; id is technical UUID.
- Contact attributes (
phones, emails, etc.) are embedded value-object collections.
chars is the extension point for installation-specific customer attributes.
primaryAddress, primaryPerson, accounts, keyNormalized are expansion attributes.
status, customerType, customerSegment, and legalForm are the primary governance fields for customer policy and process routing.
| Attribute | Type | Required | Read-only | Description |
|---|
id | UUID | No | No | Technical primary key. |
key | String | No | No | Business identifier. |
name | String | Yes | No | Customer display name. |
description | String | No | No | Free-text description (can contain HTML). |
status | CustomerStatus | Yes | No | Lifecycle status of customer. |
customerType | String | No | No | FK to CustomerType.code. |
legalForm | String | No | No | FK to CustomerLegalForm.code. |
identificationNumber | String | No | No | Company identifier / registration number. |
vatin | String | No | No | VAT identification. |
customerSegment | String | No | No | FK to CustomerSegment.code. |
contactInstants | List of ContactInstant | No | No | Generic contact identifiers. |
phones | List of Phone | No | No | Phone contacts. |
emails | List of Email | No | No | Email contacts. |
websites | List of Web | No | No | Website contacts. |
dataBoxes | List of DataBox | No | No | Data-box contacts. |
dataTags | List of String | No | No | Labels/tags. |
chars | TsmChars | No | No | Dynamic/custom characteristics. |
validFor | TimePeriodAlt | No | No | Validity interval. |
custom | Any | No | Yes | Denormalized customer payload (read model). |
primaryAddress | CrmAddress | No | Yes | Expansion field: primary address. |
primaryPerson | Person | No | Yes | Expansion field: primary person/contact. |
accounts | List of Account | No | Yes | Expansion field: customer accounts. |
keyNormalized | String | No | Yes | Expansion field: normalized key for search/sort. |
leadId | UUID | No | No | Optional source lead link. |
processingData | ProcessingData | No | Write-only | Transient processing context for automation/integration. |
| Value | Meaning |
|---|
ACTIVE | Active customer. |
INACTIVE | Inactive customer. |
| Value | Behavior |
|---|
PRIMARY_ADDRESS | Fills primaryAddress. |
PRIMARY_CONTACT | Fills primaryPerson. |
ACCOUNTS | Fills accounts. |
KEY_NORMALIZED | Fills keyNormalized (from denormalized store). |
| Attribute | Type | Required | Read-only | Description |
|---|
id | UUID | No | No | Register row UUID. |
code | String | Yes | No | Technical code. |
name | String | Yes | No | Display name. |
validityFrom | Date | No | No | Validity start. |
validityTo | Date | No | No | Validity end. |
description | String | No | No | Description. |
localizationData | LocalizationData | No | No | Localized labels/descriptions. |
entitySpecId | UUID | No | No | Optional linked specification. |
mnemonicCode | String | No | No | Mnemonic/business code. |
createPrivilege | String | No | No | Privilege needed for create. |
icon | String | No | Yes | Register icon projection. |
tsmModuleId | UUID | No | Yes | Register module projection. |
json | Any | No | No | Additional JSON payload. |
processingData | ProcessingData | No | Write-only | Transient processing context. |
registry | Map | No | No | Register metadata. |
tsmModule | String | No | No | Module code. |
config | Map | No | No | Additional config payload. |
dataTags | List of String | No | No | Labels/tags. |
| Attribute | Type | Required | Read-only | Description |
|---|
id | UUID | No | No | Register row UUID. |
code | String | Yes | No | Technical code. |
name | String | Yes | No | Display name. |
validityFrom | Date | No | No | Validity start. |
validityTo | Date | No | No | Validity end. |
description | String | No | No | Description. |
localizationData | LocalizationData | No | No | Localized labels/descriptions. |
defaultValue | Boolean | No | No | Marks default segment. |
careLevel | Int | No | No | Optional care-level indicator. |
legalForm | List of String | No | No | Allowed legal forms for this segment. |
dataTags | List of String | No | No | Labels/tags. |
config | Map | No | No | Additional config payload. |
| Attribute | Type | Required | Read-only | Description |
|---|
id | UUID | No | No | Register row UUID. |
code | String | Yes | No | Technical code. |
name | String | Yes | No | Display name. |
validityFrom | Date | No | No | Validity start. |
validityTo | Date | No | No | Validity end. |
description | String | No | No | Description. |
localizationData | LocalizationData | No | No | Localized labels/descriptions. |
dataTags | List of String | No | No | Labels/tags. |
config | Map | No | No | Additional config payload. |
| Attribute | Type | Required | Description |
|---|
contactId | String | Yes | Contact identifier/value. |
type | String | No | Contact type/classification. |
primary | Boolean | No | Primary contact flag. |
note | String | No | Note. |
| Attribute | Type | Required | Description |
|---|
phone | String | Yes | Phone number. |
type | PhoneType | No | FAX, FIXED_LINE, OTHER, MOBILE. |
primary | Boolean | No | Primary phone flag. |
note | String | No | Note. |
| Attribute | Type | Required | Description |
|---|
email | String | Yes | Email address. |
type | EmailType | No | PRIVATE, BUSINESS, OTHER. |
primary | Boolean | No | Primary email flag. |
note | String | No | Note. |
| Attribute | Type | Required | Description |
|---|
url | String | Yes | Website URL. |
primary | Boolean | No | Primary website flag. |
note | String | No | Note. |
| Attribute | Type | Required | Description |
|---|
dataBoxId | String | Yes | Data box ID. |
primary | Boolean | No | Primary data-box flag. |
note | String | No | Note. |
| Attribute | Type | Required | Read-only | Description |
|---|
id | UUID | No | No | Address primary key. |
formattedAddress | String | Yes | Full formatted address text. | |
status | CrmAddressStatus | Yes | No | Address lifecycle status. |
name | String | No | No | Optional address name. |
description | String | No | No | Description. |
addressId | String | No | No | External address ID (RUIAN/CROSS/etc.). |
lat | Double | No | No | Latitude. |
lon | Double | No | No | Longitude. |
addressDetail | Map | No | No | Structured address detail payload. |
chars | TsmChars | No | No | Dynamic address characteristics. |
crmAddressRoles | List of CrmAddressRole | No | No | Role assignments for this address. |
leadId | UUID | No | No | Linked lead ID. |
customerId | UUID | No | No | Linked customer ID. |
placeId | String | No | No | Place ID from address management. |
| Value | Meaning |
|---|
INACTIVE | Address is inactive. |
ACTIVE | Address is active. |
| Value | Behavior |
|---|
ROLES | Expands/fills crmAddressRoles. |
| Attribute | Type | Required | Read-only | Description |
|---|
id | UUID | No | No | Address-role row UUID. |
status | CrmAddressRoleStatus | Yes | No | Role assignment status. |
crmAddressRoleType | String | Yes | No | FK to CrmAddressRoleType.code. |
crmAddressId | UUID | No | No | Linked address ID. |
data | Map | No | No | Extra payload. |
| Value | Meaning |
|---|
INACTIVE | Role assignment inactive. |
ACTIVE | Role assignment active. |
| Attribute | Type | Required | Read-only | Description |
|---|
id | UUID | No | No | Register row UUID. |
code | String | Yes | No | Technical role code. |
name | String | Yes | No | Display name. |
description | String | No | No | Description. |
type | CrmAddressRoleTypeEnum | Yes | No | Address role family. |
validityFrom | Date | No | No | Validity start. |
validityTo | Date | No | No | Validity end. |
localizationData | LocalizationData | No | No | Localized labels/descriptions. |
sorter | Int | No | No | Sorting priority. |
defaultValue | Boolean | No | No | Default role-type marker. |
dataTags | List of String | No | No | Labels/tags. |
config | Map | No | No | Additional config payload. |
| Value | Meaning |
|---|
BUSINESS_ADDRESS | Business/legal address. |
BRANCH_OFFICE | Branch office address. |
SHIPPING_ADDRESS | Shipping address. |
BILLING_ADDRESS | Billing address. |
REALIZATION_ADDRESS | Realization/installation address. |
OTHER | Other address type. |