# 1st step: Choose Catalog (required)
Choose which product catalog you want to use as a source for recommendations. You can also add a filter, e.g. to show only available products. Please note the unique identifier of a product `
item_id` from the catalog filter must be the same as the unique identifier of products tracked in events you will select in later stages of building RS.
More information about importing a catalog is available at our [Catalogs guide](🔗)
Please note that only items that you marked as "searchable fields" during the catalog import can be used in recommendations.
**Example:** Let’s recommend only available items of particular brands that were added to the catalog less than 15 days ago and that are more expensive than 50 euros (see pic below).
## Post-filtering process:
Catalog filters work as post-filters. That means RS engines recommend items from the whole catalog and apply the post-filters after the recommendations are built. If it is not possible to deliver enough recommendations from the engine, it fallbacks to the last strategy - filling with random items from catalog matching this filter, since it is usually crucial to deliver the requested number of recommendations.
**Bad Scenario Example:** Client asks for recommendations of size 10. After applying the post-filters, only 8 recommended products match the filter. Therefore remaining positions are filled with two random items that satisfy the post-filter conditions picked from the catalog.
# 2nd step: Specific Settings (required)
Each template requires you to fill specific settings that are unique for each template. Usually, the model’s configuration needs one or more of the following:
**Mapping:** specifying events like purchase, product view, add to cart, wishlist, ratings, etc.
**Learning window:** A timeframe for events we take into consideration while training (the process of learning a model) the engine and running algorithms. The bigger the window, the more accurate the model might be, but the longer the learning will take.
**Target metric:** A metric you want to optimize (maximize) with a given RS.
Since it is exhaustive to describe all possible variations of each setting, we provide the step-by-step manuals in the Use-case chapter.
## User insights
In this step, on the top right, Bloomreach Engagement will check for and show insights about the data used to train the recommendations engine based on your configuration. This is so that you can make more informed decisions and get better results.
The insights will include the following data and warnings.
|# of customers||How many customers from your project have the chosen event in the specified time window.||If the number of customers is too small, displays a message: _“Number of customers is low. There is a risk of low quality recommendations.”_|
|# of events||The count of the events altogether in the specified time window.||If the number of events is too small, displays a message: _“Number of events is low. There is a risk of low quality recommendations.”_|
|% of coverage||The percentage of IDs included in the specified catalog. Top 100 most often present IDs in selected events and timeframe are verified.||If the percentage of a representative subset present in the catalog is too low, displays a message: _“Some specified IDs are missing from the catalog. Check the tracked event and the catalog.”_|
# 3rd step: Blacklist (optional)
You can blacklist some products based on chosen user-item interactions. For instance, we can exclude recently viewed or purchased items for each user. In order to specify it correctly, you need to choose always event attribute containing the product ID (same product ID as in the catalog). Blacklist is also part of the post-filtering process.
**Example:** To exclude products purchased by the user from the last 90 days, choose `
purchase_item` -> `
item_id` with a timeframe _“Last 90 days”_ (see the picture below).
Blacklisting specific products
In order to blacklist specific products or a group of products, please use catalog filtering in step 1.
# 4th step: Customer Preferences (optional)
With this option, you can fit recommendations even more to individual preferences of customers. Select **catalog attributes** and match it with **customer attributes** using standard operators. Matching recommendations will be prioritized, followed by others. If more customer preferences are used, recommendations fitting the first condition are at the top of the list, then recommendations fitting the second condition are just behind them, and so on. At the end, there are recommendations that do not fit any of those conditions.
**Disclaimer:** This is not a part post-filtering process. It is re-ranking (already sorted) recommendations based on the logic filled in the picker. **Example:** We want to match the recommended products with customer’s gender. Since we have the gender property directly in the product, we can connect to it and personalize even more.
# 5th step: Save
After you finish the designing part, you can Save (and run) the model by hitting the “**Save**” button (see the picture below)
Now the model configuration is submitted in the database and you have to wait till the engine is ready. Here we recognize two situations:
**Rule-based model:** In this situation, the model is available and working almost immediately
**AI model:** Since the AI model tries to find useful patterns in millions of data, it takes several hours for the models to be ready. Such models should be ready the following morning.
# Overview of Templates
In Bloomreach Engagement we provide 9+1 templates where you can easily setup a recommender system. We already introduced the basic logic in the previous chapter. Below you can read a summary table for the 9 templates:
|Template name||Personalization||Model type||Requesting||Fallback|
|Homepage||yes||AI model||**without** currently viewed item||Chosen by metric _(purchase count + view item count + add to cart count)_|
|Product Detail||yes _(only when requesting without item)_||AI model||**with or without** currently viewed item||Chosen by metric _(views count)_|
|Customer recent interactions||yes||Rule-based||**without** currently viewed item||--|
|Popular right now||no||Rule-based||**without** currently viewed item||--|
|More like this||no||Rule-based||**with** currently viewed item||--|
|Filter based||no||Rule-based||**without** currently viewed item||--|
|Customers who bought this item also bought||yes _(only when requesting without item)_||AI model||**with or without** currently viewed item||Popular right now _(purchase count)_|
|Customers who viewed this item also viewed||yes||AI model||**with or without** currently viewed item||Chosen by metric _(views count)_|
|Personalized recommendations for you||yes||AI model||**with or without** currently viewed item||Chosen by metric _(purchase count + view item count + add to cart count)_|
|New items||no||Rule-based||**without** currently viewed item||--|
|Metric based category||no||Rule-based||**with** category names attribute (list of categories)||--|
|Personalized category page||yes||AI model||**with** category names attribute (list of categories)||Attractive products (see [template documentation](🔗))|
The 10th template (Advanced) is not listed in the table since it offers a combination of more recommenders.