Quan Mai
Aug 28, 2019
visibility 2479
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
Composition Over Inheritance: Why Your Content Contract Is Not a Base Class

Inside the structural conformance pattern in SaaS CMS — from server-side inheritance to pipeline governance. A contract in Optimizely SaaS CMS is...

Vipin Banka | Sep 19, 2026

Optimizely Opti ID Integration: Why the API Key Was Missing from the DXP Management Portal

While working on an Optimizely CMS 12 Opti ID integration recently, we ran into an issue that initially appeared to be related to SSO authenticatio...

Madhu | Sep 18, 2026 |

Extending a Contract: What You Can Override

Contracts share fields across content types — but not every field setting can be overridden. Push the same contract onto several components, and CM...

Chirag Khanna | Sep 18, 2026 |

Building a Blazor Server UI Inside the Optimizely CMS 13 Admin Shell

What I learned shipping a Blazor Server UI inside Optimizely CMS 13 — Razor components in a NuGet package, the Blazor hub next to MapContent(),...

Stanisław Szołkowski | Sep 17, 2026 |