Meet Custom Agents in Business Central

Announced live at Directions EMEA 2025 — and I already made one work.

Today on stage in Poznań (I wasn’t there… but I have my spies 😉), Microsoft introduced something that can’t go unnoticed:

Custom Agents for Business Central.

This is the Agent Framework (a.k.a. Agent Playground) — now embedded directly into Business Central — allowing you to create fully autonomous agents that can log in, navigate, click, filter, open, and close pages, just like a human user.

No AL code.
No API integrations.
No Azure.
No extension deployment.

It’s all happening in-product.

I was lucky to have private preview access, and in this blog I’ll walk you through:

✅ How to build an agent from scratch
🧠 How the agent sees and interacts with Business Central (spoiler: like a user)
🛑 Tricky parts like permissions and UI visibility
✅ And how it performed on a real-world task 

Let’s go.

🧠 What Are Custom Agents?

Before we begin, let’s set the base:

Copilot answers questions.
Agent performs actions.

Or in more technical terms

💡 Copilots call LLMs and can run tools.
💡 Agents call LLMs and run tools in a loop, until the task is complete — or until human input is required.

A Copilot returns information.
An Agent opens a page, filters records, runs an action, and closes it — as if your assistant was doing the work in the web client.

Agents work based on:

  • ✅ Instructions you give in natural language

  • Role Centers that define what they can see

  • Permission Sets that define what they can do

Technically, they “see” what the user sees — what’s visible in the page, not the table schema.
They operate in the logical UI layer — between the HTML and the BC server.

That means:

Agents don’t see all 10,000 posted sales invoices in the system.
They only see what the page shows — the columns, the records in view, the available actions.

And yes — they scroll too. If needed.

Scenario: Release All Sales Orders Over $10K

Let’s say I want an agent to:

  • Open the Sales Orders list

  • Find any orders with amount > 10,000

  • Open each one

  • Press Release

  • Skip the rest

Sounds like the kind of thing every order processor does manually.
So I gave it to the agent.

🪪 Step 1 — Create the Agent

Tell Me → Agents (Preview) → go to the Playground tab → click Create.

✅ This creates a new Agent Card.

By default, it’s in Disabled state — which is good. We’ll configure before activating.

Step 2 — Define Instructions (This is the magic)

Scroll to the Playground Instructions field and enter something like:

				
					Release all open sales orders more than 10k. To do this:
– Open Sales Order List
– Filter by Balance Amount
– Open each Sales Order
– Release

				
			

That’s it. This is your “program.”. This is the “programming language” now.

And the language is English.

Step 3 — Choose the Right Role Center

This is critical.

Agents interact with BC just like users — they open the role center assigned to them and navigate from there.
If the needed pages/actions aren’t visible in the role center, the agent will get stuck. The default Agents Playground Rolecenter is this. 

Can you work in this Business Center? Right, neither do agents. 

I first tried with Sales Order Agent (Copilot) role, but it didn’t show the Balance field.
Without it, the agent can’t filter. It would have to open each order one by one to find the amount. Not ideal.

So I switched to:

Sales Order Processor

That role center has:

  • A proper Sales Orders list page

  • The Balance field

  • The Release action in the ribbon

Perfect.

✅ Set the agent’s profile via “Agent User Settings.”

Step 4 — Assign Permission Sets

Agents are users.
They need permissions.

The final permission set is the intersection of:

Agent permissionsuser triggering the agent

If either lacks access, the agent can’t act.

So I gave the agent:

  • D365 BASIC

  • D365 SALES DOC, EDIT

  • (auto-included) PLAYGRD AGENT – EDIT

Then I enabled user access:

  • Myself — allowed to run and configure the agent

If you forget this, you’ll hit this error, after agent will start it’s job:

Access is denied. You don’t have the necessary permissions to open the company.

The fix: disable agent, adjust permission sets, enable again.

Step 5 — Activate & Run the Agent

Click SetupConfigure Playground Agent → ✅ Enable.

Now go to Agent TasksCreate Task:

  • Title: Start

  • Leave “Include Message” empty (we already have base instructions)

Click OK → the agent starts.

Step 6 — Watch It Think (Agent Task Log)

Once the task completes, go to Log Entries. Sort from top to bottom.

Here’s what I saw:

✅ The only order over $10k was released.
✅ The smaller ones were untouched.

It finished with a message like:

“All open sales orders with a balance greater than $10,000 have been reviewed and released. No further action required.”

Perfect.

Final Result in the UI

Went back to Sales Orders list:

Key Lessons & Technical Notes

1. Agents are real users

They don’t access tables.
They only interact with the visible UI.

If the Balance field isn’t visible — they can’t use it.
If the Release action isn’t present — they can’t click it.

So:

💡 UI is Agents Tool.

Make sure the agent’s profile has the right pages, fields, and actions.

2. Permissions combination

You need:

  • Agent permission sets

  • Human user permission sets

The final agent permission is the lowest intersection of both.

3. Every step is logged

Agents operate like a script, but with reasoning.
And you get full observability via logs.

That’s key for testing, refining, and troubleshooting.

4. This is truly no-code

I didn’t write AL.
Didn’t use the Copilot Toolkit.
Didn’t write RAG or Function Calling code.

Just clicked, typed instructions, and watched it work.

Final Thoughts

This is definitely the beginning of real agentic workflows inside Business Central.
No need for development.
No need for Copilot Studio.
And agents can access everything inside BC — as long as they have the proper permissions.

Just tell Business Central what to do — and it does it.

That’s the power.
But there are limitations.

Right now, the only “tool” available to agents is the UI.
That gives them human-like flexibility, but it’s also a bottleneck.

Personally, I believe agents need more data-level tooling — not just UI clicks.
We’ve already seen in other agent frameworks (like Claude with BC MCP) that agents become much more powerful when they can run structured queries, not just navigate pages.

But MCPs are limited to what APIs expose.
And UI-only is limited to what the user can see.

So here’s what I think we need next:

A hybrid model — where agents can combine UI actions with “internal” MCP-tools, like dynamic queries, code interpreter etc.

I feel we’re not far from that future.

P.S. Public preview for Agent Playground is announced to be January 2026.

Share Post:

This Post Has 7 Comments

  1. Antony

    I concur, we are not far from the future.
    Efficiency goes up with less human error,
    As a dev where in the board should I position to be of relevance in the future of Bc and AI

    1. Dmitry Katson

      Recently i saw a very good quote “We automated typing, but not thinking”. Partly agree with that. Implementation of ERP is far beyond of the *sparkling automation of clicks*. More to that. I envision that in the near future we will get rid of UI in many processes. So automation of UI clicks would be not possible if we don’t make UI, right? 🙂 Tools that are more data oriented, would be the future. Direct access of AI models to the base code and building this code on fly, that’s where i see the future will be. Teach AI models to do this right way, will be our job.

  2. Tom Doran

    Super interesting, thanks for sharing. When do the rest of us get the playground tab?

  3. Witold Szal

    Thank you for a very good article. I know this is a very new technology and still at an early stage of development, but in its current form I’m quite concerned about performance. We know that in practice, any automation brings the greatest benefits when handling large volumes of repetitive operations. I’m worried that an Agent operating at the UI level will not be very efficient.

    When reading how to set up and run an Agent, I thought that some form of “preview posting” was missing — a way to run the agent in a simulation mode. I’m afraid this will become one of the first requirements from real users.

    1. Dmitry Katson

      That’s why Autonomous agents using UI as tool, should not be considered as the only solution to go. The performance can be increased by decreasing the number of steps agent need to run to finish the task: by working on prompt or building speciliced pages for agent (something like Microsoft did for Sales or Payables agents) – with minimum number of fields and maximum information on one page that agent need.

Leave a Reply

About Me

DMITRY KATSON

A Microsoft MVP, Business Central architect and a project manager, blogger and a speaker, husband and a twice a father. With more than 15 years in business, I went from developer to company owner. Having a great team, still love to put my hands on code and create AI powered Business Central Apps that just works.

Follow Me

Recent Posts

Tags