I've recently started working with Marketing Cloud Personalization, and I'm having some difficulty understanding what best practices would be for certain types of changes.

As I understand it - the concept is:

  1. Define content zone in global JS.

    • Content zone ought be nearest parent element which contains all elements you want to control via handlebars. (e.g. if you have a hero section with an image, a title and a subheader, the content zone ought target the hero parent element.
  2. Once content zone is defined, create template you intend to associate with that content zone. In the hero example above, your template would contain the entire innerHTML of the content zone.

    • This is because the template JS apply is rewriting all of the element content via Evergage.cashDom(element).html(html);
    • So any incidental copy, additional text within the hero element, etc...would need to be included in the handlebars.
    • enter image description here

So far, so good.


What if the use case requires changing a number of things that aren't easily nested in a single dom element though? Example: Let's say the client wants to make dynamic:

  • A phone number in the header nav
  • A h2 in some div element in the middle of the page
  • A footer link

In that scenario, the nearest common parent might be <body>.

That obviously poses some problems - if you don't want to end up putting the entire web page contents into the handlebars.

What are Salesforce best practices for that type of scenario?

1 Answer 1


The way Personalization is setup, you would need to create multiple content zones and campaigns to change all of those different elements. If you expect to do a 50/50 A/B test on them you would run into the issue that you are running 8 different tests if you don't setup segments before hand.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .