Product Updates

DatoCMS changelog for new features and general improvements
Docs, Guides and Demos
Improved Next.js Blog starter!
November 3rd, 2022

Our Next.js Blog starter has been updated and now offers the following enhacements:

Add block information on Field Extension plugins
November 3rd, 2022

A small addition to our Plugins SDK: inside the renderFieldExtension hook, you can now access ctx.block.

If the field extension is installed in a field of a block, ctx.block returns the ID of the block — or undefined if the block is still not persisted — and the block model.

Introducing Autogeneration of Migration Scripts
November 2nd, 2022

Our CLI just became a lot smarter, and can now automatically generate a migration script from the differences between two environments!

Read the complete announcement in our Blog.

UI Improvement
Batch insertion of locales into a record
November 1st, 2022

Within a record, you can now add — and remove — multiple locales at once! Simply select all the locales you are interested in and press the relevant button:

This small change, along with the ability to automatically copy content from the currently selected language, greatly reduces editing time in projects with dozens of locales.

UI Improvement
Permanent URLs for sandbox environments
October 28th, 2022

When you enter inside a sandbox environment, the URL of the administrative interface now changes to become the following:


This allows you to share a link to a particular record/entity contained in a sandbox environment without confusion to your team members!

Content Management API
Breaking change in Workflows API
October 3rd, 2022

Starting October 10th, a couple of changes will be made to the CMA endpoints related to Workflows.

Workflows are a feature enabled in our Enterprise plans, so most of our users won't be affected by this change. All accounts actively using Workflows have already been notified via email about this change. If you did not receive an email, then you have nothing to worry about. 😉

Let's see how the workflow entity will change:

// Until October 10th:
"type": "workflow",
"id": "approval_by_editors",
"attributes": {
"name": "Approval by editors",
"stages": [...]
// From October 10th:
"type": "workflow",
"id": "123902133",
"attributes": {
"name": "Approval by editors",
"api_key": "approval_by_editors",
"stages": [...]

As you can see:

  • The old ID is now present in the new payload as attributes.api_key;

  • The ID becomes a regular DatoCMS ID, immutable during environment forks.

Please note that it will still be possible to fetch, update and delete workflows by passing the API key in the URL, although it is suggested to use the ID.

It will be required to pass the new ID instead of the API key every time a workflow is referenced in another entity relationship (ie. when creating/updating a Model) and inside roles permission rules.

Content Management APIUI Improvement
More blocks per record
September 29th, 2022

We have recently increased to everybody the maximum number of blocks you can have in a record. The limit have been increased by 50%, from 400 to 600 blocks per record.

This upgrade has been applied as the new minimum to everyone, old and new users.

If you need more blocks for a special use case, please reach out at

The limit seems high enough, but if you start building complex nested structures that are also translated you can quickly reach the limit. Unfortunately it's not a pricing issue but it's more of a technical limit as we need to run validations on all the new blocks that have been added. To avoid timeouts and long waits on the user's side we have added this limit, but if it's a blocker for you be in touch and we can test higher limits together.

New Contentful importer
September 21st, 2022

Closely following the release of the new CLI, we also released a new Contentful importer. You can install it as a CLI plugin, it provides faster import times and covers a number of new edge cases that the previous importer could not handle.

For all the information, take a look at the new documentation.

NewContent Management API
Immutable IDs during environment fork and site duplication
September 20th, 2022

Until now, when forking an environment (or duplicating a project from the dashboard), resources under the newly created environment were assigned new IDs. This included models, fields, fieldsets, records, blocks, menu items, plugins, filters and media assets.

Starting from today, every resource will keep their original ID on the forked environment (or duplicated project). For instance, given a model "Blog Post" with ID "12345" in the primary environment, once the environment is forked, a new model "Blog Post" with the same ID "12345" will be present in the new sandbox environment.

We are so excited about this new feature, as it greatly enhances the developer experience. It makes the adoption of an environment-based workflow even easier, as the cloned environment is indistinguishable from the original one. Migrations are simpler to write, as you can safely rely on the IDs to pick resources, and the same applies to any third-party application that communicates with your DatoCMS project.

This change will also allow us to start working on another very requested feature by community: auto-generation of migration scripts by diffing two different environments!

⚠️ PS. Since now IDs are immutable cross-environment, take extra precaution at selecting the right environment when you're ie. deleting any resource via our Content Management API! The same ID is present on multiple environments, so your API call will work even if you're not targeting the environment you had in mind!

NewUI Improvement
Configurable heading levels on Structured Text fields
September 16th, 2022

In the Presentation tab of Structured Text fields, it is now possible to enable only specific heading levels:

This will have the effect of hiding the relative slash commands on the editor (in this case, the Heading 1 option is not present):

For greater convenience, markdown shortcuts for heading levels that are not available will fall back to the nearest available level — that is, if Heading 1 is not available, pressing # will insert a Heading 2 — and tab and shift+tab keyboard shortcuts, which have the effect of decreasing/increasing the heading level, will skip the levels that are not available: