Back to Blog
Published:
Last Updated:
Fresh Content
Legal AI in the ERPChapter 23

Can an approval workflow protect a negotiated term in Business Central?

9 min read
2,041 words
high priority
Ali Ahmed

Ali Ahmed

AI Solutions Engineer, Cognilium AI

TL;DR

Yes for a change, no for the original entry. Business Central can revert an edited field and route it, but no workflow knows if the first value was right.

Yes for a change, and no for the original entry. Business Central can revert an edited field and route it for approval — Microsoft documents that exact pattern. But no workflow knows whether the value was right when it was first typed, and that is where contract terms actually go wrong.

How is a Business Central workflow actually built?

Three parts, and Microsoft's structure is worth learning precisely because it sets the limits.

"On the Workflow page, create a workflow by listing the steps on the lines. Each step consists of a trigger and a response: an event that specifies the conditions that start the workflow… a workflow response that defines what the workflow does."

The three sections, in Microsoft's own words:

SectionWhat it is
When Event"This is where you select the trigger"
On Condition"Conditions are related to the event and allow you to create filters to specify how the workflow continues"
Then Response"Responses specify the next steps in the workflow"

Microsoft's own examples of a trigger include "A master data record is changed" and "An incoming document is created or released" — both directly relevant to contract terms, since the vendor card is master data.

Templates exist and are locked. "Workflow templates are noneditable workflows that Business Central provides. The identifiers for workflow templates are prefixed with "MS-". For example, "MS-PIW.""

One operational detail that catches people: "All notifications about workflow steps are sent through a job queue. Make sure the job queue reflects your business needs." A workflow whose job queue is not running is a control that silently is not there.

Can it catch a changed payment term?

Yes, and the condition editor is built for exactly this.

Microsoft describes how to make a field change the trigger:

"If the workflow event is the change of a specific field on a record, use the Event Conditions page to select the field and the type of change… In the Operator field, select either Decreased, Increased, or Changed."

Those three operators are more useful for commercial terms than they first look. A negotiated discount that Decreased is a different event from one that merely Changed — and a price that Increased on a line covered by an agreement is precisely the event that breaks the commitment link on the enterprise tier.

The approval routing itself is configurable in more detail than a single named approver. The Approver Limit Type field alone offers Approver Chain ("approval request entries are created for all the requester's approvers up to and including the first qualified approver"), Direct Approver, First Qualified Approver and Specific Approver. There is a Due Date Formula for how long an approver has, and Delegate After, which "Specify[s] if and when an approval request is automatically delegated to the substitute."

Can it actually undo the change?

Yes — and Microsoft's documented example is almost exactly the contract-protection pattern.

The worked example on that page is a workflow to approve a change to a vendor's name. The sequence Microsoft sets out:

  1. When Event"A vendor record is changed"
  2. On Condition"choose the Add a condition for when a field value changes link, then select the Name field. The result of this step is that the condition reads as Name is Changed"
  3. Then Response"choose the Revert the value of the <Field> field on the record and save the change response"
  4. Then "add an entry for the Create an approval request for the record using approver type <%1> and <%2> response"
  5. Then "Send approval request for the record and create a notification"

Read step three again. Business Central ships a response that puts the old value back and saves it, then asks for approval to make the change. Swap the Name field for Payment Terms Code, and you have a control that protects a negotiated term from a casual edit.

The rejection path is symmetrical: on "An approval request is rejected", the documented response is "Discard the new values". The negotiated value survives by default.

So where does this approach stop?

Three places, and the third is the one that matters for contracts.

① The vocabulary is fixed. Microsoft is blunt:

"The options for events and responses are system-defined. To add new options, you must develop an extension."

Their stated alternatives are "sign up for Power Automate", "get an app at Marketplace", or "work with a Microsoft partner to customize the application code." So a workflow can only watch what Business Central already knows how to raise an event about.

② It watches fields, not meaning. A condition can say Payment Terms Code is Changed. It cannot say this payment term now contradicts the signed agreement, because nothing in the workflow engine has read the agreement. The trigger is the edit, not the disagreement.

③ It cannot see a wrong starting value. This is the decisive limit. A workflow fires on a change — so the first value typed is, by definition, never a change. If a buyer enters thirty days because that is the vendor's default and the contract said sixty, no field changed and no event fired, so no approval workflow runs at all. The record is wrong from the first save and stays wrong.

That is not a criticism of workflows. They are a governance mechanism for edits, and they do that well. It is a statement about which half of the problem they cover.

So what closes the other half?

A check at entry, against the document — which is a different kind of work.

Approval workflows and contract review are complementary rather than competing:

FailureCaught by
Somebody edits a negotiated priceApproval workflow. Revert, route, approve
A term is entered wrong the first timeReview against the agreement. No workflow event fires for it
The agreement is amended and the record is notReview against the agreement, periodically
An approver rubber-stamps without contextNeither — unless the request carries the clause

The last row is the practical upgrade available to most teams today. An approval request that says "payment terms changed from sixty to thirty days" is a data notification. One that says "payment terms changed from sixty to thirty days, and clause 9.2 of the signed MSA specifies sixty" is a decision. Same workflow, different payload — and producing that payload is exactly what reading the agreement is for.

So the sequence that works: put the workflow on the fields that carry money, get the terms checked against the document at entry, and let the agent draft rather than post so a person always sees the reasoning before it becomes a commitment.

About Cognilium Cognilium builds AI optimization apps for Microsoft Dynamics 365 — companion apps that optimize the pricing, inventory, warehouse and planning decisions your ERP manages but can't optimize. Dynamics is your system of record. Cognilium is your system of intelligence. https://cognilium.ai · https://www.linkedin.com/company/37180269/

Legal AI Ops. We transform legal workflows with agentic AI, copilots, agentic workflows and decision intelligence — built into core workflows rather than beside them, to raise productivity and cut operational overhead. Contract Review Copilot is the contract-review app in that family. It ships as Paralegent AI, in production today. How we build Legal AI Ops — custom AI capabilities on top of legal work, against your playbook and your Dynamics 365.

Pick the three fields on your vendor card that carry the most money, and check whether anything would notice if they were wrong on day one. Bring the answer to a 15-minute call.

Sources

Sources and fact-check
#§ClaimTierPrimary sourceVerdict
11A step is a trigger and a response; the event "specifies the conditions that start the workflow"T1 — verbatimacross-how-to-create-workflows, fetched 2026-09-10PASS
21When Event / On Condition / Then Response, each quotedT1 — verbatim ×3, section names character-exactSame pagePASS
31Trigger examples include "A master data record is changed"T1 — verbatimSame pagePASS
41Templates are "noneditable", prefixed "MS-", e.g. "MS-PIW"T1 — verbatimSame pagePASS
51Notifications go through a job queueT1 — verbatimSame page, NotePASS
62Operators Decreased, Increased, ChangedT1 — verbatimSame page, step 8PASS
72A price increase breaks the commitment link on F&SCMT1 — verbatim, from a second Microsoft pagepurchase-agreements (ms.date 2026-09-08)PASS
82Approver Limit Type options; Due Date Formula; Delegate AfterT1 — verbatim ×3Same page, step 10PASS
93The vendor-name example: event, condition, revert response, approval response, notificationT1 — verbatim ×5, response names copied exactly, placeholders includedSame page, Example of creating a new workflowPASS — load-bearing
103On rejection, "Discard the new values"T1 — verbatimSame page, step 8 of the examplePASS
113Swapping Name for Payment Terms Code gives a term-protection controlT2 — ours. An application of Microsoft's documented pattern, stated as ours, not claimed as a documented scenarioPASS — clearly marked as our extension of their example
124"The options for events and responses are system-defined. To add new options, you must develop an extension"T1 — verbatimSame pagePASS — the boundary claim
134Stated alternatives: Power Automate, Marketplace app, partner customisationT1 — verbatimSame page, NotePASS
144A workflow fires on a change, so a wrong first entry raises no eventT2 — ours, reasoned from claim 1 and claim 6 rather than from an absence searchPASS — a logical consequence of the documented trigger model, not a claim that Microsoft is silent
155Approval payload carrying the clause is the cheapest upgradeT2 — ours, method not resultPASS

Tier summary: 12 × T1 (all verbatim), 3 × T2 — 0 × T4.

All three sources fetched before the claims were written. The purchase-agreements page is cited for one cross-tier claim only and was re-fetched today rather than carried over from a sibling article.

Claim 14 is the article's spine and it is deliberately NOT an absence claim. We do not say "Microsoft does not document a way to validate a first entry." We say a workflow triggers on an event, a change is the event, and a first save is not a change — which follows from Microsoft's own model rather than from a search that found nothing. That distinction is why it needs no scope statement.

Claim 11 is the one place we extend Microsoft's example, and it is labelled: they document the pattern on the Name field, and applying it to Payment Terms Code is our suggestion, not their documented scenario.

No figures of ours. The only numbers are Microsoft's delegation options, quoted. No digits in either lifted block.

Complement, never compete. Workflows are described as "a governance mechanism for edits, and they do that well", with the limit framed as which half of the problem they cover. No vendor or feature is knocked.

Share this article

Ali Ahmed

Ali Ahmed

AI Solutions Engineer, Cognilium AI

Ali Ahmed is an AI Solutions Engineer at Cognilium AI.

Applied AI AgentsAgentic SystemsRetrieval-Augmented Generation (RAG)LLM Product Engineering
Next in this series
Do you need CLM software if you run Business Central?
Chapter 24 · 9 min
In short

Key takeaways

  • A Business Central workflow is an event, a condition and a response — and the available events and responses are system-defined.
  • Business Central ships a revert-and-approve response. Microsoft's own worked example puts an old value back and routes the change for approval.
  • A workflow fires on a change, so it can never see a wrong first entry. That is the half of the problem approvals structurally cannot cover.
  • Workflows watch fields, not meaning. Nothing in the engine has read the agreement.
  • The cheapest real upgrade is the payload, not the routing: an approval request that carries the clause is a decision rather than a notification.
What goes wrong

Common mistakes to avoid

  • Assuming approvals prove the terms are right. They prove nothing was changed without approval since the first save.
  • Leaving the job queue unattended. Notifications route through it, and a stalled queue is a silent control.
  • Sending approvers a field name and two values. Without the clause, the approver has no basis to refuse.
  • Trying to express contract logic in conditions. The events are system-defined; meaning belongs upstream of the workflow.

Frequently Asked Questions

Find answers to common questions about the topics covered in this article.

Still have questions?

Get in touch with our team for personalized assistance.

Contact Us

Still have a question this did not answer?

The person who wrote this article answers these. Describe your setup and what you are stuck on — you will get a straight answer, including where we think the approach is wrong.