How to Set Up a Product Catalog in Bloomreach Engagement

Set Up Your Product Catalog
A product catalog in Bloomreach Engagement is the foundation of personalized e-commerce marketing. It’s a structured lookup table that connects your product data to AI-powered recommendations, dynamic pricing, inventory triggers, and omnichannel campaigns.
Without a properly configured catalog, your product recommendations fail to deliver, inventory-based campaigns misfire, and your team loses the ability to segment customers based on purchase behavior or product attributes.
This guide walks you through the exact steps to design, implement, and activate a product catalog in Bloomreach Engagement that drives retention, increases average order value, and powers your entire personalization engine.
What a Product Catalog Drives Inside Bloomreach Engagement
Your product catalog is not just a database. It’s the real-time lookup table that powers every interaction between a customer and your brand inside Bloomreach.
When a customer views a product, adds it to their cart, or makes a purchase, Bloomreach cross-references their action against your catalog to extract product metadata. That metadata fuels everything downstream: recommendation algorithms, dynamic content, pricing logic, and lifecycle automation.
A catalog without proper structure means your recommendations show generic products, your stock-based campaigns fail silently, and your marketing team cannot segment based on product attributes like brand, category, or margin.
A well-configured catalog enables Bloomreach to:
- Deliver variant-level product recommendations based on size, color, or other attributes
- Trigger automated campaigns when specific items come back in stock
- Dynamically personalize email and SMS based on browsing or purchase history
- Build audience segments based on product category, price range, or brand affinity
- Calculate customer lifetime value (CLTV) by product margin and category
General vs. Product Catalogs: Choosing Your Architectural Foundation
Bloomreach offers two catalog types. Understanding the difference is critical to your implementation.
General Catalogs: The Flexible Lookup Table
A general catalog uses a flat structure with a single required key: item_id.
You define all other fields based on your business needs. There are no predefined attributes or reserved field names.
General catalogs work well for non-variant inventory (like articles, blog posts, or simple product lists) or when you need maximum flexibility in your data model.
Limitations: General catalogs cannot natively track variant relationships, making them unsuitable for e-commerce businesses with size, color, or style variations.
Product Catalogs: Built for E-Commerce Variants
A product catalog uses a hierarchical structure designed specifically for e-commerce complexity.
It separates two critical identifiers:
item_id: The unique identifier for each product variant (e.g., “SHIRT123-BLK-L” for a black large shirt)product_id: The parent product identifier that groups all variants (e.g., “SHIRT123” for all color and size combinations)
This separation is mandatory for accurate variant-level tracking, stock management, and recommendation logic.
When to use product catalogs: If your inventory includes variants (sizes, colors, materials, locales, or SKU variations), you must use a product catalog.
| Aspect | General Catalog | Product Catalog |
|---|---|---|
| Primary Key | item_id only | item_id + product_id |
| Use Case | Articles, simple lists | E-commerce with variants |
| Variant Support | No | Yes |
| Schema Flexibility | Fully custom | Predefined + custom fields |
| Recommendation Granularity | Item level | Variant level |
| Stock Tracking | Basic | Advanced (per-variant) |
Essential Attributes for a High-Performance Product Feed
Your catalog is only as powerful as the data you feed it. Bloomreach recommends a set of reserved attributes that unlock advanced features.
Unique Keys: The Foundation of Identity Resolution
item_id (required, string): The unique identifier for each product variant.
This must match the item_id you send in behavioral events like view_item, add_to_cart, and purchase_item. If your event tracking sends “SHIRT123-BLK-L” but your catalog lists “shirt123blk l”, recommendations break.
product_id (required for product catalogs, string): The parent product identifier that groups variants.
Use “SHIRT123” for all color and size combinations of the same shirt. This enables Bloomreach to understand variant relationships and apply margin-optimized sorting.
Searchable Text Fields: Powering Recommendations and Segmentation
title (string): The product name.
Example: “Black Fitted Crew Neck T-Shirt”
description (string): Detailed product information.
Example: “Comfortable 100% organic cotton t-shirt with reinforced seams, available in 8 colors.”
brand (string): The product brand.
This enables brand-based segmentation and recommendation filters.
Numerical Values: Enabling Margin-Optimized Logic
price (float): The final customer price.
cost_per_unit (float): Your cost before margin.
Bloomreach uses these to calculate margin and enable margin-optimized product recommendations (showing higher-margin items when appropriate).
stock_level (integer): Current inventory quantity.
This powers back-in-stock notifications and out-of-stock campaign suppression.
Categorization Arrays: Driving Cross-Channel Recommendations
category_ids (list): Internal category identifiers.
Example: [12345, 67890]
category_path (string): Full category hierarchy.
Example: “Shoes | Athletic | Running”
These enable Bloomreach to show “Trending in Running Shoes” or “Customers Also Bought in Athletic” recommendations.
Additional High-Impact Attributes
active(boolean): Whether the product is available for purchaseimage(string): Main product image URLurl(string): Direct product page URLcolor,size,gender: Variant-specific attributesdiscount_percentage(float): Applied discount for dynamic pricinglead_time(string): Restocking time for pre-orders
Step-by-Step Guide to Setting Up Your Catalog in Bloomreach
Step 1: Format and Prepare Your Feed Data
Before uploading anything to Bloomreach, validate your source data.
Your product feed must be clean, consistently formatted, and free of personally identifiable information (PII). Bloomreach cannot index names, email addresses, phone numbers, or social security numbers inside catalogs.
Data validation checklist:
- All
item_idvalues are unique and contain no forward slashes (/) - All
product_idvalues are consistent across variants of the same product - Numerical fields (price, stock_level) are actual numbers, not text strings
- Boolean fields (active) are true/false, not “yes”/”no” or 1/0
- List fields (category_ids) are arrays, not comma-separated strings
- Text fields use consistent encoding (UTF-8)
- No PII is present in any field
Format your data as JSON Lines (JSONL) if using the API or Data Hub route. Each product is a single JSON object on one line.
Example:
If you’re using CSV format for imports, ensure column headers map exactly to your catalog schema.
Step 2: Create the Catalog Structure via Data Hub
Bloomreach offers two paths: Data Hub (modern, recommended) and Legacy Imports (for non-Data Hub setups).
For Data Hub integrations (recommended):
- Navigate to Data & Assets → Catalogs
- Click + New Catalog
- Choose Product Catalog (for e-commerce with variants) or General Catalog
- Assign a single-word catalog name (no spaces): e.g., “products” or “product_catalog”
- Select your data source: Data Hub item collection or manual upload
- If using Data Hub, the catalog automatically syncs with your item collection destination
For non-Data Hub setups (legacy):
- Navigate to Data & Assets → Imports → + New Import → + New Catalog
- Choose your catalog type and upload your feed (CSV, JSON, or API)
- Note: With legacy imports, you cannot change the schema or searchable attributes after creation. Plan your structure carefully.
Why Data Hub is superior: It allows you to modify schemas and searchable fields after creation, enabling continuous optimization without rebuilding your entire catalog.
Step 3: Map Keys and Configure the Schema Tab
Once your catalog is created, you must define which fields exist and what data types they hold.
In the Schema tab of your catalog:
- Declare
item_idas the primary key (required) - Declare
product_idas the secondary key (for product catalogs) - List all other fields with their data types: string, integer, float, boolean, list
- Mark fields as required or optional
- Save your schema
Bloomreach will validate incoming data against this schema. Fields not declared in the schema will be rejected.
Example schema structure:
Step 4: Specify Searchable Attributes and Filters
Not all catalog fields need to be searchable. Declaring searchable attributes improves performance and controls what your marketing team can filter on.
In the Attributes tab of your catalog:
- Toggle Searchable for fields you want to filter on in recommendations and campaigns
- Toggle Facetable for fields you want to use as recommendation filters (e.g., “Filter by Brand”)
- Save your attribute configuration
Recommended searchable fields:
- title, description, brand (text search and filtering)
- category_ids, category_path (category-based segmentation)
- price, cost_per_unit (margin-optimized recommendations)
- stock_level (inventory-based campaign suppression)
- active (status filtering)
Key advantage of Data Hub catalogs: You can modify searchable attributes after creation. With legacy imports, this is locked at creation time.
Step 5: Automate Feed Deliveries and Delta Syncs
Your catalog must stay fresh. Stale product data breaks recommendations and triggers false inventory alerts.
Set up daily full feed delivery at minimum. This pushes your entire product catalog to Bloomreach once per day.
Optionally, configure delta feeds for high-frequency updates (stock levels, pricing, discounts) without re-uploading your entire catalog.
Full Feed Delivery:
- Frequency: Once daily (typically overnight)
- Content: All products and all attributes
- Method: SFTP upload or API push
- Use case: Baseline data sync
Delta Feed Delivery:
- Frequency: Multiple times per day (e.g., every 4 hours)
- Content: Only changed fields (stock_level, price, discount_percentage)
- Method: API push
- Use case: Real-time inventory and pricing updates
How to set up:
- Generate your full feed daily from your product management system (PMS) or e-commerce platform
- Deliver via SFTP or Bloomreach Catalog API
- For delta feeds, identify which fields change frequently and push only those changes
- Monitor import logs in Data & Assets → Imports to verify successful delivery
- Set up alerts if a daily import fails (indicates data pipeline issues)
Activating Your Catalog: Turning Product Streams into Omnichannel Revenue
A configured catalog unlocks three critical capabilities:
Predictive Product Recommendations
Bloomreach’s Loomi AI models use your catalog to generate personalized recommendations. Each customer sees products matched to their browsing, purchase, and demographic behavior.
Use case: A customer browsed running shoes but didn’t purchase. Bloomreach recommends similar shoes at different price points based on their margin and stock levels.
Automated Inventory-Based Campaigns
Trigger campaigns when products return to stock, go on sale, or reach clearance status.
Use case: A customer abandoned a cart with an out-of-stock item. When that item (matched by item_id) returns to stock, Bloomreach automatically sends a back-in-stock email.
Localized Omnichannel Personalization
Use catalog attributes (store location, regional pricing, local stock availability) to personalize across email, SMS, and onsite experiences.
Use case: A customer in New York sees product availability based on NYC store stock, while a customer in Los Angeles sees LA-based inventory.
Common Catalog Mistakes That Break Personalization Campaigns
Mistake 1: Item ID Mismatches Between Events and Catalog
Your behavioral events send item_id “SHIRT123-BLK-L”, but your catalog lists “shirt123blk l” (different capitalization or spacing).
Impact: Bloomreach cannot match the event to the catalog. Recommendations fail silently.
Fix: Enforce consistent item_id formatting across your entire tech stack. Use lowercase, no spaces, use hyphens for separators. Test with a sample of 100 items before full rollout.
Mistake 2: Uploading Inconsistent Data Types
Your schema declares price as a float, but your feed includes “29.99 USD” (string with currency symbol).
Impact: Data validation fails. The field is rejected or causes indexing errors.
Fix: Clean all data before upload. Ensure numbers are pure numerals. Remove currency symbols, commas, and text units.
Mistake 3: Neglecting Delta Sync Frequency
You set up a daily full feed, but stock levels change hourly. Customers receive back-in-stock notifications for items already sold out.
Impact: Customer frustration, damaged trust, cart abandonment.
Fix: Implement delta feeds for stock_level, price, and active status. Push updates every 4-6 hours minimum.
Mistake 4: Including PII in the Catalog
You upload customer email addresses or phone numbers as catalog fields for personalization.
Impact: Bloomreach rejects the import. Compliance risk. Data governance violation.
Fix: PII belongs in your customer data platform (CDP) or first-party data layer, not in the catalog. The catalog holds only product metadata.
Mistake 5: Not Mapping Reserved Attributes
You upload custom fields but forget to map title, price, and category_ids to their reserved names.
Impact: Bloomreach cannot power recommendations, pricing logic, or category-based segmentation.
Fix: Always map your source fields to Bloomreach reserved attribute names during schema setup.
How to Measure Success
Metric 1: Catalog Completeness
Definition: Percentage of products successfully indexed with all required fields.
Target: 99%+ (fewer than 1 in 100 products missing critical data)
How to measure: In Data & Assets → Catalogs, view the catalog summary. Check import logs for rejected records.
Metric 2: Data Freshness
Definition: Time elapsed since the last successful full feed import.
Target: Within 24 hours (or 6 hours for delta feeds)
How to measure: Monitor import timestamps in the Imports dashboard. Set up alerts for failed imports.
Metric 3: Recommendation Click-Through Rate (CTR)
Definition: Percentage of customers who click a recommended product.
Target: 2-5% (varies by industry and placement)
How to measure: Track in your analytics tool. Compare pre- and post-catalog-setup performance.
Metric 4: Inventory Trigger Accuracy
Definition: Percentage of back-in-stock campaigns sent for items that are actually in stock.
Target: 95%+ (mismatches indicate stale data or ID mapping issues)
How to measure: Cross-reference campaign sends with actual inventory status 24 hours post-send.
Metric 5: Catalog API Error Rate
Definition: Percentage of catalog API requests that return errors (4xx or 5xx).
Target: < 1%
How to measure: Monitor API logs. Investigate 403 errors (usually item_id formatting issues) and 400 errors (schema mismatches).
How Voxwise Can Help
Setting up a product catalog is technically straightforward, but activating it across your entire marketing engine requires strategic alignment.
Voxwise specializes in turning technical configurations into high-performing retention programs.
We help retail and e-commerce teams:
- Audit your current catalog setup and identify data quality issues blocking recommendations
- Design variant structures that match your inventory model and support dynamic pricing
- Map product attributes to lifecycle campaigns (welcome series, browse abandonment, back-in-stock, VIP tiers)
- Implement delta feeds for real-time inventory and pricing synchronization
- Build margin-optimized recommendation strategies that increase AOV while maintaining customer satisfaction
- Test and validate catalog changes before full production rollout
A properly configured catalog is the foundation of Bloomreach Engagement. But without strategic activation, it remains an unused asset.
Voxwise bridges the gap between your product data and your retention goals.
Key Takeaways
A product catalog in Bloomreach Engagement is the lookup table that powers personalized recommendations, inventory-based campaigns, and omnichannel personalization.
Choose product catalogs if you have variants (sizes, colors, SKUs). Choose general catalogs only for non-variant inventory.
Map your critical fields: item_id, product_id, title, price, stock_level, and category_ids are the foundation. Additional attributes unlock advanced segmentation.
Use Data Hub for modern, flexible catalog management. Legacy imports lock your schema at creation.
Automate daily full feeds and optional delta feeds for stock and pricing. Stale data breaks campaigns.
Validate constantly: Monitor import logs, check for ID mismatches, and measure recommendation performance.
Avoid common mistakes: Item ID mismatches, inconsistent data types, missing reserved attributes, and PII inclusion are the top failure points.
A well-configured catalog transforms Bloomreach from a generic email tool into a personalization engine that drives retention, increases customer lifetime value, and scales omnichannel revenue.
Frequently Asked Questions
Can I change a catalog’s schema and searchable fields after it has been created?
Yes, if you use Data Hub catalogs. You can modify schemas and searchable attributes without recreating the catalog. With legacy imports, the schema is locked at creation time. This is a key reason to use Data Hub for modern implementations.
What happens to my automated product recommendations if an event ID doesn’t match a catalog item ID?
Bloomreach cannot match the customer event to the catalog. Recommendations fail silently. The customer sees no personalized products. This is the most common reason recommendations underperform. Always validate item_id consistency across your entire tech stack.
Is it possible to upload and manage multiple separate catalogs within a single Bloomreach project?
Yes. You can create multiple catalogs for different product types (e.g., “products” for physical goods, “articles” for content, “services” for subscriptions). Each catalog is independent. Campaigns and recommendations reference a specific catalog by name.
How does Bloomreach Engagement handle variant-level data versus master product data?
Product catalogs separate item_id (variant) and product_id (master product). Bloomreach uses item_id for granular tracking and recommendations. It uses product_id for grouping variants and understanding relationships. This enables variant-level recommendations (e.g., recommending a specific color and size) while maintaining product family context.
Can I include product catalogs that handle multiple languages and localized currencies?
Yes. You can include language and currency fields in your catalog (e.g., title_en, title_fr, price_usd, price_eur). Or, you can create separate catalogs per language/region. Most implementations use a single catalog with language-specific fields and handle currency conversion in the recommendation template.
How do I test and validate my Catalog API partial updates before going live?
Use Bloomreach’s Postman collection to test API calls against your test catalog. Verify that item_id formatting is correct (no forward slashes). Check that your JSON payload matches the catalog schema. Start with a small batch of 10-20 items before pushing full updates.
Should promotional discount codes or personalized coupon pools be stored inside the product catalog?
No. The catalog holds product metadata only. Discount codes and personalized offers belong in your customer data platform or a separate promotions table. Reference them via campaign logic, not catalog fields.
Ready to Activate Your Catalog?
Your product catalog is the foundation of Bloomreach Engagement. But without expert configuration and activation, it remains untapped potential.
Let’s turn your product data into customer retention.
