Destinations

Klaviyo product feed setup and field mapping guide

Complete technical guide to configuring Klaviyo product feeds, mapping data fields, and optimising inventory sync for ecommerce messaging and automation.

12 min read Updated 6 Jul 2026

No results found

Try different keywords or browse all help articles.

    What is the Klaviyo product feed?

    The Klaviyo product feed is a data integration that syncs your product catalogue into the Klaviyo platform. Klaviyo uses this feed data to power ecommerce email campaigns, SMS messaging, and post-purchase automation. When you connect your product feed to Klaviyo, you enable the platform to display product information, pricing, stock levels, and images within your customer communications.

    Merchants use Klaviyo product feeds to create dynamic product recommendations in emails, build abandoned cart recovery campaigns with real-time pricing, and automate browse abandonment messages that show customers the exact items they viewed. The feed acts as the source of truth for product details that appear in these communications.

    Without a properly configured product feed, Klaviyo cannot display product information in emails or track which products customers interact with. The feed must be kept in sync with your inventory system to ensure that stock levels, prices, and product details remain current across all customer touchpoints.

    Core field mappings and requirements

    Unique identifiers

    The external_id field is the primary unique identifier for each product in your Klaviyo feed. This must match the product ID in your ecommerce system. Klaviyo uses external_id to link email interactions back to specific products and to prevent duplicate product records when the feed is updated. If external_id values change or are inconsistent across feed uploads, Klaviyo will create duplicate product records, which breaks product tracking and recommendation accuracy.

    The gtin field holds the global trade item number (barcode). This is optional but recommended for products that have a GTIN. Some integrations and third-party services use GTIN to match products across systems, so including it improves data portability.

    The item_group_id field groups variants of the same product together. If you sell a shirt in multiple colours and sizes, each variant gets its own external_id, but all variants share the same item_group_id. This allows Klaviyo to treat variants as a single product family in recommendations and reporting.

    Product information and visibility

    The title field contains the product name or headline. Keep titles concise and descriptive. Titles appear directly in customer emails, so clarity matters for click-through rates. Avoid keyword stuffing or excessive punctuation.

    The description field provides product details, features, and benefits. This text may appear in email templates if you use Klaviyo's product block features. Write descriptions for customers, not search engines. Include key product attributes that help customers make purchase decisions.

    The url field is the direct link to the product page on your website. When customers click a product in an email, they land on this URL. Ensure the URL is current and does not redirect through multiple hops, as this delays page load and increases bounce rates.

    The brand field specifies the product manufacturer or label. This is useful for filtering products in Klaviyo segments and for building brand-specific campaigns. Include the brand name consistently across all products.

    The categories field organises products into logical groups. Provide a category hierarchy using forward slashes (for example, 'Clothing / Mens / Shirts'). Kategories enable Klaviyo to segment products for targeted messaging and to build category-based recommendations.

    Pricing and inventory

    The price field is the regular selling price in your store's currency. Klaviyo uses this price to display product cost in emails and to track average order value in reports. Price must be a numeric value without currency symbols.

    The sale_price field is the discounted price during a promotion. If a product is on sale, populate sale_price with the lower amount. Klaviyo displays the sale price in emails when it is present, helping to drive urgency. If there is no active sale, leave sale_price empty.

    The inventory_quantity field reports how many units are in stock. Klaviyo uses this to determine whether a product can be recommended or purchased. If inventory_quantity is zero, the product appears out of stock in customer emails. This field must be updated regularly to reflect real-time stock levels.

    The inventory_policy field controls how Klaviyo handles products with zero stock. Set this to 'continue' to allow recommendations of out-of-stock items (useful if you want to show customers what is coming back in stock), or 'deny' to hide out-of-stock products from emails entirely. Most merchants set this to 'deny' to avoid sending customers to pages where items cannot be purchased.

    Product images

    The image_full_url field is the primary product image displayed in customer emails. This should be a high-quality image at least 600 pixels wide. Use a direct URL to the image file, not a page that redirects. Klaviyo caches images, so changes to the image file may not appear immediately in sent emails.

    The image_thumbnail_url field is a smaller version of the product image used in email previews or product lists within Klaviyo. If not provided, Klaviyo uses the full image. Providing a thumbnail can reduce email file size and improve load times on mobile devices.

    Both image URLs must be publicly accessible and use HTTPS. Avoid linking to images behind authentication or paywalls, as Klaviyo's servers will not be able to retrieve them.

    Product attributes

    The color field specifies the product colour. Use standard colour names (for example, 'Red', 'Navy Blue') rather than hex codes or internal names. Colour is useful for filtering variants and for building colour-specific recommendations.

    The size field indicates product size. Use consistent sizing notation across your feed (for example, 'Small', 'Medium', 'Large' or 'S', 'M', 'L'). Size helps customers identify the exact variant they want in emails.

    The gender field specifies the intended wearer or user (for example, 'Mens', 'Womens', 'Unisex'). This is optional but helps with segmentation and product filtering.

    The published field is a boolean flag (true or false) that indicates whether the product is active and should appear in Klaviyo campaigns. Set to 'false' to hide a product from recommendations without removing it from the feed. This is useful for temporarily delisting products without deleting historical data.

    Field requirements and data quality standards

    The following table shows which fields are required, their expected data formats, and the impact of missing or incorrect data on campaign performance.

    Field Required Format Impact of missing or incorrect data
    external_id Yes Unique alphanumeric string Duplicate products in Klaviyo; broken product tracking; recommendation failures
    title Yes Text (max 255 characters) Products appear unnamed in emails; reduced click-through rates
    url Yes Full HTTPS URL Customers cannot access product pages; broken email links
    price Yes Numeric (e.g., 29.99) Incorrect pricing displayed in emails; customer confusion
    image_full_url Yes Full HTTPS URL No product images in emails; reduced engagement and conversion
    description No Plain text or HTML Missing product details in emails; reduced context for customers
    sale_price No Numeric (e.g., 19.99) Regular price shown instead of sale price; lost urgency and conversion lift
    inventory_quantity No Non-negative integer Inaccurate stock status; recommendations of out-of-stock items
    inventory_policy No 'continue' or 'deny' Out-of-stock products may or may not appear in emails (behaviour unclear)
    categories No Text with forward slashes Limited segmentation; harder to build category-specific campaigns
    brand No Text Cannot filter or segment by brand
    color, size, gender No Text Variants not differentiated; customers cannot identify specific options
    gtin No 12 or 13 digit barcode Reduced compatibility with third-party integrations
    item_group_id No Unique alphanumeric string Variants treated as separate products; poor variant grouping
    published No true or false All products appear in campaigns, including inactive ones
    image_thumbnail_url No Full HTTPS URL Klaviyo generates thumbnail from full image (no performance loss)

    Practical guidance for merchants

    Setting up the feed

    Most merchants connect their Klaviyo product feed through a direct integration with their ecommerce platform (Shopify, WooCommerce, BigCommerce, etc.). If your platform has a native Klaviyo integration, enable it and map your product fields to Klaviyo's expected field names. If you use a custom platform or need more control over the feed, you can upload a CSV or JSON file directly to Klaviyo.

    When you first connect the feed, Klaviyo performs a one-time import of all products. After that, the feed updates on a schedule you define, typically every 4 to 24 hours. Set the update frequency based on how often your inventory and prices change. High-volume retailers with frequent stock updates should sync every 4 to 6 hours. Lower-volume stores can use daily syncs.

    Mapping fields from your platform

    During setup, you will map fields from your ecommerce system to Klaviyo's field names. For example, if your system calls the product name 'product_title', you map it to Klaviyo's 'title' field. Ensure that every required field has a corresponding source in your system. If a required field does not exist in your system, you may need to create it or use a default value.

    Test the mapping with a small sample of products before running the full feed. Check that external_id values are truly unique and do not change between syncs. Verify that prices are formatted correctly and that image URLs are publicly accessible.

    Keeping inventory in sync

    Inventory synchronisation is critical for ecommerce messaging. If Klaviyo shows a product as in stock but your store is out of stock, customers will receive emails driving them to pages where they cannot make a purchase. This damages trust and increases support costs.

    Use the inventory_quantity field to reflect real-time stock levels. If your ecommerce system has a direct API connection to Klaviyo, inventory updates can happen in near real-time (within minutes). If you use CSV or JSON uploads, update the feed as frequently as your system allows, ideally every 4 to 6 hours.

    For products with long lead times or pre-orders, use the inventory_policy field to control whether Klaviyo recommends them. Set inventory_policy to 'continue' for pre-order items so they appear in emails even when inventory_quantity is zero, but include clear messaging in your email template that the item is coming soon.

    Optimising product titles and descriptions

    Product titles in Klaviyo emails are often the first thing customers see. Keep titles under 60 characters where possible so they display fully on mobile devices. Use clear, descriptive language. For example, 'Blue Cotton T-Shirt, Size Medium' is better than 'TSHIRT-BLU-M'.

    Descriptions should highlight key product benefits and attributes. If a product has variants (colour, size), mention the specific variant in the description so customers know exactly what they are viewing. Avoid HTML formatting in descriptions unless you are certain your email template supports it.

    Image URL configuration

    Image URLs must be stable and permanent. Do not use temporary URLs that expire after a set time. If you change your image hosting, update the feed before removing the old images, or your emails will show broken image links.

    For image_full_url, provide the highest-quality version of the product image. Klaviyo scales images to fit email templates, so a 1200-pixel-wide image is appropriate. Avoid very large files (over 500 KB), as they slow email load times.

    Image_thumbnail_url should be a smaller version of the same image (typically 300 to 400 pixels wide). If you do not have a separate thumbnail, you can omit this field and Klaviyo will use the full image.

    Managing product categories

    Use the categories field to create a logical hierarchy that matches how customers think about your products. For example, 'Clothing / Womens / Dresses / Summer Dresses'. Use forward slashes to separate hierarchy levels. Klaviyo uses categories to build segment filters, so consistent naming is important.

    Limit categories to 3 to 5 levels deep. Very deep hierarchies become unwieldy in Klaviyo's UI and do not provide additional value for segmentation.

    Handling variants and grouped products

    If you sell products in multiple colours, sizes, or configurations, create a separate product record for each variant in your feed. Each variant gets its own external_id (for example, 'SHIRT-BLU-M' and 'SHIRT-RED-M'). All variants of the same product share the same item_group_id (for example, 'SHIRT').

    Populate the color and size fields for each variant. This allows Klaviyo to show customers the specific variant they viewed or added to their cart, rather than just the base product.

    Sale price and promotional pricing

    When you run a promotion, update the sale_price field for affected products. Klaviyo displays the sale price in emails, helping to communicate the discount. If the sale ends, remove the sale_price value (leave it empty) so the regular price displays again.

    If you use Klaviyo's dynamic pricing features, ensure that price and sale_price are always populated with the current values. Klaviyo cannot calculate discounts; it displays only the prices you provide in the feed.

    Monitoring feed health

    After the feed is live, check Klaviyo's feed status dashboard regularly. Look for errors or warnings about missing fields, invalid URLs, or duplicate external_id values. Address these issues promptly to prevent campaign failures.

    Test email campaigns by sending yourself a test email that includes product blocks. Verify that images load, prices display correctly, and links work. If you see broken images or missing data, investigate the feed mapping and image URLs.

    Summary

    The Klaviyo product feed is the foundation for dynamic ecommerce messaging. Proper configuration of external_id, title, price, image_full_url, and inventory_quantity ensures that products display correctly in customer emails and that recommendations are accurate. Consistent inventory updates prevent showing customers out-of-stock items, while well-structured categories and variant grouping enable targeted campaigns and effective segmentation.

    Invest time in validating your feed before going live, and monitor it regularly for errors or data quality issues. A clean, accurate product feed delivers better campaign performance, higher click-through rates, and fewer customer support issues related to product information or availability.