In order to control price deviations at One Quote level, a custom approval process has been built. We built it in order to manage potentially different approvers per product lines.

I/ Approval fields calculation during price configuration

  • At One Quote line item level as soon the "Quoted price" is edited, the system calculates dynamically if there is an approval needed or not(1):

Depending on the deviation one of the 3 roles below may need to approve:

    • RMD (Regional market director)
    • GMD (Global market director)
    • PAM (Product Attribute Manager)

To calculate the RMD and GMD approver role we use the corresponding approval thresholds % stored on the related volume bracket(2) and we calculate at OQLI level the "GMD approval" and "RMD approval" threshold unit values.


    • If the quoted margin is below  "RMD approval" and above "GMD approval" and Price floor the approver role will be RMD
    • If the quoted margin is below "GMD approval" and above price floor the approver role will be GMD
    • If the quoted margin is below "Price floor" the approver will be PAM

If the "enable scaling price" checkbox is enabled at OQLI level we compare the minimum price between Quoted price/ Price (Bracket 2) / Price (Bracket 3) to know if there is an approval needed or not.

  • Absolute thresholds:

We also implemented an absolute threshold logic to request an approval if the annual impact of the deviation will raise a certain amount.

Absolute thresholds are maintained at Custom metadata level (One Quote Approval)(3) and at the moment only Novecare use it.

For Novecare values are the below:

    • RMD Absolute threshold = 20 000€
    • GMD Absolute threshold = 100 000€

To give a concrete example how it works the system calculates the price impact versus the estimated annual volume.

Egs:

If an OQLI has a estimated annual volume at 150 000 kg, a price guidance at 2€/kg and a quoted price at 1,5€/kg. The annual impact is (2€-1,5€)*150 000 = 75 000€. On this example we meet the RMD aboslute thresold and an approval will be require even if we are above the RMD approval threshold.


  • Approver matrix:

For the system to find the right approver after an approver role is defined at OQLI level we maintain a matrix at utility level on the "One Quotes price deviation"(4) record type.

We look at the record with the same combination of GBU/BU/Region/Role and we retrieve the approver.

Edit access to this matrix is managed via sharing rule:


  • List of OQLI fields used on the approval process:
Field NameComment
Estimated Annual volumeUse to calculate the annual impact to be compared with absolute thresholds.
Quoted PriceTo be compared with thresholds to know if there is an approval needed. Use for GBU different than Novecare.

Price (Bracket 2)

Use if scaling price is true. We compare the minum value between quoted price, price (bracket 2) and price (bracket 3) with thresholds to know if there is an approval needed.

Price (Bracket 3)

Use if scaling price is true. We compare the minum value between quoted price, price (bracket 2) and price (bracket 3) with thresholds to know if there is an approval needed.
Quoted MarginTo be compared with thresholds to know if there is an approval needed.
Price GuidanceUse to calculate GMD and RMD Approval fields for GBU different than Novecare.
Margin GuidanceUse to calculate GMD and RMD 
Price FloorTo be compared with the quoted price to know if there is a PAM approval needed when below. 
Margin FloorTo be compared with the quoted margin to know if there is a PAM approval needed when below. 
GMD ApprovalTo be compared with the quoted margin and the quoted price to know if there is a GMD approval needed when below. 
RMD ApprovalTo be compared with the quoted margin and the quoted price to know if there is an RMD approval needed when below. 
Approver RoleTo track who will be the approver role to retrieve from the matrix.
Approval StatusTo track the status of the OQLI on the approval process.
ApproverTo track the approver Name.

For more information on fields formulas please check Unable to locate Jira server for this macro. It may be due to Application Link configuration.

II/ Approval process

  • Send a One Quote for approval

To send a quote for approval the One Quote owner has to click on the "Send for approval"(5) button at the top right of the LWC on the "Configuration and Product" tab.

Condition for the button to be displayed:

All the product lines have to be configured. An OQLI is considered configured as soon the "Product & Plant" and "Customer & demand" columns are fully populated.

As soon the button is pushed with no errors, the One Quote status is updated to "Sent for approval", the OQLI status of the lines requiring approval are updated to "Approval pending". All the lines with no approval needed are updated to approve.

The table and the quote are now in read only for the One Quote owner.


Note : Send for Approval & OQLI Price Settings

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

If at least one OQLI has has its price settings to False, then we display a Red Banner at the top of the line (10)  + we greyed out the "Send foir Approval"  (11) Buttons in order for the user not to be able to select it.

Unable to locate Jira server for this macro. It may be due to Application Link configuration. :

Whenever all OQLI have active price settings, then the Red banner disappear and the Send For Approval button is clickable.

This will happen when an account manager set new values of active Manuf/shipping plant on the inactive lines. 



If you want to know more about OQLI Price setting please go here => FD - [CORE] Quote Price Settings





















































  • Approval / Rejection process

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

When the approver goes to the quote, all the lines where he's the approver are highlited in orange(6). A new "Approved" column is now displayed(7) for him to let him the possibility to approve or reject all his lines individually.

The approver has also the possibility to write a comment on the approval comment field on the LWC(8).

As soon all his decision are made, a "Send decision"(9) button is displayed at the top right of the LWC.

When the button is pushed, all approved lines are updated to approve and all rejected lines are updated to rejected.

Rejection process:

If a line is rejected, the One Quote owner has the possibility to edit again the line and review the approver comment to edit the price or delete the line. Then he will need to send for approval again to move forward.

As soon all the lines status are "Approved", the One Quote status is automatically updated to "Approved" and the owner can move forwards on the process.




III/ Notifications

Notifications are send by email and on the salesforce bell when the events below happens:

  • Quote sent for approval: Notification send to all the approvers on the quote
    •   Unable to locate Jira server for this macro. It may be due to Application Link configuration. + Email reminder is sent to the approver every 2 business days if approver has not approved the quote since the first approval notification for more than 2 days (Ex: we send the email on the 3rd business day)
    • Approver should also be reminded via salesforce notification bell
  • An OQLI is rejected: Notification send to the One Quote owner
  • A quote is fully approved: Notification send to the One Quote owner

IV/ Approval Automation

When a quote is moved to Approved some automation are done by flow :

  • Sales Org
    • If the sales org is not set (from renewed /clone quote), then based on the Sales org keys the system can identify the correct Sales Org Record in order to set the : 
      • OQLI.SLV44_Solvay_Sales_Organisation__c
      • OQLI.PP_SAP_Sales_Org__c (picklist)
        • set with the OQLI.SLV44_Solvay_Sales_Organisation__r.SLV44_Sales_Organisation_Code__c
  • Distribution Channel
    • Depending on the region and the customer segmentation
    • All details here: Unable to locate Jira server for this macro. It may be due to Application Link configuration.


V/ Smart Approval

As an AM I can keep the approval of my Quote Line Items after I have move the quote back to draft or renew if certain conditions are met:

  • This applies only when renewing a quote or re-open an already approved quote.
  • We evaluate previously given approvals matching the following key:
    • Same Quote Account, Region, BU, Material Level 5, Manuplant, Shipping Plant and Incoterm. 
    • Same Approval Role
    • Same Approval Thresholds or higher (RMD, GMD, Margin Floor)
    • Quoted Margin = or above the last quoted margin
    • Last approval given in less than 4 weeks. 

More details here: Unable to locate Jira server for this macro. It may be due to Application Link configuration.


  • Steps:

1) When an Approver sets a decision in a Quote Line Item (Approved or Rejected) the system generates now an approval snapshot. This is a new object related to the Quote Line Item:


2) If the quote line item is moved to draft or renewed the system can use the Approval Snapshot to "remember" the approval if the conditions below are met: 

  • Same Quote Account, Region, BU, Material Level 5, Manuplant, Shipping Plant and Incoterm. 
  • Same Approval Role
  • Same Approval Thresholds or higher (RMD, GMD, Margin Floor)
  • Quoted Margin = or above the last quoted margin
  • Last approval given in less than 4 weeks. 

3) If all the conditions above are met, then the quote line item status is set to Approved. There is a new field at Quote Line Item level named "Smart Approved?" to differentiate approvals given by an approver vs smart approvals. Pricing teams can used this to run reports. 







Smart Approvals Process Flow

  • No labels