Logic Flows
Overview
A Logic Flow is a sequence of steps executed in a specific order. Each step is an action that performs computation, manipulates data, or interacts with external systems. If a Logic Block is a reusable function, a Logic Flow is a program—a complete workflow with loops, flow control, branching, and variable assignment.
The key distinction between Logic Blocks and Logic Flows:
| Aspect | Logic Block | Logic Flow |
|---|---|---|
| State Change | Immutable (read-only) | Mutable (changes state) |
| Purpose | Calculate values, make decisions | Execute actions, orchestrate processes |
| Operations | Computation only | Create, update, delete records; call APIs |
| Analogy | A function | A program |
While Logic Blocks calculate and return values without side effects, Logic Flows change the system's state. A Flow can create records, update fields, delete data, send emails, invoke external APIs, and orchestrate complex multi-step business processes.
Why Logic Flows?
Logic Flows empower citizen developers to describe complex business logic without writing code. The visual designer and rich library of built-in steps make it possible to:
- Automate business processes: Create workflows that respond to events and execute actions
- Integrate systems: Connect Dynamics 365 with external APIs and services
- Orchestrate data: Move, transform, and synchronize data across entities
- Implement business rules: Execute complex logic with conditions, loops, and branching
- Extend Dynamics 365: Add capabilities beyond out-of-the-box functionality
Flow Structure
A Logic Flow consists of:
| Component | Description |
|---|---|
| Name | Unique identifier for the flow |
| Description | What the flow accomplishes |
| Inputs | Data passed into the flow when invoked |
| Outputs | Data returned by the flow upon completion |
| Variables | Internal data storage during execution |
| Steps | The sequence of actions to execute |
Flow Execution
When a Logic Flow is invoked:
- Inputs are received and made available to steps
- Steps execute in sequence from top to bottom
- Control flow steps (conditions, loops, switches) alter the execution path
- Variables store intermediate results between steps
- Outputs are set and returned to the caller
Flow Steps
Logic Flows offer a rich library of built-in steps that cover data operations, flow control, integrations, and more. Steps are organized into categories based on their purpose.
| Category | Purpose | Documentation |
|---|---|---|
| Data Operations | Create, read, update, delete records | Data Operations |
| Relationships | Manage entity relationships | Relationships |
| Flow Control | Control execution path | Flow Control |
| Variables | Manage data during execution | Variables |
| Integration | Connect with external systems | Integration |
| Invocation | Call other logic constructs | Invocation |
| Events | Publish business events | Events |
| Error Handling | Handle errors and exceptions | Error Handling |
Logic Blocks vs. Logic Flows
| Aspect | Logic Block | Logic Flow |
|---|---|---|
| Purpose | Calculate values, make decisions | Execute actions, orchestrate processes |
| State | Immutable (no side effects) | Mutable (changes data) |
| Operations | Read-only computation | Create, update, delete, integrate |
| Structure | Single calculation/decision | Sequence of steps with control flow |
| Reusability | Called from Flows and other Blocks | Called from Recipes, other Flows, APIs |