Logic Composer
Types
Choose the right type for inputs, outputs, event properties and variables, as one value or a list.
Every input, output, event property and variable has a type. The type decides what values it accepts, which functions and comparisons the expression editor offers for it, and how the Run dialog asks for it. You pick types with the same Type picker everywhere: block and flow inputs and outputs, event definition properties, the New Variable step and the Run dialog.
Types you can choose
Section titled “Types you can choose”The picker lists types alphabetically, using Dataverse wording.
| Type | Holds | What you set after choosing it |
|---|---|---|
| Yes/No | Yes or No | Nothing |
| Choice | One option of a choice, such as an account’s Relationship Type | The Is Local switch: on, choose the Entity and its Option Set; off, choose a global choice |
| Currency | A currency amount | Nothing |
| Date and Time | A date, or a date and time | DateTime Behavior: User Local, Date Only or Time Zone Independent (required) |
| Decimal Number | An exact decimal number, such as a discount rate | Nothing |
| Floating Point Number | An approximate number, for measurements and scientific values | Nothing |
| Lookup | A reference to one row of a table, such as the customer of a case | The table |
| Row | A whole row with the columns you choose, such as an account with its name and credit limit | The table, then at least one column |
| Text | A piece of text | Nothing |
| Whole Number | An integer, such as a quantity or a number of days | Nothing |
Dynamics 365 CE on-premisesLabels on Dynamics 365 CE on-premisesApplies to the other edition
On-premises the picker uses the classic names: Two Options for Yes/No, Option Set for Choice, and Entity for Row. Currency, Lookup and the other types read the same in both editions.
Types you see but cannot choose for inputs
Section titled “Types you see but cannot choose for inputs”Some values appear as outputs, step results or variables, but are not offered as input types: Unique Identifier, Object, Query Result, and rows from a template (from the Templates tab, described as “one row from a template”). To pass a record into logic, use a Lookup or Row input instead of a Unique Identifier.
One value or a list
Section titled “One value or a list”Once a type is complete (its table, choice or columns chosen), a List of values switch appears below it. Under the switch, a sentence says in plain words what the value holds, for example:
- “Holds one lookup to Account.”
- “Holds a list of whole numbers.”
- “Holds a list of Contact rows.”
Choosing a different type keeps your list choice. Saved and read-only types read as a single label, such as Yes/No or List of Yes/No.
The List of values switch is hidden on a logic block or logic flow that is exposed as a Dataverse action, because Dataverse actions do not accept list arguments. See AI and API exposure.
Choose the right type
Section titled “Choose the right type”| You need… | Use | Why |
|---|---|---|
| Money amounts on quotes, orders, invoices | Currency | Matches Dataverse currency columns. |
| Rates and percentages | Decimal Number | Exact; no rounding surprises. |
| Counts and days | Whole Number | Dividing two whole numbers drops the fraction, which is often what you want for counts. |
| A record the logic will look up or update | Lookup | Light to pass; the logic reads the columns it needs. |
| A record whose values the caller already has | Row | The chosen columns arrive with the value. |
| Dates such as a birthday or contract end | Date and Time with Date Only | No time-zone shifts. |
| A set of products, contacts or tags | Any type with List of values on | One input instead of many. |
For how each type behaves in expressions, including how empty values and mixed number types work, see Data types and Empty values.