HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In

Integrate Optimizely Content Marketing Platform with Optimizely Content Management System

This topic describes how to set up Optimizely Content Marketing Platform in Optimizely Content Management System. (Beta program)



To become part of the beta program for integrating Optimizely Content Marketing Platform (CMP) with Optimizely Content Management System (CMS), contact customer support.

The Optimizely Content Marketing Platform (CMP) integration with Optimizely Content Management System (CMS) consists of two parts that you can use together or separately:

  • DAM Picker that lets an editor select and link resources from Optimizely Digital Asset Management (DAM).
  • An integration with structured content (below) in CMP that lets a marketer publish content to CMS.

Integrate structured content into Optimizely Content Marketing Platform

Integrating structured content from CMS to CMP uses primarily the Content Definitions API to read content types and the Content Management API to publish content, but also adds custom endpoints and configuration to Content Cloud through the EPiServer.CMS.WelcomeIntegration.StructuredContent package. The Optimizely Content Marketing DAM Library Picker (EPiServer.CMS.WelcomeIntegration.UI) is optional and lets you view and edit assets in CMS.

Both integrations share a Content Repository that is automatically added, that gives the URL to the DAM library a content identity in Content Cloud.

Welcome integration packages

  • EPiServer.CMS.WelcomeIntegration.UI – Adds UI component to make it possible to select assets from CMP.
  • EPiServer.CMS.WelcomeIntegration.StructuredContent – Adds API endpoints required to publish content from CMP.
  • EPiServer.CMS.WelcomeIntegration.Core – Shared library, a content provider that can store external links to CMP.


  • EPiServer.ContentManagementApi 3.4 or later
  • EPiServer.ContentDefinitionsApi 3.4 or later
  • EPiServer.ContentDeliveryApi.Cms 3.5 or later
  • EPiServer.ContentDeliveryApi.Core 3.5 or later
  • EPiServer.OpenIDConnect.UI 3.4 or later
  • EPiServer.CMS.Core 12.8.0 or later
  • EPiServer.CMS.UI 12.9.0 or later

Known limitations

  • No block types, only pages
  • Only one language per content item
  • Only English (en) content is supported in CMS
  • One way content push, only CMP to CMS
  • No automatic update when a content type changes in the CMS
  • Cannot move an item in CMP after it is published to CMS
  • Cannot import content types with unsupported properties
  • Currently supported property types:
    • PropertyCategory
    • PropertyContentReference
    • PropertyJson
    • PropertyList
    • PropertyPageReference
    • PropertyAppSettings
    • PropertyAppSettingsMultiple
    • PropertyCheckBoxList
    • PropertyContentArea
    • PropertyDropDownList
    • PropertyTimeSpan

Install the integration

  1. Configure the OpenID before proceeding with the next steps. See API Authentication in the Content Delivery API.

  2. Run the following commands in the command-line interface to install the integration:

    $ dotnet add package EPiServer.CMS.WelcomeIntegration.UI
    $ dotnet add package EPiServer.CMS.WelcomeIntegration.StructuredContent
  3. In Startup.cs, add the following line in ConfigureServices:

    // method
  4. In Startup.cs add the following line in the ConfigureServices section under AddContentDeliveryApi:

  5. In Startup.cs, add the following line in Configure after UseAuthentication():

  6. If CORS is not already configured, in Startup.cs, add the following line in Configure after UseRouting():

  7. Add an access key to be used in CMP to communicate with CMS.

         "OpenIDConnect" : {
            "Applications" : [
                "ClientId"     : "welcome_integration",
                "ClientSecret" : "<ENTER SECRET>",
                "Scopes"       : [ "epi_content_definitions", "epi_content_management" ]
  8. Go to Admin > Access Rights, select Root and apply the following to welcome_integration: Read, Create, Change, Delete, Publish.