This article provides you with descriptions of all existing recommendation models that you can find in `Campaigns > Recommendations > Create new
`.
At the bottom of the article, you can find an [overview](🔗) of the templates, pinpointing:
The template type
Whether the template is personalized
Whether Data Mapping is needed
Which events are needed
Which catalog attributes are needed
Which request parameters are needed
### Properties
Under each model, there is a list of the following properties:
Property | Description |
**Type** | The model can be either “Rule-based” or “AI model” and "personalized" or "non-personalized".\* |
**Usage** | It defines for which e-commerce aim is the model useful. |
**Requirements** | A set of requirements needed for the model to work correctly. |
**Requesting** | How to request your recommendations from the saved model. The standards are described in more detail in the [Integration chapter](🔗). However, additional standards can be also included in the body of the request such as `currently viewed item ID ` or `category names `. |
**Functionality** | The description of the inner logic. |
Explanations to model types:
**Rule-based:** Based on fixed rules. These models are ready to serve immediately after you save the template.
**AI model:** Driven by a machine learning algorithm. Training algorithms are usually run over the night, so the model is ready for the next day.
**Personalized:** The model searches for behavioral similarities between customers and offers **items tailored to each individual customer**. These models require more events for analysis (at least a few months timeframe).
**Non-personalized:** Model searches for the items that are **shown to all customers**. Such a model can be driven by events (like "top-selling products") or by catalog metadata (gender, categories, color...).
# Simple Non-Personalized Templates

## Popular Right Now
Column Title | Column Title |
**Type** | rule-based, non-personalized |
**Usage** | Top-selling or viewing products. |
**Requirements** | Events tracking and imported catalog. |
**Requesting** | Standard. |
**Functionality** | Shows products sorted by the count of one selected popularity event (typically `purchase_item ` or `view_item `). The values are periodically re-calculated every 12 hours. |
## New Items
Column Title | Column Title |
**Type** | rule-based, non-personalized |
**Usage** | Promote the newest products. |
**Requirements** | Imported catalog that contains datetime (or any numerical column describing the date when the product was added). |
**Requesting** | Catalog imported to Bloomreach Engagement. |
**Functionality** | Shows sorted products in descending order that were recently added to the selected product catalog. |
## More Like This
Column Title | Column Title |
**Type** | rule-based, non-personalized |
**Usage** | Finds items similar to a reference item (e.g., an item a customer is currently viewing) based on shared catalog properties. |
**Requirements** | Product catalog and catalog item identifier. |
**Requesting** | The ID of the reference item. |
**Functionality** | Shows products similar to the reference item, such as the one currently viewed by the customer, based on shared catalog properties. The system will use the ID of the reference item to find the closest matching products to recommend. |
## Filter Based
Column Title | Column Title |
**Type** | rule-based, non-personalized |
**Usage** | Find items that fulfill the catalog filter. |
**Requirements** | Imported catalog. |
**Requesting** | Catalog imported to Bloomreach Engagement. |
**Functionality** | Shows randomly selected products that fulfil the catalog filter but cached once per 30 seconds. |
**Limitations** | Dynamic catalog filter from the get-recommendation request is ignored. |
# Advanced Non-Personalized Templates

## Customers Who Bought This Item Also Bought
Column Title | Column Title |
**Type** | AI model, non-personalized |
**Usage** | Up-sell and cross-sell complementary products on the product detail page or basket page. Also useful in reactivation emails. |
**Requirements** | Events tracking, imported catalog, and at least 6 months of `purchase_item ` history. |
**Requesting** | The currently viewed item can be included in the request. |
**Functionality** | Shows items that are the most frequently bought together with the item currently viewed by the customer. Typically, the recommendations are complementary items to the main product, such as accessories for a smartphone. For the use case of showing complementary products in the shopping cart, it is suggested to include the ID of the product that was added to the cart so that the engine can render the [Recommendations based on the context of the customer's last actions](🔗). |
## Metric-Based Category
Column Title | Column Title |
**Type** | rule-based, non-personalized |
**Usage** | Top-selling products within certain categories on the category page or product detail page. |
**Requirements** | Event tracking (at least one event per metric) and imported catalog. |
**Requesting** | Add a list of desired category names to the request (see [Integration chapter](🔗) & [Product discovery Use Case](🔗)). |
**Functionality** | Shows products **only from the given category (or categories)** that are sorted according to the chosen metric - e.g., a number of purchases or views. Items are sorted from the highest metric value to the lowest one. After saving the model, the calculations are automatically made and stored. The values are thereafter periodically re-calculated every 12 hours. |
**Notes** | For minimization of recommendation latencies, a metric for the first 1000 categories (unique categories from category identifier defined in template settings) is calculated immediately after you save it. If you have made a change to the settings it can take some time for the results to come into effect. If you require immediate change, create a new engine. If there is no historical purchase at all, the same “Popular right now” fallback is used. |
**Limitations** | Metric pre-computation (when the engine is saved) is executed only on the first 1000 categories. The model can recommend a maximum of 500 items per category. Catalog filters (first step of engine setup & dynamic catalog filter from the get-recommendation request) are executed as post-filters on 500 recommended items. Cache results are re-computed based on the usage, if you want to use, e.g., different events in engine setup, create a new engine, and then change it in the existing one (results from the original engine setup will be served another few days). |
## Text Model
Column Title | Column Title |
**Type** | AI model, non-personalized |
**Usage** | Present products on the Product Detail page that are consistent and similar to the item currently viewed. |
**Requirements** | An imported catalog that contains textual information describing items (e.g., attributes such as "description", "name", "color", etc.). ** Preferably it should be a block of text, as a list of properties and their values are not suitable.** |
**Requesting** | The currently viewed item must be included in the request. |
**Functionality** | Shows products in order from the most similar one to the currently viewed by a customer. The TF-IDF model is used to search for the similarities in terms of word frequencies. Additionally, you can choose attributes that will always be shared among recommended items and the requested item. |
# Simple Personalized Templates
A group of personalized recommendation models that are easy to set up.

## Customer Recent Interactions
Column Title | Column Title |
**Type** | rule-based, personalized |
**Usage** | Recommend products the customer has recently interacted with ("Continue where you left off" on the popup banner, "Finish your order"). |
**Requirements** | Events tracking and imported catalog. |
**Requesting** | Standard. |
**Functionality** | Shows the most recent products the particular customer interacted with. You can choose the specific interaction event on which the recommendation should be based (`view_item `, `purchase_item `, `cart_update `). Products are sorted from the most recent timestamps to the oldest ones. |
## Homepage
Column Title | Column Title |
**Type** | AI model, personalized |
**Usage** | Provide personalized recommendations on your Homepage based on historical activity. |
**Requirements** | Events tracking, imported catalog, and at least 2 months of `purchase_item `, `view_item `, and `cart_update ` history. |
**Requesting** | Standard. |
**Functionality** | This template reuses the logic of the **[Personalized recommendation for you](🔗)** template and is optimized for the Homepage in terms of automatically selected learning window and real-time support of recently tracked events. |
## Product Detail
Column Title | Column Title |
**Type** | AI model, personalized |
**Usage** | Show alternative products to consider that were visited together by all customers on the product detail page. |
**Requirements** | Events tracking, imported catalog, and at least 2 months of `purchase_item `, `view_item `, and `cart_update ` history. |
**Requesting** | Standard. |
**Functionality** | This template reuses the logic of the **[Personalized recommendations for you](🔗)** template and is optimized for the Homepage in terms of automatically selected learning window and real-time support of recently tracked events. |
# Advanced Personalized Templates

## Personalized Recommendations for You
Column Title | Column Title |
**Type** | AI model, personalized |
**Usage** | Cross-sell, Personalized recommendations for you, We think you would like these, Based on your recently viewed products and Homepage. |
**Requirements** | Events tracking, imported catalog, and at least 2 months of `purchase_item `, and `view_item ` history. |
**Requesting** | The currently viewed item can be included in the request. |
**Functionality** | Shows products that match customer preferences based on purchasing and browsing history, including real-time events in the current session. These events define the user-item interaction matrix. The more users interact with the same items, the more they are considered similar. |
**If the item ID is included in the request** the AI model finds the top similar products to the requested product and ranks them by their similarity score. The similarity score is calculated using their shared events (bought, added to the cart, and viewed together). If there are too few shared interactions, the model fallbacks to the “Popular right now” technique where popularity is computed from interaction events defined in the template.
**If item ID is NOT included in the request** the user’s interaction history (purchases, views, cart updates) is considered, and the AI model finds top similar users. Within similar users, the model looks for items with the highest probability of interaction for a requested user and returns them as recommendations. If there are too few historical interactions, the model retrieves the last three viewed products from the App and runs the **“If included”** steps for these items. Recommendations are then sorted from newest to oldest according to the retrieved products. If there is no historical purchase at all, the “Popular right now” fallback is used with the popularity given as the event with the most interactions.
## Customers Who Viewed This Item Also Viewed
Column Title | Column Title |
**Type** | AI model, personalized |
**Usage** | Alternative products to consider, Similar products, You might also like these, and the Product detail page. |
**Requirements** | Events tracking, imported catalog, and at least 2 months of `view_item ` history. |
**Requesting** | The currently viewed item can be included in the request. |
**Functionality** | Shows items that are chronologically visited together by all users based on the item currently viewed. Typically the AI model recommends alternative products while the customer is browsing through a specific category or set of products. |
**If the item ID is included in the request** the AI model finds the top co-occurred products based on the user’s session and sorts them by relevance. If there are too few historical views, the model will recommend the "Most viewed products".
**If the item ID is NOT included in the request** the user’s last 3 viewed products tracked by Bloomreach Engagement are considered and the `
if included
` steps are run for these items. Recommendations are then sorted chronologically according to the retrieved products. If there is no historically viewed item, the model will recommend the "Most viewed products".
# Fallback Templates in the [Advanced Template](🔗)

These are models intended as a fallback (support model in case the main one fails to personalize) while you can design a combination of models in the **Advanced template**.
## Manual Selection
Column Title | Column Title |
**Type** | rule-based, non-personalized |
**Usage** | Promote a certain, manually-chosen set of products (sponsored, on-sale, etc.). |
**Requirements** | Just imported catalog. |
**Requesting** | Standard. |
**Functionality** | Shows products picked manually by their IDs. All customers will see the same items. |
## Chosen by Metric
Column Title | Column Title |
**Type** | rule-based, non-personalized |
**Usage** | Top-selling or viewing products. |
**Requirements** | Event tracking and imported catalog. |
**Requesting** | Standard. |
**Functionality** | Shows products sorted according to the chosen metric - e.g., the number of purchases or number of views. The items are standardly sorted from the highest metric value to the lowest one. The whole calculation can take a few seconds, then the results are stored and re-calculated periodically. Note that the results are updated every 5 minutes. |
# Recommendation Templates Requirements
Refer to these quick-reference charts to help you understand
[The template type](🔗),
[Whether the template is personalized](🔗),
[Whether Data Mapping is needed](🔗),
[Which events are needed](🔗),
[Which catalog attributes are needed](🔗),
[Which request parameters are needed](🔗).
## Type, Personalization, and Data Mapping
Template / Engine | Type | Personalized | Data Mapping Needed |
Filter based | Rule-based | No | - |
Manual selection | Rule-based | No | - |
Metric based category | Rule-based | No | - |
More like this | Rule-based | No | - |
New items | Rule-based | No | - |
Popular right now | Rule-based | No | - |
Customer recent interactions | Rule-based | Yes | - |
Customers who bought this item also bought | AI | No | - |
Textual similarity | AI | No | - |
Customers who viewed this item also viewed | AI | Yes | - |
Homepage | AI | Yes | Mandatory |
Personalized recommendations for you | AI | Yes | - |
Product detail | AI | Yes | Mandatory |
[Data Mapping ](🔗)is defined in the Data Manager and maps the event structure to common product-related actions like views, purchases, add-to-cart, categories, wishlists...
## Product Events Needed
Template / Engine | Event Types | Product ID | Category ID/Name |
Filter based | - | - | - |
Manual selection | - | - | - |
Metric based category | Any | Mandatory | Mandatory |
More like this | - | - | - |
New items | - | - | - |
Popular right now | Any | Mandatory | - |
Customer recent interactions | Any | Mandatory | - |
Customers who bought this item also bought | purchase_item | Mandatory | - |
Textual similarity | - | Mandatory | - |
Customers who viewed this item also viewed | view_item | Mandatory | - |
Homepage | view_item cart_update purchase_item | Mandatory | - |
Personalized recommendations for you | view_item cart_update purchase_item | Mandatory | - |
Product detail | view_item purchase_item | Mandatory | - |
The exact names of the events are not important. A different event name can be used, but its purpose must be equivalent.
'Any' means any product-related event can be used.
## Product Catalog Fields Needed
Template / Engine | Product ID (item_id) | Searchable fields for filtering | Date added | Searchable fields for exact matching | Textual fields | Category |
Filter based | Mandatory | Mandatory | - | - | - | - |
Manual selection | Mandatory | Optional | - | - | - | - |
Metric based category | Mandatory | Optional | - | - | - | - |
More like this | Mandatory | Optional | - | Mandatory | - | - |
New items | Mandatory | Optional | Mandatory | - | - | - |
Popular right now | Mandatory | Optional | - | - | - | - |
Customer recent interactions | Mandatory | Optional | - | - | - | - |
Customers who bought this item also bought | Mandatory | Optional | - | - | - | - |
Textual similarity | Mandatory | Optional | - | Optional | Mandatory | - |
Customers who viewed this item also viewed | Mandatory | Optional | - | - | - | - |
Homepage | Mandatory | Optional | - | - | - | - |
Personalized recommendations for you | Mandatory | Optional | - | - | - | - |
Product detail | Mandatory | Optional | - | - | - | - |
## Request Parameters Needed
Template / Engine | items | category_names |
Filter based | - | - |
Manual selection | - | - |
Metric based category | - | Mandatory |
More like this | Mandatory | - |
New items | - | - |
Popular right now | - | - |
Customer recent interactions | - | - |
Customers who bought this item also bought | Mandatory | - |
Textual similarity | Mandatory | - |
Customers who viewed this item also viewed | Optional | - |
Homepage | Optional | - |
Personalized recommendations for you | Optional | |
Product detail | Optional | - |
When you request the recommendation using Jinja, JavaScript or the API, it may be necessary to pass "seed" items or category names.