Move Over, Drupal Workflow … Workbench Moderation Does it Better


Move Over, Drupal Workflow … Workbench Moderation Does it Better


It’s pretty common for a client to require an internal approval process for updates and new content creation on their website.  Often times, the person that’s changing/updating content is an administrative assistant, but for quality assurance reasons a manager or supervisor needs to give the final approval before the update is published.

The Obvious Choice: Drupal Workflow

This approval process is commonly referred to as ‘workflow’, so my first instinct is to search contributed modules for ‘Drupal Workflow’.  And you get exactly what you’re looking for.  A module that assists you in configuring rules, revisions, and workflow states to accommodate one or more levels of approval to manage content updates.  Being the top search result, I trusted this module blindly and dove into the configuration feeling pretty good about how it worked.  And don’t misinterpret the tone of this post.  Drupal Workflow isn’t bad, but I found some redundancy that really bugged me after I walked away from a finished site.

It really boils down to a single step in the setup process that I felt was unnecessary: you configure workflow ‘states’ that apply to your content types.  Once you apply a workflow to your content type(s), an extra field is added to the administration interface that allows you to select one of the states that you setup when you defined the workflow.  This field can either be set manually or programmatically depending on the permissions that you’ve assigned to users.  This field might have options like ‘draft’, ‘needs review’, or ‘published’.  It’s that last option that bugs me.  We already have a ‘published’ field, don’t we?  Why do we need another field?  Can’t we just insert additional values into the ‘published/unpublished’ flag that Drupal natively provides?

Drupal Workflow creates a redundant set of fields that aren't necessary.

Fast forward several projects: I’m once again faced with a client that requires workflow/approval on their site.  I remembered that when I implemented the Drupal Workflow module, I had to setup several rules that were doing double duty of changing the workflow state AND the published/unpublished flag.  Again I thought to myself that it would be ideal if there was a module that just hooked into the published/unpublished flag and added additional values.

If at first … Try again: Workbench Moderation

Using the Drupal Workflow project page as a starting point for my search, I looked through the related projects until I found Workbench Moderation, which is a small piece of the Workbench suite of tools for Drupal.  It appears that I wasn’t the first to consider the published/unpublished flag as a good place to implement workflow, because that’s exactly what Workbench Moderation does.

Certainly revisions and rules are still required for a full implementation.  There’s no interface in either Drupal Workflow or Workbench Moderation for configuring email notifications.  It’s recommended to use Rules for that and I wouldn’t suggest anything else.  Rules rocks!  The rest of the configuration of Workbench Moderation is similar to Drupal Workflow.

But now rather than having two separate interfaces for the workflow process when I’m editing a node, it’s all handled through an adjusted interface for the published/unpublished flag.  It’s such a simple variation in design, yet it makes all the difference in simplifying the process of moving from one workflow state to the next.

Workbench Moderation combines the workflow state with the existing publish/unpublish flag that Drupal generates.

My recommendation: skip over the Drupal Workflow module in favor of Workbench Moderation.  And while you’re at it, investigate some of the other tools that the Workbench suite offers.  There are additional modules for handling workflow for your media, and adjusting user access permissions based on ‘sections’ of your site.

More About the Author

Matt Mueggenborg

Lead Web Developer
Don’t Take NULL for an Answer – Make Tableau’s ‘getWorkbook()’ and ‘getActiveSheet()’ Functions Behave Correctly NULL errors have cropped up twice in recent development projects utilizing Tableau’s JavaScript API. In one instance, getWorkbook() ...
The BURNING Question: What was HOT at DrupalCon 2013? As a web developer, you were faced with a unique decision this year. Should you get your ultimate geek on at the 2013 DrupalCon in ...

See more from this author →

InterWorks uses cookies to allow us to better understand how the site is used. By continuing to use this site, you consent to this policy. Review Policy OK


Interworks GmbH
Ratinger Straße 9
40213 Düsseldorf
Geschäftsführer: Mel Stephenson

Telefon: +49 (0)211 5408 5301

Amtsgericht Düsseldorf HRB 79752
UstldNr: DE 313 353 072


Love our blog? You should see our emails. Sign up for our newsletter!