Overview

  • The TMF671 API offers a standardized way for service providers to configure and manage promotions. Using the TMF671 API, service providers can determine, based on predefined criteria, whether promotions such as additional discounts, vouchers, bonuses, or gifts can be applied.
  • The execution of promotions is the responsibility of the enterprise platform that applies the discounts, vouchers, bonuses, or gifts, based on the information retrieved from the TMF671 API.
  • Using TMF671 API you can perform these operations on customer account.
    • Retrieve the list of promotions from the system
    • Get the promotion details
    • Create a promotion

Starting from the Winter ’27 release, only the Direct Access option will be supported. The MuleSoft gateway option will be deprecated, and customers must update their integrations to use the Connect/Apex REST endpoints for continued access to the inbound APIs.

Important

Assumptions 

It is assumed that you have completed the these.

Sequence of Operations 

Following block diagram provides a sequence of operations involved. Sequence

NOTE:

Use Cases 

I want toRequest TypeExample URL
Retrieve and display details of a particular promotion.GET by ID{{orgendpoint}}/services/data/{{version}}/connect/comms/promotionManagement/v4/promotion/{promotionCode}

NOTE:
For invalid customer ID, you receive HTTP 404 error.
Based on the provided field values, retrieve and display details of promotion.GET with Fields{{orgendpoint}}/services/data/{{version}}/connect/comms/promotionManagement/v4/promotion?fields=name

NOTE:
The requested fields are part of output, if they have value.
List all the promotions present in the system.GET List{{orgendpoint}}/services/data/{{version}}/connect/comms/promotionManagement/v4/promotion
List promotion details present in the system based on the filter applied.GET List with Filtering{{orgendpoint}}/services/data/{{version}}/connect/comms/promotionManagement/v4/promotion?name={name}

NOTE:
The requested fields are part of output, if they have value.
List promotions, limit the number of promotions to a maximum of specified limit, and
starts the results display from page specified by offset.
GET List by limit and offset{{orgendpoint}}/services/data/{{version}}/connect/comms/promotionManagement/v4/promotion?offset=2&pageLimit=2&pageinfo=true
Create a new promotion by providing the required details.POST{{orgendpoint}}/services/data/{{version}}/connect/comms/promotionManagement/v4/promotion

NOTE:
A new customer account gets created based on the values mentioned for the mandatory fields.

GET by ID 

Consider you want to retrieve details of a particular promotion.

Sample URL 

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/data/v63.0/connect/comms/promotionManagement/v4/promotion/TMF671PostRequest10

Sample Response 

1Response - 200 OK
2{
3  "id": "TMF671PostRequest10",
4  "href": "/connect/comms/promotionmanagement/v5/promotion/TMF671PostRequest10",
5  "name": "CustomButtonsStep",
6  "lifecycleStatus": false,
7  "lastUpdate": "Fri Nov 08 04:59:52 GMT 2024",
8  "validFor": {
9      "startDateTime": "Sun Nov 10 04:54:00 GMT 2024",
10      "endDateTime": "null"
11  },
12  "pattern": [
13      {
14          "id": "TMF",
15          "name": "runtime_industries_ups__Build_Your_Own_Promotion_TMF",
16          "action": [
17              {
18                  "id": "AmountOff",
19                  "actionType": "10",
20                  "actionValue": "20",
21                  "@type": "PromotionAction"
22              }
23          ],
24          "criteriaGroup": [
25              {
26                  "id": "1",
27                  "criteriaLogicalRelationship": "1",
28                  "groupName": "NewCriteria",
29                  "criteria": [
30                      {
31                          "id": "1",
32                          "criteriaOperator": "Equals",
33                          "criteriaParameter": "productId",
34                          "criteriaValue": "abc",
35                          "@type": "PromotionCriteria"
36                      }
37                  ]
38              }
39          ],
40          "@type": "PromotionPattern",
41          "priority" : 1
42      }
43  ],
44  "@type": "Promotion"
45}

GET with Fields 

Consider you want to retrieve details of the promotion and get these details in the output.

  • name

Sample URL 

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/data/v63.0/connect/comms/promotionManagement/v4/promotion?fields=name

Sample Response 

1[
2
3  {
4      "validFor": {
5          "startDateTime": "null",
6          "endDateTime": "null"
7      },
8      "@type": "Promotion",
9      "lastUpdate": "null",
10      "name": "TMF671PostRequest2",
11      "href": "/connect/comms/promotionmanagement/v5/promotion/${id}"
12  },
13  {
14      "validFor": {
15          "startDateTime": "null",
16          "endDateTime": "null"
17      },
18      "@type": "Promotion",
19      "lastUpdate": "null",
20      "name": "TMF671PostRequest3",
21      "href": "/connect/comms/promotionmanagement/v5/promotion/${id}"
22  },
23  {
24      "validFor": {
25          "startDateTime": "null",
26          "endDateTime": "null"
27      },
28      "@type": "Promotion",
29      "lastUpdate": "null",
30      "name": "CustomButtonsStep",
31      "href": "/connect/comms/promotionmanagement/v5/promotion/${id}"
32  }
33]

GET List 

Consider there are multiple promotions in the system and you want to list all of them.

Sample URL 

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/data/v63.0/connect/comms/promotionManagement/v4/promotion

Sample Response 

1[
2  {
3      "lifecycleStatus": false,
4      "validFor": {
5          "startDateTime": "Fri Jan 10 00:00:00 GMT 2025",
6          "endDateTime": "null"
7      },
8      "@type": "Promotion",
9      "lastUpdate": "Fri Nov 08 03:48:44 GMT 2024",
10      "name": "TMF671Testing2",
11      "pattern": [
12          {
13              "id": "Request102",
14              "name": "runtime_industries_ups__Build_Your_Own_Promotion_Request102",
15              "action": [
16                  {
17                      "id": "VoucherName",
18                      "actionType": "7",
19                      "actionValue": "2Xaxx0000000001CAA",
20                      "@type": "PromotionAction"
21                  }
22              ],
23              "criteriaGroup": [
24                  {
25                      "id": "1",
26                      "criteriaLogicalRelationship": "1",
27                      "groupName": "NewCriteria",
28                      "criteria": [
29                          {
30                              "id": "1",
31                              "criteriaOperator": "Equals",
32                              "criteriaParameter": "voucherCode",
33                              "criteriaValue": "XYZ",
34                              "@type": "PromotionCriteria"
35                          }
36                      ]
37                  }
38              ],
39              "priority" : 2,
40              "@type": "PromotionPattern"
41          }
42      ],
43      "description": "TMF671Testing2",
44      "id": "TMF671Testing2",
45      "href": "/connect/comms/promotionmanagement/v5/promotion/TMF671Testing2"
46  },
47  {
48      "lifecycleStatus": false,
49      "validFor": {
50          "startDateTime": "Fri Jan 10 00:00:00 GMT 2025",
51          "endDateTime": "null"
52      },
53      "@type": "Promotion",
54      "lastUpdate": "Fri Nov 08 04:19:11 GMT 2024",
55      "name": "TMF671PostRequest1",
56      "pattern": [
57          {
58              "id": "Request1",
59              "name": "runtime_industries_ups__Build_Your_Own_Promotion_Request1",
60              "action": [
61                  {
62                      "id": "VoucherName",
63                      "actionType": "7",
64                      "actionValue": "2Xaxx0000000001CAA",
65                      "@type": "PromotionAction"
66                  }
67              ],
68              "criteriaGroup": [
69                  {
70                      "id": "1",
71                      "criteriaLogicalRelationship": "1",
72                      "groupName": "NewCriteria",
73                      "criteria": [
74                          {
75                              "id": "1",
76                              "criteriaOperator": "Equals",
77                              "criteriaParameter": "voucherCode",
78                              "criteriaValue": "XYZ",
79                              "@type": "PromotionCriteria"
80                          }
81                      ]
82                  }
83              ],
84              "@type": "PromotionPattern",
85              "priority" : 4,
86          }
87      ],
88      "description": "TMF671Promo",
89      "id": "TMF671PostRequest1",
90      "href": "/connect/comms/promotionmanagement/v5/promotion/TMF671PostRequest1"
91  },
92  {
93      "lifecycleStatus": false,
94      "validFor": {
95          "startDateTime": "Fri Jan 10 00:00:00 GMT 2025",
96          "endDateTime": "null"
97      },
98      "@type": "Promotion",
99      "lastUpdate": "Fri Nov 08 04:20:23 GMT 2024",
100      "name": "TMF671PostRequest2",
101      "pattern": [
102          {
103              "id": "Request2",
104              "name": "runtime_industries_ups__Build_Your_Own_Promotion_Request2",
105              "action": [
106                  {
107                      "id": "PercentageOff",
108                      "actionType": "8",
109                      "actionValue": "4",
110                      "@type": "PromotionAction"
111                  }
112              ],
113              "criteriaGroup": [
114                  {
115                      "id": "1",
116                      "criteriaLogicalRelationship": "1",
117                      "groupName": "NewCriteria",
118                      "criteria": [
119                          {
120                              "id": "1",
121                              "criteriaOperator": "Equals",
122                              "criteriaParameter": "voucherCode",
123                              "criteriaValue": "XYZ",
124                              "@type": "PromotionCriteria"
125                          }
126                      ]
127                  }
128              ],
129              "priority" : 1
130              "@type": "PromotionPattern"
131          }
132      ],
133      "description": "TMF671Promo",
134      "id": "TMF671PostRequest2",
135      "href": "/connect/comms/promotionmanagement/v5/promotion/TMF671PostRequest2"
136  }
137]

GET List with Filtering 

Consider you want to retrieve all the promotions present in the system with applied filter values.

Sample URL 

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/data/v63.0/connect/comms/promotionManagement/v4/promotion?name=CustomButtonsStep

Sample Response 

1status : 200
2[
3  {
4      "lifecycleStatus": false,
5      "validFor": {
6          "startDateTime": "Sun Nov 10 04:54:00 GMT 2024",
7          "endDateTime": "null"
8      },
9      "@type": "Promotion",
10      "lastUpdate": "Fri Nov 08 04:59:52 GMT 2024",
11      "name": "CustomButtonsStep",
12      "pattern": [
13          {
14              "id": "TMF",
15              "name": "runtime_industries_ups__Build_Your_Own_Promotion_TMF",
16              "action": [
17                  {
18                      "id": "AmountOff",
19                      "actionType": "10",
20                      "actionValue": "20",
21                      "@type": "PromotionAction"
22                  }
23              ],
24              "criteriaGroup": [
25                  {
26                      "id": "1",
27                      "criteriaLogicalRelationship": "1",
28                      "groupName": "NewCriteria",
29                      "criteria": [
30                          {
31                              "id": "1",
32                              "criteriaOperator": "Equals",
33                              "criteriaParameter": "productId",
34                              "criteriaValue": "abc",
35                              "@type": "PromotionCriteria"
36                          }
37                      ]
38                  }
39              ],
40              "priority" : 8
41              "@type": "PromotionPattern"
42          }
43      ],
44      "id": "TMF671PostRequest10",
45      "href": "/connect/comms/promotionmanagement/v5/promotion/TMF671PostRequest10"
46  }
47]

GET List by limit and offset 

Consider you want to

  • Retrieve a list of promotions
  • Limit the number of promotions to a maximum of specified limit
  • Start the results display from page specified by offset

Sample URL 

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/data/v63.0/connect/comms/promotionManagement/v4/promotion?offset=2&pageLimit=2&pageinfo=true

NOTE: If there are multiple quotes, the above pagination query - limit=2&offset=70 will start display from page 70 and will have 2 records.

Sample Response 

1{
2    "currentPage": 2,
3    "totalPageSize" : 5,
4    "recordList" : [
5        {
6            "lifecycleStatus": false,
7            "validFor": {
8                "startDateTime": "Fri Jan 10 00:00:00 GMT 2025",
9                "endDateTime": "null"
10            },
11            "@type": "Promotion",
12            "lastUpdate": "Fri Nov 08 03:48:44 GMT 2024",
13            "name": "TMF671Testing2",
14            "pattern": [
15                {
16                    "id": "Request102",
17                    "name": "runtime_industries_ups__Build_Your_Own_Promotion_Request102",
18                    "action": [
19                        {
20                            "id": "VoucherName",
21                            "actionType": "7",
22                            "actionValue": "2Xaxx0000000001CAA",
23                            "@type": "PromotionAction"
24                        }
25                    ],
26                    "criteriaGroup": [
27                        {
28                            "id": "1",
29                            "criteriaLogicalRelationship": "1",
30                            "groupName": "NewCriteria",
31                            "criteria": [
32                                {
33                                    "id": "1",
34                                    "criteriaOperator": "Equals",
35                                    "criteriaParameter": "voucherCode",
36                                    "criteriaValue": "XYZ",
37                                    "@type": "PromotionCriteria"
38                                }
39                            ]
40                        }
41                    ],
42                    "@type": "PromotionPattern"
43                    "priority" : 1
44                }
45            ],
46            "description": "TMF671Testing2",
47            "id": "TMF671Testing2",
48            "href": "/connect/comms/promotionmanagement/v5/promotion/TMF671Testing2"
49        },
50        {
51            "lifecycleStatus": false,
52            "validFor": {
53                "startDateTime": "Fri Jan 10 00:00:00 GMT 2025",
54                "endDateTime": "null"
55            },
56            "@type": "Promotion",
57            "lastUpdate": "Fri Nov 08 04:20:23 GMT 2024",
58            "name": "TMF671PostRequest2",
59            "pattern": [
60                {
61                    "id": "Request2",
62                    "name": "runtime_industries_ups__Build_Your_Own_Promotion_Request2",
63                    "action": [
64                        {
65                            "id": "PercentageOff",
66                            "actionType": "8",
67                            "actionValue": "4",
68                            "@type": "PromotionAction"
69                        }
70                    ],
71                    "criteriaGroup": [
72                        {
73                            "id": "1",
74                            "criteriaLogicalRelationship": "1",
75                            "groupName": "NewCriteria",
76                            "criteria": [
77                                {
78                                    "id": "1",
79                                    "criteriaOperator": "Equals",
80                                    "criteriaParameter": "voucherCode",
81                                    "criteriaValue": "XYZ",
82                                    "@type": "PromotionCriteria"
83                                }
84                            ]
85                        }
86                    ],
87                    "@type": "PromotionPattern",
88                    "priority" : 5
89                }
90            ],
91            "description": "TMF671Promo",
92            "id": "TMF671PostRequest2",
93            "href": "/connect/comms/promotionmanagement/v5/promotion/TMF671PostRequest2"
94        }
95    ]
96}

POST 

Consider you want to create a new promotion with full payload.

Sample URL 

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/data/v63.0/connect/comms/promotionManagement/v4/promotion

Sample Request 1 ActionId: VoucherName 

1{
2  "id": "TMF671PostRequest1",
3  "name": "TMF671PostRequest1",
4  "description": "TMF671Promo",
5  "validFor": {
6      "startDateTime": "1/10/2025"
7  },
8  "pattern": [
9      {
10          "id": "Vaibhav",
11          "name": "Request1",
12          "priority": 24,
13          "action": [
14              {
15                  "id": "VoucherName",
16                  "actionType": "7",
17                  "actionValue": "2Xaxx0000000001CAA"
18              }
19          ],
20          "criteriaGroup": [
21              {
22                  "id": "1",
23                  "criteriaLogicalRelationship": "1",
24                  "groupName": "NewCriteria",
25                  "criteria": [
26                      {
27                          "id": "1",
28                          "criteriaOperator": "Equals",
29                          "criteriaParameter": "voucherCode",
30                          "criteriaValue": "XYZ"
31                      }
32                  ]
33              }
34          ]
35      }
36  ]
37}

Sample Response 

1status 201
2
3{
4  "id": "TMF671PostRequest1",
5  "href": "/connect/comms/promotionmanagement/v5/promotion/TMF671PostRequest1",
6  "name": "TMF671PostRequest1",
7  "description": "TMF671Promo",
8  "lifecycleStatus": false,
9  "lastUpdate": "Fri Nov 08 04:19:11 GMT 2024",
10  "validFor": {
11      "startDateTime": "Fri Jan 10 00:00:00 GMT 2025",
12      "endDateTime": "null"
13  },
14  "pattern": [
15      {
16          "id": "Pattern1",
17          "name": "runtime_industries_ups__Build_Your_Own_Promotion_Request1",
18          "action": [
19              {
20                  "id": "VoucherName",
21                  "actionType": "7",
22                  "actionValue": "2Xaxx0000000001CAA",
23                  "@type": "PromotionAction"
24              }
25          ],
26          "criteriaGroup": [
27              {
28                  "id": "1",
29                  "criteriaLogicalRelationship": "1",
30                  "groupName": "NewCriteria",
31                  "criteria": [
32                      {
33                          "id": "1",
34                          "criteriaOperator": "Equals",
35                          "criteriaParameter": "voucherCode",
36                          "criteriaValue": "XYZ",
37                          "@type": "PromotionCriteria"
38                      }
39                  ]
40              }
41          ],
42          "@type": "PromotionPattern"
43      }
44  ],
45  "@type": "Promotion"
46}

Sample Request 2 actionId: PercentageOff 

1{
2  "id": "TMF671PostRequest2",
3  "name": "TMF671PostRequest2",
4  "description": "TMF671Promo",
5  "validFor": {
6      "startDateTime": "1/10/2025"
7  },
8  "pattern": [
9      {
10          "id": "Pattern1",
11          "name": "Request2",
12          "priority": 25,
13          "action": [
14              {
15                  "id": "PercentageOff",
16                  "actionType": "8",
17                  "actionValue": "4"
18              }
19          ],
20          "criteriaGroup": [
21              {
22                  "id": "1",
23                  "criteriaLogicalRelationship": "1",
24                  "groupName": "NewCriteria",
25                  "criteria": [
26                      {
27                          "id": "1",
28                          "criteriaOperator": "Equals",
29                          "criteriaParameter": "voucherCode",
30                          "criteriaValue": "XYZ"
31                      }
32                  ]
33              }
34          ]
35      }
36  ]
37}

Sample Response 

1status 201
2{
3  "id": "TMF671PostRequest2",
4  "href": "/connect/comms/promotionmanagement/v5/promotion/TMF671PostRequest2",
5  "name": "TMF671PostRequest2",
6  "description": "TMF671Promo",
7  "lifecycleStatus": false,
8  "lastUpdate": "Fri Nov 08 04:20:23 GMT 2024",
9  "validFor": {
10      "startDateTime": "Fri Jan 10 00:00:00 GMT 2025",
11      "endDateTime": "null"
12  },
13  "pattern": [
14      {
15          "id": "Pattern1",
16          "name": "runtime_industries_ups__Build_Your_Own_Promotion_Request2",
17          "action": [
18              {
19                  "id": "PercentageOff",
20                  "actionType": "8",
21                  "actionValue": "4",
22                  "@type": "PromotionAction"
23              }
24          ],
25          "criteriaGroup": [
26              {
27                  "id": "1",
28                  "criteriaLogicalRelationship": "1",
29                  "groupName": "NewCriteria",
30                  "criteria": [
31                      {
32                          "id": "1",
33                          "criteriaOperator": "Equals",
34                          "criteriaParameter": "voucherCode",
35                          "criteriaValue": "XYZ",
36                          "@type": "PromotionCriteria"
37                      }
38                  ]
39              }
40          ],
41          "@type": "PromotionPattern"
42      }
43  ],
44  "@type": "Promotion"
45}

Sample Request 3 AccountId: AmountOff 

1{
2  "id": "TMF671PostRequest2",
3  "name": "TMF671PostRequest2",
4  "description": "TMF671Promo",
5  "validFor": {
6      "startDateTime": "1/10/2025"
7  },
8  "pattern": [
9      {
10          "id": "Pattern1",
11          "name": "Request2",
12          "priority": 25,
13          "action": [
14              {
15                  "id": "PercentageOff",
16                  "actionType": "8",
17                  "actionValue": "4"
18              }
19          ],
20          "criteriaGroup": [
21              {
22                  "id": "1",
23                  "criteriaLogicalRelationship": "1",
24                  "groupName": "NewCriteria",
25                  "criteria": [
26                      {
27                          "id": "1",
28                          "criteriaOperator": "Equals",
29                          "criteriaParameter": "voucherCode",
30                          "criteriaValue": "XYZ"
31                      }
32                  ]
33              }
34          ]
35      }
36  ]
37}

Sample Response 

1status 201
2{
3  "id": "TMF671PostRequest2",
4  "href": "/connect/comms/promotionmanagement/v5/promotion/TMF671PostRequest2",
5  "name": "TMF671PostRequest2",
6  "description": "TMF671Promo",
7  "lifecycleStatus": false,
8  "lastUpdate": "Fri Nov 08 04:20:23 GMT 2024",
9  "validFor": {
10      "startDateTime": "Fri Jan 10 00:00:00 GMT 2025",
11      "endDateTime": "null"
12  },
13  "pattern": [
14      {
15          "id": "Pattern1",
16          "name": "runtime_industries_ups__Build_Your_Own_Promotion_Request2",
17          "action": [
18              {
19                  "id": "PercentageOff",
20                  "actionType": "8",
21                  "actionValue": "4",
22                  "@type": "PromotionAction"
23              }
24          ],
25          "criteriaGroup": [
26              {
27                  "id": "1",
28                  "criteriaLogicalRelationship": "1",
29                  "groupName": "NewCriteria",
30                  "criteria": [
31                      {
32                          "id": "1",
33                          "criteriaOperator": "Equals",
34                          "criteriaParameter": "voucherCode",
35                          "criteriaValue": "XYZ",
36                          "@type": "PromotionCriteria"
37                      }
38                  ]
39              }
40          ],
41          "@type": "PromotionPattern"
42      }
43  ],
44  "@type": "Promotion"
45}