You require Drupal 9+ to install CMS Content Sync. Checkout our Technical Requirements for more information. Make sure your Drupal core and all contrib modules are up-to-date before you continue.

Install the latest module version from by using composer:

composer require drupal/cms_content_sync
The module has to be downloaded with Composer so that all dependencies are resolved correctly. If the module isn't installed with Composer, you may run into difficulties due to missing modules, missing libraries or version mismatches.

Enable the module for all sites either with the "Extend" functionality in the Drupal admin UI or by using Drush:

drush en cms_content_sync


After enabling the module, open the Registration tab to register your site(s); be sure to add all sites to the same project that should be able to share content with each other.

Localhost environments

If you are using a localhost environment that we can't communicate to from the outside via REST (i.e. no dynamic DNS), please enable our "private environment" submodule first. After enabling, please always run "drush cspep" in the background when working with Content Sync on that site. This will poll for requests which means every request takes about 8 seconds longer on average and every update takes about 15 seconds longer per language. Please do not use this as a performance indicator- test the performance on test sites without this module instead.


Next, open the Compatibility tab and check that everything you want to work with is supported. If a field type or entity type is not supported, it will be shown here.

We whitelist all field types and entity types we support and by default we already support all of the most-used Drupal core and contrib modules. Supported modules are whitelisted as we want to make sure we support all of these entity and field types with every new Drupal core, Drupal contrib and Content Sync release- so we run a range of automated end-to-end tests for every single entity and field type we support before every release we make.

If you are using an entity or field type that is not supported yet, please reach out to us!

You can also add your own handlers- checkout our "custom field handler" submodule for an example; this is for custom field and custom entity types you want to support.


Once your sites are registered, you can start with the configuration at the Flows tab. Learn more here.