Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Reformatted examples using code blocks

When you enable and  use Dynamic Message Content , you can insert placeholders into a message that will be replaced in real-time with the corresponding values for the receiving visitor. You configure this on the  Promoted Content  tab in  Message Settings . However, in some cases, the  Promoted Content  tab will not provide the configurability needed for very specific or advanced requirements and you need to use advanced dynamic message content (ADMC) syntax instead, which is added in the message HTML, accessible selecting the  Message Source Code  tab. 

titleThis Article Explains

This section details the variables used for advanced dynamic messages.

titleSections in this Article

Table of Contents


Code Block
${}                           => ID <String>

                     => Name <String>

${user.userNameOrAnonLocation}       => Name OR 'user from City, State' <String>

${user.accountType}                  => Account Type <String>

${user.emailAddress}                 => Email Address <String>

--User Location--

Code Block
${user.location.postalCode}          => Zip Code <String>

${}                => City <String>

${user.location.metro}               => Metro Area <String>

${user.location.metroCode}           => Metro Code <Integer>

${user.location.region}              => State/Region <String>

${user.location.stateProvinceCode}   =
> State
> State/Region Code <String> (shorthand)

${}             => Country <String>

${user.location.countryCode}         => Country Code <String> (shorthand)

${user.location.organization}        => Organization <String>

           => Industry <String>

${user.location.naicsCode}           => North American Industry Classification System Code <Integer>

--User Custom--

Code Block
${user.attributes._________}         => Custom Attribute (Use dropdown in editor for specific ID)


Things that count as items:

  • Products
  • Articles
  • Blogs
  • Tags
  • Categories




Must have intended item query selected in message settings


Code Block
${item}                              => Item Object <Object>

${items}                             => Array of Item Objects <Array>

${items[0]}...${items[9]}            => Item In Array <Object>

${page.item}                         => Current Page Item Object <Object>

${page.category}                     => Current Page Category <Object>

                                        OR Category of Current Page Item <Object>

${}                         => Name <String>

${}                           => ID <String> OR <Integer>

${item.url}                          => URL <String>

${item.imageUrl}                     => Image URL <String>

${item.description}                  => Description <String>

${item.categories}                   => Categories Objects <Array>

${item.tags}                         => All tag Objects <Array>

--Products only--

Code Block
${item.price}                        => Price <Integer> 

// NOTE: Unformatted, see utilities below.

${item.priceDescription}             => Price Description <String>

${item.listPrice}                    => List Price <Float> 

// NOTE: Unformatted, see utilities below.

${item.inventoryCount}               => Inventory Count <Integer>

${item.brands}                       => Brand tag objects <Array>

${item.classes}                      => Class tag objects <Array>

${item.styles}                       => Style tag objects <Array>

${item.genders}                      => Gender tag objects <Array>

--Blog & Article Only--

Code Block
${item.subTitle}                     => Subtitle <String>

--Promotion Only--

Code Block
$tools.bandit.imageToServe(${item}) => Fetches the imageUrl for the proper content zone and dimension as dictated by the message's dynamic content

Advanced-- Build item query in message

--Query Type: global/user interchangeable--

Code Block
${}                   => Query Global Statistics

${tools.user...}                     => Query User Statistics

${}          => Query Products

${}          => Query Articles

${}             => Query Blogs

${}        => Query Categories

${}            => Query Brands

${}            => Query Styles

${}           => Query Authors

${}          => Query Keywords

--Query: default array length min 1 max 5--

Code Block
${}      => Top Viewed By Count <Array>

${}       => Top Viewed By Time <Array>

${}      => Top Added To Cart By Count <Array>

${}      => Top Added To Cart By Currency Value <Array>

  => Top Purchased By Count <Array>

--Global only--

Code Block
${}  => Most Recent Published <Array>

--User only--

Code Block
${tools.user.products.viewed()}           => Most Recently Viewed <Array>

${tools.user.orders.currentItems()}       => Products In Cart <Array> 

// NOTE: Evergage does not currently track cart removals.

${tools.user.orders.currentValue()}       =
> Total
> Total Value In Cart 
// NOTE: Unformatted, see utilities.

Item Options

Code Block
ex. ${tools.user.products.viewCount(${itemOptions...})

ex. ${itemOptions.optionOne().optionTwo().optionThree()}


Code Block
${itemOptions.minItems(<Integer>)}    Minimum Returned Or Message Hidden

${itemOptions.maxItems(<Integer>)}    Maximum Returned (MAX: 10)


Code Block

















--Look Back Period--

Code Block

++Time Object++

Code Block






--Conditional Options--

Code Block






Code Block





Code Block


++Sort Options++

Code Block







Code Block



Code Block


--Mark As Promoted--

Code Block
${itemOptions.promote()}               Default: OFF


--Set Variables--

Code Block
#set (${variableName} = $...)


Code Block
#foreach (${variableName} in <Array>)



--Format Price--

Code Block

$tools.formatNumber(<Float>, <Int Number of Fractional Digits>)