Use the Catalog in Mapp Engage

Prev Next

Beta

The Product Catalog is currently in Beta and is not yet available to all customers. Availability is being expanded gradually. Functionality, configuration, and behavior may change before general availability.

Overview

Once a Product Catalog is available in Connect, you can use it in Mapp Engage to personalize messages with product data. The Product Catalog extends Mapp Engage's personalization placeholders with a new generation of catalog placeholders that reference attributes from the catalog directly.

You can adopt the new Product Catalog at your own pace. Existing Engage setups that use the legacy product catalog continue to work as before.


Legacy and New Placeholders Side by Side

Within Mapp Engage's personalization placeholder system, two generations of product-related placeholders coexist:

  • Legacy placeholders: Reference the existing product catalog in Engage. Messages and templates that use these placeholders continue to render exactly as before.

  • Catalog placeholders: Reference attributes from the new Product Catalog managed in Connect. Use them in new messages and templates to access the unified product structure.

Both sets coexist in the same Engage instance. You do not need to migrate existing messages or templates when you start using the new catalog placeholders.

Note: Existing messages and templates that reference the legacy product catalog are not affected by the new catalog. They continue to use the legacy data source until you decide to switch them over.


Using Catalog Placeholders in the Personalization Editor

Catalog placeholders use the same <%...%> syntax as other Engage personalization placeholders. They are available in the personalization editor wherever you can insert dynamic content, for example, in email subject lines, body content, and SMS or push messages.

Mapp Engage offers two ways to load catalog data into a message:

  • Dynamic load: The catalog data is loaded automatically based on the recipient's eCommerce context — for example, wishlist items, abandoned cart products, or recommended variants. This is the common case for personalized messages.

  • Manual load: The catalog data is loaded for a specific variant that you reference directly in the message. This is useful when a message should show one fixed product.

Dynamic load

When a message uses a dynamic placeholder, Engage iterates over the recipient's eCommerce items (wishlist, abandoned cart, recommendations, etc.) and resolves each variant's attributes from the Product Catalog. The catalog acts as the source of truth for static product information; the eCommerce data only provides the variant identifiers and any event-specific values.

The following item collections are available on the user object:

  • user.wishlistElements

  • user.abandonedCartElements

  • user.abandonedBrowseElements

  • user.transactionElements

  • user.recommendedElements

Within a ForEach loop, you can access the catalog attributes of each item by their attribute name:

<%ForEach var='item' items="${user.wishlistElements}" %>
    Title: <%${item['product_title']}%>
    Variant ID: <%${item['variant_id']}%>
    Description: <%${item['product_description']}%>
<%/ForEach%>

The same pattern applies to all item collections. Replace wishlistElements with the collection that fits your use case (for example, abandonedCartElements for abandoned cart reminders or recommendedElements for recommendation campaigns).

For FreeMarker-based templates used in mobile, push, and in-app messages, use the equivalent FreeMarker syntax:

<#list user.wishlistElements as item>
  Title: ${item['product_title']!}
  Variant ID: ${item['variant_id']!}
  Description: ${item['product_description']!}
</#list>

Manual load

If you want to reference a specific variant from the Product Catalog without depending on the recipient's eCommerce context, use the productCatalogElement function. You provide the catalog name, the variant ID, and the attribute name:

<%${ecx:productCatalogElement('catalog_name', 'variant_id', 'attribute_name')}%>

Example:

<%${ecx:productCatalogElement('nordica_main_catalog', 'DRESS-5892-BLK-36', 'product_title')}%>

For FreeMarker-based templates, use:

${productCatalogElement('catalog_name', 'variant_id', 'attribute_name')}

The catalog name and the attribute name are the same as they appear in the Connect user interface. Catalog and attribute names are unique within your Mapp Cloud company.


Automatic Localization of Templates

The Product Catalog stores localized attribute values, such as titles, prices, and descriptions, in a structured way. Mapp Engage uses this information to render the correct language version automatically.

When a message that uses catalog placeholders is sent to a recipient:

  • Engage matches the recipient's country and language against the locale keys stored in each localized attribute.

  • For each catalog placeholder, Engage selects the localized value that matches the recipient's locale.

  • If no matching locale is available, Engage uses the value stored under the * fallback key in the localized attribute (see Localization Support in Product Catalog).

  • If neither a matching locale nor a * fallback is defined, the value is rendered as empty.

This means a single template can serve multiple markets without maintaining separate language versions of the message.


Filtering by Variant Status

The Variant Status attribute determines whether a variant is eligible for personalization in Mapp Engage. Automation scenarios such as Abandoned Cart and Wishlist reminders skip variants with the status DISCONTINUED so that recipients are not reminded of products that are no longer offered. PREORDER variants remain eligible and can be used in pre-launch campaigns; ACTIVE variants are treated as the default case.

For the Variant Status value mapping and import defaults, see Product Attribute Model.

For step-by-step instructions on setting up Abandoned Cart campaigns in Mapp Engage, see Set up a Simple Abandoned Cart Campaign.


Typical Use Cases

  • Personalize email, SMS, and push messages with product attributes from the new Product Catalog.

  • Power abandoned cart and wishlist campaigns with consistent product information, such as title, image, and price.

  • Trigger automation workflows based on catalog changes, for example, price drops or new arrivals.

  • Run a single template across multiple markets and let the catalog provide the localized content.

For details about how the catalog is structured and which attributes are available, see How Product Catalogs Work and Product Attribute Model.