Don’t forget to subscribe to our YouTube channel to stay up-to-date.
Managing content workflows in Drupal requires tools that track content from draft to publication. Drupal provides options for implementing workflows at different levels, from basic content moderation to field-level state management and webform submission tracking.
In the video above, you’ll learn how to set up and configure Content Moderation, use field-level state management with the Field States Transitions module, and track webform submissions with the Webform Workflows Element.
Content Moderation and Workflows Module
Boost Your Web Development Skills
Get lifetime access to all live streams ad-free and a private site builder forum. Click here to join.
The Content Moderation module provides revision-based workflow management built into Drupal core, enabling custom workflows with multiple states and transitions while maintaining separate draft and published versions.
Understanding Content States and Revisions
Standard Drupal limits content to two states: published or unpublished. Content Moderation expands this by letting you define custom states and track content through editorial stages.
The module assigns states to specific revisions. When you create a draft revision, the published version remains live, enabling you to make changes without affecting what visitors see.
Installing Content Moderation
Navigate to Extend and enable the Content Moderation module. This automatically installs the Workflows module as a dependency.
Content Moderation only works with revisionable entities including:
- Content (nodes).
- Blocks (custom blocks).
- Taxonomy (taxonomy terms).
Configuring the Editorial Workflow
Drupal provides a default Editorial workflow with three states:
- Draft: Content is being written or edited.
- Published: Content is live on the site.
- Archived: Content is no longer active but preserved.
To access workflow configuration:
- Navigate to Configuration > Workflows.
- Click Edit on the Editorial workflow.
- View the existing states and transitions.

Understanding Transitions
Transitions define the allowed paths between states. The Editorial workflow includes these transitions:
Create New Draft: Moves content from draft or published states back to draft status.
Publish: Transitions content from draft or published states to published status.
Archive: Moves published content to archived state.
Restore to Draft: Returns archived content back to draft status for editing.
Restore: Moves archived content directly back to published status.
Each transition specifies which states can move to the target state. You can see that published content can transition back to published, enabling you to update live content while keeping it in the published state. Archived content can be restored either to draft for further editing or directly to published status.
Assigning Workflows to Content Types
To enable a workflow on a content type:
- Navigate to Configuration > Workflows.
- Click Edit on your workflow.
- Under This workflow applies to, select Content types.
- Check the content types you want to include.
- Click Save.
Each content type can only use one workflow. You cannot assign multiple workflows to a single content type.

Working with Moderation States
After enabling Content Moderation on a content type (using the Editorial workflow), the edit form displays a moderation state dropdown at the bottom.
You can select:
- Draft: Save changes without publishing.
- Published: Make content live immediately.
When you edit published content, you control whether changes go live immediately (save as Published) or create a draft revision (save as Draft).

Viewing Published and Draft Revisions
Content with both published and draft revisions displays two tabs:
- View: Shows the published revision visible to anonymous users.
- Latest version: Displays the most recent draft or unpublished revision.
This separation enables content editors to prepare updates while keeping the current version live.

Managing Moderated Content
Navigate to Content > Moderated content to view all unpublished revisions across your site. This page displays:
- Title.
- Content type.
- Author.
- Moderation state.
- Last updated date.
When you publish a revision, it disappears from this listing and appears in the standard content overview.

Creating Custom Workflows
To create a new workflow:
- Navigate to Configuration > Workflows.
- Click Add workflow.
- Enter a workflow label (e.g., “Documentation”).
- Select Content moderation as the workflow type.
- Click Save.

Adding Custom States
Define the states your content will move through:
- Click Add a new state.
- Enter the state label (e.g., “Needs Review”).
- Click Save.
Create all required states before configuring transitions.
Note: You will get a draft and published state by default.

Configuring Transitions
Transitions control how content moves between states. For each transition:
- Click Add a new transition.
- Enter the transition label (e.g., “Send to Review”).
- Select the From states (which states can use this transition).
- Select the To state (where the transition leads).
- Click Save.
The transitions determine which moderation state buttons appear on the edit form.

Setting Up User Permissions
Configure which roles can perform transitions:
- Navigate to People > Permissions.
- Search using your workflow name.
- Assign these permissions to appropriate roles:
- View any unpublished content: See draft revisions.
- [workflow name] workflow: Use [state name] transition: Control specific transitions.
- Access the Content overview page: View the content listing.
Configuring Moderated Content View
When you create a custom workflow, update the Moderated content view to display submissions in your new states:
- Navigate to Content > Moderated content.
- Configure the exposed filter for Moderation state.
- Add your custom states (e.g., “Draft”, “Needs Review”).
- Click Apply.
The view now displays content in all configured states.
Field States Transitions Module
The Field States Transitions module provides workflow management at the field level rather than the revision level. This approach offers more flexibility for content that requires multiple independent workflows.
Installation and Setup
Install the module via Composer (2.0.3):
composer require 'drupal/field_states:^2.0'
Navigate to Extend and enable the Field states module.
Adding a States Transitions Field
Create a content type or edit an existing one:
- Navigate to Structure > Content types.
- Click Manage fields.
- Click Add field.
- Select States transitions as the field type.
- Enter a label (e.g., “Stream Status”).
- Click Save and continue.
Defining States
Configure the available states for your workflow:
- Enter each state value in the Allowed values section.
- For a live stream workflow, you might use:
- Scheduled: Event is planned but not started.
- Live: Event is currently happening.
- Ended: Event has concluded.
- Archived: Event is archived for reference.
Click Save settings after entering all states.

Configuring Transitions with YAML
The module provides a visual diagram showing your workflow structure. You can configure transitions through the interface or using YAML configuration.

To configure transitions via YAML:
- Scroll down to the Workflow advanced section.
- Define transitions with this structure:
states:
scheduled: Scheduled
live: Live
ended: Ended
archived: Archived
transitions:
scheduled:
from:
- ''
to: scheduled
label: → Scheduled
id: scheduled
scheduled_live:
from:
- scheduled
to: live
label: Start Stream
id: scheduled_live
role:
- content_editor
live_ended:
from:
- live
to: ended
label: End Stream
id: live_ended
role:
- content_editor
ended_archived:
from:
- ended
to: archived
label: Archive
id: ended_archived
ended_scheduled:
from:
- ended
to: scheduled
label: Reschedule
id: ended_scheduled
archived_scheduled:
from:
- archived
to: scheduled
label: Reschedule
id: archived_scheduled
The diagram updates automatically to reflect your transition configuration.
Restricting Transitions by Role
Control which roles can execute specific transitions by adding role information to your YAML:
scheduled_live:
from:
- scheduled
to: live
label: Start Stream
id: scheduled_live
role:
- content_editor
live_ended:
from:
- live
to: ended
label: End Stream
id: live_ended
role:
- content_editor
The diagram displays role restrictions next to each transition.
Using Transition Buttons
When editing content, the field displays buttons for available transitions based on the current state. Click a button to move content to the next state without opening a dropdown menu.
For states with multiple possible transitions, all available buttons appear. This provides quick, one-click state changes.
If you can’t see the buttons, then go to manage display on the content type and make sure that the status field is using the field transition format.

Webform Workflows Element
Learn More About Webform
Want to become proficient with Webform? Check out the Getting Started with Webform course, available as part of the WebWash Premium community.
The Webform Workflows Element module adds workflow tracking to webform submissions. This enables you to track leads, job applications, or support requests through custom workflow states.
Installing the Module
Install Webform and the workflows element via Composer (2.0.1):
composer require 'drupal/webform_workflows_element:^2.0'
Enable Webform and Webform UI (if you haven’t already done so) from the Extend page, then search for and enable Webform Workflows Element.
The module requires the core Workflows module, which installs automatically with Content Moderation.
Creating a Webform Workflow
Create a workflow specifically for webform submissions:
- Navigate to Configuration > Workflows.
- Click Add workflow.
- Enter a label (e.g., “Contact Workflow”).
- Select Webform workflow as the workflow type.
- Click Save.

Defining Workflow States
Add states representing your submission workflow:
- Click Add a new state.
- Enter state labels such as:
- New: Submission just received.
- In Review: Someone is evaluating the submission.
- Contacted: Response has been sent.
- Click Save after adding all states.
Configuring Transitions
Set up transitions between states:
- Click Add a new transition.
- Enter the transition label (e.g., “Start Review”).
- Select From state: New.
- Select To state: In Review.
- Click Save.
Create all necessary transitions to connect your states.
Adding Workflow to Webform
Integrate the workflow element into your webform:
- Navigate to Structure > Webforms.
- Select your webform and click Build.
- Click Add element.
- Search for and select Webform workflows element.
- Enter an element key (e.g., “workflow”).
- Select your workflow from the dropdown.
- Configure visibility options if needed.
- Click Save.
The workflow field tracks the submission state but remains hidden from anonymous users by default.

Managing Submission Workflows
After form submissions arrive:
- Navigate to your webform’s Results tab.
- Click on a submission.
- View the current workflow state.
- Select a different state from the Transition dropdown.
- Click on Save workflow.
Each state change triggers the associated transition, moving the submission through your workflow.

Configuring Transition Access
Control which roles can execute specific transitions:
- Navigate to your webform’s Build tab.
- Click Edit on the workflow element.
- Select the Access tab.
- Configure role-based access for each transition.
This ensures only authorized users can move submissions through specific workflow stages.

Setting Up Workflow Email Notifications
Send automated emails when submissions change states:
- Navigate to your webform’s Settings > Emails/Handlers.
- Click Add workflow change email.
- Configure which transition triggers the email.
- Set up email content and recipients.
- Click Save.
Test the workflow by submitting a form and changing its state. The email sends when the submission reaches the configured transition.

Workflow Overview
Click on the Workflows tab when editing a webform to view your workflow configuration.
This page displays:
- Overall summary: Workflow name and initial state for new submissions.
- Enabled transitions: Active transitions with their from/to states, access controls, and email handlers.
- Disabled transitions: Any transitions disabled for this form.
- Understanding workflows: Explanations of how states and transitions work.
This overview provides a complete snapshot of all workflow settings on the webform.

Summary
Drupal provides multiple options for implementing content workflows depending on your needs:
- Content Moderation offers revision-based workflows built into Drupal core with support for draft and published versions.
- Field States Transitions enables field-level workflow management with visual diagrams and role-based transition control.
- Webform Workflows Element tracks form submissions through custom states with email notifications and role-based access.
Start with Content Moderation for standard editorial workflows. Consider Field States Transitions when you need more flexibility or multiple workflow tracks. Use Webform Workflows Element for tracking form submissions through custom business processes.
Each approach integrates with Drupal’s permission system, enabling you to control which users can move content through specific workflow stages.





2 comments
J-F Bohemier
Great post, thanks! I have been using the workflow (no s) module to do the same that Field States transitions is doing, for years and it has served me quite well… It uses a field to manage the workflow state and allows configuring access in the same way. It doesn’t have the graphical chart though but is quite complete.
Cheers 🙂
Ivan Zugec
Thanks for the info.
The workflow module looked very good, but I didn’t cover it because on the latest version of Drupal 11 I was getting two fatal errors. One when I created a workflow and a second one when I was just saving a content type. Now I could have just simply patched it, but then I have to explain that in the video, and if a module requires a lot of explanation to use, I don’t tend to cover it.