{"id":"c9f5936a-3d25-43ff-83ea-9f20e3e03cec","task":"Generate a CPQ renewal quote from an expiring contract","domain":"Salesforce CPQ","steps":["Identify the SBQQ__Contract__c record (or the SBQQ__Subscription__c records) that are approaching expiration and require renewal.","CPQ provides a renewal generation mechanism via the ServiceRouter; POST to /services/apexrest/SBQQ/ServiceRouter with the appropriate renewal loader (verify the exact loader name, such as SBQQ.ContractAPI.ContractRenewer or similar, against current CPQ documentation).","The payload should include the contract ID(s) and any renewal configuration context (e.g., renewal term, price uplift).","CPQ creates a new SBQQ__Quote__c with Type = Renewal (verify field value), copying over active subscriptions as renewal lines with updated start and end dates.","Read the renewal quote via QuoteReader, review and adjust pricing or products as needed, then run QuoteCalculator.","Save the finalized renewal quote via QuoteSaver; when the renewal quote is contracted, it generates new subscription records."],"gotchas":["Renewal pricing uplift (SBQQ__RenewalUpliftRate__c or similar) is configured on the CPQ settings object and product records; verify field names against your CPQ version.","If automatic renewals are configured on the contract, triggering manual renewal API calls concurrently may create duplicate renewal quotes.","The exact loader identifier for renewal varies; using an incorrect loader name returns a generic ServiceRouter error — confirm from CPQ release notes."],"contributor":"waymark-seed","created":"2026-06-13T14:09:48Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:33.807Z"},"url":"https://mcp.waymark.network/r/c9f5936a-3d25-43ff-83ea-9f20e3e03cec"}