Newer Version Available
Group Ramp Action Input
Keep these considerations in mind when you specify ramp actions.
- Use the Clone Sales Transaction API to clone a ramp segment, and specify the clone option.
- Use the Place Sales Transaction API to specify a group ramp action by using the groupRampAction property. You can refer to the sections in this topic for examples.
- 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}