Destinations

Klaviyo Product Feed: Complete Field Mapping and Integration Guide

A technical reference for setting up and optimising Klaviyo product feeds, covering field mappings, inventory sync, and best practices for product visibility.

11 min read 6 views Updated 6 Jul 2026

No results found

Try different keywords or browse all help articles.

    Overview

    The Klaviyo product feed is a data structure that connects your product catalogue to Klaviyo's email and SMS marketing platform. It enables you to synchronise product information, pricing, inventory levels, and availability status so that Klaviyo can deliver personalised product recommendations, abandoned cart emails, and dynamic catalogue content to your customers.

    Merchants use Klaviyo product feeds to:

    • Automate product recommendations in email campaigns based on customer behaviour and preferences.
    • Display accurate pricing and inventory status in marketing messages.
    • Trigger abandoned cart and browse abandonment workflows with real product data.
    • Segment audiences based on product attributes such as category, brand, colour, and size.
    • Sync inventory quantity changes to prevent promoting out-of-stock items.
    • Track which products are published and available for promotion.

    Unlike general product feed platforms, Klaviyo's feed is designed specifically for marketing automation and personalisation. The quality and completeness of your feed directly affect email deliverability, click-through rates, and conversion performance.

    Core Product Feed Fields

    The following table describes each field in the Klaviyo product feed, its data type, and its role in product visibility and campaign performance.

    Field Data Type Required Purpose and Impact
    external_id String Yes A unique identifier for each product in your system. Used to match products across Klaviyo campaigns and your store database. Must be consistent and stable. Inconsistent external_id values will create duplicate product records and break product tracking in workflows.
    title String Yes The product name displayed in emails and SMS. Truncation may occur in some email clients; keep titles under 100 characters for optimal display. Missing or generic titles reduce click-through rates.
    description String No A short product summary used in email templates and product cards. Descriptions under 500 characters perform better in mobile email clients. Rich HTML is not supported; use plain text only.
    url String Yes The canonical product page URL. Must be a valid, publicly accessible link. Broken or redirected URLs cause bounce-backs and abandoned cart emails to fail. Use absolute URLs (include https://).
    image_full_url String Recommended The primary product image displayed in emails and on Klaviyo's dashboard. Recommended dimensions are at least 400 x 400 pixels. Use HTTPS URLs only; HTTP images may be blocked by email clients. Missing images reduce engagement by 20-40% in product recommendation emails.
    image_thumbnail_url String No A smaller version of the product image for use in compact email layouts and list views. Recommended dimensions are 200 x 200 pixels. If omitted, Klaviyo will use image_full_url.
    price Decimal Yes The current product price in your store's base currency. Used for revenue tracking, price comparisons, and campaign analytics. Must be a positive number; use 0 only for free products. Currency symbols and text are not supported; use numeric values only.
    sale_price Decimal No A temporary discounted price for promotional products. When populated, Klaviyo can highlight the discount in emails and trigger sale-specific workflows. If sale_price is lower than price, campaigns can display both to emphasise savings. Leave blank if no discount applies.
    inventory_quantity Integer Yes The number of units in stock. Used to prevent recommending out-of-stock items and to trigger low-stock alerts. Klaviyo will suppress products with inventory_quantity of 0 from recommendation blocks unless explicitly configured otherwise. Accuracy is critical: inaccurate counts lead to customer disappointment and returns.
    inventory_policy String No Defines whether a product can be ordered when out of stock. Accepted values are 'deny' (out of stock) or 'continue' (pre-order or backorder allowed). Controls whether Klaviyo includes the product in campaigns even when inventory_quantity is 0.
    published Boolean Yes Indicates whether the product is live and available for purchase. Use true for products currently for sale; use false for archived, draft, or unlisted products. Unpublished products are excluded from all Klaviyo recommendation campaigns.
    categories String or Array Recommended One or more product categories or tags (e.g., 'Clothing > Shirts > T-Shirts'). Used for audience segmentation and campaign personalisation. Multiple categories should be comma-separated or formatted as an array. Consistent category naming improves segmentation accuracy.
    brand String Recommended The product manufacturer or brand name. Enables brand-based segmentation and filtering in campaigns. Standardise brand names across your feed to avoid creating duplicate brand segments.
    color String No The primary colour of the product (e.g., 'Blue', 'Red', 'Multi-colour'). Used for variant filtering and size/colour-based recommendations. Standardise colour names to ensure consistent filtering.
    size String No The product size or fit (e.g., 'Small', 'Medium', 'Large', 'One Size'). Enables size-based audience segmentation and variant recommendations. Use consistent size nomenclature (e.g., always 'Small' rather than mixing 'S' and 'Small').
    gender String No The intended gender for the product (e.g., 'Male', 'Female', 'Unisex'). Used for demographic targeting and personalisation. Standardise values to match your store's taxonomy.
    gtin String No Global Trade Item Number (barcode, UPC, EAN, or ISBN). Used for product matching and inventory tracking across channels. Include if available; improves data accuracy in multi-channel operations.
    item_group_id String No Groups related products (e.g., variants of the same shirt in different colours and sizes). Used to link variants and simplify product recommendations. All variants of a product should share the same item_group_id.

    Feed Data Format and Delivery

    Klaviyo accepts product feeds in the following formats:

    • CSV (comma-separated values)
    • JSON (JavaScript Object Notation)
    • XML (Extensible Markup Language)

    Choose the format that your e-commerce platform or data management system supports most reliably. CSV is the most common format for smaller catalogues; JSON and XML are preferred for larger feeds with complex structures.

    Feed files should be uploaded or synced to Klaviyo via:

    • Direct upload through the Klaviyo dashboard (manual, one-time imports).
    • Scheduled syncs from your e-commerce platform (Shopify, WooCommerce, Magento, custom APIs).
    • SFTP or cloud storage integrations (AWS S3, Google Cloud Storage).
    • Webhook-based real-time updates for high-frequency inventory changes.

    Klaviyo processes feeds asynchronously. Expect a delay of 15 minutes to 2 hours before updates appear in campaigns, depending on feed size and platform load.

    Field Mapping Best Practices

    External ID and Product Matching

    The external_id field is the primary key that links Klaviyo products to your store's product database. Choose a stable, unique identifier such as your product SKU or database ID. Avoid using product titles or URLs as external_ids because these can change without warning, breaking product tracking and causing duplicate records.

    If you change external_id values, Klaviyo will treat the product as new, losing all historical engagement data. Map external_id once and maintain consistency.

    Image URLs

    Image URLs must be absolute, publicly accessible, and served over HTTPS. Test each image_full_url before uploading your feed by opening it in a browser. Verify that:

    • The image loads without redirects.
    • The image is at least 400 x 400 pixels.
    • The file size is under 5 MB (most email clients reject larger images).
    • The URL does not contain query parameters that expire (e.g., signed AWS S3 URLs with short TTLs).

    If your e-commerce platform generates temporary image URLs, configure Klaviyo to fetch and cache images directly from your CDN or storage service.

    Price and Currency

    All price fields (price and sale_price) must be numeric values without currency symbols or text. Klaviyo infers currency from your account settings. If you operate in multiple currencies, create separate feeds for each currency or use Klaviyo's multi-currency feature to handle conversions.

    Ensure that sale_price is always lower than price. If sale_price is higher or equal, remove the sale_price value to avoid confusing customers.

    Inventory Synchronisation

    Inventory accuracy is critical for customer satisfaction. Sync inventory_quantity at least once daily, or in real-time if possible. Klaviyo will not recommend products with inventory_quantity of 0 unless inventory_policy is set to 'continue'.

    If you use inventory_policy = 'continue' for pre-orders or backorders, ensure your product description clearly indicates this to prevent customer confusion.

    Category and Attribute Standardisation

    Standardise category names, brand names, colours, and sizes across your entire feed. Inconsistent naming (e.g., 'Blue' vs. 'blue' vs. 'Navy Blue') creates fragmented audience segments and reduces personalisation effectiveness.

    Use a data dictionary or taxonomy document to maintain consistency. If you integrate with multiple channels (Amazon, eBay, Awin, etc.), map your internal taxonomy to each platform's required format separately rather than using a single feed for all channels.

    Variant Management with item_group_id

    If you sell products in multiple colours and sizes, use item_group_id to group variants. Create a separate feed row for each variant with:

    • A unique external_id for each variant (e.g., 'SHIRT-001-BLUE-M').
    • The same item_group_id for all variants of the same product (e.g., 'SHIRT-001').
    • Variant-specific values for color, size, price, and inventory_quantity.

    This allows Klaviyo to recommend specific variants rather than generic product groups, improving conversion rates.

    Feed Validation and Troubleshooting

    Before uploading a feed, validate it for common errors:

    • All required fields (external_id, title, url, price, inventory_quantity, published) are populated for every product.
    • URLs are absolute and publicly accessible (test with curl or wget).
    • Image URLs return 200 status codes and serve valid image files.
    • Prices are numeric values without currency symbols.
    • Boolean fields (published) use true/false, not 1/0 or 'yes'/'no'.
    • Inventory quantities are non-negative integers.
    • Category and attribute values are consistent with your taxonomy.

    Klaviyo provides a feed validation report in the dashboard. Review warnings and errors before publishing. Common issues include:

    • Missing required fields: Klaviyo will skip products with missing external_id, title, or url.
    • Broken image URLs: Products will appear in campaigns without images, reducing engagement.
    • Inconsistent external_id values: Duplicates will be created, and historical data will be lost.
    • Mismatched inventory: Campaigns will recommend out-of-stock products, leading to customer frustration.

    If products are not appearing in Klaviyo after a feed update, check:

    1. The published field is set to true for the products you want to promote.
    2. The inventory_quantity is greater than 0 (unless inventory_policy = 'continue').
    3. The external_id values are unique and consistent with previous uploads.
    4. The feed was processed successfully (check the feed status page in Klaviyo).
    5. The products are not filtered out by audience or campaign rules.

    Integration with Klaviyo Campaigns

    Once your product feed is live, use it to power:

    • Product recommendation blocks: Display personalised products based on browsing history, purchase history, or category affinity.
    • Abandoned cart emails: Show the exact products left in the cart with current pricing and inventory status.
    • Browse abandonment workflows: Recommend products viewed but not purchased.
    • Post-purchase follow-ups: Suggest complementary or related products.
    • VIP and loyalty campaigns: Highlight new arrivals or exclusive products to high-value segments.

    Each campaign block can be filtered by category, brand, price range, or inventory status. Accurate feed data ensures that filters work correctly and recommendations are relevant.

    Optimisation Tips

    1. Update inventory in real-time: Use webhooks or API calls to sync inventory changes as soon as stock levels change. This prevents recommending items that have just sold out.

    2. Use descriptive titles and descriptions: Include key attributes (colour, size, material) in the title if space allows. Descriptions should highlight unique selling points and benefits.

    3. Test image quality: Use high-resolution, well-lit product images. A/B test different image dimensions and formats to see what drives the highest click-through rates in your emails.

    4. Monitor price accuracy: Sync prices at least daily. Use sale_price to highlight promotions and drive urgency in emails.

    5. Segment by category and brand: Use consistent category and brand values to enable precise audience targeting and personalisation.

    6. Track variant performance: If you use item_group_id, analyse which variants (colours, sizes) have the highest engagement and conversion rates. Use this data to adjust inventory purchasing and marketing spend.

    7. Exclude low-performing products: Set published = false for products with zero sales or very low engagement over a 90-day period. This keeps your feed lean and focused on high-value items.

    8. Test dynamic pricing: If you offer discounts or flash sales, update sale_price frequently and use Klaviyo's dynamic content blocks to highlight savings in real-time.

    Summary

    The Klaviyo product feed is the foundation of personalised email and SMS marketing. Accuracy, consistency, and timeliness of your feed data directly impact campaign performance, customer satisfaction, and revenue. Invest time in standardising your product taxonomy, validating feed data before upload, and monitoring feed health after integration. Regular audits and optimisation of your feed will yield higher engagement rates, lower unsubscribe rates, and improved return on marketing investment.