Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.
Update Insurance Quote Action
This action is available in API version 66.0 and later.
Supported REST HTTP Methods
- URI
- /services/data/v68.0/actions/standard/updateInsuranceQuote
- Formats
- JSON, XML
- HTTP Methods
- POST
- Authentication
- Authorization: Bearertoken
Inputs
| Input | Details |
|---|---|
| addedNodes |
|
| additionalFields |
|
| contextId |
|
| deletedNodes |
|
| pricingProcedureApiName |
|
| quoteId |
|
| quoteOptions |
|
| updatedNodes |
|
Outputs
| Output | Details |
|---|---|
| contextId |
|
| errorsList |
|
| isSuccess |
|
| quoteId |
|
Example
- POST
-
This sample request is for the Update Insurance Quote action.
1{ 2 "inputs": [ 3 { 4 "quoteId": "0Q0xx000000001xAAA", 5 "contextId": "11oxx000001G0lUAAS", 6 "pricingProcedureApiName": "StandardPricing", 7 "addedNodes": "[{\"productCode\":\"autoBundle\",\"instanceKeys\":[\"multiAuto\",\"autoBundle\"],\"attributes\":{\"VehicleYear\":\"2024\",\"VehicleMake\":\"Toyota\"},\"items\":[{\"productCode\":\"auto\",\"instanceKeys\":[\"multiAuto\",\"autoBundle\",\"auto\"],\"attributes\":{\"VehicleType\":\"Sedan\"}}]}]", 8 "updatedNodes": "[{\"productCode\":\"driver\",\"instanceKeys\":[\"multiAuto\",\"autoBundle\",\"driverTom\"],\"attributes\":{\"DriverAge\":\"35\",\"LicenseNumber\":\"D1234567\"}}]", 9 "deletedNodes": "[{\"productCode\":\"coverage\",\"instanceKeys\":[\"multiAuto\",\"autoBundle\",\"auto\",\"collision\"]}]", 10 "additionalFields": "{\"customField1\":\"value1\",\"customField2\":\"value2\"}", 11 "quoteOptions": { 12 "executePricing": true, 13 "executeConfigurationRules": true, 14 "executeQualificationRules": false, 15 "validateProductCatalog": true, 16 "saveQuote": false 17 } 18 } 19 ] 20} -
This is a sample request to call this invocable action from Apex code.
1// Sample Apex call for updateInsuranceQuote invocable action 2public class UpdateInsuranceQuoteInvoke { 3 private static final String ACTION_NAME = 'updateInsuranceQuote'; 4 5 public static Boolean invokeMethod(Map<String, Object> inputs, Map<String, Object> output) { 6 if (output == null) { 7 output = new Map<String, Object>(); 8 } 9 10 try { 11 Invocable.Action action = Invocable.Action.createStandardAction(ACTION_NAME); 12 13 // Required input 14 setInvocationParameter(action, inputs, 'quoteId', false); 15 16 // Optional inputs 17 setInvocationParameter(action, inputs, 'contextId', false); 18 setInvocationParameter(action, inputs, 'addedNodes', true); 19 setInvocationParameter(action, inputs, 'updatedNodes', true); 20 setInvocationParameter(action, inputs, 'deletedNodes', true); 21 setInvocationParameter(action, inputs, 'additionalFields', true); 22 23 // quoteOptions is required by the IA contract 24 if (inputs != null && inputs.containsKey('quoteOptions')) { 25 Map<String, Object> optionsFromInput = 26 (Map<String, Object>) inputs.get('quoteOptions'); 27 if (optionsFromInput != null) { 28 runtime_industries_insurance.UpdateInsuranceQuoteOptions quoteOptions = 29 new runtime_industries_insurance.UpdateInsuranceQuoteOptions(); 30 if (optionsFromInput.containsKey('executePricing')) { 31 quoteOptions.executePricing = 32 (Boolean) optionsFromInput.get('executePricing'); 33 } 34 if (optionsFromInput.containsKey('validateProductCatalog')) { 35 quoteOptions.validateProductCatalog = 36 (Boolean) optionsFromInput.get('validateProductCatalog'); 37 } 38 if (optionsFromInput.containsKey('executeConfigurationRules')) { 39 quoteOptions.executeConfigurationRules = 40 (Boolean) optionsFromInput.get('executeConfigurationRules'); 41 } 42 if (optionsFromInput.containsKey('executeQualificationRules')) { 43 quoteOptions.executeQualificationRules = 44 (Boolean) optionsFromInput.get('executeQualificationRules'); 45 } 46 if (optionsFromInput.containsKey('saveQuote')) { 47 quoteOptions.saveQuote = 48 (Boolean) optionsFromInput.get('saveQuote'); 49 } 50 action.setInvocationParameter('quoteOptions', quoteOptions); 51 } 52 } 53 54 List<Invocable.Action.Result> results = action.invoke(); 55 if (results != null && !results.isEmpty() && results[0].isSuccess()) { 56 output.put('output', results[0].getOutputParameters()); 57 output.put('success', true); 58 return true; 59 } 60 61 output.put('success', false); 62 if (results != null && !results.isEmpty()) { 63 output.put('errors', results[0].getErrors()); 64 } 65 return false; 66 } catch (Exception e) { 67 output.put('success', false); 68 output.put('errorMessage', e.getMessage()); 69 return false; 70 } 71 } 72 73 private static void setInvocationParameter( 74 Invocable.Action action, 75 Map<String, Object> payload, 76 String attribute, 77 Boolean serializeJson 78 ) { 79 if (payload != null && payload.containsKey(attribute) && payload.get(attribute) != null) { 80 if (serializeJson) { 81 action.setInvocationParameter(attribute, JSON.serialize(payload.get(attribute))); 82 } else { 83 action.setInvocationParameter(attribute, payload.get(attribute)); 84 } 85 } 86 } 87} -
This sample response is for the Update Insurance Quote action.
1[ 2 { 3 "actionName": "repriceInsuranceProduct", 4 "errors": null, 5 "invocationId": null, 6 "isSuccess": true, 7 "outcome": null, 8 "outputValues": { 9 "isSuccess": true, 10 "quoteId": "0Q0xx000000001xAAA", 11 "contextId": "11oxx000001G0lUAAS", 12 "errorsList": "[]" 13 }, 14 "sortOrder": -1, 15 "version": 1 16 } 17]