
We face this exact challenge on a weekly basis! Our client is a merchant based in Vienna, with a jewelry store, and one of the products he sells is a necklace. He decides to offer this necklace in 3 different forms – gold, silver and rose gold – as separate products. A customer buys the gold version, Klaviyo knows that this customer is a buyer of the gold version of the necklace, but when our client runs a flow for “customers who bought this necklace”, he doesn’t receive an email because the silver and the rose gold buyers (who are also buyers of the necklace) don’t get the email. The reason Klaviyo doesn’t know that the three products are actually the same.
Dynamic pricing listings can have a hidden cost. Yes, listings can help your Google visibility. But if you use dynamic pricing on Etsy, or other separate channels, your email automation may break – until you wire up combined listings group data into Klaviyo. And that only takes an hour.
This post covers segmenting by combined listings group, setting up a rubber ball to fire emails that treat all variants of a grouped product as one product, and then setting up the site to pass group metadata from Rubik Combined Listings to Klaviyo custom properties.
In this post
- The Klaviyo blind spot
- Segment by group handle
- Browse abandonment for grouped products
- Passing group data as custom properties
- Cross-sell flows
- FAQ
- Related reading
The Klaviyo blind spot
You sync all your products from your Shopify store into Klaviyo via the Catalog API. This means that there is one Klaviyo object for EVERY product in your store. Remember that the gold necklace and silver necklace are the same product in your store, but Klaviyo will treat them as 2 separate objects. Therefore, when you build out a segment for “customers who bought product X”, you will get the individual buyers of THAT specific product, not everyone who bought the necklace.
Why? 3 reasons why product groups are grouped incorrectly. post-purchase cross-sell pages could easily group together similar products that currently are not grouped together. abandoned browse product emails could show the alternate color version of a product that a customer viewed. emails that display new arrivals in your favorite collection could end up showing the same product but in a different color, spamming the customer with duplicate content.
Segment by combined listings group handle

This script stores the group handle as a product metafield. Klaviyo’s Shopify integration includes access to the Catalog, and all you have to do is use the group handle that is already stored as the product’s metafield.
Build a segment: 7. “Placed Order at least once where Items contain product with metafield rubik_cl.group_handle equals “classic-tee”” – this will give you a segment of EVERYONE who has ever purchased ANY version of the Classic Tee (regardless of colour and size) and you can send a Classic Tee restock email to gain more sales. This worked for me!
Browse abandonment for grouped products
The native Klaviyo browse abandonment email is triggered when a subscriber views a product page and then leaves your site. The email features the same product your shopper was viewing. If your shopper was browsing for the red tee and the email includes the red, that is fine. But if the red was sold out and the shopper was looking for a navy, for example, this email can feel tone-deaf.
New Idea: In the abandoned browse email, have the “group handle” of the viewed product display in the email, along with a small swatch of every color that is in stock in the group. We can get the list of group members through the metafield array for the product, and then have Klaviyo’s product blocks render out that array. (Rubik does this automatically but we can replicate it manually with Klaviyo.)
Pseudocode for a Klaviyo template:
{% set group = event.ViewedProduct.metafields.rubik_cl.group_members %}
{% for member in group %}
{% if member.available %}
<a href="{{ member.url }}"><img src="{{ member.image }}" /></a>
{% endif %}
{% endfor %}
Allow customers to view all in-stock colors for the product they are currently viewing.
Passing group data as custom Klaviyo properties
Klaviyo wants to eventually be able to report on and filter based on group handle, so products from The Real Seed Company get separated from products on other group handles. Catalog sync covers most of this, but for that last inch, we also included a small bit of code to trigger a Viewed Product event with the group handle as a custom property. This code should need to be added to the theme in Notes / Klaviyo.
_learnq.push(['track', 'Viewed Product', {
ProductID: {{ product.id }},
ProductName: {{ product.title | json }},
GroupHandle: {{ product.metafields.rubik_cl.group_handle | json }},
GroupMemberCount: {{ product.metafields.rubik_cl.member_count | json }}
}]);
New in 2.8 is the GroupHandle property that is available for every viewed product event. Create segments such as “Viewed Product where GroupHandle equals ‘summer-dress’ in the last 7 days but has not ordered” and specifically target the most relevant customer profile.
Cross-sell flows that respect groups
There are so many applications for these kinds of flows, but perhaps the most common is a “for those who bought X, also buy Y” cross-sell tactic. Running this kind of flow on a grouped product catalog however, can be tricky if you haven’t set up the catalog with group awareness – and can be plain embarrassing. We saw this happen with a recommendation for a silver necklace to a customer who had already bought the gold version of the same necklace.
Fix: in the cross-sell section add a condition to the collection method to exclude products where group_handle matches the group handle of anything already in their order history. Simple, yet saves your face in front of your customers.
Read full Klaviyo segmentation playbook for Shopify stores including not just combined listings here: Klaviyo segmentation guide on Craftshift. Companion read for variant image side on this post is: Klaviyo segmentation with Rubik Variant Images
See the live demo store, watch the tutorial video, or read the getting started guide.
Frequently asked questions
Does Klaviyo sync combined listings groups automatically?
We sync Shopify product metafields through the Klaviyo Catalog. Since Rubik stores group membership as a metafield, the group handle is automatically synced to Klaviyo and you can segment off it no matter what!
Can I trigger a Klaviyo flow on a group swatch click?
Build this into your theme’s rcl_swatch_clicked event and send a custom track event to Klaviyo with _learnq as the object. The payload should have group, option and product.
How do I stop cross-sell emails from recommending the same product in a different color?
Change the segment condition “product group” so that it excludes products with group_handle equal to products that are already in the purchase history of the subscriber. No duplicate recommendations.
Does the browse abandonment email need custom code?
Only if you want to show all the in-stock colors for a particular viewed product. The standard kl_browse_abandon template just shows one image. We need a small loop to go through all group members.
Can I segment by group in Klaviyo without touching the theme?
, yes, as long as the Catalog sync is bringing in the group handle metafield, you can build segments based on groups using metafield-based segmentation, which is available on all Klaviyo plans. Then you can build segments based on that within the Klaviyo interface.
What custom property name should I use for group handle?
GroupHandle default to ‘2’ keep formatting consistent across all events. Klaviyo treats GroupHandle, group_handle and groupHandle as different properties so pick one and keep it consistent.
Does this work with Klaviyo’s predictive analytics?
Using purchase history for predictive analytics. group_handle can be added to product metafield so Klaviyo can include it in segment definitions/flow triggers and next product recommendations will respect group handles.
Related reading
- Track swatch clicks in GA4
- Combined listings conversion rate impact
- Shopify combined listings explained
- Klaviyo segmentation guide (Craftshift)
- Variant images and Klaviyo (Rubik Variant Images)