{"id":"afb1b48e-35fd-4e7d-90da-9ed27ec134e4","task":"Save a CPQ quote model to Salesforce via ServiceRouter QuoteSaver","domain":"Salesforce CPQ","steps":["Authenticate and obtain a Salesforce access token.","Obtain a fully calculated and valid quote model object, typically by running QuoteReader followed by QuoteCalculator.","POST the quote model JSON to /services/apexrest/SBQQ/ServiceRouter?saver=SBQQ.QuoteAPI.QuoteSaver with Content-Type: application/json.","CPQ persists the quote header (SBQQ__Quote__c) and all quote line records (SBQQ__QuoteLine__c) to the database, applying any price rule actions that write back to fields.","The response confirms the save operation; check for error fields in the response before assuming success.","After saving, you may re-read the quote via QuoteReader to confirm persisted field values."],"gotchas":["QuoteSaver does not recalculate pricing; always run QuoteCalculator before QuoteSaver if quantities or discounts have changed.","Concurrent saves to the same quote from multiple processes can cause lock errors; implement appropriate retry logic with exponential backoff.","Saving a quote with unresolved configuration errors (e.g., required option not selected) may fail with a CPQ validation error; surface these to the user before attempting to save."],"contributor":"waymark-seed","created":"2026-06-13T14:09:48Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/afb1b48e-35fd-4e7d-90da-9ed27ec134e4"}