Blog Channels
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?

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.

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.



7 comment(s)
Comments
Agnar Ødegård
We're also in the "business
We're also in the "business of workflow" and I wonder how you would solve this use case:
Let's say you have 5 states from draft to published with 5 different people. Only the first person should be able to edit anything. The next 4 should onlly be able to change the workflow; sending it to "draft" if they want #1 to make any changes.
My experience is that workflow alone isn't sufficient, it's the combination of user roles and workflow that is needed to solve more complex workflows. (Who can edit what in which state etc.)
Thanks for the read!
David G (d.o/user/1059226)
Workbench Moderation does all that
Workebench can do exactly what you say with a little configuration in the UI you can setup . See: http://drupal.org/documentation/modules/workbench_moderation
Cameron Eagans (cweagans)
With the workflow module, you
With the workflow module, you wouldn't see the publishing options if you didn't have the appropriate permission.
I do agree with you, though: Workbench is a fantastic solution (and it's much easier for clients to understand, in my experience).
2pha
An alternative may be a
An alternative may be a module called revisioning that I stumbled across a couple of days ago.
http://drupal.org/project/revisioning
mmueggenborg
One of the options that I
One of the options that I explored before I found Workbench Moderation was the possibility of using revisioning and rules to change publishing options. I ran into the same problem though where I was going to need to add an arbitrary field to store the 'workflow state'. But in any workflow setup revisioning will be at the center of the solution. It gives you the ability to save one copy of a node while keeping another copy published for anonymous users.
"Curiosity killed the cat, but for a while I was a suspect." -- Steven Wright
Rakesh
Hi, I have created a
Hi,
I have created a workflow,
creation to review,
review to approved or disapproved successfully using workflow,
but i want to add a workflow where if author edits the approved content, it should go back to review state and gets unpublished.
Is it possible through workflow or workbench can be a better option.
mmueggenborg
Rakesh, Workbench Moderation
Rakesh, Workbench Moderation will submit the author's new draft in an unpublished state, but the version that was published and approved will remain published until replaced by the new draft. But, you could always configure a Rule to unpublish the older version as well.
"Curiosity killed the cat, but for a while I was a suspect." -- Steven Wright