web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Small and medium business | Business Central, N...
Suggested answer

Discount Approval Workflow Based on Sales Header Notes in Business Central

(3) ShareShare
ReportReport
Posted on by 523

Hi Community,

We have a specific scenario in Business Central that we are trying to implement and would appreciate your guidance.

Here’s what we want to achieve:


  1. We create Sales Orders and Prepayment Invoices for our items and collect partial payments initially.

  2. We also have various types of discounts, each of which is set up as a separate item in BC.

  3. When a customer is to receive a discount, we want someone (e.g., an Admissions Officer) to enter a note or indicator on the Sales Header specifying which discount (e.g., "Discount A") the customer should receive.

  4. Once this note is entered, an approval workflow should trigger to get that discount approved before the Sales Line with the discount item can be added.

  5. After approval, the Admissions Officer or another team member can add the discount as a line item to the Sales Order.

  6. If a customer is eligible for multiple discounts (e.g., Discount A, B, and C), each discount should go through its own approval workflow, even if the approver is the same person or different people.

 

       Questions:

  1. Is such a workflow setup possible in Business Central

  2. Can workflows be triggered based on a note or field in the Sales Header

  3. How can we ensure that each discount triggers its own approval workflow?

  4. What would be the best way to structure this process within BC?


  5.  

We’re looking for a solution that ensures compliance and approval before any discounts are applied.

Thanks in advance for any insights!

I have the same question (0)
  • peter fun Profile Picture
    523 on at
    Discount Approval Workflow Based on Sales Header Notes in Business Central

    Also, is it possible that when we add a comment or note on the Sales Order—for example, stating that a customer should receive more than one discount—it triggers an automatic notification?

    Specifically, if I enter a note like: "Customer A should get a 10% discount", an email or message should be sent immediately to the appropriate approver. Ideally, each type of discount should be routed to a different approver, based on the discount mentioned in the note.

    Can this be configured in Business Central?

  • Suggested answer
    Aakib khan Profile Picture
    106 on at
    Discount Approval Workflow Based on Sales Header Notes in Business Central

    Yes, this is achievable in Business Central using a combination of standard approvals, a custom Sales Header field to indicate the desired discount, and either custom workflow events (AL) or Power Automate for per-discount approvals; each discount can be routed and approved separately before a discount line is added. The process hinges on a “Requested Discount” field on the Sales Header that triggers approval, line-level gating, and separate approval entries for each discount type as needed.

     

    Is it possible

     

    •  

      Business Central supports approvals on sales documents and can be extended with custom workflow events/responses to react to new fields or conditions beyond the out‑of‑the‑box templates, enabling tailored approval logic for discounts before allowing line entry or release


    •  

      Power Automate adds flexible triggers for approval workflows tied to Business Central record events and even action-based flows, making it practical to implement per-discount approval routing without being limited to header-only conditions.



    •  
     

    Trigger by header note/field

     

    •  

      Create a custom field on Sales Header (e.g., “Requested Discount Code”) and expose it on the page; standard workflow can listen to record changes or approval requests, while a custom workflow event can fire when that field changes to a non-blank value to start a discount approval.


    •  

      If using Power Automate, configure a flow triggered by Business Central record-change triggers or add an action “For a selected record” to explicitly request discount approval from the Sales Order when the note/field is set, ensuring the flow only runs when the field contains a discount identifier.



    •  
     

    Separate approval per discount

     

    •  

      Standard approval entries support approver assignment and chains; generating one approval request per discount item/requested code ensures that each discount is independently approved, even for the same document and approver, by issuing multiple approval entries or multiple Power Automate approval tasks keyed to each discount.


    •  

      For line-level control, a common pattern is to iterate lines or a list of requested discounts and create approval requests per value in automation, which Power Automate handles well; this mirrors known line-level approval designs where each distinct driver (e.g., department/discount) gets a separate approval unit.



    •  
     

    Proposed structure in BC

     

    •  

      Add a Sales Header field “Requested Discount Codes” (text or related to an item list) and block discount line insertion until approvals are completed; use event subscribers to enforce business rules and populate Approval Entry context for clarity in the approver experience.


    •  

      Implement a workflow: when “Requested Discount Code” changes from blank to a value, create approval entries per requested discount and lock the Sales Order (or specifically the discount item code) until approved; releasing or enabling line insert occurs in the workflow response “On approval”.



    •  
     

    Implementation options

     

    •  

      Option A: Standard workflow + custom events

       

      •  

        Define a new workflow event “Requested Discount set on Sales Header” and corresponding responses “Create approval request for discount X” and “Unlock discount item insertion on approval,” registering them per Microsoft guidance on adding workflow events/responses.


      •  

        Use Approvals Mgmt. hooks to enrich Approval Entry with discount metadata (e.g., item number, description) for approvers, as shown by community patterns for populating Approval Entry custom fields.



      •  

    •  

      Option B: Power Automate per-discount approvals

       

      •  

        Trigger on record change or “For a selected record,” read the header’s requested discount list, then loop and create separate modern approvals for each discount; on approval callback, update a custom status table per discount and permit line insertion for approved ones only.



      •  


    •  
     

    Controlling line addition

     

    •  

      Enforce a guard in AL: in Sales Line OnBeforeValidate(Type/No.) or via a page action override, prevent adding a “discount item” line if its matching discount hasn’t been approved; allow after approval response marks that discount as “Approved” on the Sales Header or a child table.

    •  

      Alternatively, hold the document in an on-hold state and auto-release once all requested discounts are approved; automatic release upon all approvals is a common pattern in approval designs and can be implemented in the response step.



    •  
     

    Prepayments compatibility

     

    •  

      Prepayments are standard and can coexist; ensure the approval gating happens before adding discount lines and before final invoice, while prepayment invoices can be generated and collected as usual according to prepayment setup and workflow timing.


    •  

      If discount approvals affect pricing or amounts that impact prepayment percentage, align the approval timing with steps in the prepayment walkthrough so that approved discounts are reflected before invoicing prepayments or final invoice.


    •  
     

    Practical steps to start

     

    •  

      Build the Sales Header field and page extension, add a small approval status table keyed by Document No. and Discount Code, and wire a workflow event on field change to spawn per-discount approvals and lock discount line insert until approved.


    •  

      If rapid delivery is preferred, implement with Power Automate using Business Central triggers and approval actions, iterating requested discounts and writing back individual approval results, then AL validates on line add based on those results.



    •  
     

    Notes on discounts as items

     

    •  

      Business Central also supports price/discount frameworks natively; when modeling discounts as items, approval logic must specifically target those item numbers or a category code to avoid gating regular lines; mapping by item or dimension is common in line-level approval designs


    •  

      Consider documenting the list of discount items and using that as the allow-list for the line gating and approval generation so that maintenance is centralized and approval routing can vary by discount type if needed.



    •  
     

    If desired, a sample blueprint can be shared: new field on Sales Header, custom workflow event and response, Approval Entry enrichment for clarity, and AL guard on discount item insertion; or a Power Automate variant with per-discount loops and callbacks to unlock each discount line path after approval.



    1. https://learn.microsoft.com/en-us/dynamics365/business-central/across-how-to-create-workflows

    2. https://agolution.com/en/power-automate/overview-of-all-bc-triggers/

    3. https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-walkthrough-workflow-events-responses

    4. https://learn.microsoft.com/en-us/power-automate/modern-approvals

    5. https://community.dynamics.com/blogs/post/?postid=bdfc5eee-9216-4894-9002-fcd975123848

    6. https://community.dynamics.com/blogs/post/?postid=88aee297-9196-4c03-9d5d-be6ac8148171

    7. https://community.dynamics.com/forums/thread/details/?threadid=a67b8c73-67d0-46c0-9987-bbda5dede41d

    8. https://learn.microsoft.com/en-us/dynamics365/business-central/walkthrough-setting-up-and-invoicing-sales-prepayments

    9. https://learn.microsoft.com/en-us/dynamics365/business-central/finance-how-to-create-prepayment-invoices

    10. https://learn.microsoft.com/en-us/dynamics365/business-central/across-prices-and-discounts

    11. https://www.mercuriusit.com/create-a-custom-approval-workflow-in-d365-business-central/

    12. https://learn.microsoft.com/en-us/dynamics365/business-central/application/base-application/table/microsoft.sales.document.sales-header

    13. https://yzhums.com/4118/

    14. https://help.lscentral160.lsretail.com/Content/Dynamics%20NAV/walkthrough-setting-up-and-invoicing-sales-prepayments.html

    15. https://community.dynamics.com/blogs/post/?postid=78cec192-0de4-44a9-b422-4728689acd4f

    16. https://www.streamssolutions.com/automate-smarter-custom-workflows-in-business-central-made-simple/

    17. https://community.dynamics.com/blogs/post/?postid=7aca4ca2-bb60-f011-bec2-6045bda8eaa9

    18. https://community.dynamics.com/forums/thread/details/?threadid=838fdda4-23c4-4acc-811f-f5ada7cf98b6

    19. https://www.youtube.com/watch?v=lTCoIYinldI

    20. https://www.websan.com/images/Dynamics%20Apps%20User%20Guide/Custom%20Workflow%20Approval%20User%20Guide.pdf

      HIT verified answer button if you like this


    21.  

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Andrés Arias – Community Spotlight

We are honored to recognize Andrés Arias as our Community Spotlight honoree for…

Leaderboard > Small and medium business | Business Central, NAV, RMS

#1
Nimsara Jayathilaka. Profile Picture

Nimsara Jayathilaka. 3,844

#2
Rishabh Kanaskar Profile Picture

Rishabh Kanaskar 3,010

#3
Sumit Singh Profile Picture

Sumit Singh 2,815

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans