Campaign
This page documents the CRM campaign domain in tSM.
1. Business Context
Campaign management in tSM supports marketing or sales initiatives over customer/lead targets. The model combines:
- campaign header and status,
- campaign lines (what is promoted),
- wave definitions and concrete waves (when/how execution happens),
- party-campaign links (who is targeted and with what outcome).
1.1 Telco and TMF perspective
Campaign modeling in telco is used for retention, upsell, migration, and win-back programs. It combines commercial segmentation with execution status so the operator can track outreach and conversion outcomes.
TMF note:
- campaign entities are typically implementation-specific and not always represented by a single TMF Open API in the target architecture,
- hand-off usually connects to TMF629 (party/customer), TMF620 (offer catalog context), and TMF622 (order capture) depending on process design.
2. Scope
This page covers:
CampaignCampaignLineCampaignWaveDefinitionCampaignWavePartyCampaignCampaignTypeCampaignStatusPartyCampaignStatus
3. Runtime Entities
3.1 Campaign
Behavior notes:
codeis the durable campaign identifier used in integrations and reporting.typeandstatusare register-driven to keep campaign governance configurable.campaignWavesis typically treated as an operational projection for navigation/reporting.
| Attribute | Type | Required | Read-only | Description |
|---|---|---|---|---|
id | UUID | No | No | Technical primary key. |
code | String | Yes | No | Business/technical code. |
name | String | Yes | No | Campaign name. |
type | String | Yes | No | FK to CampaignType.code. |
status | String | Yes | No | FK to CampaignStatus.code. |
chars | TsmChars | No | No | Dynamic campaign characteristics. |
userGroupIds | List of UUID | No | No | Related user groups. |
description | String | No | No | Description. |
validFor | TimePeriodAlt | No | No | Validity interval. |
dataTags | List of String | No | No | Labels/tags. |
processingData | ProcessingData | No | Write-only | Transient processing context. |
campaignWaves | List of String | No | No | Related wave codes (inverse/read projection pattern). |
3.2 CampaignLine
Behavior notes:
CampaignLineidentifies what is promoted (offering/specification scope) within a campaign.entityCatalogSpecificationIdlinks campaign intent to catalog-driven commercial content.
| Attribute | Type | Required | Read-only | Description |
|---|---|---|---|---|
id | UUID | No | No | Line row UUID. |
entityCatalogSpecificationId | UUID | No | No | Linked catalog specification ID. |
name | String | Yes | No | Line name. |
campaign | Campaign | No | No | Embedded campaign object. |
data | Map | No | No | Additional payload. |
3.3 CampaignWaveDefinition
| Attribute | Type | Required | Read-only | Description |
|---|---|---|---|---|
id | UUID | No | No | Wave-definition UUID. |
code | String | Yes | No | Technical code. |
name | String | Yes | No | Display name. |
chars | TsmChars | No | No | Dynamic definition characteristics. |
profileIds | List of UUID | No | No | Related profile IDs. |
description | String | No | No | Description. |
validFor | TimePeriodAlt | No | No | Validity interval. |
dataTags | List of String | No | No | Labels/tags. |
3.4 CampaignWave
| Attribute | Type | Required | Read-only | Description |
|---|---|---|---|---|
id | UUID | No | No | Wave row UUID. |
code | String | Yes | No | Wave code. |
name | String | Yes | No | Wave 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. |
campaignId | UUID | Yes | No | FK to campaign. |
campaignWaveDefinitionId | UUID | Yes | No | FK to wave definition. |
partyCampaignIds | List of UUID | No | No | Linked PartyCampaign rows. |
dataTags | List of String | No | No | Labels/tags. |
config | Map | No | No | Additional config payload. |
3.5 PartyCampaign
Behavior notes:
PartyCampaignconnects execution to a specific target party (customerIdorleadId).statuscaptures per-target campaign outcome.- optional
orderIdenables campaign-to-order conversion traceability.
| Attribute | Type | Required | Read-only | Description |
|---|---|---|---|---|
id | UUID | No | No | Party-campaign row UUID. |
customerId | UUID | No | No | Linked customer ID. |
leadId | UUID | No | No | Linked lead ID. |
campaignWaveId | UUID | Yes | No | Linked campaign wave ID. |
orderId | UUID | No | No | Optional linked order ID. |
followUp | Date | No | No | Follow-up date. |
status | String | No | No | FK to PartyCampaignStatus.code. |
data | Map | No | No | Additional payload. |
4. Registers
4.1 CampaignType
| 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 specification link. |
mnemonicCode | String | No | No | Mnemonic/business code. |
createPrivilege | String | No | No | Privilege needed for create. |
icon | String | No | Yes | Icon projection. |
tsmModuleId | UUID | No | Yes | Module projection. |
registry | Map | No | No | Register metadata. |
processingData | ProcessingData | No | Write-only | Transient processing context. |
tsmModule | String | No | No | Module code. |
config | Map | No | No | Additional config payload. |
dataTags | List of String | No | No | Labels/tags. |
4.2 CampaignStatus
| 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. |
sortOrder | Int | No | No | Status sort order. |
dataTags | List of String | No | No | Labels/tags. |
config | Map | No | No | Additional config payload. |
4.3 PartyCampaignStatus
| 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. |
sortOrder | Int | No | No | Status sort order. |
dataTags | List of String | No | No | Labels/tags. |
config | Map | No | No | Additional config payload. |