Introduction
This article will discuss the license requirements in Microsoft dataverse and code plug-ins, real-time workflows, and different licensing examples.
Most of the tables in the Microsoft Dataverse can be used by app developers to build apps and processes for customers who have Power Apps or Power Automate licenses, including custom tables and tables from the Common Data Model.

Some tables in Dynamics 365 (Dynamics 365 Sales, Customer Service, Field Service, Marketing, or Project Service Automation) include complicated business logic or are linked to apps that interact with customers and demand a particular license from app users. This section offers licensing details for tables with complex business logic and tables connected to Dynamics 365 applications (restricted tables).
Tables with complex business logic
Users of an app or flow that uses these tables must have a Power Apps or Power Automate license because these tables contain the following intricate server-side functionality.
- Code plug-ins
- Real-time workflows
Code plug-ins
Use plug-ins to extend business processes
You can upload a.NET assembly called a plug-in to the Microsoft Dataverse. Classes in an assembly can register for particular events (or steps) in an event framework. The class's code gives you a mechanism to react to the Event so that you can improve or alter the platform's default behavior.
The IPlugin interface must be implemented by the classes in the assembly that can be registered to a step. This interface only exposes the Execute function. Contextual information is supplied to the Execute method in response to an event with a class registered. You can: enter the Execute method
- Reject the Event and notify the user of an error
- Make adjustments to the operation's data.
- Use the Organization Service to launch additional tasks to add automation.
The execution of plug-ins can be set to either synchronous or asynchronous. A synchronous plug-in makes the operation wait until the plug-code in is finished. This impacts the system's perceived performance. An asynchronous plug-in queues up its actions and only executes them once the operation is finished, allowing it to complete without disruption.
When to use plug-ins
People typically contrast plug-ins and workflows as options for applying proprietary business logic. The capabilities of workflows and plug-ins significantly overlap. Workflows and plug-ins can perform identical functions, but the reverse is not true. However, this does not imply that you should only employ plug-ins for tasks that a process cannot handle. Without the use of plug-ins, requirements can be met in various ways.
-
Workflows can use customized workflow extensions (also known as "workflow activities"), which let you write code to build reusable conditions and actions that can be applied across different workflows.
-
Rollup and calculated fields offer functionality that was previously only possible through workflows.
-
Similar to workflows, custom actions enable the creation of reusable messages that may be accessed from the web service endpoints or other processes.
-
Data can be pushed to external systems utilizing Webhooks and Azure Service Bus connection, where logic can be applied using various resources.
- Numerous functions previously carried out through plug-ins are now available through Power Automate.
You have a wide range of choices. To decide which one meets your needs the best, you should assess each one.
Advantage of plug-ins
The key benefits of plug-ins are as follows:
-
Plug-ins work efficiently. The most effective way to implement business logic is with a well-written plug-in.
- Plug-ins are capable. Many developers would rather utilize their expertise and skills to design logic and use their ability to interact directly in code with internal or external services. A skilled plug-in developer is capable of producing a lot.
Disadvantage of plug-ins
-
A developer's specialized abilities are needed to create and manage plug-ins. Due to the high cost of developers, many firms do not have access to one when needed. Business processes can evolve quickly, and the system can adapt rapidly by offering alternatives to support change without needing a developer.
- Abuse of plug-ins is possible. The performance of the environment can be significantly impacted by a plug-in that has been improperly written. The immense power of plug-ins must be used with caution and thought for how they may affect the system as a whole.
Real-time workflows
Classic Dataverse background workflows
Without a user interface, business processes are automated through workflows. Workflow processes typically start with automation that doesn't involve user interaction.
Run this process in the background (recommended) check box must be selected to establish background workflows, as seen in the following image.

Examine the list of plug-in assemblies and processes defined in your environment to determine whether or not you applied complicated business logic to your tables. following the installation of a Dynamics 365 program, for a list of tables that might contain server-side logic (such as Dynamics 365 Sales or Dynamics 365 Customer Service)
Impacting license requirements when adding complex business logic
Developers of apps can add real-time workflows and code plug-ins to tables in Dataverse, but doing so may alter the license conditions for users of already-deployed apps. When adding complex business logic to a table, app developers should exercise caution and determine which apps use the database and whether their users possess the necessary licenses.
Restricted tables
Restricted tables aren't found in Dataverse's standard tables; instead, they're part of one of Dynamics 365's customer interaction apps (such as Dynamics 365 Sales, Customer Service, Field Service, Marketing, or Project Service Automation) or an outside solution. For instance, the aim, entitlement, and knowledge article tables.
If users want to add, modify, or remove rows from tables linked to the functionality of Dynamics 365 apps (such as Dynamics 365 Sales or Dynamics 365 Customer Service), they must have the necessary license for those apps.




