Each day, between migrations and new projects, more and more features are becoming available for Drupal 8, the Drupal community's latest major release. In this series, the Acquia Developer Center is profiling some prominent, useful, and interesting projects--modules, themes, distros, and more--available for Drupal 8. This week: Workbench Moderation.
I spoke with Joe Purcell, Technical Analyst and Senior Web Developer with Digital Bridge Solutions; Ken Rickard, Director of Professional Services at Palantir.net; and Larry Garfield Director of Runtimes, Integrations, Engines, and Services at Platform.sh about Workbench Moderation (aka WBM). Joe and Larry are both recent alumni of Palantir.net, where Workbench Moderation was originally created by a team of "Palantiri" at DrupalCon San Francisco in 2009. Larry told me, "WBM has gone through many hands while at Palantir, and is in essence maintained by the company as a whole." The Drupal 8 port was carried out in the spring of 2016 as a part of Acquia's D8 Module Acceleration Program.
Workbench Moderation is a key component in the Workbench suite of modules--Workbench, Workbench Access, and Workbench Moderation. As Ken Rickard puts it, "Workbench makes complex tasks simple and provides a common user experience that makes Drupal easier to use."
Larry describes a common situation, "At Palantir.net, we often got requests from academic clients for 'approval workflows'. Usually clients would describe highly complex ideal workflows, but after some discussion, they realized all they really needed was save-as-draft and someone-else-approves. Workbench Moderation was built to easily handle both of those use cases, which it turns out is the 85% use case."
Ken adds, "We tracked the common workflow issues we were being asked to solve, and collaborated on an approach that we could apply to all future projects."
So Workbench was developed for Drupal 7 to address a set of common editorial problems:
Workbench Moderation enables "forward revisions" on content; each revision gets marked in a particular state. These states are often simply "Draft", "Needs Review", and "Approved/Published", but WBM is completely configurable. You can add "Needs Legal Signoff" or any other state to the approval workflow. Via configuration and permissions you can also control who is able to move the forward revision from one state to another. This lets you reflect the roles of authors, editors, moderators, or your legal department. Revision states can also be set to cause an entity to become the new default revision, and to make it published or not, thereby allowing for an "archived" state.
"In Drupal 7, it only worked for nodes," Larry explained to me, "For Drupal 8, it works on (almost) any content entity that supports revisions and bundles. In core that's Nodes and Block Content, but it can work with others, too."
As of mid-2016, roughly 29,300 sites report using the base Workbench Module, 6,300 Workbench Access, and 24,000 Workbench Moderation (including 1,100 Drupal 8 sites).
Read the Workbench Module project page on Drupal.org for more information on the Workbench suite of modules and how they work together.
Workbench Moderation is a site administrator's friend. Larry Garfield walked me through some different "levels" of Workbench Moderation use cases from simple to advanced:
WBM lets you model any state-based, sequential workflow you need. Joe Purcell helped me understand this power and flexibility of Workbench Moderation with the following example. Here he describes creating a complex ticketing system that includes custom moderation states and transitions between them.
Joe, "This is just example off the top of my head. The point is you can now create interesting workflows in a few minutes that once would have required weeks of custom development to implement."
Ken Rickard: "Drupal 8 has not significantly changed Workbench; the nature of the functionality for site users administrators is identical. Some changes to the architecture were required by Drupal 8, but Workbench Moderation was in fact easier to write in Drupal 8 because of changes to how core saves node revisions (a patch we worked on during the development cycle). Workbench proper is mainly a collection of Views, made easier since Views is part of Drupal 8 core."
From the developer's perspective, Larry Garfield continues, "Drupal 7 didn't allow for forward revisions, so Workbench Moderation and modules like it needed to do all sorts of ugly contortions to make it work. The Drupal 8 version is vastly simpler. Drupal 7 required hundreds of lines of code to dance around core's inability to handle forward revisions, database transactions, and other hard-coded assumptions. All of that complication is gone in Drupal 8."
"WBM for D8 also leverages core's APIs more directly, because they're now there to be leveraged. For instance, in Drupal 7 the defined states, transitions, and tracking of what entity revision was in what state was all one-off, manual code. In Drupal 8, states and transitions are simply config entities and entity revisions simply have an entity-reference field to point to their appropriate state. One of the WBM developers, Steve Persch, helped improve the core Entity API to allow forward revisions to happen. That vastly simplified the Drupal 8 version, as well as making the core Entity API better."
Joe Purcell: "The last few weeks I have been focusing on Workbench Moderation and spending some time working with other module developers to achieve a high level concept that allows being able to create workspaces (buckets of content) that can be moderated and published."
Ken Rickard: "I've been working on Workbench and Workbench Access as part of learning Drupal 8, and we're implementing them on client projects now. Patrick Weston, one of Palantir's developers, has already written a node reference extension to Workbench Access for that client project. Those modules are in alpha state, and we've probably spent 100+ hours on them so far."
Larry Garfield: "As the primary author of WBM for D8, I took great care to make the code as âfunctional-OOP' as possible. There's extremely little in the .module file, even hooks are shunted off to services. Almost every method in the code base is an idempotent pure function. It's not perfect, but I'm happy with how clean the code base ended up being. It's also a good example of how to enhance entities through the new Entity API, by adding information and handlers to their annotation block via code."
Palantir.net supported and contributed to upgrading Workbench to Drupal 8. "The Drupal 8 development was fairly straightforward, but did require a ground-up rewrite," according to Ken Rickard. "Workbench Moderation was part of the Module Acceleration Program and funded by Acquia, with major code contributions from Lee Rowlands of PreviousNext. The full port took about three months."
Thanks for work on the Drupal 8 ports to all of the following and anyone whom I've failed to mention here!
If this content did not answer your questions, try searching or contacting our support team for further assistance.
Fri Sep 12 2025 08:01:03 GMT+0000 (Coordinated Universal Time)