Workflow is the process that is executed when an event happens. The most common workflow event is when a submission is submitted, but there are a number of others available on the platform, including when users are created, when users are added to teams, when submissions are created, and more.
There are some terms you will hear used while working with workflows that help to understand up front.
- Workflow/Task Builder: Graphical process builder that allows configuration and sequencing of tasks.
- Workflow/Task Engine: The Task Engine is a processing engine that takes input from applications and executes configured workflows.
- Handler: Standalone collection of code designed to perform a business task. Task Handlers take parameters, return results, and can throw exceptions in the event of an error. These are also the connections to external systems once a workflow has started. They can reach out an perform one or more CRUD (Create-Read-Update-Delete) actions in an external system.
- Task Node: a specific instance of a handler on a workflow.
- Connector: Link between two task nodes. Can have logic applied to limit processing.
- Source: An incoming connection with an external system. These allow processing of incoming data from other systems to make it easy to work with.
- Tree: A Tree is a workflow process defined by nodes and connectors. It can be called/run from an external application. It can accept inputs and reference values from the external application; it is connected to a source.
- Routine: A Routine is a workflow very much like a tree except that it does not take external data (are not connected to a source) but instead have defined parameters and return results much like a handler. Routines can be called from trees or from routines.
- Run: An instance/execution of a workflow connected to a specific set of data. For example, a tree execution triggered by the submit on a submission is a run of that tree.
- Error: Both the task management system and handlers can throw errors. Those often occur when there is bad data, a bad connection, or bad coding in a parameter or connector. Errors can often be skipped or retried once corrections have been made (depending on the type of error).