Bartosz Sekula
Nov 5, 2024
  3423
(2 votes)

CMS + CMP + Graph integration

We have just released a new package https://nuget.optimizely.com/package/?id=EPiServer.Cms.WelcomeIntegration.Graph which changes the way CMS fetches CMP Asset metadata.

If you use the CMP it means that you also have access to Graph and can fetch metadata from it instead of relying on the CMP API.

There are a few steps required in order to start using the new package https://nuget.optimizely.com/package/?id=EPiServer.Cms.WelcomeIntegration.Graph 

  1. Existing EPiServer.Cms.WelcomeIntegration packages need to be updated to version 1.4.0
  2. EPiServer.Cms.WelcomeIntegration.Graph needs to be installed
  3. GraphClient needs to be configured in appsettings.json in the following way:
    "Optimizely": {
      "ContentGraph": {
        "GatewayAddress": "https://cg.optimizely.com",
        "SingleKey": "SINGLE_KEY_FROM_CMP",
        "QueryPath": "content/v2",
        "UseHmacKey": false
      }
    }
  4. Make sure there is services.AddDAMUi(o => o.Enabled = true) call in Startup.cs
  5. Add services.AddDAMGraphIntegration(); call to Startup.cs
  6. If customer already has a CMS to Graph integration then it means he already has this config in appsettings
    "Optimizely": {
      "ContentGraph": {
        "GatewayAddress": "https://cg.optimizely.com",
        "AppKey": "APPKEY",
        "Secret": "SECRET",
        "QueryPath": "content/v2"
      }
    }
  7. Those AppKey&Secret allow to read&write to a CMS schema. But our new CMP+Graph integration uses different schema which is now available with the CMS keys.

  8. The following config needs to be added to appsettings.json
    "EPiServer": {
      "Cms": {
        "CMPGraph": {
           "SingleKey": "SINGLE_KEY_FROM_CMP"
        }
      }
    }
  9. Or to Startup.cs
    services.Configure<CMPGraphOptions>(options =>
    {
        options.SingleKey = "YOUR_KEY_FROM_CMP";
    });

In case the new package is not installed then it would still work as before, meaning all metadata will be fetched from the CMP API.

Nov 05, 2024

Comments

Andrew Markham
Andrew Markham Nov 6, 2024 05:21 PM

Hi Bartosz,

Can you provide any more details about this package?

I would like to know what interfaces it provides and whether we can use it directly to interact with the CMP/DAM.

I  recently developed my own integration https://github.com/andrewmarkham/Opti-Dam/tree/main/src/OptiDAM, and I would be keen to know whether the new package can replace my approach.

Thanks

Andy

Magnus Rahl
Magnus Rahl Nov 8, 2024 02:11 PM

Andrew, the documentation is here: CMP DAM Asset Picker in CMS

It covers both the user interface picker and the API:s for fetching image metadata (which is what this feature improves).

Please login to comment.
Latest blogs
Catalog Traversal in Action. Part 2: Real-World Scheduled Job Patterns

In my previous post, I showed how to build a memory-efficient catalog traversal service for Optimizely Commerce. The service uses streaming to...

Stanisław Szołkowski | Feb 24, 2026 |

Resource Editor - A localization management tool for Optimizely CMS

If you have worked with Optimizely CMS for any amount of time you know that managing localization through XML files can be tedious. Content type...

Per Nergård (MVP) | Feb 23, 2026

Storing JSON in a property the efficient way

Here is a little-known trick to store and retrieve JSON property data more efficiently.

Stefan Holm Olsen | Feb 23, 2026 |

Development Agent V2: From Element Tweaks to Full Page Experiences

The Development Agent in Web Experimentation just got a major upgrade - moving from single-element edits to page-level changes with design system...

Hristo Bakalov | Feb 23, 2026 |