Documentation


Please support us to improve our service. We would like to use statistics anonymously.

We do not pass on your data! You can find more information in our privacy policy.

Decline

Table of Content

Welcome to the Flowy documentation section! Here, you will find a wealth of information and resources to help you get the most out of the Flowy platform. Whether you are just starting out with Flowy or are an experienced user, you will find everything you need to know about how to build, deploy and manage workflow automation solutions using Flowy.

The documentation has been split into separate documents due to its size:

Introduction

Platform Overview

Flowy is a platform designed to be highly scalable and reliable. It is designed following Hexagonal Architecture principles and clearly separates between the user-side, business logic respective server side.

Service overview
Service overview

Flowy is operated using 3 environment types:

Flowy environments
Flowy environments

Flowy Processes

Each request starts either by an user interaction (i.e. by a REST request) or by automatic trigger (i.e. by a time based condition). In each of this cases an event gets created and later processed following the pre-defined business logic.

At its core, each process within Flowy consists of:

  • trigger: the firing condition. Could be i.e. an action by an user or a time based automation (i.e. every midnight)
  • event: once any kind of trigger has fired, it creates an event entry which is used to track its processing
  • process: this is the logic and behaviour that triggers actions and reacts based on their result
UML Baseprocess
UML Baseprocess

Flowy processes are always executed on the processing service, which is described in the services section. Please refer to Flowy Processes to learn more about the process respective Flowy Steps for information on the steps they include.

Variables and Process Cache

Variables can be used to temporarily store data during runtime. A variable can be declared in Flowy using $. followed by the variable name.

During execution, variables are stored in-memory to the so called Process Cache. By default, the cache gets persisted to the database as part of each step log. This behavior can be disabled to improve performance and reduce database size.

The variables can be manipulated or even removed (through the Unset Variables step) at runtime. The cache is fully accessible to all steps of an process.

For safety reasons, variables should not be used for security related data. The use of credentials is recommended in such cases.

Development Approach

The typical development must happen in the following order:

  • Start with the creation of a process: It is sufficient to implement only a small part of the later functionality at first.
  • Creation of triggers: for testing purposes it is convenient to create a cron trigger and trigger it manually when needed. Alternatively, a REST trigger can be created and triggered through curl, Insomnia REST, Postman or similar tools.
  • Creation of credentials, templates, translations and validations as needed along with the necessary updates on trigger and processes.

This intentionally iterative approach quickly leads to usable results.

There is a strict demarcation line between configuration data and business logic. This enables the effective movement of workflow through environments (i.e. development, testing, production). As this happens, they get tested. By the time they reach production, you have tested both the workflow itself and the ability to deploy as well as the support processes around it.

Configuration data includes the following object types:

  • Credentials
  • Settings
  • Templates
  • Translations

Business logic is implemented with the following object types:

  • Entity
  • Libraries
  • Modules
  • Plugins
  • Processes
  • Triggers
  • Validations

This approach makes it easy to roll out existing workflows i.e. to new environments as it’s just a matter of configuration.

Version control

Flowy offers native support for versioning, ensuring that users can easily manage and track different versions of their projects. This feature is crucial for collaboration and maintaining a clear history of changes. For an in-depth understanding of how versioning works in Flowy and to leverage its full potential, please refer to the detailed documentation available on our separate page: versioning in Flowy.