World is now on Opti ID! Learn more

John-Philip Johansson
Nov 14, 2016
  4493
(0 votes)

Introducing Content Approvals (Beta)

This feature was released as a Beta feature in CMS 10.1.0 and is still under development.

You can read more about how you enable Beta features in Fredrik Tjärnbergs blog post.

What are Content Approvals?

Content approvals is a way to make sure that content is reviewed and approved before it is published. It works as a new state (In review) between Draft and Published, which is visible in the Versions gadget. When an editor has finished working on a content item, the editor cannot publish it but has to set it as Ready for Review. One or more appointed reviewers must then approve the content item before it can be published. The reviewers are defined by an administrator in an Approval Sequence.

Content approvals do not apply to blocks at this stage.

The Approval Sequence is set up by an administrator and can have any number of approval steps and any number of approvers in each step. If the page has multiple languages there has to be at least one approver for each language in each step.

Bonus feature: Pluggable menu items

The approval sequence overview is opened from the context menu in the page tree: 

Image Content Approval blog post - context menu.png

As a part of this release, we made the context menu pluggable. So now you can easily add items to the context menu.

More about Content Approvals

Content Approvals work with Projects but only on a per-content basis, and not for the whole Project.

The approvals can be driven through the Core API, but beware that it's also in Beta and will change a lot as we're continuing on Content Approval. Do take a look at the IApprovalEngine and IApprovalEngineEvents in the meantime. Use it to react to content moving through the sequence, or automatically reject or approve changes.

You can read more about Content Approvals in the User guide documentation.

There are more things coming with Content Approvals, but please let us know what you like or if there's anything you want us to focus on.

Nov 14, 2016

Comments

Please login to comment.
Latest blogs
Make Global Assets Site- and Language-Aware at Indexing Time

I had a support case the other day with a question around search on global assets on a multisite. This is the result of that investigation. This co...

dada | Jun 26, 2025

The remote server returned an error: (400) Bad Request – when configuring Azure Storage for an older Optimizely CMS site

How to fix a strange issue that occurred when I moved editor-uploaded files for some old Optimizely CMS 11 solutions to Azure Storage.

Tomas Hensrud Gulla | Jun 26, 2025 |

Enable Opal AI for your Optimizely products

Learn how to enable Opal AI, and meet your infinite workforce.

Tomas Hensrud Gulla | Jun 25, 2025 |

Deploying to Optimizely Frontend Hosting: A Practical Guide

Optimizely Frontend Hosting is a cloud-based solution for deploying headless frontend applications - currently supporting only Next.js projects. It...

Szymon Uryga | Jun 25, 2025

World on Opti ID

We're excited to announce that world.optimizely.com is now integrated with Opti ID! What does this mean for you? New Users:  You can now log in wit...

Patrick Lam | Jun 22, 2025

Avoid Scandinavian Letters in File Names in Optimizely CMS

Discover how Scandinavian letters in file names can break media in Optimizely CMS—and learn a simple code fix to automatically sanitize uploads for...

Henning Sjørbotten | Jun 19, 2025 |