Webdrips Drupal 8 Demo of the Drupal Workflows Module's Edit Workflow States Administration Screen
2019-03-25

Introducing the Core Drupal 8 Workflows Module

The Drupal 8 Workflows module allows you to apply a workflow to one or more entity types (page types, block types, and media types). It can be used with the Content Moderation module to create simple to complex content approval workflows. In short, the Workflows module allows easy implementation of state machine logic for the process of getting a page from draft to published.

With Workflows, different roles may have different permissions to transition a given page, block, or media entity from one state to another. It provides simple to complex governance workflow implementation. These workflows are ideally suited for medium to large entities that require a few to multiple touch points before publishing a page.

For example, a student at a university could create an event, the department could approve the event contents, the facilities could assign a room number, and perhaps some sort of final approval could then be applied to get the event published and added to the events calendar. 

Test-drive this Feature on this Demo Site

What is the Difference Between the Drupal 8 Workflows and Workspaces Modules?

The core Drupal Workspaces module provides an Agile-like workflow for your content creation process that allows site editors to prepare and preview a complete set of related content before making it available to the public. For example, you might have a new event coming up that includes the event announcement, a preview webinar, and a form to request more information and tickets. With Workspaces, you can review and publish the entire set of related content with a single click of the "Easy Button". 

So what's the difference between Drupal Workflows and Workspaces? We answered that question in detail on our blog about the Workspaces module, but in a nutshell, here is the answer: 

  1. Workflows can be applied to blocks, media, and page types, but they only can be applied to one given Drupal entity at a time. 
  2. Workspaces provides a bulk moderation process currently limited to pages (although it seems reasonable to extend this to menu items, blocks, tags, etc.). The group of content is then reviewed and edited in one "environment", and deployed to another. 

Drupal 8 Workflows Module Example

If you use the Request Editor Access button on the homepage, you can try this built-in functionality out yourself. 

Workflows Module States

On this Drupal 8 demo site, we have configured the following states:

  1. Draft: the content was just added by a site editor, but it is not ready for anyone to review it.
  2. Ready for Marketing Review: the editor writing this page believes it is ready for the marketing department to review it.
  3. Ready for Legal Review: the marketing department has reviewed the page, and it is now ready for the legal department's review.
  4. Published: the page has been approved by the legal department, and is now visible to the public. 
Webdrips Drupal 8 Demo Workflows Module Workflow States Table
Drupal 8 Workflows Module States Table

 

When we edit a state, we are shown the allowed transitions

Webdrips Drupal 8 Demo Workflows Module Edit State Screen
Drupal 8 Workflows Module Edit State Screen

 

We find this screen most useful as a summary screen, and we found it a bit easier to edit the allowed transitions screen from the transitions table, which we dissect next. 

Workflows Module Transitions

We use the workflow transitions table to set up the following transitions:

  1. Draft can stay at Draft, or transition to Ready for Marketing Review or Published.
  2. Ready for Marketing Review can stay put, or transition to DraftReady for Legal Review, or Published.
  3. Ready for Legal Review can transition to Ready for Marketing Review or Published.
  4. Published can transition to Ready for Marketing Review or Ready for Legal Review.

In case you're wondering why transitions are allowed to go "back" to an earlier state, it's basically telling the last person their last attempt needed too many updates, and so they'll want to review it again, make additional changes, and pass it back to be finalized. 

Webdrips Drupal 8 Demo Workspaces Module Transitions Table
Drupal 8 Workflows Module Transitions Table

 

We edit a transition to set up the allowed from transitions. (The to is fixed to the transition state being edited.)

Webdrips Drupal 8 Demo Workflows Module Edit a Transition
Drupal 8 Workflows Module Edit Transition Screen

 

As you can see here, we allow drafts to stay in the Draft state, and both Ready for Marketing Review and Published can be moved back to Draft. This means the legal department can't set a page back to the draft state (likely because they'd kick it back to marketing or set the page to published). 

Workflow Module Applied Per Entity

Use the "This Workflow Applies To" table to select which block types, media types, and content (page) types the workflow being edited applies to. 

Webdrips Drupal 8 Demo Workflows Module Apply Workflow to Entities Table
Drupal 8 Workflows Module Entity List Table Displays which Entities the Workflow Being Edited Applies To

 

In our example, the workflows on this demo site apply to the news and publication page types.

Workflow Module Default State

Before saving our workflow and putting it to use, you'll want to set the default state.

Webdrips Drupal 8 Demo Workflows Module Default Moderation State
Drupal 8 Workflows Module Default Moderation State
 

    Workflows Module Permissions for State Transitions

    You can set which role is allowed to make each transition using the permissions table (People > Permissions). 

    Webdrips Drupal 8 Demo Workflows Module State Transition Permissions by Role
    Drupal 8 Workflows Module State Transition Permissions

     

    Use these permissions to allow only certain roles to make a transition to each state you created. For example, it probably doesn't make sense for an editor role to use the publish transition if each page must be reviewed by marketing and/or legal prior to being published. 

    There's no limit to the number of workflows and permission combinations allowed. 

    Putting the Workflow to Use on Content

    There are two methods to make use of a workflow:

    1. Set the Workflow State while Editing an Entity

    While an entity is being edited, you can decide to go ahead and set the workflow state.

    Webdrips Drupal 8 Demo Workflows Module Change the Moderation State while Editing a Page
    Change the Moderation State while Editing
     

    2. Set the Workflow State While Viewing the Entity

    To save you a couple clicks, you can edit the workflow moderation state while viewing the entity. 

    Webdrips Drupal 8 Demo Workflows Module Change the Moderation State while Viewing an Entity
    Drupal 8 Workflows Module Allows Changing the Moderation State while Viewing a Moderated Entity

     

    Of course it's always recommended to add a log message to let your coworkers know what changed, and possibly pass along further instructions. 

    Conclusion

    The core Drupal 8 Workflows module allows you to apply a workflow to one or more entity types (page types, block types, and media types). It provides simple to complex governance workflow implementation ideally suited for medium to large corporations, government, and higher education. 

    You can configure permission to allow moderation state transitions per role. There is no limit to the number of workflows and role/permission combinations.

    Test-drive this Feature on this Demo Site

    Click Below to Test-drive this Feature

    Request Editor Access

    Let's Talk About Your Drupal Upgrade

    Please provide a fully-qualified URL (including "http://" or "https://")