Logic Composer
Logic Composer
Build reusable business logic for Dataverse from logic blocks, logic flows and the automation that runs them.
Logic Composer is where you design the business logic behind your Dataverse apps without writing code. You describe calculations, decisions and checks as logic blocks, put them to work in multi-step logic flows, and decide when that logic runs: when a row is created, updated or deleted, when an event is published, or on a schedule. Everything you build is stored in Dataverse, belongs to a project, and can be reused by recipes, business processes, Logic APIs and AI agents.
You work in the Logic Fabric Logic Composer app. Its Logic Fabric area has three groups:
| Group | What you find there |
|---|---|
| Logic | Logic Blocks, Logic Flows, Logic Recipes |
| Events | Event Definitions, Event Handlers, Events |
| Settings | Projects, Configurations, Localized Resources, Service Connections, Schedules |
The artifacts
Section titled “The artifacts”| Artifact | What it is | Use it to |
|---|---|---|
| Project | The container every other artifact belongs to. Each project is tied to a Dataverse solution. | Group related logic and move it between environments as one unit. |
| Logic block | A reusable piece of logic that takes inputs and returns outputs. It reads data but never changes it. Five types: formula, decision table, decision tree, validation and validation set. | Answer a question: “What discount applies?”, “Is this quote valid?”, “Who approves this?” |
| Logic flow | An ordered list of steps that can read and change data, call blocks and other flows, call external services and publish events. | Do the work: create the order, update the case, notify the owner. |
| Logic recipe | Binds validations, flows and business processes to the create, update and delete of one table. | Run logic automatically when users save rows. |
| Event definition and event handler | A named business event with typed properties, and the flows that react to it. | Decouple the logic that announces something from the logic that responds. |
| Schedule | Runs a logic flow at a fixed frequency, in a chosen time zone. | Run nightly clean-ups, reminders and periodic checks. |
| Service connection | A REST API described by an OpenAPI specification, with its security settings. | Call external systems from a flow. |
| Configuration | One named, typed value. | Keep thresholds, rates and switches out of your logic so you can change them per environment. |
| Localized resource | One text, translated into the languages of your environment. | Show messages in the user’s language. |
How they fit together
Section titled “How they fit together”flowchart TD R[Logic recipe] --> V[Validation blocks] R --> F[Logic flows] H[Event handler] --> F S[Schedule] --> F F --> B[Logic blocks] F --> C[Service connections] F --> E[Event definitions] B --> K[Configurations and localized resources] F --> K
- Blocks answer, flows act. Flows, recipes, business processes and other blocks call logic blocks. A block never changes data, so it is safe to reuse anywhere.
- Something has to start a flow. A recipe, an event handler, a schedule, a business process, another flow, a Dataverse action or an AI agent runs it. You can also run it by hand from the Run dialog.
- Settings are shared. Blocks, flows and recipes read configuration values and localized resources by name, so one change applies everywhere they are used.
- Logic Fabric tracks what uses what. You cannot delete an artifact that something else still uses. See Dependencies.
Explore Logic Composer
Section titled “Explore Logic Composer”Working in ComposerThe editors, guided empty states, saving and problems.ProjectsCreate projects and link them to a solution.Logic blocksFormulas, decision tables and trees, validations.Logic flowsMulti-step logic that reads and changes data.Flow step referenceEvery step you can add to a flow.Logic recipesRun logic when rows are created, updated or deleted.EventsPublish business events and handle them.SchedulesRun flows on a timetable.Service connectionsCall REST APIs from flows.Configuration valuesNamed values you change without editing logic.Localized resourcesMessages in every language of your environment.Best practicesNaming, reuse, testing and maintainability.
Common tasks
Section titled “Common tasks”TypesPick the right type for inputs and outputs.Inputs and outputsDefine what your logic takes and returns.PreconditionsControl who can run logic and when.Run and testTry a block or flow with real inputs.AI and API exposureOffer logic as an MCP tool or a Dataverse action.DependenciesUnderstand what blocks a delete.