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

Can you build a contract agent with Agent Designer in Business Central?

11 min read
2,325 words
high priority
Ali Ahmed

Ali Ahmed

AI Solutions Engineer, Cognilium AI

TL;DR

Microsoft names contracts as a supported type, but agents cap PDFs at ten pages and read text rather than layout. The document handling is the real work.

Yes — and Microsoft names contracts as a supported document type outright. The wizard, the permissions and the reasoning are all there today. The constraint is the document: agents cap PDFs at ten pages and read text rather than layout, and most real agreements are longer than that.

So the reasoning is buildable now. The document handling is where the engineering sits.

What can you actually build today?

A configured agent that Business Central treats as a user. That last part is the whole governance model, and Microsoft states it plainly:

"The agent is considered as a user in Business Central, so it can be assigned permission sets to control what data and actions it can access."

The wizard walks four decisions. You give the agent a Name, Display Name and Initials; then a Profile (role) that "determines what UI elements the agent can see and interact with"; then Permissions, which Microsoft frames as "important for ensuring that the agent operates within the boundaries of your organization's data security policies"; then Instructions, which "serves as the prompt that guides the agent's behavior."

The profile control is finer than most people expect. You build profiles specifically for agents "using page customization properties to control visibility of actions, layouts, views, and operations like insert/delete." For contract work that matters enormously — an agent that reads a vendor card and proposes a correction should not have insert or delete on anything.

Two permission sets gate the work itself: AGENT - ADMIN "gives you permission to design agents", and AGENT - DIAGNOSTICS "gives you access to see the execution cost and the serialized page in the agent task log entries."

Agents start switched off. Microsoft: "An agent is by default in the Disabled state. You must activate the agent to use it, but you can only activate it after you have defined its purpose and tasks."

Can the agent actually read the contract?

It can read the file. Whether it can read your contract is a different question.

Microsoft's supported attachment types, quoted exactly — and note what the first line names:

"PDF documents (.pdf) - Invoices, purchase orders, contracts, and reports" "Image files (.png, .jpg, .jpeg) - Scanned documents, receipts, and product images"

Microsoft put contracts in the list themselves. This is not us arguing the platform could be pointed at agreements; the documentation says it is a scenario.

But read the note directly beneath it:

"Be aware that agents only process text out of images and PDFs and not of the images themselves."

Text, not layout. For an invoice that is usually fine. For a contract it is a real limitation — a clause's meaning often sits in its numbering, its indentation, its position under a heading, or a table of liability caps. A flat text extraction loses the structure that tells you which sub-clause the carve-out belongs to.

Where does this hit the wall for contract work?

Three limits, all documented, and the first one is decisive.

① The page cap. Microsoft is explicit:

"When processing PDF documents, agents can handle up to 10 pages per document. This limit applies to document extraction and processing capabilities." "Documents exceeding 10 pages might not be fully processed."

Line that against real agreements. A Business Central customer asking about this publicly described their portfolio as "100 to 150 active contracts ranging from standalone contracts, MSA's, underlying Statements of Works, lease agreements, MOU's, Funder agreements." A master services agreement under ten pages is the exception, not the rule. The cap is sized for invoices, and it shows.

② Sandbox only, for now. Microsoft draws a line between two things people conflate:

"The AI development toolkit is available in sandbox environments only. The Agent SDK for AL is available in sandbox environments and, starting from version 28.1, also in production environments."

So the design experience is a prototyping surface and the AL SDK is the production path. Anyone promising a designed-in-the-wizard agent running against your live company today is describing something Microsoft's own page does not.

*③ Nothing triggers a custom agent. This is the distinction to hold onto: Microsoft's built-in* agents do have triggers — the Payables Agent runs off an email dispatcher watching a mailbox. Agents you design yourself do not. From the release plan:

"there aren't yet any built-in integrations to automatically trigger these custom agents based on incoming emails, events, or scheduled recurrences (this can be done by professional developers using the APIs available in the AI Development Toolkit)."

Contract work is event-driven by nature — an agreement arrives, a renewal approaches, a price is edited. A capability with no trigger is a demo, and the gap between the two is developer work against the Tasks API.

Status, stated precisely: this is a preview feature and its pages carry "This article is prerelease documentation and is subject to change." The design capability itself is listed in Business Central under Production ready previews, and the release plan gives general availability as October 2026. Preview and production-ready-preview are not the same label, and neither is shipped.

So how do you get past the page limit?

You stop making the agent do the extraction. Microsoft documents this route themselves:

"If you need to use a custom Azure AI Document Intelligence analyzer or other content understanding services, you can implement your own processing logic in AL to extract specific fields and pass only the relevant data to the agent."

That inverts the design, and it is the right inversion for contracts. Instead of attaching a sixty-page agreement and hoping, a purpose-built analyzer reads the document, pulls the terms that matter — payment terms, delivery terms, prices, renewal dates, liability position — and hands the agent a short structured message.

Microsoft lists what that buys you: custom-trained models, "Extract only the specific fields relevant to your scenario", and "Apply business logic before passing data to the agent."

Microsoft also gives the sensible default about attaching the original:

"When you extract data using custom document analyzers, you typically don't need to also attach the original file… Only attach the original document if you need it for reference, audit purposes, or if the agent needs to access additional context beyond the extracted fields."

For contract review, audit is exactly the reason to keep it. A proposal that says "the agreement says sixty days and the vendor card says thirty" is only actionable if a person can open the clause it came from.

And the escalation rule belongs in the instructions, which is where Microsoft's own example puts it: "If any required field is missing or unclear, mark the task for manual review." Deciding when to escalate is a design question, not a model question.

Should you build one now?

Prototype now. Do not promise production from the wizard.

If you want toThen
See whether agent reasoning handles your contract logicBuild it in the design experience today. Sandbox, real data copies, a handful of short agreements
Read agreements longer than the page capWrite the analyzer first. Extraction is AL and Azure work, not wizard work
Run it against live dataWait for the SDK path, and label what you have honestly until then
Trigger on an arriving agreementBuild against the Tasks API. There is no wizard route

The honest summary is that Microsoft has shipped the hard part and left the specific part. The runtime, the permission model, the human-in-the-loop timeline and the credit metering are real and already work.

What the Business Central apps stop short of is the layer that knows what a contract is — which clauses matter, what your fallback position is, and what it means when the record and the paper disagree. Enterprise CLM platforms do build that layer, and they integrate with Finance & Operations and Sales rather than Business Central.

That layer is a build, not a setting. It is also the reason the Dynamics contract apps stop at administration: reading the agreement was never a configuration problem.

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.

Bring your longest agreement and your worst-behaved vendor card to a 15-minute call, and we will walk through where the extraction breaks and what it takes to hold it.

Sources

Sources and fact-check
#§ClaimTierPrimary sourceVerdict
11"The agent is considered as a user in Business Central, so it can be assigned permission sets…"T1 — verbatimai-development-toolkit-agent-create, fetched 2026-09-10PASS — the governance spine
21Wizard fields: Name, Display Name, Initials, Profile, Permissions, InstructionsT1 — verbatim ×3 from the wizard stepsSame pagePASS
31Profiles use "page customization properties to control visibility of actions, layouts, views, and operations like insert/delete"T1 — verbatimSame pagePASS
41AGENT - ADMIN and AGENT - DIAGNOSTICS, quoted with their stated effectsT1 — verbatim ×2, names copied character-exactSame page, PrerequisitesPASS
51Agents default to Disabled and must be activated after purpose is definedT1 — verbatimSame page, Understanding agent statesPASS
62Supported types: PDF "Invoices, purchase orders, contracts, and reports"; imagesT1 — verbatimai-development-toolkit-attachments, fetched 2026-09-10PASS — Microsoft names contracts, we do not infer it
72"agents only process text out of images and PDFs and not of the images themselves"T1 — verbatimSame pagePASS
82Flat text loses clause structureT2 — ours, an engineering reading of claim 7, marked as our inferencePASS
93"agents can handle up to 10 pages per document"; "Documents exceeding 10 pages might not be fully processed"T1 — verbatim ×2Same pagePASS — load-bearing
103The buyer's portfolio quotationT1 — verbatim, attributed to a public forum postcommunity.dynamics.com thread, read 2026-09-10, recorded in MARKET-VOICE.mdPASS
113"MSA under ten pages is the exception"T2 — ours, stated as a judgement, no figure or study claimedPASS — opinion, labelled
123Toolkit "sandbox environments only"; Agent SDK for AL in production from version 28.1T1 — verbatimBoth toolkit pages carry itPASS
133No built-in email/event/schedule triggerT1 — verbatimRelease planPASS
143Preview, "prerelease documentation", listed under Production ready previews, GA October 2026T1 — verbatimBoth pages + release-plan tablePASS — [PP] vs [PRP] distinguished on purpose
154Custom Azure AI Document Intelligence analyzer route, and what it buysT1 — verbatim ×2ai-development-toolkit-attachmentsPASS
164Microsoft's guidance on whether to also attach the originalT1 — verbatimSame pagePASS
174"If any required field is missing or unclear, mark the task for manual review"T1 — verbatim from Microsoft's example instructionsSame pagePASS
185The build-or-wait table, and "a build, not a setting"T2 — ours, capability languagePASS

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

All three sources fetched on 2026-09-10 before any claim was written. No page is cited because another page linked to it, and no sibling article is cited as evidence.

Feature status is the thing this article could most easily get wrong, so it is stated three ways: preview · "prerelease documentation and is subject to change" · listed under Production ready previews with GA October 2026. `[PP]` and `[PRP]` are different labels and the article does not collapse them — this repo has shipped that exact error before.

No figures of ours. Every number is Microsoft's — the page cap, the version numbers, the GA month — and each is quoted or attributed. No digits appear in either lifted block.

Complement, never compete. The limits are described as scope choices sized for invoices, not as defects. The one pointed sentence — that a wizard-designed agent cannot run against live data today — is aimed at a claim, not at a vendor.

Disclosure: the CTA invites a call about where extraction breaks. No self-inspection, no demo link.

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
What does the Payables Agent actually read, and what does it skip?
Chapter 22 · 10 min
In short

Key takeaways

  • Microsoft names contracts as a supported attachment type for agents, alongside invoices, purchase orders and reports.
  • There is a documented PDF page cap, and it is sized for invoices — a master services agreement will usually exceed it.
  • The design toolkit is sandbox-only; the AL SDK is the production path. Preview and shipped are not the same thing.
  • Nothing triggers a custom agent yet — no email, event or schedule without developer work against the Tasks API. Contract work is event-driven by nature.
  • The route past the page cap is a custom analyzer that extracts the terms and hands the agent a short structured message, keeping the original attached for audit.
What goes wrong

Common mistakes to avoid

  • Attaching the whole agreement and hoping. Extract first, then hand the agent the terms.
  • Demonstrating in a sandbox and calling it production. Microsoft's own page draws that line.
  • Treating a page cap as a rounding error. It is the difference between reading an invoice and reading a master services agreement.
  • Leaving escalation to the model. Put the rule in the instructions and name what triggers a human.
  • Granting an agent write access it does not need. Propose is a different permission from post.

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.