Wishlist Abandonment at Scale: Segment, Then Email for Smarter Shopify Automation
Wishlist reminder emails work, when they’re smart. But many Shopify stores waste effort (and annoy customers) by reaching out even after customers already bought what was on their Wishlist. The best brands tag only true Wishlist abandoners, and then deliver a single, high converting campaign weekly or bi-weekly.
Step 1: Tag Unconverted Wishlist Customers with Shopify Flow
Only tag customers who have wishlist products they haven’t yet ordered.
Here’s a Run Code Logic that you can use in Flow:
export default function main(input) {
const customer = input.order && input.order.customer;
if (!customer) {
return { message: "no_customer" };
}
// Wishlist as product references
const wishlist = customer.wishlistProducts?.value || [];
if (!Array.isArray(wishlist) || wishlist.length === 0) {
return { message: "no_wishlist" };
}
// Gather all product IDs from previous orders
let purchasedIds = new Set();
(customer.orders || []).forEach(order => {
(order.lineItems || []).forEach(item => {
if (item.product && item.product.id) {
purchasedIds.add(item.product.id);
}
});
});
// Find unpurchased wishlist products
const unpurchased = wishlist.filter(p => p && !purchasedIds.has(p.id));
if (unpurchased.length > 0) {
return { message: "has_wishlist" }; // Tag these customers!
} else {
return { message: "wishlist_fulfilled" }; // Skip tagging
}
}
In your Flow, add a condition:
If runCode.message equals "has_wishlist", add tag has_wishlist to customer.
Step 2: Batch Email Your Wishlist Segments for Max ROI
No one likes a series of one-off, “robotic” emails.
Instead, use your new segment for batch, branded outreach
How to execute:
- In Shopify Admin > Customers > Segments, use:
customer_tags CONTAINS 'has_wishlist' - Create your wishlist email in Shopify Email
- Send it to this segment.
Run targeting that respects your customers, and your bottom line.
Build your segment, batch with confidence, and watch those recoveries climb.
