Quan Mai
Optimizely
Aug 28, 2019
visibility 2502
star star star star star
(2 votes)

Sharing your campaigns and promotions

Sometimes you need to share campaigns AND/or promotions to your colleagues or to Episerver Developer support service. The simplest way is to take screenshot of your promotion settings and let the receiver replicate that on their site. The "nuke" option is to send your entire site, including the sites and databases so they can set up the site themselves. Both are not perfect: The former will have more chances of error, and will be very tedious if you have a complex setting, OR multiple promotions. The latter is, well, too much work for both sides (not the mention the hassle of security and GDPR).

Is there a better, simpler way? Yes, there is.

The campaigns and promotions, in their true nature, are just CMS content. So you can just export and import them just like any other content.

To share your campaigns and promotions, just go your Admin view, Tools, Export data. Then select Export content items.

You can choose either Campaigns (which mean all campaigns and promotions), a specific campaign (with its promotions), or a specific promotion.

Then click Export to get a .episerverdata file contains your campaigns/promotions, which you can share to your colleagues or customers/partners.

They then can import your file into their site. An important note: they would have to import the file to the correct parent content. 

  • If you exported all campaigns, then it has to be imported to Root
  • If you exported a specific campaign, then it has to be imported to Campaigns
  • If you exported a specific promotion, then it has to be imported to a campaign (they would have to create one if none exists)

This is because of strict structure of promotional content, all campaigns has to belong to the campaign root (which is a child of Root page itself), and all promotions has to be long to one (and only one) campaign.

Voila, if you have 100 promotions to share, this can be done in just minutes!

A few notes:

  • This only "transfers" data. If you have custom promotion content types/promotion processors, those have to be shared as well.
  • If you have shipping promotions AND the shipping methods were created, either manually or by programatically, i.e. their data are not "synced" between environment, then the selected shipping methods will be lost. This is because the shipping method id (which is a guid) was randomly generated, and in new environment, the site can't match a selected shipping method with the ones currently available.  
Aug 28, 2019

Comments

Aug 30, 2019 03:08 AM

Nice one, experience gained! 

error Please login to comment.
Latest blogs
Surviving a Dirty Feed. Part 3: Error Handling and Event Batching

Committing a 250,000-row Optimizely catalog import row by row, returning a per-row failure report, and coalescing catalog events into one per batch.

Stanisław Szołkowski | Oct 16, 2026 |

Building UI Extensions for Optimizely SaaS CMS

Introduction Developers have been extending the functionality of Optimizely PaaS CMS for years using addons built in C# and deployed as NuGet...

Mark Stott | Oct 15, 2026

Cheapskate AI Translator: Because Translation Should Not Require a Second Mortgage

There is a particular kind of software project that begins with a detailed architecture document, a product roadmap, and a carefully assembled...

Linh Doan Cuu | Oct 15, 2026

Computed Fields in CMS 13 Content Contracts with Optimizely Graph

Content Contracts in Optimizely CMS 13 allow different content types to share a common structure when querying Optimizely Graph. But what if the...

Mardy | Oct 14, 2026