ChangelogBook a demoSign up

Catalog recommendations

AudienceMarketers and data teams
Prerequisites
  • A defined schema with at least one parent model (for example, Users).
  • A catalog of items (products, offers, digital content, etc.) represented as a table in your warehouse.
  • Event data linking users to catalog items (for example, purchases, add-to-cart events, email clicks).

Catalog recommendations use machine learning to generate the top recommended items from any catalog for each user, so you can personalize syncs and audience targeting at scale.


What you'll learn


Overview

Standard traits like counts and aggregations tell you what users have done. Catalog recommendations go further by predicting which items each user is most likely to engage with next.

Given a catalog of any size — hundreds to hundreds of thousands of items — Hightouch trains a model on your historical interaction data and generates a ranked list of the top 20 recommended items per user. You can then sync those recommendations to any destination or use them to build highly targeted audiences.

Catalog recommendations are part of the predictive traits suite and share the same ML infrastructure.

How it works

Hightouch uses three inputs to train the recommendation model:

  • Users — the parent model in your schema (for example, Users).
  • Catalog — a table of items in your warehouse (for example, Products, Offers, Listings).
  • Events — interactions between users and catalog items (for example, purchases, add-to-cart events, page views, email clicks).

Each time the model runs, Hightouch pulls training data from your warehouse, trains the model, and writes recommendations back. The model generates a ranked list of the top 20 items for each user based on their predicted propensity toward each item.

Use cases

  • Personalized product syncs — Sync each user's top recommended products to an ESP or ad platform by mapping the catalog recommendation trait as a sync field, then use the ranked product array to populate personalized email templates or dynamic ad creative.
  • Targeted audience building — Create an audience in Customer Studio filtered by catalog recommendation trait (for example, users whose top five include a specific product), then sync that audience to an ads platform to run a targeted launch campaign for that product line.

Set up a catalog

Before you create a catalog recommendation trait, you need a catalog configured for recommendations in your schema.

  1. Go to Customer Studio → Schema.
  2. Add or select the table that represents your catalog (for example, Products). The catalog must be connected to a parent model through event or relationship tables.
  3. On the catalog model's detail page, go to the Recommendations tab and enable catalog recommendations.
  4. Select the parent model that represents your users.
  5. Define the key events that capture how users interact with catalog items (for example, AddToCart, Purchase, EmailClick). These events are what the model uses to learn user preferences.

Schema page showing a catalog connected to a parent model through event tables

You can use multiple event types to train a single recommendation model. For example, combining purchase events with add-to-cart events gives the model more signal about user preferences.

Create a catalog recommendation

To create a catalog recommendation:

  1. Go to Customer Studio → Traits.
  2. Click Create → New trait.
  3. In the Method step, select a parent model (for example, Users) that has a relationship with the catalog you want to generate recommendations for.
  4. Under Calculation method, select Catalog Recommendation.
  5. Click Continue.

Method step with Catalog Recommendation selected

  1. In the Calculation step, select the catalog you want to generate recommendations from. The remaining settings on this page are optional.

Calculation step showing catalog selection, filters, eligible users, and update schedule

Filter the catalog

You can optionally add filters to specify which items to include from your catalog. Filters use columns from the catalog table.

For example, if your catalog contains all products but you only want to recommend shoes, you can add a filter where the product name contains "shoes" or the category equals "footwear."

Filter eligible users

Under Who should this prediction apply to?, you can filter which users receive recommendations. By default, every user in your parent model is scored. To narrow the pool, add filters based on something users have already done — for example, signing up, viewing a page, or starting checkout.

Set a suppression filter

Optionally, enable the suppression filter to suppress recommendations for items that a user has already interacted with. When enabled, you select the event that represents the interaction (for example, a purchase event), and the model excludes those items from that user's recommendations.

Suppression filter enabled with an event selected

Set the update schedule

Under How often should scores be updated?, choose how often the model should retrain and refresh recommendations. Each run uses warehouse compute to pull data and write results, so the schedule affects warehouse usage. The model generates 20 recommended items per user on each run.

More frequent updates keep recommendations fresh but increase warehouse usage. Less frequent updates are appropriate when your catalog and user behavior change slowly.

After configuring the calculation, click Continue to finalize. In the Finalize step, name your trait, optionally add a description, review the calculation summary, and click Create trait.

Finalize step showing trait name, description, and calculation summary

The model begins training immediately. Training time varies based on the size of your data.

Evaluate recommendation quality

After the model completes training, the Prediction analysis tab on the trait detail page displays performance metrics. The page shows the total number of users and items evaluated, along with the last run date.

Prediction analysis tab showing Hit Rate@20, NDCG@20, average position of first hit, and Model vs Random Baseline comparison

Hit Rate@20

Hit Rate@20 measures the fraction of users where at least one relevant item appeared in the top 20 recommendations. A higher hit rate is better. The analysis page also shows a Model vs Random Baseline comparison that visualizes the model's hit rate against what you'd expect from randomly assigning items — this lift metric helps you gauge how much value the model adds.

NDCG@20

NDCG (Normalized Discounted Cumulative Gain) at 20 measures recommendation ranking quality, accounting for position. Values closer to 1 indicate better ranking — meaning items the user is most likely to engage with are placed closer to the top of the list.

Average position of first hit

Among users who received a relevant recommendation, this metric shows the average rank position where the first relevant item appears. A lower number means the model tends to place relevant items near the top of the list.

Use catalog recommendations

Once a catalog recommendation trait is created and trained, you can use it in two ways.

Sync recommendations to a destination

When you set up a sync, you can select the catalog recommendation trait as a field to include. Recommendations are synced as an array of objects, where each object represents a catalog item. This lets you power personalized content in any downstream tool — email templates, push notifications, ad creative, and more.

  1. Go to Syncs and create or edit a sync.
  2. In the field mapping step, select your catalog recommendation trait.
  3. The recommendation data syncs as a structured array to your destination.

Sync field mapping with a catalog recommendation trait mapped to a destination field

Build audiences from recommendations

You can use catalog recommendations to define audience membership. For example, to target users who are predicted to be interested in a specific product:

  1. Go to Customer Studio → Audiences and create a new audience.
  2. Add a filter using your catalog recommendation trait.
  3. Set a percentile range or filter by specific items to define which users qualify for the audience.

Audience builder with a catalog recommendation trait filter

This lets you build launch audiences, cross-sell segments, or personalized campaign groups based on predicted product affinity rather than past behavior alone.

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Privacy PolicyTerms of Service

Last updated: May 12, 2026

On this page
  • What you'll learn
  • Overview
  • How it works
  • Use cases
  • Set up a catalog
  • Create a catalog recommendation
  • Filter the catalog
  • Filter eligible users
  • Set a suppression filter
  • Set the update schedule
  • Evaluate recommendation quality
  • Hit Rate@20
  • NDCG@20
  • Average position of first hit
  • Use catalog recommendations
  • Sync recommendations to a destination
  • Build audiences from recommendations
  • Related articles
Send feedback