- 28 Jun 2023
- 17 Minutes to read
About Flow Behaviors
- Updated on 28 Jun 2023
- 17 Minutes to read
A Flow Behavior, also known as Behavior Type, guides the Studio and Portal on how the Flow should operate. By default, a newly created Flow adopts the Default Flow Behavior, which represents the standard workflow behavior. Unless there is a need for the Flow to exhibit different behavior, there is no requirement to modify this default setting. For instance, if the purpose of a Flow is solely to supply data to a Tile on a Page or Dashboard, it would typically utilize the Tile Source Flow Behavior Type.
Selecting a Flow Behavior
- In a Designer Project, select CREATE FLOW.
- The Create Flow gallery will appear, presenting a range of Flow Behavior options. To explore and create Flows based on different Flow Behaviors, choose the Flow Behavior category located in the blue section of the dialog.
Changing a Flow Behavior
From the Flow Designer
- Navigate to the Properties panel in the Flow Designer.
- Under the SETTINGS category, use the Behavior Type drop-down field to see all available Flow Behaviors. Select the desired behavior.
From a Designer Project
- In the Designer Project, right-click on the desired Flow.
- Navigate to Edit > Advanced > Set Flow Behavior in the action menu.
- When the window appears, select the appropriate behavior and save the changes.
Flow Behaviors Types
The table below describes the currently available Flow Behaviors by default.
|Behavior||Definition||When to Use||More Info|
|After Checkin Handler Flow|
This Flow executes after a project is checked into the repository and contains just one End step.
|This Flow logic can be built to perform Flow functions for Repository actions, including synchronous and asynchronous Flow steps.||Repository Action Flows|
|After Project Creation Handler Flow|
This Flow executes after a project is created on the repository and contains just one End step.
|This Flow logic can be built to perform Flow functions for Repository actions, including synchronous and asynchronous Flow steps.||Repository Action Flows|
|Batch Processing Flow||This behavior creates an Async Flow that expects to receive large amounts of data. It handles the data in multiple threads to limit memory use and errors.||Use this Behavior when a Flow receives large amounts of data (e.g., executing a "For Each" action on each cell of a huge Excel file). Remember that this Flow behavior is Async, so if used as a Sub Flow, it will not wait to complete before moving on to the parent Flow.||Run Flow For List Step|
|Before Checkin Handler Flow|
This Flow executes before a project is checked into the repository and contains two Endpoints (End steps); Allowed and Not Allowed.
|Two different paths of Flow logic can be created to ensure that the appropriate criteria are met before the project can be checked into the Repository with two separate End steps. This Flow only allows synchronous steps with the Flow, meaning elements like Tasks, Forms, and Assignments cannot be used.||Repository Action Flows|
|Before Project Creation Handler Flow|
This Flow executes before a project is created on the repository and contains two Endpoints (End steps); Allowed and Not Allowed.
|Two different paths of Flow logic can be created with two separate End steps to ensure that the appropriate criteria are met before the project can be created. This Flow only allows synchronous steps with the Flow, meaning elements like Tasks, Forms, and Assignments cannot be used.||Repository Action Flows|
|BPMN Diagram||Business Process Model Notation or BPMN Flow Behavior is a type of Flow that only contains the BPMN and Drawing Flow steps. These Flow steps help sketch out processes before building them out.||This feature helps the design process tie the actual Flow process to the BPMN Model step to illustrate its function. The steps that can have implementation Flows on them are optional.||Creating a BPMN Flow|
|Chart Data Flow||Provides data for rending a Chart, as well as Inputs for controlling that Data.||When a user needs to create a Chart.||Charts Use Flow Mode|
|Converter Flow||Converts data from one Data Type into another. Requires Flow input data (to be converted) and output data (the converted data). Flows with this behavior appear as selectable Converter Flows you can use in other Flows in that Designer Folder.||Use this behavior to create a Flow that converts data from one type into another data type. It can be used to clean up data for more elegant handling in a Process/displayed as desired.||Building and Using Converter Flows|
|Custom Email Parsing Flow||This behavior expects the email response job (EmailResponse) from an assignment. It pulls in this data to perform rules or other manipulations.||Use this behavior to manipulate email response data from an assignment.||Setting Up Email Response Scheduled Job|
|Default Form Flow||This is the default behavior for Flows that are Form-based. It creates a sync Flow.||Use this behavior when you want to create a Form-based sync Flow.||Create Forms|
|Export Report Handler Flow||This behavior takes in Report data and expects a File Data output. It is designed to transform Reports into different export formats.||Use this behavior to transform Reports (ex: to generate an XLSX file from Report data).||Downloading/Exporting a Report|
|Flow||This default behavior for Flows is automatically assigned when another is not chosen. It is a "sync" behavior, meaning that if another Flow calls this Flow, that Flow will wait for it to fully complete (hit the end step) before moving on.||Use this behavior to create a standard Flow. A good example of this behavior would be an approval sub Flow that needs to complete before the parent Flow moves on. This contrasts with an async Flow behavior, which would kick off the sub Flow and immediately move on without waiting for a result path or output data.||Create Flows|
|Flow Step Trigger (After)||Flow Step Trigger is a special type of Flow that can be attached to another Flow that will run after every step is executed. This behavior sets a Flow to be selectable in any step's Trigger properties (under the Simulation and Testing properties section).||Used for auditing, logging, and/or data manipulation. Use this behavior to create the equivalent of a Sub Flow that can launch without a Run Flow step; this simplifies the Flow design.||Flow Step Trigger (After, Before, Error) Flow Behavior|
|Flow Step Trigger (Before)||Flow Step Trigger is a special type of Flow that can be attached to another Flow that will run before each step is executed. This behavior sets a Flow to be selectable in any step's trigger properties (under the Simulation and Testing properties section).||Used for auditing, logging, and/or data manipulation. Use this behavior to create the equivalent of a Sub Flow that can launch without a Run Flow step; this simplifies Flow Design.||Flow Step Trigger (After, Before, Error) Flow Behavior|
|Flow Step Trigger (Error)||A special type of Flow can be attached to another Flow that runs when a step encounters an error; does not trigger if the step in question has an outcome or path called Error and completes as normal. This behavior sets a Flow to be selectable in any step's trigger properties (under the Simulation and Testing properties section).||Use this behavior to create the equivalent of a Sub Flow that can launch without using a Run Flow step. Using a step trigger Flow is a way to simplify the Flow design.||Flow Step Trigger (After, Before, Error) Flow Behavior|
|Folder Count Flow||This behavior creates a Flow to count any folder's contents and display it as a small label on the specified folder.||Use this behavior to create a quick visual reference for the number of entities in a folder and the color of the reference. For example, counting the number of new tasks created in a folder and displaying it as grey is under 10 and red is higher than 10.||Folder Count Flow Behavior|
|Form Assignment Handler Flow||This behavior expects assignment input data. It is used to take action on an assignment when it is created. A Flow with this behavior appears as a selectable option in an assigned Form (under Start > Flow to Run).||Use this behavior to manipulate a Form assignment when it is created. For example, creating a tag on an assignment to expose additional data.||Using Guest Account for Anonymous Tasking|
|Form Data Flow||Have the ability to run additional Flows from a Form. These can be triggered automatically or run based on user interaction.||Used when a Form control requires a Flow as a data source, such as instances where a Form changes based on user input. A Form Data Flow will run and push data back to the Form.||Using Data Flow in a Form|
|Form Validation Flow||This behavior runs on a Form to create custom validation parameters. It expects inputs from the Form and validation parameters you configure.||Use this behavior to create custom validation rules for a Form dynamically. For example, calculate a date three days after the current date, then return a custom validation message (such as "Date must be on or after xx/xx/xx").||Validating Form Data with a Flow|
|Handle Invalid Response Email Flow||This behavior runs on an assignment email response that contains an invalid or unrecognized response.||Use this behavior for error handling when using an email response for Assignments. For example, a Flow of this Behavior can be set to return a message that notifies the responder that their response was invalid, the reason it was invalid, and instructions on a valid response.||Handling Email Response Replies|
|Login User Flow||This behavior creates a Flow initiated every time a user logs into the Decisions Portal. Allows for additional logic, such as notifications, to be run on user login. (Does NOT allow Forms to be used in this logic).||Use this behavior to create a Flow that runs every time a user logs into the portal. For example, it can be used to send a notification or record details of each login.||Login User Flow Behavior|
|Login User UI Flow||Triggers when a user logs into the Decisions Portal. Comes with a pre-added End Form step.||Used when a Form needs to be displayed again on login.||Login User Flow Behavior|
|Message Queue Handler Flow||This behavior takes messages from a message queue (such as an AWS JSON message) and parses the data for use in an application. Runs as the Decisions System, not as a user.||Use this behavior to integrate with an external service that uses message queues. After choosing the desired message queue type (e.g., JSON or XML message), configure how to parse/handle that data to pass it out as output data.||Setting Up Messaging Overview|
|Notification Processing Flow||This behavior takes the notification message data type (NotificationMessage) and passes out the same type. Its purpose is to transform the notification's styling or text as it appears in the portal or to save notification data.||Use this behavior to create custom notifications in the portal or take special action on a notification (e.g., saving certain data when the notification is created).||Creating Custom Modes of Notification with Notification Flows|
|Notification Send Flow||This behavior creates a custom notification delivery method. The portal default allows the choice of email, pop-up dialog, or SMS message, but a notification processing Flow can configure another delivery with a custom Flow.||Use this behavior to integrate an outside notification delivery method (e.g., send a Tweet to notify a new task user).||---|
|ODBC Metadata Flow||ODBC Metadata Flows are very special Flows that allow users to connect ODBC database types that are not built into Decisions by default. This Flow type is very technical and allows users to specify the unique characteristics of a certain database type so that the new database type becomes an option in the normal Database Integration wizards.||Use this behavior to integrate with a proprietary database not included with Decisions' default integrations (ex: Netezza IBM database).||Connecting with an ODBC|
|Page Context Aware Flow||The Page Context Aware Flow is used to pass in a page context id when the Flow/Report is on a page. Use the "Get Page Variable" step to get the value from the URL.||Use this behavior when trying to locate another Folder within its parent Folder.||Get Page Variable|
|Post To Flow Handler||Special Behavior allows completely arbitrary data to be sent to a Flow via POST or GET methods. Can operate as a named user in Decisions; therefore, calling the Flow does not require specific user credentials. Used to create a Flow that defines a specific URL as a delivery destination for a message queue. Such a Flow tells the external system where to post the messages.||Use this behavior when receiving messages from the queue instead of retrieving them. Essentially this is enabling push notifications from any service you choose.||Post to Flow Behavior|
|Process Folder Data Aware Flow|
The Process Folder Data Aware Behavior enables Designers to assign a Subflow that triggers every time a new Process Folder is created.
This behavior excels in situations where multiple workflows must work in parallel, such as sending emails or notifications to an account group once starting a process or logging out detailing for debugging once starting a process.
|About Process Folders|
|Replace String Flow||Expects String Data Type input and allows any output type.|
Note: Presently deprecated/non- functional
|Use this behavior to take in String data and parse/map it into another data type.||N/A (behavior non-functional)|
|Report Column Change Flow||This Flow runs when something is moved from one column list to another.||This behavior is used when configuring the columns view of Reports.||Report in Columns View|
|Report Data Source Flow||Flows with this behavior show up as available data sources in a Report. Requires output as a list.||Use this behavior to Report data not already in a defined structure or table. For example, when there's a need to run a custom SQL query and Report on the results.||Using a Flow to Source a Report|
|Report Field Action Handler Flow||This behavior creates links in a designated column to launch a Flow for each field in a Report. Flows with this behavior appear selectable when choosing Calculated Columns > RunFlowInlineField for the data field property in a Report.||Use this behavior to create a Flow that runs when Report viewers click a link for a certain field. For example, when needing to let users send specific Report data to another user in an email or task.||Report Field Action Handler Flow|
|Report Group Action Flow||This behavior creates a Flow that takes action on a group of selected rows in a Report. Flows with this behavior appear as selectable in the group actions menu of a live report.||Use this behavior to create a Flow that takes custom action on a group of rows in a live Report.||Report Group Action Flow|
|Report Inline Field Flow||This behavior creates a Flow that populates data for a Report at runtime. It expects a string output (the value of the Report field). Flows with this behavior appear as selectable when you choose Calculated Columns > FlowInlineField for the data field property in your Report.||Use this behavior to create a Flow that creates or manipulates a Report data field at runtime.||Using Flow Inline Fields to Extend Report Data|
|Report Output Handler Flow||With this Flow Behavior configured, users will get a new option for saving a Report onto an Excel file.||This Flow type is used as a Report Output Handler. With this Flow configured, users will get a new option for saving a Report onto an Excel file. This Flow takes in Report Data and organizes this Report Data into an Excel file.||Report Output Handler Flow|
|Report Row Color Flow||This behavior is used to color rows in Reports. It outputs the "ColorDetails" Type.||Use this behavior when creating a Flow to control row coloring on a Report at runtime.||Setting Report Row Colors with a Flow|
|Report Row Icon Flow||This behavior is used to apply icons to Report rows. It outputs the "ImageInfo" Type.||Use this behavior to choose icons to appear in a Report at runtime dynamically. This function is similar to Color Flow Behavior.||Using Icons On Reports|
|Report Selected Row Handler Flow||Runs a Flow upon selecting a row within a Report.||With Cache Steps, Data values are stored in memory and retrievable for a defined time.||Cache Steps|
|Rule Engine Extension||This behavior creates a Flow that appears as a selectable verb in the Rule Engine. It expects a boolean (true/false) output.||Use this behavior to run a Flow as part of a Rule. For example, a Rule might need to check whether a file has been uploaded to a given folder at runtime.||Rule Extension|
|Shared State Transition Flow||Automatically run when utilizing a Case Entity. Triggered when the State has been hit in the Process of a Defined State.||For use with Case Entities.||Creating Case Entities|
|Shared User Action Flow||User-initiated Flows that are dependent on the current State of a Process. Only appear if a Process is in the defined State.||For use with Process tracking/States.||Creating Case Entities|
|Sequential Rule||This behavior is used to create a Flow that acts as a complex Rule - a Rule that uses multiple steps or a combination of simple rules that returns a single output. It expects input data to evaluate and outputs the data chosen.||Use this behavior as an alternative to creating complex rules in the Rule Engine.||Creating a Sequential Rule|
|Sequential Rule [True/False]||The Sequential Rule is a Flow representing a sequence of steps that evaluate data, resulting in a True/False Output.||Used when the designer wants to embed a complex data evaluation or a sequence of simple rules into a single Rule using a sub-Flow.||Creating a Sequential Rule|
|Sequential Rule Extension [Flow]||Allows users to create a custom Rule Verb that can be embedded in another Rule using the Flow Designer.||Used in place of Sequential Rule [Statement Rule] for further logic customization.||Rule Extensions|
|Shared State Transition Flow||Run automatically when utilizing a Case Entity. Triggered when the State has been hit in the Process of a defined State. It can be re-used and defined under multiple States.||Used with Case Entities.||Creating Case Entities|
|Shared User Action Flow||User-Initiated Flows that are dependent on the current State of a Process. Only appear if a Process is in its defined State. It can be re-used and defined under multiple States.||For use with Process tracking/States.||Creating Case Entities|
|Simple Flow||A linear sequence of steps provides a simplified Form of the Flow Designer, built as constrained sequences of Simple Flow Steps.||Used in instances where a user needs to change the order and type of steps quickly/easily.||About Simple Flows|
|Simple Flow Step||Acts as a single step that can be used within a Simple Flow.||Used when a designer is constructing a Simple Flow/as a part of a Simple Flow.||Creating Simple Flows|
|Step Simulation Path Provider||If you want to run simulations, this Flow can be used for steps with multiple outcomes (i.e., Fetch Entities has Results and No Results). If you create a connected Simulation Selected Path Flow, it creates a Flow with two different endpoints. You dictate the logic here for which path the simulation will take.||This Flow type is used for simulation behaviors when debugging.||Unit Testing (Advanced)|
|Sub Dialog Data Flow||Sub Dialog Data Flows allows for a smaller, more targeted view of another Form to be opened from a button on the parent Form. This can be used to extend user interactions while preventing clutter. It has two end steps defined in the Flow, one that will update the values passed out on the parent Form and another that will cancel any data changes.||In Sub Dialog Data Flow, Forms can be used for user interactions. These Forms will show up in a Sub Dialog window.||Sub Dialog Data Flow|
|Sync Flow||Allows a Sub Flow and Main Flow to run synchronously.|
Sync Flows help handle processes that require the Main Flow and Sub Flow to occur one after the other.
|About Sync and Async Sub Flows|
|System Cache Fetch Behavior||Used to get a collection of data from a cache.||It can fill the cache with data that needs to be kept for a certain time.||Cache Fetch Flow Behavior|
|Tile Source Flow||Used to create Tiles for Pages. Outputs TileData.||Use this behavior to create a Tile on the Page and the Tile Page component.||Tile Source Flow Behavior|
|Tiles Source Flow||Same as Tile Source Flow but outputs an array of TileData.||Use this behavior when needing more than one Tile to be shown on one Tile component on the Page.||Tile Source Flow Behavior|
|Unit Test Execution Completed Notification Flow||Automatically runs after scheduled Unit Test to send an email notification to specified Decisions accounts.||Use this behavior to track when a scheduled Unit Test succeeds or fails: useful for routine testing of specific logic and scenarios.||Unit Testing (Advanced)|
|Unit Test Flow||Unit Test utility is separated from the Debugger. Adds the Flow to the list of System Unit Tests that the Unit Test Module runs.||Used with the Unit Test Module. Users can Test the Flow/Rule and see if it is executing correctly in the Debugger or create Unit Tests to apply custom Rules to the Flow/Rule places that need to be tested.||Running Unit Tests on a Flow|
|User Action Flow [Folder Aware]||Adds Folder ID and Page Name as Flow input. When the Flow is run, it has the context of the folder it's being run from.||Use this behavior to make the folder's contents a Flow is being called from available in the Flow. An example would be a Page that can be used on different folders to display the comments in that folder.||Flow Run Part|