3. How do you enforce a required field at the platform level vs. using a business rule or plugin?

There are actually three different ways to make a field required in Dataverse, and each one works at a different level.

  1. Platform level (Column setting):
    This is the simplest way — you just go into the column properties and set “Required” directly on the table itself. Once you do this, it applies everywhere — every form, every app, every API call. There’s no way around it. If the value is missing, Dataverse itself blocks the save, no matter how the record was created.
  2. Business rule:
    This one is form-based. You set a condition, like “if Order Amount is greater than $1000, then make Approver required.” It only kicks in when someone is using a form and that condition is true. The downside is, business rules mostly run on the client side (in the form), so they don’t fully protect you if someone creates the record another way, like through an API or a Power Automate flow, unless the rule is also set to run on the server.
  3. Plugin:
    This is the most powerful option. A plugin runs on the server, so it doesn’t matter how the record gets created — form, API, flow, import, anything. You write code that checks the condition and throws an error if the required value is missing. This is the option you’d pick when you need to guarantee the rule can never be bypassed.

Real example:
Say a company wants “Approver” to always be filled in for every Order, no exceptions — that’s a column-level required field. But if they only want it required when the Order is above $1000, that’s a business rule. And if they need that same $1000 rule to be enforced even when orders come in through an integration from another system, that’s when a plugin is the safer choice.

Scroll to Top