Make a decision flow logic
Summarize
Summary of Make a decision flow logic
The Make a decision flow logic in ServiceNow enables you to handle multiple conditional paths in a flow by using an external decision table instead of nested If, Else If, or Else statements. This approach enhances readability and simplifies complex condition handling, such as determining insurance coverage based on various inputs like age, accident history, and car model.
Show less
This flow logic requires a configured decision table that defines possible answers, each producing its own branch path within the flow. It supports any number of inputs and decisions and can be configured to return single or multiple answers displayed either as branch paths or data pills.
Key Features
- Decision Table Integration: Uses external decision tables to map inputs to decision outcomes, allowing dynamic branching in flows.
- Branching and Data Pills: Option to use branches for each decision answer, allowing specific flow logic per branch, or disable branches to return answers as data pills for use elsewhere in the flow.
- Flexible Execution Modes: Choose to run only the first matching decision answer or all matching answers.
- Decision Inputs: Inputs to the decision table are exposed as flow inputs, enabling manual entry or dynamic assignment via data pills.
- Otherwise Branch: When branches are enabled, you can add an Otherwise branch to handle cases where no decision table answer matches, similar to an Else condition.
- Runtime Insights: Flow execution details provide state, runtime, and evaluation results for each branch, highlighting true branches for easier debugging.
Inputs and Configuration
The Make a decision flow logic requires the following key inputs:
- Decision Label: A descriptive name for the decision (e.g., "Recommended Insurance Policy") which overrides the default action label.
- Decision Table: Reference to a configured decision table record containing the logic and possible answers.
- Execution Option: Choose between running the first matching decision or all matching decisions.
- Use Branches: Toggle to determine whether to create separate branch blocks for each answer or to collect answers as data pills.
- Include Otherwise: When branches are used, you can include an Otherwise branch to handle unmatched cases.
Outputs
- Answer Table: Table of answer records returned by the decision table.
- Ordered IDs: List of sysid values for matching answers, useful for iteration in other flow logic blocks when branches are disabled.
- Answer Records: Single or multiple answer records depending on execution mode.
- Count: Number of answer records returned when running all matching decisions.
Practical Application
For example, in determining insurance coverage, you can configure a decision table with inputs like age, accident history, and car model. The Make a decision flow logic uses this table to branch the flow or return data pills with coverage recommendations. This simplifies complex decision-making logic, improves flow maintainability, and provides clear execution traces.
Important Considerations
- Data pills set inside an answer branch are only accessible within that branch; referencing them outside results in null values.
- Disabling branches removes branch flow logic blocks and the Otherwise option, and re-enabling branches does not restore them.
You can use the decision table branching logic in situations where multiple conditional paths are required, as an alternative to nested If, Else If, or Else flow logic. For example, if you want to determine what kind of car insurance you need, you can add inputs such as your age, accident history, and car model to the decision table to determine a level of insurance coverage. This logic can save you time and present a more readable format than nested if conditions or switch case statements.
- When the Use Branches check box is cleared, the Make a decision data pills in other flow components is supported only if there are no branches.
- The Make a decision data pill can be used in the answer branches only when the Use Branches check box is selected.
- When you set a data pill value from inside an answer branch of Make a decision flow logic, the data pill value is only available to other actions in the same branch. Referencing a data pill value that was set inside an answer branch from outside of the flow logic branch produces a null value.
Inputs
| Input | Description |
|---|---|
| Decision Label | Descriptive label for the decision that you want to make. For example, you can create the Recommended Insurance Policy label if you want to determine the level of insurance coverage that you need. This value overrides the default action label. |
| Decision Table | Reference to a decision table [sys_decision] record. This record provides the decision input answers that are available to the flow. To create a new decision table, select the create new record icon ( |
| Execution | Decision answers you want the flow to run.
Note: Set the Use Branches option to specify how your flow displays matching decision answers. |
| Use Branches | Option to display each possible decision answer in its own branch flow logic block. Use the branch flow logic block to specify what content to run where the condition matches a specific decision table answer.
Each branch flow logic block is equivalent to an If flow logic block for each answer. Disable branches when you want to return one or more answer records instead of branch flow logic blocks. Warning: When you clear and confirm the Use Branches option, your flow removes the flow logic blocks for each branch and removes the Include Otherwise check
box. Reselecting the Use Branches check box does not restore any removed branch flow logic blocks. |
| Include Otherwise | Option to add the otherwise branch to the list of available
answers. This option is only available when Use Branches is selected.
You can use this branch to specify the actions and subflows to run when the decision table
does not generate an answer. An Otherwise branch is equivalent to an Else flow logic block.
Note: If you specify a decision table default answer, this branch will never run because
the decision table always selects an answer. |
| Decision table inputs | List of Decision Input [sys_decision_input] records that are associated with your decision table. Your flow displays a separate input for each record. For example, if you have decision inputs for Units Ordered and Location of Sale, an input displays for each record. |
Outputs
| Field | Description | Data Type |
|---|---|---|
| Answer table | Table containing the answer records. Each decision [sys_decision_question] table record refers to a matching answer record. | Table Name |
| Ordered IDs | List of matching answer record sys_id values generated by the decision table. Your flow only generates this output when the Use Branches option is false and the Execution option is Run all decisions that match. You can use this output as the input for a For Each flow logic block or a Look Up Record action. Your flow sorts the list by the Order value listed in the Decision [sys_decision_question] table. | List |
| Answer records | Answer records returned by the decision table. Returns a single record when Execution is First decision that matches. Returns a list of records when Execution is Run all decisions that match. | Record or Records |
| Count | The number of answer records returned by the decision table. Only displayed when Execution is Run all decisions that match. | Integer |
Use make a decision flow logic to determine insurance coverage
In this example, the flow uses a decision from the Insurance Coverage decision table, which an administrator had configured to determine the insurance coverage that was based on three inputs. The flow displays all the inputs that were used by the decision table. These inputs can be entered manually, or by dragging data pills into the inputs from the data panel on the right side of the screen. Below this section, the branches for each answer are shown in the decision table.
Execution details
- The header shows the state, start time, and runtime for the flow logic.
- The action shows details about the decision table configuration and inputs.
- Each possible answer for the decision table is represented as a branch. The state field indicates whether the branch was evaluated and the evaluation result. This section also displays details about the actions that are taken within a branch. Branches that evaluate to true are highlighted in green.