TMF671 v4 Resource Mappings

Before using the TMF671 v4 resource mappings, refer these.

Constraints and Limitations

  • Use the promotion rules configuration and the Promotion API GET request to retrieve the promotion details.

  • Create a rule library that maps the usage type to Global Promotion Management and defines the context name. Set this rule library name as the default during the Create Promotion API call.

  • The criteriaGroup field is mandatory for Create Promotion API call. Only system admin can access this API. Users can only create promotions using a custom template.

  • Validations must be implemented to limit the number of rules, criteria, or actions if GPM enforces any such restrictions.

  • Users are not allowed to modify the context definition tags.

  • POST method input validations.

    • The promotion must include a name, id, and a valid startDateTime.
    • Criteria group must have at least one criteria and action.

Assumptions

  • User needs to perform these operations.
    • Global Promotions Management (GPM) setup
    • Rule Library configuration
    • Field-level security to the fields
  • As there is no life cycle status field available on promotion entity, isActive field is used and it supports these statuses.
    • active
    • inactive
  • When the 671 POST request is invoked, orchestrate the data and create a promotion using the Create Promotion Connect API. The response provides the promotion code name, which can then be used to configure the promotion's rules using the custom template. These rules define both the criteria and the actions associated with the promotion.
  • Promotion rules are stored as blob data, which cannot be directly read from the database. For the GET operation, use APIs to retrieve the rules in a readable format. To fetch promotion details, query the database directly. If the information retrieved is insufficient or not readable, use the API to obtain the promotion details.
  • Revenue Lifecycle Management (RLM) operates within its own context, and the mapping to GPM tags is managed through the rule library associated with that context.

The TMF671 specific criteria and action codes are hardcoded as a HashMap.

actionType

ActionType ActionTypeCode
voice(minute) 1
data(MB) 2
data(GB) 3
SMS 4
bonus point 5
physical gift 6
voucher 7
promotion code 8
an existing offering 9
currency 10

NOTE: Other types of action also be used.

criteriaParameter

CiteriaParamType Parameter CriteriaParamTypeCode
Individual - 1
id 1.1
name 1.2
birth date 1.3
Product Offering - 2
id 2.1
duty free amount 2.2
tax included amount 2.3
product order id 2.4
price type 2.5
channel name 2.6
Product - 3
id 3.1
duration amount 3.2
duration units 3.3
Product Offering Category - 4
id 4.1
Top up Balance - 5
amount 5.1
recurring period 5.2
Customer Bill - 6
amount due 6.1

These default mappings are supported for the TMF671 resources.

Promotion

TMF Field Description Field Type Is Mandatory as per TMForum? Is Mandatory for Salesforce? Supported Salesforce Object Salesforce Field Supported Methods
Id A string. Unique identifier of promotion. String Yes No Yes Promotion Promotioncode GET
description A string. Details about the purpose of this promotion. String No No Yes Promotion Description POST, GET
lastUpdate A date time (DateTime). Latest update date of promotion. Date No No Yes Promotion LastModifiedDate GET
lifecycleStatus A string. Value of promotion status. String No No Yes Promotion isActive GET, POST
name A string. Name of promotion. String Yes Yes Yes Promotion Name GET, POST
promotionType A string. Type of promotion. The basic type is:<br>• Award - Gift or free unit is given to the party.<br>• Discount - Deduct from an account, debt or charge.<br>• Reduction - Bring down the quantity or value or something.<br>However, other types of promotion can be used. No No No Promotion rewardConfiguration → type
startDateTime A time period. The period for which the promotion is valid. Date No No Yes Promotion StartDateTime GET, POST
endDateTime A time period. The period for which the promotion is valid. Date No No Yes Promotion EndDateTime GET, POST
href An URI. Hyperlink reference. URL Yes No Yes - - -
pattern List of patterns that defines the promotion string No No Yes pattern - -

Sub-resources

pattern

Salesforce Mapping: Promotion → promotionConfiguration → configureTemplate → rules → priority

TMF Field Description Field Type Is Mandatory as per TMForum? Is Mandatory for Salesforce? Supported Salesforce Object Salesforce Mapping Supported Methods
@type A string. The class type of the actual resource (for type extension). String No No Yes - - GET
action A list of promotion actions (PromotionAction [1..*]). Action of the promotion. When the customer meets the conditions in the promotion pattern, the customer can be given the benefits in the action. List Yes Yes Yes [promotionAction subresource] - POST,GET
criteriaGroup A list of promotion criteria groups (PromotionCriteriaGroup [1..*]). Set of group criteria to promotion. Fulfilling these criteria, parties receive benefits. List Yes Yes Yes [promotionCriteriaGroup Subresource] - POST,GET
id A string. Unique identifier of promotion pattern. String Yes Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules [ {{index}} ]→ ruleName POST,GET
name Name of the pattern or rule. String Yes Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules [ {{index}} ]→ templateName "+ _ + "promotion → promotionConfiguration → configureTemplate →rules [ {{index}} ]→ ruleName POST,GET
priority Priority of the pattern. Number No Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules [ {{index}} ]→ priority POST,GET

promotionAction

Salesforce Mapping: Promotion → promotionConfiguration → configureTemplate → rules → priority → rewardConfiguration

TMF Field Description Field Type Is Mandatory as per TMForum? Is Mandatory for Salesforce? Supported Salesforce Object Salesforce Mapping Supported Methods
@baseType A string. The base type for use in polymorphic collections. String No No No GET
@schemaLocation A string. A link to the schema describing a resource (for type extension). String No No No GET
@type A string. The class type of the actual resource (for type extension). String No No Yes GET
actionEntityRef An entity reference (EntityRef). It refers to the entity that is impacted by the promotion action.<br>• When the Promotion type is Award, the actionEntityRef is the party account;<br>• When the Promotion type is Discount, it is the product offering;<br>• When the Promotion type is Reduction, it is the product offering also. No No Yes promotionActionEntityRef POST,GET
actionType A string. actionType String Yes Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → type<br><br>promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → discountType POST,GET
actionValue A string.<br>• When the Promotion type is Award, it means the amount or value of the awards decided by actionType;<br>• When the Promotion type is Discount, it means the value of the discount;<br>• When the Promotion type is Reduction, it means the value of the reduced money. String Yes Yes Yes Promotion When actionType is 8 and 10 -<br>promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → discountValue<br><br>When actionType is 7 -<br>promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → voucherDefinition → id POST,GET
id A string. Unique identifier. String No No Yes Promotion When actionType is 8 and 10 -<br>promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → discountType<br><br>When actionType is 7 -<br>promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → voucherDefinition → name GET, POST

promotionActionEntityRef

Salesforce Mapping: Promotion → promotionConfiguration → configureTemplate → rules → priority → rewardConfiguration

TMF Field<div style="width:120px"></div> Description<div style="width:120px"></div> Field Type<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Is Mandatory for Salesforce?<div style="width:120px"></div> Supported<div style="width:120px"></div> Salesforce Object<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Supported Methods
@baseType A string. When sub-classing, this defines the super-class. String No No No GET
@schemaLocation An URI. A URI to a JSON-Schema file that defines additional attributes and relationships. String No No No GET
@type A string. When sub-classing, this defines the sub-class Extensible name. String No No Yes promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → discountedItems → discountedItemType POST, GET
@referredType A string. The actual type of the target instance when needed for disambiguation. No No No
href An URI. Hyperlink reference String Yes Yes Yes GET
name name of the product String Yes Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → discountedItems → discountedItemList → name POST, GET
id A string. Unique identifier. String No No Yes Promotion promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → discountedItems → discountedItemList → id GET, POST

promotionCriteriaGroup

Salesforce Mapping: promotion → promotionConfiguration → configureTemplate → rules[] → eventConfiguration

TMF Field<div style="width:120px"></div> Description<div style="width:120px"></div> Field Type<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Is Mandatory for Salesforce?<div style="width:120px"></div> Supported<div style="width:120px"></div> Salesforce Object<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Supported Methods<div style="width:120px"></div>
@baseType A string. The base type for use in polymorphic collections. String No GET
@schemaLocation A string. A link to the schema describing a resource (for type extension). String No GET
@type A string. The class type of the actual resource (for type extension). String Yes GET
criteria A list of promotion criteria (PromotionCriteria [1..*]). Set of criteria to be followed by all parties. List Yes Yes Yes promotionCriteria POST,GET
criteriaLogicalRelationship A string. Logical relation followed by all criteria. String No No Yes Promotion promotion → promotionConfiguration → configureTemplate →rules → eventConfiguration → criteriaList → customLogic POST,GET
groupName A string. Name of the group to be easily identified. String Yes Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules → eventConfiguration → criteriaList → name POST,GET
id A string. Unique Identifier. String Yes Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules → eventConfiguration → criteriaList → sequenceNumber POST,GET

promotionCriteria

Salesforce Mapping: promotion → promotionConfiguration → configureTemplate → rules[] → eventConfiguration[]

TMF Field<div style="width:120px"></div> Description<div style="width:120px"></div> Field Type<div style="width:120px"></div> Is Mandatory as per TMForum?<div style="width:120px"></div> Is Mandatory for Salesforce?<div style="width:120px"></div> Supported<div style="width:120px"></div> Salesforce Object<div style="width:120px"></div> Salesforce Mapping<div style="width:120px"></div> Supported Methods<div style="width:120px"></div>
@baseType A string. The base type for use in polymorphic collections String No No No GET
@schemaLocation A string. A link to the schema describing a resource (for type extension). String No No No GET
@type A string. The class type of the actual resource (for type extension). String No No Yes GET
criteriaOperator A string. Logic operator of this criteria instruction: '=' or '>' or '<' or '>=' or '<=' or '<>'. or 'In' or 'Not In' String Yes Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules → eventConfiguration → criteriaList → conditionList → operator POST, GET
criteriaParameter A string. The parameter (factor) of the criteria. The basic factors are abstracted from these data sources. And there are several detailed parameters. For instance:<br>criteriaParameter String Yes Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules → eventConfiguration → criteriaList → conditionList → contextTagName POST, GET
criteriaValue A string. The value is filled for the comparison of the criteria. String Yes Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules → eventConfiguration → criteriaList → conditionList → valueList[0] POST, GET
id A string. Unique identifier. String No Yes Yes Promotion promotion → promotionConfiguration → configureTemplate →rules → eventConfiguration → criteriaList → conditionList → sequenceNumber POST, GET