Workflow / Business Process Management

A workflow is a model of a process in your application. Workflow Management provides configuration of multiple workflows on Assets, Documents, Data, and Enrichment to support maintenance of content, life cycles and various other processes.

Pimcore Workflow Management provides configuration for multiple workflows on Pimcore elements (Assets / DAM, Documents / CMS, Data Object / PIM) to support the data maintenance processes, element life cycles and various other processes. It is based on the Symfony workflow component extended with a few Pimcore specific features. A workflow is a model of a process in your application. It may be the process of how a blog post goes from draft, review and publish. Another example is when a user submits a series of different forms to complete a task. Such processes are best kept away from your models and should be defined in configuration. The definition of a workflow consists of places and actions to get from one place to another.

Key Concepts

  • Workflow: A workflow is a model of a process an element in Pimcore goes through. It consists of places, transitions, a marking store, global actions and a couple of additional configuration options. Each element can be in multiple workflows simultaneously.
  • Workflow Type ‘Workflow: Workflow type workflow describes the default type of workflows and allows for modeling a workflow net which is a subclass of a petri net. It models the process of an element and allows that element to be in multiple places simultaneously.
  • Workflow Type ‘State Machine’: A state machine is a subset of a workflow and its purpose is to hold a state of your model. The most important restriction is that a state machine cannot be in more than one place simultaneously.
  • Place: A place is a step in the workflow and describes a characteristic or status of an element – for example in progress, product attributes defined, copyright available, element ready for publish, etc. Depending on the place an element may appear in a specific view (e.g. custom layout for data objects) and may have certain special permissions (e.g. finished elements cannot be modified anymore).
  • Marking Store: The marking store stores the current place(s) for each element. Pimcore ships with a couple of stores that can be configured in workflow configuration.
  • Transition: A transition describes the action to get from one place to another. Transitions are allowed (or not) depending on additional criteria (transition guards) and may require additional notes and information entered by the user.
  • Transition Guard: Define criteria that define if a transition is currently allowed or not.
  • Global Action: While transitions are only available when the element is in a certain place, global actions are available at every place. Besides that, they are very similar to transitions

Improved Collaboration and Notifications

Email notifications can be configured to be sent to users when any transition takes place. To do this simply specify an array of user(s) or role(s) that you would like to be notified in the options section of the transition definition. Roles will send an email to every user with that role. Configure a Pimcore Mail Document to utilize the full power of Pimcore Mail Documents with Controller, Action, Placeholders, etc. In the mail document, the same parameters are also available. If more custom notifications are necessary, you can use custom event listeners.

Workflow History

Report every action used on the object via the Workflow module

Workflow Overview

Visualize all workflow details and their current state with a workflow graph

The benefit of implementing workflows is that you simplify and accelerate any process by reducing manual, duplicated entry and request handling. This greatly reduces errors, the cost of re-work and drastically lessens the risk of improperly approved requests, contracts, and transactions for improved compliance with actionable audit trails.