Catalogs and Recommendations
This feature is only available for selected customers. Please get in touch with your Customer Success Manager or [email protected] to get access.
Overview
![]() | ![]() |
You can create and use multiple catalogs and recommendation strategies to enrich the personalization of your campaigns across various engagement channels, here are some examples:
- Recommend products to users depending on their events (added to cart, product viewed, purchased, etc.)
- Use the latest data from the catalog for personalization (price, quantity, image, etc.)
- Show trending products
Prerequisites
- Your catalog file must be in a CSV format less than 200 MB in size or XML(RSS) file format less than 200 MB.
- Ensure that your catalog has all the data needed to personalize your campaigns - image, name, price, link, etc.. Your image links must be publicly accessible. It's advised to use the same image dimensions for all products so that there are no alignment issues in your campaign.
- If you want to automate the process of syncing your catalog data, keep your Amazon S3 credentials handy. Our system can import the latest catalog file from your Amazon S3 bucket on a daily basis.
- To effectively utilize our recommendation engine:
- Ensure that the item ID in your event is the same as the item ID in your catalog.
- Pass item IDs in a comma-separated string if there are multiple items associated with that event (example: Purchase event)
- Ensure that all item IDs are present in your catalog file. A good way to check this would be to use Events to check the top item IDs for a particular event (example: check occurrences of Product Viewed over item_id - convert to table view).
Upload catalogs
![]() | ![]() |
![]() |
Uploading a catalog involves 3 steps - Configuration of basic inputs, Mapping of known fields, Preview and selection of data types.
- Configuration
- Specify a name for your catalog and select your project's industry.
- Select Direct File Upload as your upload method if you want to do a one-time upload of your catalog file. You will have the option to re-upload a new version of the file manually at a later stage if needed.
- Select Periodic Upload as your upload method if you want our system to automatically import the latest catalog file daily from your Amazon S3 bucket. Keep the following information handy to integrate Amazon S3 - bucket name, region name, access key and secret access key.
Note: our system will replace the entire catalog with the latest file. - Upload a CSV file (max size: 200MB) or XML(RSS) file (max size 200 MB). Field names must follow these rules: i) contain only letters, numbers, and underscores ii) start with a letter or underscore and iii) have a maximum of 300 characters.
- Mapping
- Depending on the industry you selected, you will be asked to map the columns of your catalog with certain recommended attributes.
Note:item_id
is a mandatory field to be mapped.
- Depending on the industry you selected, you will be asked to map the columns of your catalog with certain recommended attributes.
- Preview and data type selection
- Preview the values in your file and select the data type of each field in your file.
Pro tip
Feel free to think beyond the scope of conventional product catalogs.
Use your catalog as a data source to power a variety of power use cases across channels. Example: fetch details of the nearest store manager (their image, name and contact number) and show that in real time in an on-site notification or in-line content campaign when a user enters their pin code on your product detail page.
View and verify data
![]() | ![]() |
View the list page of Catalogs to check the basic info of your catalogs - status of upload, upload frequency, number of items, etc. If a catalog's status is marked as Error, hover on its status to view more details of the error.
View the list of items to quickly glance through the uploaded data. You can use filters on this page to check specific items (example: price > 1000).
Map events to a catalog

This is a crucial step for using our recommendation engine. Mapping events essentially means stitching the item ID between your catalog and your event data. Map events like Added To Cart, Product Viewed, Checkout Completed, etc. so that you can utilize those events to create your recommendation strategies.
Create recommendation strategies

Follow these steps to create a recommendation strategy:
- A default name is auto-generated, but you can rename it to something more meaningful for easy identification.
- Choose from the catalogs you’ve previously uploaded. Make sure the catalog you select has at least one event mapped to it.
- Select the event on which you want to run your recommendation strategy (example: Added To Cart). The catalog you select must have at least one event mapped to it.
- Select Look Back Period i.e. Define how many days of user data the recommendation engine should analyze to generate relevant product suggestions.
- Select Backup Strategies If you want to recommend products based on general trends (e.g., top selling, most viewed), choose Backup Strategies as your strategy type.
- If you're creating recommendations for Collections, specify the selection criteria to ensure the right group of products is shown.
Note
- We automatically refresh the data in our recommendation engine at a periodic interval so that your Personalized as well as Static recommendation strategies are always up to date.
- Our recommendation engine would generate 5 items as an output in most cases. If you would like to tweak this configuration, please reach out to [email protected].
- You can create up to 10 recommendation strategies per project by default. Contact your Customer Success Manager or [email protected] if you want to increase this limit for your project.
- The Exclude Event dropdown will only appear as an option if you choose the Personalised recommendation strategy.
New Recommendations templates
WebEngage now brings a refreshed, and more intuitive experience to help you choose the right product recommendation templates with ease. This update is aimed at making it simpler for marketers and product teams to implement powerful recommendation strategies with ease.

The new experience introduces two key enhancements:
Infographics - Driven Callouts
For popular recommendation strategies such as:
- Top Items - e.g. best-selling or most-viewed products
- Relevant Items - products frequently bought or viewed together
- Personalized - based on each user's unique behavior
- Collections - create your own criteria for filtering catalogs
You’ll now find predefined templates supported by visual callouts and infographics. These templates highlight how each strategy works and what kind of results you can expect. This helps you quickly understand which template best fits your campaign goal and whether it's increasing conversions, improving product discovery, or boosting user engagement.
Create-Your-Own Strategy
If your use case doesn’t match a predefined template, you can now build your custom recommendation logic from scratch.

Using your own events and conditions (such as clicks, purchases, or category visits), you can set up a completely customized flow tailored to your business needs. This option gives advanced users the flexibility to design highly specific recommendation experiences that align with unique goals or user journeys.
Together, these updates are designed to reduce setup time, provide more clarity during template selection, and give you both ready-made and flexible options to craft impactful recommendation campaigns.
Preview Recommendations
We’ve added powerful new features to enhance how you configure and preview product recommendation blocks in WebEngage.

- Card View: Get a real-time visual simulation of how the recommended products would appear to your end users.
- Rearrange Columns: Use drag-and-drop functionality to easily arrange and customize layout of your preview (card and table view) as needed.
- Image Mapping: Within the Card View, select a specific column from your product catalog to be used as the image link in the recommendation card. This gives you more control over how visuals are displayed, ensuring consistency with your product feed.
- Persistent Configurations: Once you set up a view, it’s automatically saved for that recommendation. This means you won’t have to reconfigure layouts each time you return to preview the same recommendation.
- Expandable Cards with Metadata: Each recommendation card is now expandable to reveal additional context, including:
- Strategy type (e.g. Personalized, Relevant, etc.)
- Recommendation source (Primary or Fallback)
- Reference ID for tracking and debugging
Custom Recommendations
You now have the flexibility to create and deliver your own recommendations using an API.
Manual or Custom Recommendation refers to a setup where the recommendations are fully provided by the client, based on a file upload (currently supported only in CSV format). These recommendations are not influenced or generated by WebEngage’s AI systems. Clients are responsible for maintaining the accuracy, formatting, and quality of the data as per the required specifications.
Please note: "Manual" and "Custom" recommendations are two terms used interchangeably for this process. You can find detailed instructions for configuring Custom Recommendations in our Technical Documentation.
Fallback Recommendations
Fallback Recommendations ensure your users always see relevant suggestions, even if your main recommendation doesn’t have enough items. This feature allows you to set up a primary recommendation strategy with up to three fallback options, so if the main one falls short, the system automatically uses the backups in the order you set.
Fallback recommendations are regular recommendations you've already set up, which can now serve as a backup when your primary recommendation fails to produce results. This means that if a primary recommendation can’t provide any suggestions, the fallback recommendation steps in, ensuring your users always see relevant options.

How to set up Fallback Recommendations?
Once you’ve set up all the above options i.e. catalog, type, recommendation, strategy etc. your final option will be to set up your ‘Backup Strategies’.
Note: You can add up to 3 backup recommendations as per priority in this dropdown.

Recommendations will pull items from the primary first, then fall back to each backup in your specified order.
Note
As Collections are created with specified criteria by users, there is no option to configure fallback strategies.
Avoiding Duplicates
Our system automatically removes duplicate items across recommendations to keep the list unique and relevant.
Deleting a Recommendation
In case you want to delete a recommendation, first check if it’s used as a backup if it is you will not be able to delete, unless it has been removed.
Hierarchy of Recommendation
- Relevant Item recommendation: You can choose from Relevant Item, Personalized, or Static recommendations as backups.
- Personalized recommendation: You can add Personalized or Static recommendations as backups.
- Static recommendation: The only fallback allowed here is another Static recommendation.
With Fallback Recommendations, you have the flexibility to ensure dynamic, reliable recommendations for users, making it easy to handle gaps in item availability.
Preview Recommendation Output

View the list of recommendation strategies and select the Preview action to view the output of your recommendation strategy for a user.
Use recommendations and catalogs in campaigns
Personalize using catalog
Select a Catalog from the personalization dropdown and then specify which product you would like to pick from the catalog and which field (image, title, price, etc.) of that product you would like to personalize in your campaign. The product you want to pick can be static product (example: product id 1234) or it can be derived from a user attribute or event attribute (example: product id of the last product that was added to cart by the user).
In addition to above you can also create collection of catalog items using a loop. We enable you to loop across any User / Event array attributes.
{% set CatalogCollections= [] %}
{% for productIds in event["custom"]["Page_view"]["custom"]["product_ids"] %}
{% set CatalogCollections = CatalogCollections.concat(catalog['catalog_260'][productIds]) %}
{% endfor %}
{% for items in CatalogCollections %}
<div style='border: 1px solid red;'>
{{items['title']}} <br>
<img src="{{items['imageSrc']}}" width='40px' /> <br>
</div>
{% endfor %}
Replace
"Page_view" with the event name.
"product_ids" attribute you wish to loop across.
"catalog_260" with the desired catalog.
"title" & "imageSrc" with the column name of the catalog.
Personalize using a recommendation strategy
Select a Recommendation Strategy from the personalization dropdown and then specify which product you would like to pick from the recommendation engine and which field (image, title, price, etc.) of that product you would like to personalize in your campaign. Here's an example of how to fetch the title of the first recommend product for a cart abandonment email campaign:
You can specify some default content (fallback) to avoid sending blank data to your users. Here's an example:
{{recommend["u_recommendation_1"]["0"]["product_title"] | default('Apple iPhone 13 Pro')}}
Similar to catalog, you can create collection of recommendations using a loop. We enable you to loop across any User / Event array attributes and create master recommendation object.
This is useful when you want to customise the recommendation strategy and mix it with other strategy as fall back.
Below is the sample nunjuck code for different use cases
Merge "Item - Item" & "Static" recommendation based on event attribute as array
Replace
"varIdEvt" with Event name
"varIdEvtAttr" with attribute name
"i_recommendation_10" & "s_recommendation_8" with recommendation strategy
{% set mergedArr = [] %}
{% for varId in event["custom"]["varIdEvt"]["custom"]["varIdEvtAttr"] %}
{% set mergedArr = mergedArr.concat(recommend["i_recommendation_10"][varId]) %}
{% endfor %}
{% set mergedArr = mergedArr.concat(recommend["s_recommendation_8"]) %}
De-dup the items from merged recommendations created.
Replace
"product_id" with product key from catalog
{% set uniqueList = []%}
{%set idr = []%}
{% for item in mergedArr %}
{% if not(item["product_id"] in idr) %}
{%set idr = idr.concat(item["product_id"])%}
{%set uniqueList = uniqueList.concat(item)%}
{%endif%}
{% endfor %}
Get products from same category that users interacted with
Replace
"varIdEvt" with Event name
"varIdEvtAttr" with attribute name
"productType" with catalog category column's name
{%set finalArr = []%}
{% for varId in event["custom"]["varIdEvt"]["custom"]["varIdEvtAttr"]%}
{%for item in uniqueList%}
{% if item['productType'] === catalog["catalog_1"][varId]["productType"] %}
{%set finalArr = (finalArr.push(item),finalArr)%}
{%endif%}
{% endfor %}
{% endfor %}
Display upto 3 non null product slots as recommendation
Replace
"4" with "t" where you want to show "t-1" products as recommendation
{% set finalArr = finalArr.concat(recommend["s_recommendation_8"]) %}
{%set prodCount = 1%}
{% for prod in finalArr %}
{% if prod and prodCount <4 %}
<div style='border: 1px solid red;'>
{{prod['title']}} <br>
<img src="{{prod['imageSrc']}}" width='40px' /> <br>
</div>
{%set prodCount = prodCount+1 %}
{% endif %}
{% endfor %}
Updated 16 days ago