Takes proposed price changes with their margin and volume impact through approval bands and writes the condition records to the ERP and the CRM price book with the right validity.
Objects are read in place through the REST and Bulk APIs, and changes arrive through Change Data Capture events, so a screen shows a record seconds after a seller edits it. The rows stay in Salesforce.
| Object | Read from | Fields the app uses | Freshness |
|---|---|---|---|
| Price condition | PricebookEntry · Product2 | Product2.ProductCode (material) · Pricebook2.Name (customer) · PricebookEntry.UnitPrice (amount) · CurrencyIsoCode (unit) | live through the API |
| Customer master | Account | Account.Id / AccountNumber (id) · Account.Name (name) · Account.BillingCountry (country) · Account.OwnerId (territory) (sales org) | live through the API |
| Sales order line | Order · OrderItem | Order.OrderNumber (number) · OrderItem.Id (line) · Order.AccountId (customer) · OrderItem.Product2Id (material) | live through the API |
| Quotation | Quote · QuoteLineItem (or SBQQ__Quote__c with CPQ) | Quote.QuoteNumber (number) · Quote.AccountId (customer) · Quote.TotalPrice (value) · Quote.ExpirationDate (valid to) | live through the API |
In plain words: A proposer submits S01 with at least 1 line whose new amount differs from the current condition.
This app starts from a screen, so the first read happens when the instance opens; the criteria on the arrows use the fields above.
A proposer submits S01 with at least 1 line whose new amount differs from the current condition. The instance then reads its rows from Salesforce through the handlers above.
Writes go through the REST API (update and composite calls) under the integration user's profile and sharing rules. Each call returns the record ID or an error message, and the app records both beside the decision.
| Object | What changes | Interface |
|---|---|---|
| Price condition | condition records created per material and customer with the new amount and validity; the previous record ended the day before | PATCH sobjects/PricebookEntry |
| Quotation | open quotations flagged with the new price for the owner to confirm or re-issue | PATCH sobjects/Quote (Status, approval fields) |
Each write stores the identifier Salesforce returns beside the decision, the person and the time, so the log answers who changed what, and the reconciliation shows it arrived.
Profiles, roles and sharing rules are mapped to Lima access policies once. A seller who sees their own opportunities in Salesforce sees the same rows in the app.
The screens read through handlers that leave the rows in Salesforce. History the app needs at scale is landed in the lake by the Backbone, which is the exception by design.
The prerequisites above: an integration identity with read rights on the objects listed and write rights on the interfaces named, connectivity, and the scopes agreed with the process owner.
Yes. The screens, criteria and roles stay; the handlers are re-bound to the other system's objects, and the app's other system pages show them.
Bring the process and the systems it touches. In the first session we register the data handlers, draw the levels or the lanes and run the first screen on your live rows.