Documentation Changelog
Extensibility for TMF APIs
Use Cases
Resource Mappings
Resource Mappings
Use Cases
Known Issues
FAQ
Before using the TMF671 v4 resource mappings, refer these.
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.
name, id, and a valid startDateTime.promotion entity, isActive field is used and it supports these statuses.
The TMF671 specific criteria and action codes are hardcoded as a HashMap.
| 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.
| 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.
| 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: • Award - Gift or free unit is given to the party. • Discount - Deduct from an account, debt or charge. • Reduction - Bring down the quantity or value or something. 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 | - | - |
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 |
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. • When the Promotion type is Award, the actionEntityRef is the party account; • When the Promotion type is Discount, it is the product offering; • 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 promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → discountType | POST,GET |
| actionValue | A string. • When the Promotion type is Award, it means the amount or value of the awards decided by actionType; • When the Promotion type is Discount, it means the value of the discount; • 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 - promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → discountValue When actionType is 7 - 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 - promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → discountType When actionType is 7 - promotion → promotionConfiguration → configureTemplate →rules → rewardConfiguration → rewardDetails → voucherDefinition → name | GET, POST |
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. 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 |
Salesforce Mapping: promotion → promotionConfiguration → configureTemplate → rules[] → eventConfiguration
| 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 | 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 |
Salesforce Mapping: promotion → promotionConfiguration → configureTemplate → rules[] → eventConfiguration[]
| 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 | ||
| 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: 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 |