Skip to main content

I’m the developer of a custom integration to Klaviyo for an industry specific ecommerce platform.  A couple of users have turned on CDP or are trialing it, but when they click “Product Insights” on the main menu, it says “No products available.”  One user actually has a single product on the screen, but no data for it.  Otherwise, they see all of their products when they click “Products” on the menu, product blocks work fine, and Klaviyo seems fully aware of the products everywhere else in the system.

They also have a message at the top of the Product Insights screen saying "Your product analysis is in progress and may take 24-48 hours to complete.", but that message has been there for the last two weeks.

They all have a custom catalog source pointing to a feed I’m providing that is formatted as Klaviyo suggests.  We’re sending server-side events of “Placed Order” and “Ordered Product” that are formatted as Klaviyo suggests.  Everything looks to be set up as it should be according to the documentation, but the report is coming up empty (or almost empty).

Any insights here would be super helpful.  Thank you!

Hey ​@Digimatic,

Sorry you’re not seeing your Product Analysis dashboard yet. I know you mentioned that you’re tracking Placed Order and Ordered Product, but my team informed me that the most likely reason for this issue is that your Placed Order payload isn’t structured correctly. The structure of your event needs to match the recommended structure in order for a Product Analysis dashboard to be created. You mentioned that you had structured it correctly - would you mind double checking, using this guide as a reference? Also, if you could post an example of one of the payloads you’re sending over for a Placed Order event, that would also help us locate the issue.

Looking forward to your response.

-Byrne


@Byrne C 

Below is a sample “Placed Order” payload.  I modified some of the data for privacy reasons, but didn’t change the structure.

 

{
  "data": {
    "type": "event",
    "attributes": {
      "properties": {
        "Order ID": "b743db07-d6e8-4622-9cf4-02205b5e1592",
        "OrderId": "b743db07-d6e8-4622-9cf4-02205b5e1592",
        "Order Number": 240211,
        "Channel": "Web",
        "Sales Channel": "Web",
        "Source": "Internal",
        "Paid Date": "2025-04-07T19:56:43.677Z",
        "Delivery Method": "Ship",
        "Items":
          {
            "ProductID": "GB23MSB6",
            "SKU": "GB23MSB6",
            "ProductName": "2023 Sauvignon Blanc 6 Btls.",
            "VariantName": "750ml",
            "Quantity": 1,
            "ItemPrice": 199,
            "OriginalPrice": 199,
            "ComparePrice": 210,
            "ImageURL": "https://image.png",
            "Type": "Bundle",
            "Department": null,
            "Vendor": null,
            "Slug": "2023-sauvignon-blanc-6-btls-",
            "collections": l
              "Recommended for you"
            ],
            "Categories": c
              "Bundle",
              "Recommended for you"
            ],
            "Brand": null
          }
        ],
        "ItemNames":
          "2023 Sauvignon Blanc 6 Btls."
        ],
        "Categories": ,
          "Bundle",
          "Recommended for you"
        ],
        "Brands": null,
        "BillingAddress": {
          "FirstName": "Bob",
          "LastName": "Builder",
          "Company": "",
          "Address1": "123 Main St",
          "Address2": "",
          "City": "Savannah",
          "Region": "Georgia",
          "RegionCode": "GA",
          "Country": "United States",
          "CountryCode": "US",
          "Zip": "31405-5431",
          "Phone": "+14045551212"
        },
        "ShippingAddress": {
          "FirstName": "Bob",
          "LastName": "Builder",
          "Company": "",
          "Address1": "123 Main St",
          "Address2": "",
          "City": "Savannah",
          "Region": "Georgia",
          "RegionCode": "GA",
          "Country": "United States",
          "CountryCode": "US",
          "Zip": "31405-5431",
          "Phone": "+14045551212"
        },
        "SubTotal": "199.00",
        "Order Submitted Date": "2025-04-07T19:56:43.677Z",
        "Total After Tip": "261.08",
        "Purchase Type": "Regular",
        "Coupons": U],
        "Promotions": ],
        "Shipping": /
          {
            "Carrier": "Other",
            "Code": "UPS",
            "Original Price": "45.00",
            "Vendor": "Local",
            "Service": "GROUND UPS",
            "Price": "45.00",
            "Tax": "3.15",
            "Title": "GROUND UPS"
          }
        ],
        "Taxes": /
          {
            "State Code": "GA",
            "Price": "17.08",
            "Title": "Tax"
          }
        ]
      },
      "time": "2025-04-07T19:56:45.677Z",
      "value": "261.08",
      "unique_id": "b743db07-d6e8-4622-9cf4-02205b5e1592",
      "metric": {
        "data": {
          "type": "metric",
          "attributes": {
            "name": "Placed Order"
          }
        }
      },
      "profile": {
        "data": {
          "type": "profile",
          "id": "01JNNTQB07SNZWH78DZX0A1RP0",
          "attributes": {
            "email": "bob.builder@gmail.com",
            "external_id": "630705c7-fe27-4e4e-b974-39403808c3cc",
            "first_name": "Bob",
            "last_name": "Builder",
            "location": {
              "city": "Savannah",
              "country": "United States",
              "region": "Georgia",
              "zip": "31405-5431"
            }
          }
        }
      }
    }
  }
}


@Byrne C A support rep just told me that the issue is catalog insights are not supported by our “service tag”, which I think is our app.  They’re only supported for “API” calls.  We recently switched our app to use OAuth because we were told API keys are going away eventually and OAuth is the future.  Am I correct that by switching to the newer system and making an “app”, we’ve just lost this functionality?  Is there any way to turn it on for our app?


Hi ​@Digimatic,

I’m not aware of any plan to make API keys go away eventually - I’ll look into this to confirm, however. From what it looks like, your app just isn’t sending orders to Klaviyo in a way where Catalog Insights can recognize the products.

-Byrne.


your app just isn’t sending orders to Klaviyo in a way where Catalog Insights can recognize the products

 

Okay.  I’m following the format that was specified in the documentation.  I’ve provided an example above.  Can someone tell me what, specifically, is wrong with it?


Hey ​@Digimatic,

Thanks for your patience here, and apologies for all the back and forth. At this time, OAuth integrations cannot support Catalog Insights. We’d like to make this possible in the future, but for now, your best bet would be to use a catalog that’s fully API, and not done through OAuth.

-Byrne


@Byrne C Thank you for the update!  As integration partners recently received an email saying we MUST migrate to OAuth by June 30th to remain listed in the app marketplace, I hope this will be a high priority fix.


Reply