Content matters. And we know that you put a lot of effort into crafting creative and engaging content. We also know that most writers don’t want to spend too much time on content administration. After all, writers are writers—not bureaucrats. However, there needs to be a way to make sure that only approved content gets published.
By reading this guide, you will learn how to:
ACME Corp is a telecommunications company that often needs to publish product pages for the mobile phones they are selling through their website.
The team that prepares and publishes the product pages is made up of:
ACME Corp is on top of their game when it comes to writing great copy. But the major problem is that they have no content approval workflow in place. Let’s fix that!
Before you start, you need to set up your content model to describe the workflow status of the entry.
Review State, shown above, is the field that indicates where in the flow the entry sits and promotes it to the proper views and channels based on this filter.
You can set the Review State to any of the following three values:
The Approved by Legal checkbox is required and must be ticked by the legal department before publication. This will prevent an editor from accidentally publishing an entry before any potential legal implications have been sorted out.
Any organization needs to make sure that only certain people can publish content and/or edit the Review State fields.
The permissions matrix looks like so:
Lastly, you can leverage the saved views functionality to make sure that each role can see the content they need to act on.
You can create saved views using the appropriate action on the sidebar:
With the just released feature of assigning views to specific roles, you can also make sure that each of your team members can only see the view that applies to their workflow.
You can use webhooks to completely automate notifications via email, Slack, or any other medium. One way of doing this is by using Zapier—a service that connects apps. Zapier has a number of integrations for Contentful, including support for the following triggers and actions:
As there are changes in the field values, but not on the content state, you need to set up your webhooks to trigger on every autosave.
Then, with the Zapier integration, you can send messages to your Slack channel anytime a change happens:
Note that by default you will get a notification anytime a change occurs. This works well for smaller teams with a more modest amount of content. But as you scale, you will need to apply some throttling logic.
Each row in the table below represents an action taken by either an author, editor or the legal department — and you can see how each action affects the page’s status:
In each step described above, and if you’ve enabled webhooks, a webhook gets fired so that you can, in turn, trigger your relevant notifications.
If the last two steps were not needed, but a change was still published, there is a quick way to revert this version to the correct, previous version by using our versioning feature.
This is a robust, suggested solution that will help you solve your content approval workflow problems. But we understand that there is, of course, room for improvement. That’s why we want your feedback, ideas, and experience. Your feedback will help us to evolve the support for custom content approval workflows.
Here's a list blog posts and documentation to help you learn even more about how to manage content.