Instalink data flows are a hierarchical collection of instructions called Actions. Each action runs in order of the hierarchy from the parent action to the child action. The data flows can also branch to different subsequent actions depending on the logic of the action. A data flow will continue executing until all actions in the active branches of the flow have completed processing.
The flow structure works like a sentence. Each flow begins with an "IF" operator. The "IF" operator defines a trigger state that will cause the data flow to be processed. The first action in a data flow will always be an "IF" operator.
All subsequent actions in the flow will either be invoked by a "THEN" operator or an "ELSE" operator. Actions always send process data to one of these two states. Sometimes both states could be run depending on the logic of the action. For example, a check data action will compare the state of the process data against specific conditions. The action will run the subsequent THEN action if all conditions pass the check. If one or more conditions fails the check, then the subsequent ELSE action will be executed.
The circumstance where an action has multiple direct children is called "branching". A single action may have multiple "THEN" or "ELSE" actions as its children. All child branches that match the output operator will run.
An action can also run the ELSE branch in circumstances where there are errors or unexpected behavior. For example, an action that calls to a database will go to the "THEN" branch if all goes well with the database query. But when there is an issue, like the database is unavailable, the action will instead go to the "ELSE" branch.
Each action in a data flow has a status that determines whether the action will be executed. The statuses are as follows:
The action will run.
The action will not run. No subsequent actions will run.
- Skip to Then Branch
The action is skipped and will not run. The process data that would have been sent to this action is instead sent to the children "THEN" actions which will run.
- Skip to Else Branch
The action is skipped and will not run. The process data that would have been sent to this action is instead sent to the children "ELSE" actions which will run.
The data that gets passed from parent action to child action is called Process Data. Process data is pulled into the data flow on the first action. For example, if the action is an endpoint, the initial process data will contain all the information that was sent to that endpoint including the query and send body. Every action in the data flow will either modify the process data or perform a task using the data. Process data coming into an action is called the "Input Data" and process data returned from an Action is called "Output Data". All process data is temporary and only exists while the data flow is running.