Skip to end of metadata
Go to start of metadata

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. 


This Article Explains

This section details the variables used for advanced dynamic messages.

Sections in this Article

Users

${user.id}                           => ID <String>
${user.userName}  => Name <String>
${user.userNameOrAnonLocation} => Name OR 'user from City, State' <String>
${user.accountType} => Account Type <String>
${user.emailAddress} => Email Address <String>

--User Location--

${user.location.postalCode}          => Zip Code <String>
${user.location.city} => City <String>
${user.location.metro} => Metro Area <String>
${user.location.metroCode} => Metro Code <Integer>
${user.location.region} => State/Region <String>
${user.location.stateProvinceCode} => State/Region Code <String> (shorthand)
${user.location.country} => Country <String>
${user.location.countryCode} => Country Code <String> (shorthand)
${user.location.organization} => Organization <String>
${user.location.industry}   => Industry <String>
${user.location.naicsCode} => North American Industry Classification System Code <Integer>

--User Custom--

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

Items

Things that count as items:

  • Products
  • Articles
  • Blogs
  • Tags
  • Categories

--Basic--

 

Must have intended item query selected in message settings

 
${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>

${item.name} => Name <String>
${item.id} => 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--

${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--

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

Advanced-- Build item query in message

--Query Type: global/user interchangeable--

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

${tools.global.products...} => Query Products
${tools.global.articles...} => Query Articles
${tools.global.blogs...} => Query Blogs
${tools.global.categories...} => Query Categories
${tools.global.brands...} => Query Brands
${tools.global.styles...} => Query Styles
${tools.global.authors...} => Query Authors
${tools.global.keywords...} => Query Keywords

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

${tools.global.products.viewCount()}      => Top Viewed By Count <Array>
${tools.global.products.viewTime()} => Top Viewed By Time <Array>
${tools.global.products.cartCount()} => Top Added To Cart By Count <Array>
${tools.global.products.cartValue()} => Top Added To Cart By Currency Value <Array>
${tools.global.products.purchaseCount()}  => Top Purchased By Count <Array>

--Global only--

${tools.global.products.publishedDate()}  => Most Recent Published <Array>

--User only--

${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.current().totalValue} => Total Value In Cart <Float> 
NOTE: Unformatted, see utilities.

Item Options

ex. ${tools.user.products.viewCount(${itemOptions...})
ex. ${itemOptions.optionOne().optionTwo().optionThree()}

--Sizes--
${itemOptions.minItems(<Integer>)} Minimum Returned Or Message Hidden
${itemOptions.maxItems(<Integer>)} Maximum Returned (MAX: 10)

---Filters---

${itemOptions.withCategory(<CategoryID>)}
${itemOptions.withBrand(<BrandID>)}
${itemOptions.withBrandAnyOf([<BrandID1>,<BrandID2>,...])}
${itemOptions.withGender(<GenderID>)}
${itemOptions.withGenderAnyOf([<GenderID1>,<GenderID2>,...])}
${itemOptions.withKeyword(<KeywordID)}
${itemOptions.withKeywordAnyOf([<KeywordID1>,<KeywordID2>,...])}
${itemOptions.withAuthor(<AuthorID)}
${itemOptions.withAuthorAnyOf([<AuthorID1>,<AuthorID2>,...)}
${itemOptions.withContentClass(<ContentClassID>)}
${itemOptions.withContentClassAnyOf([<ContentClassID1>,<ContentClassID2>,...])}
${itemOptions.withStyle(<StyleID>)}
${itemOptions.withStyleAnyOf([<StyleID1>,<StyleID2>,...])}
${itemOptions.withItemClass(<ItemClassID>)}
${itemOptions.withItemClassAnyOf([<ItemClassID1>,<ItemClassID2>,...])}
${itemOptions.whereCreated(<TimeObject>)}
${itemOptions.wherePublished(<TimeObject>)}

--Look Back Period--

${itemOptions.time(<TimeObject>)}

++Time Object++

  ${time.today()}
${time.thisWeek()}
${time.thisMonth()}
${time.allTime()}
${time.since(<MMDDYYYY>)}
${time.lastNDays(<Integer>)}

--Conditional Options--

${itemOptions.whereName()...}
${itemOptions.whereDescription()...}
${itemOptions.whereUrl()...}
${itemOptions.whereImageUrl()...}
${itemOptions.wherePriceDescription()...}

--Conditionals--

${itemOptions.whereName().exists()}
${itemOptions.whereName().doesNotExist()}
${itemOptions.whereName().contains(<String>)}
${itemOptions.whereName().doesNotContain(<String>)}

--Sorting--

${itemOptions.displaySort(<SortOptions>)}
${itemOptions.descending()}

++Sort Options++

  ${productSort.name()}
${productSort.price()}
${articleSort.name()}
${articleSort.publishedDate()}
${blogSort.name()}
${blogSort.publishedDate()}

--Inclusions--

${itemOptions.includeItemsBeingViewed()}
${itemOptions.includeItemsInCart()}

--Exclusions--

${itemOptions.excludePurchasedItems()}
${itemOptions.excludeViewedItems()}

--Mark As Promoted--

${itemOptions.promote()}               Default: OFF

Utilities

--Set Variables--

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

--Loops--

#foreach (${variableName} in <Array>)
...
#end

--Format Price--

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