Designing Solutions with AI-Enabled Tools
How to read a business requirement and turn it into the right combination of environment type, solution strategy, built-in agent and extensibility option — the design decisions AB-410 actually tests.
The shape of a design question
Design questions on this exam rarely ask “what is X.” They hand you a paragraph of business context and ask which option fits. That means the skill being tested is elimination — recognising why three of the four answers are wrong for this scenario.
Ravi at Kite Freight says: “I want the team to be able to try things out without breaking the depot scheduling app, and I want whatever they build to be movable into the real system later if it works.”
There are four separate design decisions buried in that one sentence. Let us pull them apart.
Environment types
Microsoft documents six environment types. Learn what each one is for, because the exam frames these as fit-for-purpose choices.
| Type | What it is for | The detail that decides questions |
|---|---|---|
| Production | Permanent work the organisation depends on | Requires 1 GB available database capacity. This is what you use for anything you depend on. |
| Sandbox | Development and testing, separate from production | Offers copy and reset. Note the asymmetry: creating production environments can be blocked, but converting production to sandbox cannot be. |
| Developer | A single owner's personal build space | Created by users with the Power Apps Developer Plan. Intended only for the owner — security groups cannot be assigned to it. |
| Trial | Short-term evaluation | Expires after 30 days, limited to one per user, and is automatically cleaned up. |
| Default | Experimentation and lightweight trial development | Every tenant gets one automatically and it cannot be deleted. No backup guarantees — not for production workloads. Every licensed user is automatically an environment maker. |
| Dataverse for Teams | Apps built inside a specific Team | Created automatically for a team. Security roles map to Teams membership (owners, members, guests) and cannot be customised. |
Why the default environment keeps showing up as a wrong answer
The default environment is the most tempting wrong answer in the whole exam, because it is always available and requires no provisioning.
Microsoft’s own documentation rules it out for anything serious: it “doesn’t provide any backup guarantees and shouldn’t be used for production workloads.” On top of that, every licensed user in the tenant is automatically given the environment maker role there — so it has no meaningful isolation.
If a scenario mentions governance, separation of teams, data protection, or anything the business depends on, the default environment is wrong.
So Ravi’s “try things out without breaking the scheduling app” is a sandbox answer — a nonproduction environment with copy and reset, separate from production. Not the default environment, because that has no isolation. Not a developer environment, because Ravi said “the team”, and developer environments are single-owner.
One scope fact worth remembering
An environment is bound to a Microsoft Entra tenant and to a geographic location. Everything created inside it — apps, flows, connections, gateways — inherits that binding.
The practical consequence is the one that gets tested: by default, a canvas app’s Dataverse connection targets its current environment, and it follows the app when the app moves through ALM — move the app to Test and it connects to Test data. That default is what makes environment separation useful.
Be careful how far you push that, though. It is a default and an ALM design pattern, not an enforced boundary. A maker can explicitly use Change environment when adding Dataverse tables to pull data from another environment “instead of, or in addition to, the current environment”, subject to permissions. So treat environment-local data as the recommended design, and be suspicious of any answer that claims the platform makes cross-environment access impossible.
Solutions and ALM
Ravi’s second requirement — “movable into the real system later” — is the ALM half of the question.
A solution is a box you put your work in so you can carry it to another environment.
While you are building, the box is unmanaged — everything inside is editable. When you are ready to hand it over, you export it as managed, which seals it. In the destination environment, people can install it, update it, and uninstall it cleanly, but they cannot reach in and edit the parts.
You build in unmanaged. You deploy managed. That single sentence answers a surprising number of exam questions.
The lifecycle verbs — update versus upgrade
These two are routinely confused, and the difference is precise:
- Update — deployed to the parent managed solution. You cannot delete components with an update.
- Upgrade — imported as an upgrade to an existing managed solution. It rolls up all patches into a new version, removes unused components, and runs upgrade logic.
So: if a scenario says “we need to remove a table that is no longer used,” an update will not do it. That is an upgrade.
A solution can be up to 95 MB in size, and a publisher identifies who made it — the publisher supplies the customisation prefix that appears on every component you create.
Evaluating built-in agents
This objective — “evaluate built-in agents to include in the business solution” — trips people up because they assume it means building agents. It does not.
The skill is selection: given a business need, decide whether an out-of-the-box agent capability already covers it, or whether the scenario genuinely needs something custom.
How to reason about it in an exam question
Work through three questions in order:
- Does a built-in capability already do this? If Dataverse can summarise the record with a row summary, you do not need an agent for it.
- Is the need conversational and open-ended? Users asking questions in natural language across data points toward an agent. Users needing one derived value points toward a column.
- Where does the customisation live? If the answer requires topics, custom actions, or orchestration, you have crossed into Copilot Studio — which is a different exam, but recognising the boundary is an AB-410 skill.
The trap answer is always the most powerful option. On this exam, the simplest sufficient option is usually correct.
Recommending extensibility options
Here is the single most important scoping sentence in Domain 1: the objective is “Recommend extensibility options.” Not implement them.
What you are expected to know, and what you are not
Expected: that pro-code extensibility options exist, roughly what each is for, and being able to say “this scenario needs one.”
Not expected: writing any of them. Plug-ins in C#, PCF components in TypeScript, Azure Functions, custom connector authoring, the Dataverse Web API and SDK — every one of those is PL-400 territory.
In practice this means an AB-410 question might ask “which extensibility option would you recommend,” and the correct answer names a mechanism. It will not ask you to describe a plug-in’s execution stage or write a line of code.
The corollary is a useful heuristic for the whole exam: if an answer option requires writing code, it is probably not the AB-410 answer. Low-code first, always, and reach for extensibility only when the low-code surface genuinely cannot express the requirement.
Putting it together for Kite Freight
Nadia’s design, working from Ravi’s one sentence:
| Requirement in Ravi’s sentence | Design decision |
|---|---|
| ”try things out” | A sandbox environment — nonproduction, supports copy and reset |
| ”without breaking the depot scheduling app” | Environment isolation. Not the default environment, which has no meaningful separation |
| ”movable into the real system later” | Build in an unmanaged solution, export as managed into production |
| ”the team” (plural) | Rules out a developer environment, which is single-owner and cannot take security groups |
Mei signs off on the environment creation, because provisioning can be restricted to admins — and at Kite Freight it is.
Quick recall
Check yourself
Kite Freight wants three makers to jointly prototype a new depot scheduling app. The prototype must not affect the live app, and the team wants the ability to reset the environment and start over if the model turns out wrong. Which environment type should you recommend?
A managed solution has been deployed to production. A maker needs to change one of its forms. What must happen first, and what is the consequence?
A scenario describes a requirement that cannot be met with configuration alone and would need server-side custom code running on a Dataverse event. On AB-410, what are you expected to do?