Data Models & Event Schema Product Catalog Schema # The Product Catalog Schema defines the structure of product data used by Intempt’s Recommendations , Feeds , Personalizations , and Optimize products. All catalog items must follow this standardized format to ensure proper indexing, searchability, and recommendation accuracy. This schema applies to all catalog sources, regardless of whether the data is provided via JSON , XML , or a third-party integration. 1. Required Fields # Each product in the catalog must include the following mandatory fields , or fields that are functionally equivalent. Field Type Description idstring Unique identifier for each product. Used internally for indexing and recommendation lookup. titlestring Product name displayed across personalization and recommendation surfaces. descriptionstring Text description providing detail about the product. urlstring URL to the product page where users can view or purchase the product. image_linkstring Primary image used in recommendation cards and personalization components.
Example (JSON) # {
"id" : "SKU12345" ,
"title" : "Cotton Hoodie" ,
"description" : "Soft-touch premium cotton hoodie." ,
"url" : "https://yourstore.com/products/hoodie" ,
"image_link" : "https://yourstore.com/products/hoodie.jpg"
} 2. Optional Fields # These fields are not required but can improve recommendation quality: Field Type Description pricenumber/string Product price. brandstring Product brand name. categorystring/array Category or hierarchy the product belongs to. tagsarray Labels used for filtering or model enrichment. availabilitystring e.g., in_stock, out_of_stock, preorder. ratingnumber Optional rating used in personalized ranking.
Example (JSON)# {
"id" : "SKU12345" ,
"title" : "Cotton Hoodie" ,
"description" : "Soft-touch premium cotton hoodie." ,
"url" : "https://yourstore.com/products/hoodie" ,
"image_link" : "https://yourstore.com/products/hoodie.jpg" ,
"price" : 59.99 ,
"brand" : "ComfortWear" ,
"category" : "winterwear" ,
"tags" : [ "hoodie" , "cotton" , "winter" ]
} 3. Catalog Feed Structure (JSON) # Catalog feeds must include a top-level products array. {
"products" : [
{
"product" : {
"id" : "SKU12345" ,
"title" : "Cotton Hoodie" ,
"description" : "..." ,
"url" : "..." ,
"image_link" : "..."
}
}
]
} 4. Catalog Feed Structure (XML) # Equivalent structure supported in XML: <catalog >
<products >
<product >
<id > SKU12345</id >
<title > Cotton Hoodie</title >
<description > Soft-touch premium cotton hoodie.</description >
<url > https://yourstore.com/products/hoodie</url >
<image_link > https://yourstore.com/products/hoodie.jpg</image_link >
</product >
</products >
</catalog > 5. Field Mapping Model # When integrating an external feed, every field from the feed must map to one of the schema fields above. Source Field Intempt Field Required? Notes ididYes Must be unique titletitleYes - link / product_urlurlYes accept equivalent fields image / image_url / image_linkimage_linkYes must be a valid image URL descriptiondescriptionYes - pricepriceOptional recommended for eCom other fields custom Optional placed under data or mapped optionally
6. Schema Validation Rules # All required fields must be present for each product.
All product IDs must be unique across the entire catalog.
image_link must be a valid public URL .
Extra fields not mapped explicitly will be ignored unless added as optional mappings.
All products must exist within the top-level products array.
7. Why This Schema Matters # The Product Catalog Schema is required for: Product-based personalization
"Purchased together," "Viewed together," and similar models
Behavioral ranking and real-time scoring
Product cards in Journeys & Messages
Following this schema ensures: Better recommendation accuracy
Summary # This schema defines the minimum required structure and optional enrichments for product catalogs in Intempt. Proper schema alignment ensures accurate ingestion, recommendation performance, and seamless downstream personalization. Modified at 2025-12-03 15:03:49