> For the complete documentation index, see [llms.txt](https://program-user-docs.preignition.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://program-user-docs.preignition.org/release-notes/process-builder.md).

# Process Builder

Release note regarding process builder

Preignition contained a Process Engine since early version of the application. However editing processes was difficult and demanded a deep knowledge of the application's internal logic.

The new process builder aims at changing this and provide an easy way to adjust processes according to client's need.

## Overall

Processes are configured through 2 main views: `Compose` and `Access`. Certain type of specialized processes like Selections have additional views (e.g. `Selection`, `Batch` and `Campaign`).

![Process builder overall view. The active View is 'Apply to Program' state](https://473477000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDglCKkoaiLL-wpvCjA%2Fuploads%2Fgit-blob-cea8e949240e759bb6a77406e674fbe6c281c0e9%2Fimage%20\(247\).png?alt=media)

## Composition

A process is build in the `Compose` view, which comprises three sections. On the top, a visualization of nodes and transitions - automatically drawn from process definition. On the left, a tree grid indicating the structure of the process. Finally on the left, a section displaying the active item (node, transition or action).

Users can add / remove process items from the tree grid (via a context menu).

![Expanded Process Tree Grid, with a context menu](https://473477000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDglCKkoaiLL-wpvCjA%2Fuploads%2Fgit-blob-7353213d26db2f084fc6e52e2d8c7f8b083049af%2Fimage%20\(250\).png?alt=media)

### States, Transitions, actions

Preignition Process Engine is a custom implementation of a[ Finite State Machine](https://en.wikipedia.org/wiki/Finite-state_machine). Hence a process has to transition from one state to another in to perform different actions.

Actions are triggered whenever a state is activated. For the time being, users can set 4 different type of actions: send an email, display a message in a user's bulletin board, create a survey, and make and automatic transition.

Some type of actions require further settings. For instance, an email template has to be set when the type of action is "send an email".

![Choosing a type of action](https://473477000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDglCKkoaiLL-wpvCjA%2Fuploads%2Fgit-blob-104415e3c44a073af2b8e486357dc6dd9d28093b%2Fimage%20\(249\).png?alt=media)

### Process Validation

The app checks whether a process is valid. The user is informed in case of missing elements (like missing transition, missing email template, ...). An invalid process cannot be published.

![Example of an invalid process](https://473477000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDglCKkoaiLL-wpvCjA%2Fuploads%2Fgit-blob-30a0270d1bddb55db088620aff7cac9abcbf9e70%2Fimage%20\(257\).png?alt=media)

## Access

Like other Preignition resources, processes have an owner and can share different type of access (edit, view).

![Process Access page.](https://473477000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDglCKkoaiLL-wpvCjA%2Fuploads%2Fgit-blob-847d386ac2d42ab0095f0956ba5bb1e497ee873f%2Fimage%20\(252\).png?alt=media)

## Selection Process

Selection processes are specialized type of processes, aimed at defining and controlling how a business is accepted to a program. A business applies to a program by accessing a link associated to a selection process.

Additional information can be set for those type of processes.

### Selection page

This view allows to add human readable `aliases` for a selection process, or define a user who will be the default `steward` for businesses applying to the program.

It is also possible to describe the program so that businesses starting the selection process are well informed.

![Setting aliases and steward to a selection process](https://473477000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDglCKkoaiLL-wpvCjA%2Fuploads%2Fgit-blob-ed339e56828b64f24437198797ca040a99fbbaed%2Fimage%20\(253\).png?alt=media)

![Presentation of a program - displayed to businesses applying.](https://473477000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDglCKkoaiLL-wpvCjA%2Fuploads%2Fgit-blob-a802f1b5a215b89d469707a4c09569f552e5a628%2Fimage%20\(254\).png?alt=media)

### Batches

Multiple batches can be defined for a selection process. This allows to group businesses according to their respective application dates. Only one batch is active at a give time. Batches can also have starting and ending dates so as to only allow business to apply within defined time frames.

![One active batch starting from a certain date, without closing date.](https://473477000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDglCKkoaiLL-wpvCjA%2Fuploads%2Fgit-blob-8f70d83e71ed4766e291f713fabed04144f9abf8%2Fimage%20\(255\).png?alt=media)

### Campaign

It is useful to be able to trace how a business got access to a certain program. Campaign are added for this purpose. A campaign is a specific link attached to a selection process, allowing to know how a business interacted with a program.

For instance, a `campaign` link can be distributed to a partner relaying program communication. Alternatively, a different `campaign` link can be shared on twitter and other social media / email campaign.

![Example of one link to be shared with a specific partner.](https://473477000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDglCKkoaiLL-wpvCjA%2Fuploads%2Fgit-blob-ddb623c750ced9debdb0ef9ca16a1784766279be%2Fimage%20\(256\).png?alt=media)
