Our Work


Managing Workflows in Drupal

By Gwen Daniels on September 16, 2015

On August 19, I gave a presentation at the Fox Valley Drupal meetup to talk about content management workflows in Drupal. It was a co-presentation with fellow meetup member, Jason Bell of Start Interaction. I thought I'd recap the presentation here and share what ILAO is building to manage its legal content in the next version of our website.

What are content management workflows?

When we talk about content management workflows, we are referring to the steps a piece of content must go through to get from draft or revision to published. For example, this blog has a very simple workflow of draft and then publish. We don't use anything other than what came with Drupal "out of the box" for managing content on this blog. Our legal content, on the other hand, uses a much deeper set of workflows. Last fall, ILAO underwent a process to document our business processes for managing legal content. That workflow envisions multiple roles (content managers, expert editors, editors, and users who may have special skills such as the ability to "plain language review" an article) and multiple steps before new content or major revisions of existing content can be published. This multi-step process includes: draft or revision, a copy edit review, a plain language review, and a meta data review before being published. Once published, we have additional steps for translation and promotion.

Some simple options.

Jason highlighted some simple options to improve a basic content workflows:

  • Revisioning, which allows a site to add essentially version control to content. Instead of just editing a piece of content, one can create a new version and then, when necessary revert the content back to a former version.
  • Save Draft, which replaces the Save button with options for Publish and Save as Draft. A small UX enhancement.
  • View Unpublished, which provides granular permissions to allow users with certain roles to view unpublished content of certain types. For example, on our redesign site, we might want a content editor to view not yet published legal articles to help edit them, but not to view unpublished events.
  • Workflow, which allows a site to add workflow states to content. For example, with workflow, I can assign content to a state of "draft" or "needs review." Workflow does not enforce content moderation, it only allows for it.

Our Workflow Solution

ILAO's workflow for legal content looks like this:

Draft (or Revise) -> Copy Edit -> Plain Language Review -> Metadata Review -> Final Review (if required) -> Publish -> Final Review (if not required).

Any Advocate user (a person who is employed at one of ILAO's legal aid partner organizations) will be able to draft or revise content. But only users who have earned the copy edit, plain language review, or metadata review skills will be able to move a completed draft/revision to the next step. Final review is required before publishing only if the user creating the draft or revision does not have elevated publishing permissions. For example, an ILAO staff member or an approved content editor may bypass final review before publishing, but any other Advocate user must have their work reviewed by a staff member or expert before it can go live. And when that review step is skipped, a post-publish review action is triggered, requiring our content team to review the content after it is published. And any user making a change that amounts to less than 15% of the article may bypass all of the steps between Draft/Revise and Publish.

We are turning to the Workbench module to handle our workflow moderation. This module allows us to create each step in our workflow as a state and define transitions between states.

While very similar, Workbench goes a step beyond Workflows in that it enforces moderation. When it is enabled for a particular content type, it is impossible to publish content or a revision of that content without going through the defined required steps. It can support different workflows for different content types and uses a permission-based system that will allow user A to move content from draft to copy edit but no further while allowing user B to move content to any step, but only in the specific order that we have prescribed. Content creators and editors can quickly see what they've worked on and content managers can see what needs review through a dashboard view of the content management system.

Tying Workbench in with the Rules module, we can trigger particular actions when a piece of content transitions from one state to another. For example, we can create a rule that says "When a user with the role of advocate moves a piece of content from draft to copy edit, send an email to the content team that the content is complete." or "When a user publishes content, trigger the following promotion options: post to Facebook, send a Tweet, include in weekly newsletter." This integration allows for a highly flexible and power content curation platform.

Stay tuned for more!


*Image above can be found at http://www.gliffy.com/go/publish/8581299.