Workflow Builder is the graphical interface inside UniConfig UI to create, modify and manage workflows.
Creating new workflow¶
To create a new workflow click on the
New button in the
Workflows -> Definition tab and
fill in workflow general parameters. Then you can proceed with adding tasks.
name is required and must be unique. Keep in mind that the name cannot be changed later.
Other parameters are optional and can be changed anytime.
Editing existing workflow¶
To edit an already existing workflow, find the workflow in the
Definitions tab, click on it and then click on the
A diagram of the workflow will be rendered on the canvas. Now you can restructure the workflow, add new tasks, remove tasks or edit the workflow information and parameters.
To add new task on canvas, find the task in the left menu, drag and drop the task on canvas.
To remove one task, select the task by clicking on it once and pressing the
Delete button on the keyboard.
To remove multiple tasks, hold
Shift and left click on the respective tasks, then press the
Delete button on keyboard.
To edit or add task parameters, double-click on the task that is placed on the canvas.
Input parameters can be declared as:
Input provided by user, e.g.:
Variable provided by other task, e.g.:
Statically defined, e.g.:
For full documentation of tasks see: https://netflix.github.io/conductor/configuration/taskdef/.
Fork & Join¶
The ‘Fork’ function is used to schedule a parallel set of tasks.
A Join task MUST follow Fork task.
A decision task is similar to an if…else statement in a programming language. The task takes 2 parameters:
name of the parameter in the task input whose value will be evaluated (default is
value that will be compared with
param(or other specified input variable)
is equal to are evaluated as equal, the workflow will continue to
otherwise the workflow will continue in
Else branch is optional and can be empty.
Lambda Task helps execute ad hoc logic at Workflow run-time, using javax &
This is particularly helpful in running simple evaluations in the Conductor server, instead of creating Workers.
The task output can then be referenced in downstream tasks like:
An HTTP system task is used to make calls to another microservice over HTTP.
You can use
DELETE Methods and also you can set your custom header.
Task that can terminate a workflow with a given status and modify the workflow’s output with a given parameter. It can act as a “return” statement for conditions where you simply want to terminate your workflow.
For example, if you have a decision where the first condition is met, you want to execute some tasks, otherwise you want to finish your workflow.
can only accept “COMPLETED” or “FAILED”
task cannot be optional
Expected workflow output
Event task provides ability to publish an event (message) to either Conductor or an external eventing system like SQS. Event tasks are useful for creating event based dependencies for workflows and tasks.
When producing an event with Conductor as sink, the event name follows the structure:
A wait task is implemented as a gate that remains in
IN_PROGRESS state unless marked as
FAILED by an external trigger. To use a wait task, set the task type as
Subworkflows acts as a regular task inside a parent workflow. Subworkflows can be unbundled into its respective tasks (or other nested subworkflows)
by selecting it and then by clicking on
Expand in the upper right-hand corner.
Simple tasks differs in color shade from Subworkflow tasks and cannot be expanded.
You can expand unbundled tasks/subworkflows further or you can simply delete, edit, restructure or add new tasks.
Un-bundling and editing a subworkflow (as a part of other workflow) will not change the original definition of subworkflow.
Adding workflow information¶
To provide additional workflow information, click on
Edit general in the upper right-hand corner.
We can specify custom output parameters of a workflow, by using JSON templates to generate the output of the workflow. If not specified, the output is defined as the output of the last executed task.
Let’s say we have a task with taskReferenceName:
task1 which returns
summary and we want output of the worklow to be output of this specific task only.
The outputParameter value named e.g.
finalResult will be:
For full documentation of workflow parameters and definition read https://netflix.github.io/conductor/configuration/workflowdef/.
Defaults & Description¶
Here, we can define default values and descriptions for workflow inputs. Each input value declared as
will appear in a dropdown list of available input parameters.
Save and execute workflow¶
To Save workflow, click on the
Save button in the upper left corner. Then you can find the workflow in the
Workflows -> Definitions tab.
To Execute workflow directly from the builder, click on the
Execute button in the upper right corner. You will be
prompted to provide input parameters.
Executing workflow will also save the workflow.
Import and export of workflow¶
To import a workflow on to the canvas, click on
Import in the upper left corner and select the valid JSON definition of the workflow.
Imported workflow will not be saved until you click on Save or Execute
To export and save the workflow in JSON format into your filesystem, click on
Export in the upper left corner.
In order to choose a location to which you want to export the workflow, you have to have it enabled in your browser settings. Default location is Downloads folder.
Creating custom workflow subsets¶
In order to create new custom subset containing workflows, assign a label with prefix
CUSTOM_ to the workflow and it will appear as
a new group in left side menu.