Skip to content
Home » Einstein Recommendations Catalog

Einstein Recommendations Catalog

The catalog is without a doubt one of the most important parts of your Einstein Recommendations setup. But there are two ways of importing the catalog into your model. Which one suits your needs best?
You can use the recommended batch file, but it has some limitations. Using the Streaming Updates endpoint is a bit more complex, but gives you more flexibility. Or you can also use them side by side, to get the best of both worlds.

Before you start using Einstein Recommendations the catalog is essential to set up. It contains the products or content you want to use in the AI model. It is wise to think about all the item information you might want to use, even if you don’t need it straight away. You can always add attributes later, but the AI model will be better trained if it knows everything upfront. Some attributes are required or a must-have.

Einstein
Good to know

For this article we use a product catalog as an example. If you want to use a content or banner catalog, check out the required attributes in the Einstein Recommendations documentation.

Batch Upload

The batch catalog is a pipe delimited file (comma or tab is also possible, but not recommended) that is only loaded into the model once or twice a day. It is best suited for meta data of a product that doesn’t change during the day, like product name, description, size and color.

The file is loaded from a (S)FTP server. You can use standard Marketing Cloud SFTP server for this.

There are some best practices to take into account when creating your catalog:

If an attribute contains no value, it’s best to fill it with a empty string instead of using a null value.
Attributes can’t contain any carriage returns or HTML.
Catalog must use UTF-8 encoded characters.
Items that have a price of 0 are still shown in recommendations. If you don’t want this, make sure they are set to not available.

Batch attributes

You can feed the Einstein Recommendation model with as many attributes as you would like. The attributes in the table below are reserved by the system and are therefore somewhat restricted. Some of them are required and some are recommended. These attributes match the shown product attributes in the Einstein UI.

AttributeRequired /
Recommended
ExampleDescription
SkuIDRecommended123456-RED-XLUnique identifier per product (product-color-size). This SKU should also be submitted through the website tracking code.
ProductCodeRequired123456-REDIdentifier for a group of products (product-color). This attribute groups several SkuIDs.
ProductFamilyRecommended123456Identifier for the highest product level (product). This attribute groups several ProductCodes.
ProductNameRequiredComfy T-shirtDisplay name for the product.
ProductTypeRequiredTSHIRTCategory for the specific product. Is used to group similar products together.
ProductLinkRequiredhttps://site.com/comfy-t-shirtDirect URL to the product page. Used in recommendation blocks.
ImageLinkRecommendedhttps://site.com/comfy-tshirt.jpgProduct image. Can be used in recommendation blocks.
RegularPriceRecommended29.99Original product price.
OnlineAvailabilityRequiredYDetermines if the product is available and can be used for recommendations. Y = true, N = false.
SalePrice24.99Discounted product price. Will be displayed in recommendation block if applicable.
ReleaseDate2022-12-01First date a product is available for recommendations.
Rating5Display rating for a product. Can be used in recommendation rules.
NumReviews341Number of ratings submitted. Can be used in recommendation rules.
Keywordsloose~unisex~cottonKeywords specific to the product. Separated by a tilde (~).
DescriptionThis loose and comfy T-shirt is awesome…Product description.
Accessoires123457-MULTI-1S~123458-BLK-SRelated SkuIDs that can be used in recommendation rules to either in- or exclude certain products.
Fields used in the batch catalog.

Streaming Updates

The streaming catalog uses a JSON payload to feed the catalog real time. The catalog data is sent to the Einstein REST API. This can be done at any moment during the day, as often as needed. That is why this catalog integration is great for publishing stock or rating information: data that can change during the day.

Firstly, in the Admin > Implementation section of the Einstein Recommendations UI, you have to enable the Streaming Updates catalog. After that you will find the URL to your specific API endpoint and the API key to use in the POST request.

POST
https://YOURMID.collect.igodigital.com/c2/YOURMID/update_item_secure.json

Streaming attributes

These attributes do not match the shown product attributes in the Einstein UI. To look up the values in the UI, use their batch attribute name ↑.

The bold attribute names differ from their batch name or are specific to the streaming catalog.

AttributeRequired /
Recommended
ExampleDescription
unique_idRecommended“123456-RED-XL”Unique identifier per product (product-color-size). This SKU should also be submitted through the website tracking code.
itemRequired“123456-RED”Identifier for a group of products (product-color). This attribute groups several SkuIDs.
item_typeRequired“product”Enum to determine the AI type: product, content, banner.
ProductFamilyRecommended“123456”Identifier for the highest product level (product). This attribute groups several ProductCodes.
nameRequired“Comfy T-shirt”Display name for the product.
ProductTypeRequired“TSHIRT”Category for the specific product. Is used to group similar products together.
urlRequired“https://site.com/comfy-t-shirt”Direct URL to the product page. Used in recommendation blocks.
ImageLinkRecommended“https://site.com/comfy-tshirt.jpg”Product image. Can be used in recommendation blocks.
RegularPriceRecommended29.99Original product price.
availableRequired“Y”Determines if the product is available and can be used for recommendations. Y = true, N = false.
SalePrice24.99Discounted product price. Will be displayed in recommendation block if applicable.
ReleaseDate“2022-12-01”First date a product is available for recommendations.
Rating5Display rating for a product. Can be used in recommendation rules.
NumReviews341Number of ratings submitted. Can be used in recommendation rules.
Keywords[“loose”,”unisex”,”cotton”]Keywords specific to the product as a JSON array.
Description“This loose and comfy T-shirt is awesome…”Product description.
Accessoires[“123457-MULTI-1S”,”123458-BLK-S”]Related SkuIDs that can be used in recommendation rules to either in- or exclude certain products.
Fields used in the streaming catalog.

Streaming Payload

This is a sample payload with all required and some additional attributes. Note the api_key is part of the payload object.

{
  "api_key": "ff3582e4-7c84-11ed-a1eb-0242ac120002",
  "payload": [
    {
      "unique_id": "123456-RED-XL",
      "item": "123456-RED",
      "item_type": "product",
      "name": "Comfy T-shirt",
      "url" : "https://site.com/comfy-t-shirt",
      "available": "Y",
      "ProductType": "TSHIRT",
      "RegularPrice": 29.99,
      "ALL_OTHER_ATTRIBUTES": "ATTRIBUTE_VALUES"
    },
    {
      "unique_id": "123456-RED-L",
      "item": "123456-RED",
      "item_type": "product",
      "name": "Comfy T-shirt",
      "url" : "https://site.com/comfy-t-shirt",
      "available": "Y",
      "ProductType": "TSHIRT",
      "RegularPrice": 29.99,
      "ALL_OTHER_ATTRIBUTES": "ATTRIBUTE_VALUES"
    }
  ]
}

Additional attributes

Tag additional attributes in order for the AI model to use them in recommendations. Make sure that you select all the fields you want to base recommendations on following the first import of your catalog.

For batch upload, you can tag the attribute under Admin > Catalogs.
To tag attributes for the streaming updates look for the Custom Attribute Configuration button. This button is found under Admin > Implementation, then look for the Custom Attributes header.

Which one to use?

Both the batch upload and the streaming updates catalog have their pros and cons.

Batch upload is easier to set up. It provides insights in how many products are uploaded, if the import was successful and it allows for a large amount of data to be imported at once. But if you want to make real time updates to your catalog, it’s not possible because import is limited to two times a day.

The streaming updates is a bit more complex to set up because you need to have knowledge of APIs and building a JSON payload. Also submitting large catalogs to the endpoint might cause time out errors due to processing limitations. But if you have the knowledge to deal with these things, it provides you a very flexible way to update your catalog.

You can also combine both options by uploading all the static metadata through the batch upload and updating attributes like price, stock or rating through the streaming updates as soon as they change.