Create and manage a Product Recommendation (PR) model
Create and manage a Product Recommendation (PR) model
- Prerequisites
- Create a PR model
- Edit a PR model
- Edit a PR model JSON configuration
- Delete a PR model
- Review model information
- "Status" column
- "Building parameters" section
- Required privileges
- About earlier version models
- Edit a PR model
- Edit a PR model JSON configuration
- Delete a PR model
- Review model information
- Advanced configuration
- Advanced model options
- Advanced JSON model parameters
- "Status" column
- "Learning Interval" section
- Required privileges
|
|
Make sure to select the correct tab to view the content relevant to your Product Recommendation model type. To know if you’re using the new version or earlier version
The new version of Coveo Machine Learning (Coveo ML) Product Recommendation (PR) models was released in February 2026. This version is currently in open beta, and a migration path is available for Coveo organizations using the previous version. |
Coveo Machine Learning (Coveo ML) Product Recommendation (PR) models suggest to end users products that suit their profile, context, and buying behaviors. The results that are returned by the Coveo ML PR service can be integrated in a Coveo for Commerce recommendation interface.
To take advantage of Coveo ML PR, first create your PR models.
Prerequisites
-
Coveo Machine Learning (Coveo ML) Product Recommendation (PR) models use Coveo Analytics events to relevantly target and suggest products to your visitors. Therefore, you must log commerce events to ensure that your commerce interfaces correctly track user interactions. More specifically, you must log the following event types:
-
Product views
-
Purchase events
-
Cart events (add/remove)
-
Click events
Notes-
PR models will work without cart and click events, but you should still log them for accurate reporting and attribution.
-
To serve relevant recommendations, a PR model needs at least 10,000 view and/or purchase events to learn from.
-
-
Have configured a catalog entity and catalog configuration in your Coveo organization.
-
Your catalog data for items of the Product catalog object contains data for the
ec_categoryfield. Otherwise, category-based PR strategies won’t function correctly. We also recommend that you populate the other commerce standard fields to enhance recommendation precision and diversity.
Create a PR model
-
On the Models (platform-ca | platform-eu | platform-au) page of the Coveo Administration Console, click Add model, and then click the Product Recommendations card.
-
Click Next.
-
Under Catalog, select the catalog entity that contains the products to recommend.
-
Under Tracking IDs, select the tracking IDs that identify the storefronts selling the products from the selected catalog entity. If the catalog entity is associated with multiple tracking IDs, you can select multiple tracking IDs if you want the model to use usage analytics data from different storefronts, thus increasing the amount of data available for training.
ExampleIf you chose the
Sportscatalog entity, which is associated with theSportsandOutdoortracking IDs, you can select both tracking IDs to have the model use usage analytics data from both storefronts.Catalog entities and tracking IDs have a one-to-one relationship, which you can view on the Storefront associations (platform-ca | platform-eu | platform-au) page of the Coveo Administration Console.
-
Under Dataset training type, select whether you want the model to use Coveo Analytics data gathered from individual products or from product groups:
-
Products: Leverage usage analytics data from individual products. The model identifies content using each item’s unique content ID (for example,
permanentid). -
Product groups: Leverage usage analytics data aggregated from all products within the same group. The model uses grouping fields to identify the content to recommend (for example,
ec_item_group_id), ignoring the items' unique content ID.You must configure product grouping before selecting this option. Products without a group ID will be excluded from the training dataset.
-
-
Click Next.
-
In the Select the strategies this model will support section, select the model’s recommendation strategy:
-
All strategies (Recommended): The model is trained to support all available recommendation strategies, allowing for a versatile range of recommendations.
-
Purchase-based strategies: Choose this option to train the model specifically for strategies that rely on purchase data. Use this option only if your storefront gathers substantial data. You’ll also have to build a separate model if you want to provide recommendations for view-based strategies.
-
View-based strategies: Choose this option to train the model specifically for strategies that rely on product view data. Use this option only if your storefront gathers substantial data. You’ll also have to build a separate model if you want to provide recommendations for purchase-based strategies.
-
-
Click Next.
-
Under Name your model and start building, enter a meaningful display name for the model.
-
(Optional) Use the Project selector to associate your model with one or more projects.
-
Click Start building.
NoteOn the Models (platform-ca | platform-eu | platform-au) page, under the Status column, in the model row, the value is most probably Inactive.
The model value will change to Active when the model creation is complete (typically within 30 minutes, depending on the amount of usage analytics data to process). The model can only return recommendations when its status is Active.
For more information on Coveo ML model statuses, see the Status column reference.
-
Associate the model with a pipeline to use the model in a Coveo-powered commerce interface.
Edit a PR model
-
On the Models (platform-ca | platform-eu | platform-au) page, click the model you want to edit, and then click Edit in the Action bar.
-
On the subpage that opens, select the Configuration tab.
-
Under Name, you can optionally edit the model’s display name.
-
(Optional) Use the Project selector to associate your model with one or more projects.
-
In the Define your training dataset section, you can:
-
Add tracking IDs to expand the model training data on more storefronts. Each tracking ID must still leverage the same products contained in the catalog entity chosen when configuring the model.
-
Change the Dataset training type between Products and Product groups.
-
-
In the Building parameters section, you can change the default and recommended Building frequency and Data period.
-
In the Strategy selection section, you can view all the trained recommendation strategies and their associated query pipelines. You can select additional untrained strategies to train, or un-select previously trained strategies.
Be careful when un-selecting a strategy that’s already associated with a query pipeline, as this may affect returned results.
-
Click Save.
NoteUpdating the training dataset, building parameters, or strategy selection initiates an automatic model rebuild when you save the model. The Models (platform-ca | platform-eu | platform-au) page shows your model’s current Status. Model settings take effect only when its status is Active.
For more information on Coveo ML model statuses, see the Status column reference.
-
Associate the model with a pipeline to use the model in a Coveo-powered commerce interface.
Edit a PR model JSON configuration
-
Access the Models (platform-ca | platform-eu | platform-au) page.
-
Click the desired model, and then click More > Edit JSON in the Action bar.
-
In the Edit a Model JSON Configuration panel that appears, modify the existing model configuration:
{ "modelDisplayName": "<MODEL_DISPLAY_NAME>", "exportPeriod": "<EXPORT_PERIOD>", "intervalTime": <INTERVAL_TIME>, "intervalUnit": "<INTERVAL_UNIT>", "exportOffset": "<EXPORT_OFF_SET>", "extraConfig": [<ADVANCED_ML_PARAMETERS>] }Where:
-
modelDisplayName(string) is the name of the model appearing on the Models (platform-ca | platform-eu | platform-au) page. -
exportPeriod(ISO-8601 string, required) is the period defining the age of the Coveo Analytics data used to build the model. Must be in the ISO8601 period format (that is,PyYmMwWdDThHmMsS).NoteUnless an
exportOffsetis specified, theexportPerioduses the moment when the model was generated as a base. -
intervalTime(integer, required) is the number ofintervalUnit(that is,DAY,WEEK, orMONTH) between each update of the model. Must be between1and30inclusively. -
intervalUnit(string enum, required) is the duration unit of the interval between each update of the model. SeeintervalTime. Accepted values are:DAY,WEEK, andMONTH. -
exportOffset(ISO-8601 string) is the offset of the usage analytics data used to build the model. Must be in the ISO8601 period format (that is,PyYmMwWdDThHmMsS). The default value isPT0S, meaning that all events are considered when building a model (theexportPeriodis based on the moment the model was generated).ExampleYou want to ignore events that occur on the current day, so you set the
exportOffsetvalue toP1D. -
extraConfig(array of string) are additional advanced parameters used to tailor the model to your use case:-
catalogId(string) is the identifier of the catalog entity associated with the model. -
trackingIds(array of strings) are the tracking IDs identifying the storefronts where Coveo Analytics data is collected to build the model. -
useProductGroup(boolean) sets whether the model uses product groups when providing recommendations. When enabled, the model uses Coveo Analytics data gathered from product groups to provide broader recommendations based on product categories or collections. The model uses grouping fields to identify the content to recommend (for example,ec_item_group_id), ignoring the items' unique content ID. Make sure you leverage product grouping if you set this parameter totrue. -
swimlanesToTrain(array of strings) are the strategy keys defining which recommendation strategies the model should be trained to support. See Product recommendation strategies to know which keys to use depending on the strategies you want to support.
-
-
-
Click Save to apply your changes.
Delete a PR model
|
|
Note
If the model is associated with a query pipeline, make sure to dissociate the model from the query pipeline after deleting it. |
-
On the Models (platform-ca | platform-eu | platform-au) page, click the ML model that you want to delete, and then click More > Delete in the Action bar.
-
In the panel that appears, click Delete.
Review model information
On the Models (platform-ca | platform-eu | platform-au) page, click the desired model, and then click View in the Action bar. For more information, see Reviewing model information.
"Status" column
On the Models (platform-ca | platform-eu | platform-au) page of the Administration Console, the Status column indicates the current state of your Coveo ML models.
The following table lists the possible model statuses and their definitions:
| Status | Definition | Status icon |
|---|---|---|
Active |
The model is active and available. |
|
Build in progress |
The model is currently building. |
|
Inactive |
The model isn’t ready to be queried, such as when a model was recently created or the organization is offline. |
|
Limited |
Build issues exist that may affect model performance. |
|
Soon to be archived |
The model will soon be archived because it hasn’t been queried for an extended period of time. |
|
Error |
An error prevented the model from being built successfully. |
|
Archived |
The model was archived because it hasn’t been queried for an extended period of time. |
|
"Building parameters" section
Set the Coveo ML model training Building frequency based on the Data Period value. Less frequent for a larger Data Period and more frequent for a smaller Data Period as recommended in the following table.
Data period |
Building frequency |
||
|---|---|---|---|
Daily |
Weekly |
Monthly |
|
1 month |
|||
3 months (Recommended) |
|||
6 months |
|||
The more data the model has access to and learns from, the better the recommendations. As a general guide, your usage analytics dataset should minimally contain 10,000 commerce events (views and purchases). With this amount of commerce events, the model will start recommending results. A model with fewer than 10,000 commerce events will be considered degraded.
The model automatically retrains itself on the schedule you define with the Building frequency setting, using the most recent usage analytics data from the Data period you specified.
Required privileges
The following table indicates the privileges required to use elements of the Models page and associated panels (see Manage privileges and Privilege reference).
| Action | Service - Domain | Required access level |
|---|---|---|
View models |
Machine Learning - Models |
View |
Edit models |
Organization - Organization |
View |
Machine Learning - Models |
Edit |
About earlier version models
Earlier version models can no longer be created. This section remains for reference on managing existing earlier version models.
Edit a PR model
-
On the Models (platform-ca | platform-eu | platform-au) page, click the model you want to edit, and then click Edit in the Action bar.
-
On the subpage that opens, select the Configuration tab.
-
Under Name, you can optionally edit the model’s display name.
-
(Optional) Use the Project selector to associate your model with one or more projects.
-
(Optional) In the Learning interval section, you can change the default and recommended Data period and Building frequency.
-
(Optional) In the Apply filters on dataset section, you can add filters to refine the data that the model uses to make its recommendations. By narrowing down the dataset that a model uses, you can better customize relevancy for specific user groups and use cases. You can apply filters on all events, or on every event that belongs to a specific category, such as search, click, view, or custom events.
ExampleYou want your PR model to return recommendations that pertain to a specific user group, so you add a data filter to ensure that only a specific set of analytics are used by the model for training purposes.
-
In the Select a dimension dropdown menu, select the dimension on which you want to base the learning of the model.
-
In the Select an operator dropdown menu, select the appropriate operator.
-
In the Select value(s) dropdown menu, add, type, or select the appropriate value.
-
You can optionally add other filters by clicking Add.
-
-
(Optional) Configure advanced settings for your model.
-
Click Save.
NoteSome configuration changes initiate an automatic model rebuild when you save the model. The Models (platform-ca | platform-eu | platform-au) page shows your model’s current Status. Model settings take effect only when its status is Active.
For more information on Coveo ML model statuses, see the Status column reference.
-
Associate the model with a pipeline to use the model in a Coveo-powered commerce interface.
Edit a PR model JSON configuration
-
Access the Models (platform-ca | platform-eu | platform-au) page.
-
Click the desired model, and then click More > Edit JSON in the Action bar.
-
In the Edit a Model JSON Configuration panel that appears, modify the existing model configuration:
{ "modelDisplayName": "<MODEL_DISPLAY_NAME>", "exportPeriod": "<EXPORT_PERIOD>", "intervalTime": <INTERVAL_TIME>, "intervalUnit": "<INTERVAL_UNIT>", "commonFilter": "<COMMON_FILTER>", "customEventFilter": "<CUSTOM_EVENT_FILTER>", "exportOffset": "<EXPORT_OFF_SET>", "searchEventFilter": "<SEARCH_EVENT_FILTER>", "viewEventFilter": "<VIEW_EVENT_FILTER>", "extraConfig": [<ADVANCED_ML_PARAMETERS>], }Where:
-
modelDisplayName(string) is the name of the model appearing on the Models (platform-ca | platform-eu | platform-au) page. -
exportPeriod(ISO-8601 string, required) is the period defining the age of the Coveo Analytics data used to build the model. Must be in the ISO8601 period format (that is,PyYmMwWdDThHmMsS).NoteUnless an
exportOffsetis specified, theexportPerioduses the moment when the model was generated as a base. -
intervalTime(integer, required) is the number ofintervalUnit(that is,DAY,WEEK, orMONTH) between each update of the model. Must be between1and30inclusively. -
intervalUnit(string enum, required) is the duration unit of the interval between each update of the model. SeeintervalTime. Accepted values are:DAY,WEEK, andMONTH. -
commonFilter(string) is the filter to apply to the common event dimensions (shared by all event types) in the export. Multiple filter parameters are joined with theANDoperator. -
customEventFilter(string) is the filter to apply to the custom event dimensions in the export. Multiple filter parameters are joined with theANDoperator. -
exportOffset(ISO-8601 string) is the offset of the usage analytics data used to build the model. Must be in the ISO8601 period format (that is,PyYmMwWdDThHmMsS). The default value isPT0S, meaning that all events are considered when building a model (theexportPeriodis based on the moment the model was generated).ExampleYou want to ignore events that occur on the current day, so you set the
exportOffsetvalue toP1D. -
searchEventFilter(string) is the filter to apply to the click and search event dimensions in the export. Multiple filter parameters are joined with theANDoperator. -
viewEventFilter(string) is the filter to apply to the view event dimensions (shared by all event types) in the export. Multiple filter parameters are joined with theANDoperator. -
extraConfig(array of string) are additional advanced parameters used to tailor the model to your use case.
-
-
Click Save to apply your changes.
Delete a PR model
|
|
Note
If the model is associated with a query pipeline, make sure to dissociate the model from the query pipeline after deleting it. |
-
On the Models (platform-ca | platform-eu | platform-au) page, click the ML model that you want to delete, and then click More > Delete in the Action bar.
-
In the panel that appears, click Delete.
Review model information
On the Models (platform-ca | platform-eu | platform-au) page, click the desired model, and then click View in the Action bar. For more information, see Reviewing model information.
Advanced configuration
You can configure advanced settings for your model to suit specific use cases.
Some advanced settings are available from the model options in the Administration Console, while others are only available through JSON configuration parameters.
|
|
Notes
|
To specify advanced settings
-
On the Models (platform-ca | platform-eu | platform-au) page, click the model for which you want to specify advanced settings.
-
Do one of the following:
-
To specify an advanced setting using an Administration Console model option:
-
Click Edit in the Action bar.
-
Click the Advanced tab, and then in the Advanced page left menu, select the setting to configure:
-
-
To specify an advanced setting using a JSON parameter:
-
In the Action bar, click More, and then click Edit JSON.
-
Enter the advanced parameter configuration in the JSON’s
extraConfigobject:
-
-
-
Click Save.
Advanced model options
Test configuration mode
|
|
Note
The Test configuration mode advanced option is available only for sandbox organizations. |
Sandbox organizations typically lack the amount of usage analytics data that’s required to train a model. The Test configuration mode option lets you build a model in a sandbox organization with little or infrequent usage analytics data so you can test the model.
When activated, this option reduces the amount of analytics data that’s required to build the model. It also reduces other frequency thresholds that discard queries or clicks that weren’t performed frequently enough.
|
|
Note
The usage of certain frequency thresholds, or the selection of a specific value for these frequency thresholds depends on the configuration and implementation of the model. As the possible combinations of threshold configurations are adapted for each model, these frequency thresholds aren’t listed in this section. |
To activate the test configuration mode
-
On the Models (platform-ca | platform-eu | platform-au) page, click the model for which you want to activate the test configuration mode, and then click Edit in the Action bar.
-
On the subpage that opens, select the Advanced tab.
-
In the left menu of the Advanced tab, select Test configuration mode.
-
Select the Activate test configuration mode checkbox.
-
Click Save.
Advanced JSON model parameters
recommendProductGroup (boolean)
Sets whether the model recommends product groups rather than individual items.
When set to true, the model uses grouping fields to identify the content to recommend, ignoring the items' unique content ID (for example, permanentid).
To set the parameter
Access the model’s JSON editor, and then add the parameter configuration to the extraConfig object.
You want your model to use groups of products rather than individual items when providing recommendations.
Therefore, you enter the following configuration in the extraConfig object:
"extraConfig": {
"recommendProductGroup": true
}
"Status" column
On the Models (platform-ca | platform-eu | platform-au) page of the Administration Console, the Status column indicates the current state of your Coveo ML models.
The following table lists the possible model statuses and their definitions:
| Status | Definition | Status icon |
|---|---|---|
Active |
The model is active and available. |
|
Build in progress |
The model is currently building. |
|
Inactive |
The model isn’t ready to be queried, such as when a model was recently created or the organization is offline. |
|
Limited |
Build issues exist that may affect model performance. |
|
Soon to be archived |
The model will soon be archived because it hasn’t been queried for an extended period of time. |
|
Error |
An error prevented the model from being built successfully. |
|
Archived |
The model was archived because it hasn’t been queried for an extended period of time. |
|
"Learning Interval" section
In this section, you can modify the following:
Set the Coveo ML model training Building frequency based on the Data Period value. Less frequent for a larger Data Period and more frequent for a smaller Data Period as recommended in the following table.
Data period |
Building frequency |
||
|---|---|---|---|
Daily |
Weekly |
Monthly |
|
1 month |
|||
3 months (Recommended) |
|||
6 months |
|||
The more data the model has access to and learns from, the better the recommendations. As a general guide, a usage analytics dataset of 10,000 queries or more typically allows a Coveo ML model to provide very relevant recommendations. You can look at your Coveo Analytics data to evaluate the volume of queries on your search hub, and ensure that your Coveo ML models are configured with a training Data period that corresponds to at least 10,000 queries. When your search hub serves a very high volume of queries, you can consider reducing the data period so that the model learns only more recent user behavior and be more responsive to trends.
A Coveo ML model regularly retrains on a more recent Coveo UA dataset, as determined by the Building frequency and Data period settings, to ensure that the model remains up-to-date with the most recent user behavior.
|
|
Note
If you’re testing the model in a sandbox environment in which very little analytics data is available to train the model, you can activate the Test configuration mode advanced option to ensure the model provides recommendations. |
Required privileges
The following table indicates the privileges required to use elements of the Models page and associated panels (see Manage privileges and Privilege reference).
| Action | Service - Domain | Required access level |
|---|---|---|
View models |
Machine Learning - Models |
View |
Edit models |
Organization - Organization |
View |
Machine Learning - Models |
Edit |