Take the community feedback survey now.

eGandalf
Nov 18, 2015
  3807
(4 votes)

An Ektron-to-Episerver Starter Kit

Over the last several months, I’ve been working with Allan Thraen and others to find and research ways to make the transition from Ektron CMS to Episerver Digital Experience Cloud as smooth as possible.

As was discussed last week at Ascend in Las Vegas, there is no push-button solution. Too much between the systems lacks a one-to-one mapping and Ektron’s platform allowed too much leeway in avoiding best practices for any fully-automated utility to be practical to develop and maintain.

Instead, I focused my energies on a handful of helpful paths.

For this post, I’d like to introduce you to a bit of code worked up between Allan and myself. If you want to skip the explanation, links to both sets of code are at the bottom of the article.

The first bit of code is Allan’s addition of a REST API to Episerver. This code extends the ServiceAPI, which is used to provide authentication and authorization protection, to add some content endpoints to your Digital Experience Cloud instance. For complete details, I suggest you follow through to his Github repo and readme.

In the second repository, I’ve coded up a few class libraries and console applications. Full details, including limitations, are in the ReadMe, but the general idea is to first move an Ektron Menu structure into Epi to be used as the basis for the content tree. Then, selectively move Ektron content from a Folder in the source CMS into a selected location within the newly generated content tree in the CMS.

Note that these are not officially supported projects, though Allan and I want to provide as much community support as we can. Feel free to file issues through Github and reach out to us if you would like to help contribute or create your own forks of either project (though we may want to incorporate anything cool you build :).

Github Repos:

  1. Allan Thraen’s Service API Extensions 
  2. James Stout’s Ektron Integration & Console Apps
Nov 18, 2015

Comments

Please login to comment.
Latest blogs
Optimizely CMS - Learning by Doing: EP06 - Create Header, Footer, Menu & Component/View for Blocks

  Episode 6  is Live!! The latest installment of my  Learning by Doing: Build Series  on  Optimizely CMS 12  is now available on YouTube! This vide...

Ratish | Nov 4, 2025 |

Going Headless: 3 Ways to Store Custom Data in Optimizely Graph

Welcome to another installment of my  Going Headless  series. Previously, we covered: Going Headless: Making the Right Architectural Choices Going...

Michał Mitas | Nov 3, 2025

A day in the life of an Optimizely OMVP - What's New in Optimizely CMS: A Comprehensive Recap of 2025 Updates

Hello and welcome to another instalment of a day in the life of an Optimizely OMVP. On the back of the presentation I gave in the October 2025 happ...

Graham Carr | Nov 3, 2025

Optimizely CMS Mixed Auth - Okta + ASP.NET Identity

Configuring mixed authentication and authorization in Optimizely CMS using Okta and ASP.NET Identity.

Damian Smutek | Oct 27, 2025 |