Group Ramp Action Input

Understand the sample request to specify group ramp actions during initial sale.

Json Example To Edit A Group

This is a sample request that creates the first ramp segment. This request accepts IDs of a quote and quote line group. Additionally, the request accepts attributes of quote line group such as IsRamped, SegmentType, StartDate, and EndDate. A ramp segment is created with a ramp identifier and segment identifier added to all the quote line items available in the ramp segment.

This process converts a group into a segment, which becomes the first segment in the ramp schedule. A quote can contain a single ramp schedule only. To create another segment in the ramp schedule, use the Clone Sales Transaction API.

1{
2  "groupRampAction": "EditGroup",
3  "pricingPref": "System",
4  "graph": {
5    "graphId": "updateQuote",
6    "records": [
7      {
8        "referenceId": "0Q0xx0000004CYqCAM",
9        "record": {
10          "attributes": {
11            "type": "Quote",
12            "method": "PATCH",
13            "id": "0Q0xx0000004CYqCAM"
14          }
15        }
16      },
17      {
18        "referenceId": "1C9xx0000004CVcCAM",
19        "record": {
20          "attributes": {
21            "type": "QuoteLineGroup",
22            "method": "PATCH",
23            "id": "1C9xx0000004CVcCAM"
24          },
25          "StartDate": "2025-05-01",
26          "EndDate": "2025-06-30",
27          "SortOrder": 1,
28          "IsRamped": true,
29          "SegmentType": "Custom"
30        }
31      }
32    ]
33  }
34}

Json Example To Edit A Ramp Segment

This is a sample request to edit multiple ramp segments simultaneously, maintaining date continuity among ramp segments.
1{
2  "groupRampAction": "EditRampSchedule",
3  "pricingPref": "System",
4  "graph": {
5    "graphId": "updateQuote",
6    "records": [
7      {
8        "referenceId": "0Q0xx0000004CYqCAM",
9        "record": {
10          "attributes": {
11            "type": "Quote",
12            "method": "PATCH",
13            "id": "0Q0xx0000004CYqCAM"
14          }
15        }
16      },
17      {
18        "referenceId": "1C9xx0000004CVcCAM",
19        "record": {
20          "attributes": {
21            "type": "QuoteLineGroup",
22            "method": "PATCH",
23            "id": "1C9xx0000004CVcCAM"
24          },
25          "StartDate": "2025-05-01",
26          "EndDate": "2025-06-30"
27        }
28      },
29      {
30        "referenceId": "1C9xx0000004CVcAAM",
31        "record": {
32          "attributes": {
33            "type": "QuoteLineGroup",
34            "method": "PATCH",
35            "id": "1C9xx0000004CVcAAM"
36          },
37          "StartDate": "2025-07-01",
38          "EndDate": "2025-08-30"
39        }
40      },
41      {
42        "referenceId": "1C9xx0000004CVcBAM",
43        "record": {
44          "attributes": {
45            "type": "QuoteLineGroup",
46            "method": "PATCH",
47            "id": "1C9xx0000004CVcBAM"
48          },
49          "StartDate": "2025-09-01",
50          "EndDate": "2025-10-30"
51        }
52      }
53    ]
54  }
55}

Json Example To Add A Product

This is a sample request to add a product to the current and subsequent segments. A ramp identifier and segment identifier are added to the quote line items.
1{
2  "groupRampAction": "AddProducts",
3  "pricingPref": "System",
4  "graph": {
5    "graphId": "updateQuote",
6    "records": [
7      {
8        "referenceId": "0Q0xx0000004CKKCA2",
9        "record": {
10          "attributes": {
11            "type": "Quote",
12            "method": "PATCH",
13            "id": "0Q0xx0000004CKKCA2"
14          }
15        }
16      },
17      {
18        "referenceId": "1C9xx0000004CCGCA2",
19        "record": {
20          "attributes": {
21            "type": "QuoteLineGroup",
22            "method": "PATCH",
23            "id": "1C9xx0000004CCGCA2"
24          }
25        }
26      },
27      {
28        "referenceId": "ref_01txx0000006iCXAAY_0",
29        "record": {
30          "attributes": {
31            "type": "QuoteLineItem",
32            "method": "POST",
33            "id": "ref_01txx0000006iCXAAY_0"
34          },
35          "QuoteId": "@{0Q0xx0000004CKKCA2.id}",
36          "Id": "ref_01txx0000006iCXAAY_0",
37          "UnitPrice": 2000,
38          "Product2Id": "01txx0000006iCXAAY",
39          "PricebookEntryId": "01uxx0000008yciAAA",
40          "Quantity": 1,
41          "StartDate": "2025-05-28T00:00:00.000Z",
42          "BillingFrequency": null,
43          "PeriodBoundary": null,
44          "QuoteLineGroupId": "1C9xx0000004CCGCA2"
45        }
46      },
47      {
48        "referenceId": "1C9xx0000004CCGCAB",
49        "record": {
50          "attributes": {
51            "type": "QuoteLineGroup",
52            "method": "PATCH",
53            "id": "1C9xx0000004CCGCAB"
54          }
55        }
56      },
57      {
58        "referenceId": "ref_01txx0000006iCXABY_0",
59        "record": {
60          "attributes": {
61            "type": "QuoteLineItem",
62            "method": "POST",
63            "id": "ref_01txx0000006iCXABY_0"
64          },
65          "QuoteId": "@{0Q0xx0000004CKKCA2.id}",
66          "Id": "ref_01txx0000006iCXAAY_0",
67          "UnitPrice": 2000,
68          "Product2Id": "01txx0000006iCXAAY",
69          "PricebookEntryId": "01uxx0000008yciAAA",
70          "Quantity": 1,
71          "StartDate": "2025-05-28T00:00:00.000Z",
72          "BillingFrequency": null,
73          "PeriodBoundary": null,
74          "QuoteLineGroupId": "1C9xx0000004CCGCAB"
75        }
76      }
77    ]
78  }
79}

Json Example To Delete A Product

This is a sample request to delete a product from the current and subsequent ramp segments.
1{
2  "pricingPref": "System",
3  "groupRampAction": "DeleteProducts",
4  "graph": {
5    "graphId": "updateQuote",
6    "records": [
7      {
8        "referenceId": "0Q0SG000000L5r70AC",
9        "record": {
10          "attributes": {
11            "type": "Quote",
12            "method": "PATCH",
13            "id": "0Q0SG000000L5r70AC"
14          }
15        }
16      },
17      {
18        "referenceId": "0QLSG000000WuTh4AK",
19        "record": {
20          "attributes": {
21            "type": "QuoteLineItem",
22            "method": "DELETE",
23            "id": "0QLSG000000WuTh4AK"
24          }
25        }
26      },
27      {
28        "referenceId": "0QLSG000000WuTh4BK",
29        "record": {
30          "attributes": {
31            "type": "QuoteLineItem",
32            "method": "DELETE",
33            "id": "0QLSG000000WuTh4AK"
34          }
35        }
36      }
37    ]
38  }
39}

Json Example To Delete A Segment

This is a sample request to delete the first and last segment in a ramp schedule. The API throws an error if the specified segment isn't the first and last segment, ensuring there are no gaps between quote line items in different ramp segments.
1{
2  "pricingPref": "System",
3  "groupRampAction": "DeleteSegment",
4  "graph": {
5    "graphId": "updateQuote",
6    "records": [
7      {
8        "referenceId": "0Q0xx0000004CfICAU",
9        "record": {
10          "attributes": {
11            "type": "Quote",
12            "method": "PATCH",
13            "id": "0Q0xx0000004CfICAU"
14          }
15        }
16      },
17      {
18        "referenceId": "1C9xx0000004FjcCAE",
19        "record": {
20          "attributes": {
21            "type": "QuoteLineGroup",
22            "method": "DELETE",
23            "id": "1C9xx0000004FjcCAE",
24            "action": "DeleteGroup"
25          }
26        }
27      }
28    ]
29  }
30}

Json Example To Remove A Segment From A Ramp Schedule

This is a sample request to remove the first or last ramp segment in a ramp schedule. This request removes the ramp-specific fields from a quote line group such as IsRamped and SegmentType. Additionally, this request removes the RampIdentifier and SegmentIdentifier fields from a quote line item.
1{
2  "pricingPref": "System",
3  "groupRampAction": "ConvertToNonRampedGroup",
4  "graph": {
5    "graphId": "updateQuote",
6    "records": [
7      {
8        "referenceId": "0Q0xx0000004CfICAU",
9        "record": {
10          "attributes": {
11            "type": "Quote",
12            "method": "PATCH",
13            "id": "0Q0xx0000004CfICAU"
14          }
15        }
16      },
17      {
18        "referenceId": "1C9xx0000004FjcCAE",
19        "record": {
20          "attributes": {
21            "type": "QuoteLineGroup",
22            "method": "PATCH",
23            "id": "1C9xx0000004FjcCAE"
24          }
25        }
26      }
27    ]
28  }
29}

Keep these considerations in mind when you specify ramp actions.