Build a recommendation scheme

Build your recommendation scheme from the Content tab of Recommendations Studio by adding one or more recommendation blocks.

  Preview tip

Recommended items in each block depend on the selected preview user. Select a user who represents your target audience for accurate results.

Recommendation blocks appear on the right side of the Content tab. Select a block to view and configure its settings. You can drag and drop blocks to reorder them, and clone or delete blocks from the block menu.

Each block has five configuration sections that you work through top to bottom:

InputsItem ExclusionsItem FiltersAdditional RestrictionsOutput

Content tab showing recommendation blocks on the right side of the editor.

Add a recommendation block

Each recommendation block provides product recommendations based on a recipe. Select from the Blueshift recipe library as the base for the block, then refine the settings to match your requirements.

  1. Click NEW BLOCK.
  2. Select a recipe.
  3. Click SELECT RECIPE. The new block appears on the right side of the Content tab.
  4. Select the block from the right-side panel to open its settings, then configure its Inputs, Item Exclusions, Item Filters, Additional Restrictions, and Output settings.
  5. Click SAVE to save your changes.

Inputs

The Inputs section changes dynamically based on the recipe you selected. Different recipes use different input layouts. The sections below describe the most common patterns you may see.

Event-based inputs

In recipes driven by user activity (such as views, purchases, or add-to-cart events), the Inputs section displays an event timeline with the following fields.

Field Description
Event Name The event to use as input. For example, purchase, add_to_cart, or view.
From Past / To Past Defines the time window for the event. For example, From Past: 7 and To Past: 0 with Time Unit: Days looks at events from the last 7 days. The system displays a computed date range (for example, From 02/03/26 3:32 AM To 02/10/26 3:32 AM) so you can verify the window is correct.
Time Unit The unit for the time window: Minutes, Hours, Days, Weeks, or Months. Use Minutes or Hours for real-time or near real-time recommendation scenarios.
Item The item reference from the event. Select Item in Event to use the actual item, or Parent Item to use the parent product. To consider both, add a separate event row for each. For more on parent items, see Recommendations based on parent product.
Order By

Controls how items from the event timeline are ordered:

  • Most recent (default) — Items from the most recent events appear first.
  • Most frequent — Items that appear most frequently across events are prioritized. Use this when you want to surface items a user has interacted with repeatedly rather than most recently.

Click + Event to add additional event rows. To remove an event row, click the trash icon (🗑) next to it.

Some event-based recipes also include a Form input text field (at the top of the section) and a Form checkbox (at the bottom). The Form input defines the variable name for form data passed into the block. When the Form checkbox is checked, the block accepts input values from that form data. These are relevant when recommendations are triggered by form submissions or API requests.

Sample-Event-Block.png

Attribute-based inputs

In recipes that match items to a specific user or catalog attribute, the Inputs section displays an attribute selector. The field name varies by recipe. Some recipes also include a ranking selector to control how matched items are sorted.

Attribute-based inputs showing a single attribute selector.

Item list inputs

In recipes for manually curated recommendations, the Inputs section displays a List of Items separated by a delimiter text field where you enter item identifiers, and a Delimiter String field to define the separator (for example, a comma).

Item list inputs showing list of items and delimiter fields.

  Recipe-specific fields

Some recipes may include additional fields not described above. Configure the inputs in your block using the same principles; the field labels and inline descriptions in the UI indicate what each control does.

Item exclusions

Exclude items from recommendations based on user activity or messaging history.

Event exclusions

Exclude items based on event activity in the past 366 days. For example, exclude items a user has already purchased by adding a checkout event exclusion.

Configure the Event Name, time window (From Past, To Past, Time Unit), and Item reference. The Item dropdown lets you select an Item in Event or Parent Item, to exclude both, add a separate row for each. The system displays a computed date range so you can verify the exclusion window. Click + Event to add additional exclusion rules, or click the trash icon (🗑) to remove a rule.

Messaging exclusions

Exclude items based on messaging activity in the past 31 days. Click + Messaging Event to add a messaging exclusion rule.

After adding a rule, the Min number of previous messages field appears. This sets the threshold for how many times a specific item can be recommended to the same user within the time window. For example, if set to 2, the same item cannot be recommended to a user more than 2 times in the last X days.

Item Exclusions section showing event and messaging exclusions.

Item filters

Use item attribute filters to control which items are included or excluded from the recommendation results. Filters are organized into three groups:

  • MATCHES ALL OF THESE — Items must match every filter in this group. Use this to limit results to a specific category or attribute.
  • MATCHES ANY OF THESE — Items must match at least one filter. Use this to include items from multiple brands or categories.
  • MATCHES NONE OF THESE — Items matching any filter in this group are excluded. Use this to eliminate specific items by SKU, title, or other attributes.

For each filter, select the Item Attribute Name, an Operator, and the Item Attribute Value. Click + Item Filter to add filters within a group.

  Filtering tip

To filter using the category attribute, use the contains operator instead of equals. The catalog category is stored as an array, so equals will not match correctly.

Filter using values from user or product attributes

Select the Filter using values from user/product attributes checkbox to compare item attributes against user or product attributes dynamically. When enabled, the filter value is not a static value you enter manually; instead, it is resolved at runtime from the user profile or the product catalog.

For example, you can filter recommended items to match the user's preferred brand, or compare one product attribute against another.

Sample-Item-Filter-Block.png

Additional restrictions

The Additional Restrictions section controls item availability and uniqueness within the block. When your scheme has multiple blocks, this section also includes de-duplication controls across blocks.

Setting Description
Item is active and available When checked, only items marked as active and available in the catalog are recommended.
Exclude Items from Previous Block Appears when the scheme has more than one block. When checked (enabled by default), items already recommended in earlier blocks within the same scheme are excluded from this block. De-duplication is based on the item identifier (such as SKU or item ID). Uncheck this to allow the same item to appear in multiple blocks. Reordering blocks may change which block gets an item first.
No more than / Per Limits the number of items per attribute value. The Per dropdown lets you select the attribute to de-duplicate by — for example, sku or category. Other catalog attributes may also be available depending on your configuration.
Level

Appears when Per is set to category. Controls the category level used for the uniqueness constraint:

  • Leaf (default) — The most specific (lowest) category level.
  • Parent — The parent category level.
  • Root — The top-level category.

For example, No more than 1 per category at the Root level ensures only one item per top-level category is recommended.

Sample-Additional-Restrictions-Block.png

Output

Output settings determine how recommended items are ranked and how many items the block returns.

Setting Description
Parent Items When checked, parent items are used in the output instead of child items. For details, see Recommendations based on parent product.
Rank By

How items are ranked within the block. The first dropdown selects the ranking type, and the second dropdown selects the specific method:

  • Product Aggregate — Rank by Shuffle, Popularity within a time period, or Auto Optimize with AI.
  • Product Attribute — Rank by a specific catalog attribute such as price, start_date, or num_reviews. When a product attribute is selected, additional sort direction options (Ascending / Descending) may appear.
Item Count The number of items to include in this block.
Fail if empty When checked, messaging is suppressed for users if this block returns no items. For details, see Handle empty recommendations.

Output section showing Rank By, Item Count, and Fail if empty settings.

Recommendations based on the parent product

Parent items let you organize catalogs with hierarchical relationships—such as shows with seasons and episodes, or base products with color variants. Using parent items, you can recommend at the parent level rather than at the individual variant level.

For example, if a customer watches episodes from a comedy series, you can recommend other comedy series (parent items) rather than the next episode of the same series. Similarly, a retailer with many color variants of the same base item can recommend the base product.

Parent items apply in three areas of the recommendation block:

  • In Inputs — Change the Item dropdown from Item in Event to Parent Item so the parent item of the event item is considered. To consider both the item and its parent, add a separate event row for each.
  • In Event-based exclusions — Change the Item dropdown to Parent Item to exclude parent items. To exclude both the item and its parent, add a separate exclusion row for each.
  • In Output — Check the Parent Items checkbox in the Output section. The parent items of the final results are recommended in the block.

Handle empty recommendations

When Fail if empty is checked on a block, messaging is suppressed for users if the block returns no items. The recommendation is not executed, and an error code is sent to prevent the message from being sent.

Use this in conjunction with the Do not message users if any of the recommendation blocks are empty option in your messaging template. Combining both settings gives you precise control over when messages are sent.

Messaging template showing the Do not message users if any of the recommendation blocks are empty option.

  Use with caution

Leave Fail if empty unchecked unless you want messaging suppressed when this block returns no items.

Example: How settings affect message delivery

Consider the following scenario to understand how the selected options affect message delivery.

User Jane Smith qualifies for Campaign A with an email trigger that uses Template Y. Template Y uses Recommendation Scheme X with two recommendation blocks, B1 and B2.

The outcome depends on three settings: whether Fail if empty is checked on each block, and whether Do not message users if any of the recommendation blocks are empty is enabled on the template. The following six combinations cover all permutations, each showing four product availability scenarios (both blocks have items, only B1 has items, only B2 has items, neither has items).

Combination 1: Fail if empty = On or Off (both blocks), Template suppression = On. The template suppresses the message whenever either block is empty, regardless of the Fail if empty setting on individual blocks.

Combination 1: Template suppression On. Message not sent when either block is empty, regardless of Fail if empty settings.

Combination 2: Fail if empty = Off (both blocks), Template suppression = Off. No suppression is configured, so the message is always sent regardless of product availability in either block.

Combination 2: Fail if empty Off on both blocks, template suppression Off. Message always sent.

Combination 3: Fail if empty = On (B1), Off (B2), Template suppression = Off. Only B1's emptiness is caught. The message is suppressed when B1 is empty but still sent when only B2 is empty.

Combination 3: Fail if empty On for B1 only, template suppression Off. Message not sent only when B1 is empty.

Combination 4: Fail if empty = Off (B1), On (B2), Template suppression = Off. Only B2's emptiness is caught. The message is suppressed when B2 is empty but still sent when only B1 is empty.

Combination 4: Fail if empty On for B2 only, template suppression Off. Message not sent only when B2 is empty.

Combination 5: Fail if empty = On (both blocks), Template suppression = Off. Fail if empty alone is sufficient to suppress the message when either block is empty — template suppression is not required.

Combination 5: Fail if empty On for both blocks, template suppression Off. Message not sent when either block is empty.

Combination 6: Fail if empty = On (B1), Off (B2), Template suppression = On. B1's emptiness is caught by Fail if empty. B2's emptiness is caught by template suppression even though Fail if empty is off on B2. The message is suppressed when either block is empty.

Combination 6: Fail if empty On for B1, Off for B2, template suppression On. Message not sent when either block is empty.

  What's next

Once your scheme is ready, see Activate recommendations to add it to a messaging template and use it in a campaign.

Was this article helpful?
1 out of 1 found this helpful

Comments

0 comments

Please sign in to leave a comment.