<!DOCTYPE html><html lang="en-US"> <head><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>Solution Recipe 4: Extending Klaviyo’s Product Block Functionality - Klaviyo</title><link rel="icon" href="https://www.klaviyo.com/icons/icon-32x32.png" type="image/png"><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"><link rel="apple-touch-icon" sizes="48x48" href="https://www.klaviyo.com/icons/icon-48x48.png"><link rel="apple-touch-icon" sizes="72x72" href="https://www.klaviyo.com/icons/icon-72x72.png"><link rel="apple-touch-icon" sizes="96x96" href="https://www.klaviyo.com/icons/icon-96x96.png"><link rel="apple-touch-icon" sizes="144x144" href="https://www.klaviyo.com/icons/icon-144x144.png"><link rel="apple-touch-icon" sizes="192x192" href="https://www.klaviyo.com/icons/icon-192x192.png"><link rel="apple-touch-icon" sizes="256x256" href="https://www.klaviyo.com/icons/icon-256x256.png"><link rel="apple-touch-icon" sizes="384x384" href="https://www.klaviyo.com/icons/icon-384x384.png"><link rel="apple-touch-icon" sizes="512x512" href="https://www.klaviyo.com/icons/icon-512x512.png"><script id="klaviyo-contentsquare">window._uxa = window._uxa || [];</script><script id="transcend-airgap-script" src="https://transcend-cdn.com/cm/f3c1005b-8270-469c-85a4-81fe6c9b70e7/airgap.js?cacheBust=1773173415721" data-cfasync="false" data-prompt="auto" data-site="klaviyo.com" data-locale="en-US" data-languages="en,de-DE,es-ES,fr-FR,it-IT,ko-KR,nl-NL,pl-PL,pt-BR,sv-SE" onload="window._airgapLoadEvent = event;" data-report-only="on"></script> <script type="module" src="/blog/_astro/ConsentManager.astro_astro_type_script_index_0_lang.BETS19jy.js"></script><script id="klaviyo-experimentation">
window._kvyo_mkt_exp_provider = window._kvyo_mkt_exp_provider || {};
</script><script id="klaviyo-datalayer">window.dataLayer = window.dataLayer || [];</script> <script id="klaviyo-google-tag-manager">(function(){const gtmId = "GTM-M28G2G";
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer', gtmId);
window['optimizely'] = window['optimizely'] || [];
window['optimizely'].push({
type:"event",
eventName:"gtmLoaded"
});
})();</script><script id="hs-script-loader" src="//js.hs-scripts.com/48163345.js"></script><script src="https://js.hsforms.net/forms/embed/v2.js"></script><script>window.hubspotTrackingId = window.hubspotTrackingId || '48163345';</script><script id="klaviyo-klaviyoCompanyId">(function(){const companyId = "9BX3wh";
window.klaviyoCompanyId = window.klaviyoCompanyId || companyId;
})();</script><script id="klaviyo-klaviyo-object">
!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();
</script><script id="klaviyo-onsite-js" src="https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=9BX3wh"></script><meta property="og:locale" content="en_US"><meta property="og:type" content="website"><meta name="og:title" property="og:title" content="Solution Recipe 4: Extending Klaviyo’s Product Block Functionality - Klaviyo"><meta property="og:url" content="https://www.klaviyo.com/blog/solution-recipe-4-extending-klaviyos-product-block-functionality"><meta property="og:site_name" content="Klaviyo"><meta property="article:publisher" content="https://www.facebook.com/Klaviyo/"><meta property="article:modified_time" content="2024-08-23T20:04:02.000Z"><meta property="og:image" content="https://www.klaviyo.com/static/klaviyo-social-share-image.jpg"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="og:image:type" content="image/jpeg"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Solution Recipe 4: Extending Klaviyo’s Product Block Functionality - Klaviyo"><meta name="twitter:image" content="https://www.klaviyo.com/static/klaviyo-social-share-image.jpg"><meta name="twitter:site" content="@klaviyo"><script type="module" src="/blog/_astro/OnLoad.astro_astro_type_script_index_0_lang.fZxyOZOV.js"></script><meta id="meta-robots-tag" name="robots" content="index, follow"><link id="link-rel-canonical" rel="canonical" href="https://www.klaviyo.com/blog/solution-recipe-4-extending-klaviyos-product-block-functionality"><script type="module" src="/blog/_astro/Statsig.astro_astro_type_script_index_0_lang.RqUG-5gM.js"></script><meta name="msvalidate.01" content="49A84271BDDA383603410B783428A45B"><meta name="google-site-verification" content="gZoutuKyaBAseITF5HFxs7502vdgSyDlGFVcrM-3_68"><meta name="facebook-domain-verification" content="jso33gutz25cozarhntdl864k8xtnf"><link rel="preconnect" href="https://static.klaviyo.com"><script defer id="recaptcha-script" src="https://www.google.com/recaptcha/api.js?render=6Lc-vxErAAAAAKq79hQ2CEfaUCBld0hVMtRboXtB&hl=en-US"></script><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.klaviyo.com/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://www.klaviyo.com/blog"},{"@type":"ListItem","position":3,"name":"Solution Recipe 4: Extending Klaviyo’s Product Block Functionality","item":"https://www.klaviyo.com/blog/solution-recipe-4-extending-klaviyos-product-block-functionality"}]}</script><link rel="stylesheet" href="/blog/_astro/_slug_.DTGkCYLd.css">
<style>._breadcrumbsComponent_1ilbl_1{background-color:var(--color-breadcrumbs-background);padding-top:32px}._charcoal_1ilbl_6{--color-breadcrumbs-background: var(--color-charcoal)}._lightSand_1ilbl_10{--color-breadcrumbs-background: var(--color-light-sand)}._container_1ilbl_14{display:block;padding-top:2rem;padding-bottom:1.2rem;font-size:1.2rem}._breadcrumbs_1ilbl_1{background-color:transparent;color:var(--color-storm-tint);display:inline-block;max-width:29.1rem;position:relative;width:69rem;z-index:3}._light_1ilbl_10,._breadcrumbs_1ilbl_1._light_1ilbl_10{color:var(--color-gray-90);._lastBreadcrumb_1ilbl_35{color:var(--color-charcoal)}}._dark_1ilbl_40,._breadcrumbs_1ilbl_1._dark_1ilbl_40{color:var(--color-storm-tint);._lastBreadcrumb_1ilbl_35{color:var(--color-white)}}._breadcrumb_1ilbl_1{cursor:pointer;display:inline-block;margin-right:.6rem;overflow:hidden;text-decoration:none;text-overflow:ellipsis;&:hover,&:focus,&:focus-visible{text-decoration:underline}}._lastBreadcrumb_1ilbl_35{cursor:default;display:inline-block;text-decoration:none;margin-right:.6rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;max-width:100%;white-space:nowrap}._spacer_1ilbl_77{display:inline-block;text-align:center;width:20px;margin-right:.6rem;overflow:hidden}@media screen and (min-width: 576px){._breadcrumbs_1ilbl_1{max-width:41.6rem}}@media screen and (min-width: 768px){._breadcrumbs_1ilbl_1{max-width:45.6rem}}@media screen and (min-width: 916px){._breadcrumbs_1ilbl_1{max-width:61.6rem}}@media screen and (min-width: 1366px){._breadcrumbs_1ilbl_1{max-width:69rem}}
</style>
<link rel="stylesheet" href="/blog/_astro/_slug_.DO0KeWEb.css">
<link rel="stylesheet" href="/blog/_astro/_page_.BXi5blp5.css">
<style>._buttonContainer_1ir94_1{font-family:var(--font-family-sans-serif);display:inline-flex;align-items:center;flex-wrap:wrap;gap:1.5rem}.klaviyoForm{padding-top:var(--spacing-global-vertical-padding);padding-bottom:var(--spacing-global-vertical-padding)}.klaviyoForm.charcoal,.klaviyoForm.dark{background-color:var(--color-charcoal);color:var(--color-white)}.klaviyoForm.light,.klaviyoForm.lightSand,.klaviyoForm.white{background-color:var(--color-light-sand);color:var(--color-charcoal)}.klaviyoForm .text{display:flex;flex-direction:column;gap:1.6rem;grid-column:1/-1;margin-bottom:1.6rem}@media screen and (min-width: 768px){.klaviyoForm .text{grid-column:2/-2}}@media screen and (min-width: 1024px){.klaviyoForm .text{grid-column:3/-3}}.klaviyoForm .form{grid-column:1/-1}@media screen and (min-width: 768px){.klaviyoForm .form{grid-column:2/-2}}@media screen and (min-width: 1024px){.klaviyoForm .form{grid-column:3/-3}}
</style>
<link rel="stylesheet" href="/blog/_astro/_slug_.yZlDm-Wi.css">
<style>._badge_lflca_1{background-color:var(--badge-background-color, var(--color-core-charcoal));border-radius:.4rem;color:var(--badge-text-color, var(--color-core-white));font-family:var(--font-family-sohne);font-size:.8rem;font-weight:500;line-height:.8rem;padding:.4rem;position:relative;text-transform:uppercase;z-index:0;display:inline-block}._mediumBadge_lflca_16{font-size:1.4rem;font-weight:400;line-height:2rem;padding:.4rem .8rem;text-transform:unset}
</style>
<link rel="stylesheet" href="/blog/_astro/_slug_.BZHNbNSM.css"><script type="module" src="/blog/_astro/page.Cay1dNxt.js"></script></head><body> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();</script><script>(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><astro-island uid="Z29CXTd" prefix="r23" component-url="/blog/_astro/header.BNeumPB1.js" component-export="Header" renderer-url="/blog/_astro/client.IaDn9qiQ.js" props="{"slot":[0,"header"],"alertBar":[0,{"_createdAt":[0,"2026-03-03T20:03:33Z"],"_id":[0,"dfe625ba-d9a6-47a7-9ce6-e4dca8457be9"],"_rev":[0,"3Zd6FO235bqucTEKLizzgE"],"_type":[0,"alertBar"],"_updatedAt":[0,"2026-03-03T20:06:28Z"],"backgroundColor":[0,"violet"],"backgroundImage":[0,null],"endDate":[0,"2026-03-31T19:03:00.000Z"],"excludedPaths":[1,[[0,"/grow/*"],[0,"/sign-up"],[0,"/demo-request"],[0,"/pricing"],[0,"/careers/*"],[0,"/marketing-resources"]]],"icon":[0,""],"language":[0,"en-US"],"link":[0,{"href":[0,"https://www.klaviyo.com/whats-new"],"openInNewTab":[0,true]}],"locale":[0,"en-US"],"message":[1,[[0,{"_key":[0,"77e2379f89e2"],"_type":[0,"block"],"children":[1,[[0,{"_key":[0,"18d120899018"],"_type":[0,"span"],"marks":[1,[]],"text":[0,"Explore 50+ new features designed to help you grow big in 2026"]}]]],"markDefs":[1,[]],"style":[0,"normal"]}]]],"startDate":[0,"2026-03-03T20:03:28.934Z"],"textColor":[0,"white"],"title":[0,"What's new"]}],"basePathType":[0,"path"],"homeLink":[0,"/"],"langCode":[0,"en-US"],"path":[0,"/blog/solution-recipe-4-extending-klaviyos-product-block-functionality"],"sites":[1,[[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-de-DE"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo vereint Marketing und Kundenservice in einem KI-basierten B2C-CRM. Testen Sie unsere Omnichannel-Marketingsoftware, unterstützt von K:AI-Agents, um personalisierte Erlebnisse über E-Mail-Marketing, WhatsApp und weitere Kanäle bereitzustellen."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"localeOverride":[0,"de"],"separator":[0,"-"],"title":[0,"Klaviyo DE"],"isoCode":[0,"de"],"isoName":[0,"German"],"locale":[0,"de-DE"],"marketingSitePath":[0,"de"],"name":[0,"German (Germany)"],"nativeName":[0,"Deutsch (Deutschland)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-en-AU"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifies marketing and service with its AI-first B2C CRM. Try out our omnichannel marketing software, powered by K:AI agents to deliver personalised experiences across email marketing, WhatsApp, and more."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo AU"],"isoCode":[0,"en"],"isoName":[0,"English"],"locale":[0,"en-AU"],"marketingSitePath":[0,"au"],"name":[0,"English (Australia)"],"nativeName":[0,"English (Australia)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-en-GB"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifies marketing and service with its AI-first B2C CRM. Try out omnichannel marketing software, powered by K:AI agents to deliver personalised experiences across email marketing, WhatsApp, and more."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo UK"],"isoCode":[0,"en"],"isoName":[0,"English"],"locale":[0,"en-GB"],"marketingSitePath":[0,"uk"],"name":[0,"English (United Kingdom)"],"nativeName":[0,"English (United Kingdom)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-en-SG"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifies marketing and service with its AI-first B2C CRM. Try out our omnichannel marketing software, powered by K:AI agents to deliver personalised experiences across email marketing, WhatsApp, and more."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo SG"],"isoCode":[0,"en"],"isoName":[0,"English"],"locale":[0,"en-SG"],"marketingSitePath":[0,"sg"],"name":[0,"English (Singapore)"],"nativeName":[0,"English (Singapore)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-en-US"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifies AI-powered email marketing and SMS to drive growth, retention, and measurable results. Build personalized, omnichannel experiences across WhatsApp, ecommerce, and more with K:AI Agents."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo"],"isoCode":[0,"en"],"isoName":[0,"English"],"locale":[0,"en-US"],"marketingSitePath":[0,""],"name":[0,"English (United States)"],"nativeName":[0,"English (United States)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-es-ES"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifica el marketing y la atención al cliente con su CRM B2C basado en IA. Prueba el software de marketing omnicanal, impulsado por agentes K:AI para ofrecer experiencias personalizadas a través de email marketing, WhatsApp y más."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo ES"],"isoCode":[0,"es"],"isoName":[0,"Spanish"],"locale":[0,"es-ES"],"marketingSitePath":[0,"es"],"name":[0,"Spanish (Spain)"],"nativeName":[0,"Español (España)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-fr-FR"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifie le marketing et le service client avec son CRM B2C axé sur l'IA. Essayez le logiciel de marketing omnicanal, optimisé par des agents K:AI pour offrir des expériences personnalisées via l'email marketing, WhatsApp et plus encore."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo FR"],"isoCode":[0,"fr"],"isoName":[0,"French"],"locale":[0,"fr-FR"],"marketingSitePath":[0,"fr"],"name":[0,"French (France)"],"nativeName":[0,"Français (France)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-it-IT"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifica marketing e assistenza clienti con il suo CRM B2C basato sull'IA. Prova il software di marketing omnichannel, potenziato da agenti K:AI per offrire esperienze personalizzate su email marketing, WhatsApp e altro ancora."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo IT"],"isoCode":[0,"it"],"isoName":[0,"Italian"],"locale":[0,"it-IT"],"marketingSitePath":[0,"it"],"name":[0,"Italian (Italy)"],"nativeName":[0,"Italiano (Italia)"]}]]],"translations":[1,[]],"universalCtas":[1,[[0,{"_key":[0,"e8173938-1b36-4bf6-8d27-dd3a04d78c64"],"_type":[0,"ctaMenuItem"],"image":[0,null],"label":[0,"Sign up"],"url":[0,"https://www.klaviyo.com/sign-up"],"variant":[0,"primary"]}],[0,{"_key":[0,"8a703dce-fa78-4326-84dc-8310e3bef4ef"],"_type":[0,"ctaMenuItem"],"image":[0,null],"label":[0,"Get a demo"],"url":[0,"https://www.klaviyo.com/demo-request"],"variant":[0,"secondary"]}]]],"universalCtasLoggedIn":[1,[[0,{"_key":[0,"10831777-650c-4e92-981a-8c290e09e9b9"],"_type":[0,"ctaMenuItem"],"image":[0,null],"label":[0,"Get a demo"],"url":[0,"https://www.klaviyo.com/demo-request"],"variant":[0,"secondary"]}]]],"universalNavigationItems":[1,[[0,{"_key":[0,"84dd4e17-2935-489c-9f57-216420a30831"],"_type":[0,"navbarItem"],"drawer":[0,{"columns":[1,[[0,{"_key":[0,"4a2c0ac4-2941-4195-a6eb-2bd50c87347b"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"b4318b8b-da8f-4077-91ae-62715a3c9e2d"],"description":[0,"Discover how the Klaviyo CRM, built for your business, can help you create lasting customer relationships."],"featured":[0,true],"image":[0,null],"label":[0,"The B2C CRM"],"trailingMark":[0,true],"url":[0,"/platform"]}]]],"eyebrow":[0,"Overview"],"width":[0,"standard"]}],[0,{"_key":[0,"507e3a96-bd88-47d7-9ea4-bea493a850b9"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"38b9e0fb-0bdf-418e-91e0-18545036bb33"],"badge":[0,{"color":[0,"poppy"],"text":[0,"New"]}],"description":[0,"AI agents, Image Remix, insights &amp; more"],"featured":[0,true],"image":[0,null],"label":[0,"Klaviyo AI (K:AI)"],"trailingMark":[0,true],"url":[0,"/solutions/ai"]}],[0,{"_key":[0,"0edbfd50-8b0b-4e5a-9674-e79ee3267abb"],"description":[0,"Marketing automation across all channels"],"featured":[0,true],"image":[0,null],"label":[0,"Klaviyo Marketing"],"trailingMark":[0,true],"url":[0,"/solutions/marketing-automation"]}],[0,{"_key":[0,"bfdf517d-21d9-426f-82aa-78fc82fd61be"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"description":[0,"Happier customers, more sales"],"featured":[0,true],"image":[0,null],"label":[0,"Klaviyo Service"],"trailingMark":[0,true],"url":[0,"/solutions/customer-service"]}],[0,{"_key":[0,"d41a4f1a-83be-4175-8e95-3ce24185deb0"],"description":[0,"What’s working, what’s next, zero noise"],"featured":[0,true],"image":[0,null],"label":[0,"Klaviyo Analytics"],"trailingMark":[0,true],"url":[0,"/solutions/analytics"]}],[0,{"_key":[0,"266b7e03-258a-4920-98b1-8e9171762e4d"],"description":[0,"The smarter, simpler CDP to unify and activate your data in real time"],"featured":[0,true],"image":[0,null],"label":[0,"Klaviyo Data Platform"],"trailingMark":[0,true],"url":[0,"/solutions/customer-data-platform"]}]]],"eyebrow":[0,"SOLUTIONS"],"width":[0,"standard"]}],[0,{"_key":[0,"383cedba-87a6-4456-9a84-a77fa6efbd2c"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"7c4f9217-d2f0-4ddf-8355-2118bc26340f"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"description":[0,"AI, data, and channels working as one"],"featured":[0,true],"image":[0,null],"label":[0,"Omnichannel marketing"],"trailingMark":[0,true],"url":[0,"/solutions/omnichannel"]}],[0,{"_key":[0,"5101ac9e-e028-4f2e-bce7-960346f845c4"],"icon":[0,"NavigationEmail"],"image":[0,null],"label":[0,"Email marketing"],"url":[0,"/products/email-marketing"]}],[0,{"_key":[0,"cd2d1f66-d14b-4541-95dc-408768e438ac"],"icon":[0,"NavigationSms"],"image":[0,null],"label":[0,"SMS marketing"],"url":[0,"/products/sms-marketing"]}],[0,{"_key":[0,"5399e0c9-30c0-40f3-8f3e-f39e964940c3"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"icon":[0,"NavigationRcs"],"image":[0,null],"label":[0,"RCS for Business"],"url":[0,"/products/sms-marketing/rcs"]}],[0,{"_key":[0,"80460413-ff5e-4003-af84-37a7cc722868"],"icon":[0,"NavigationMobilePush"],"image":[0,null],"label":[0,"Mobile app marketing"],"url":[0,"/products/mobile-push"]}],[0,{"_key":[0,"3ddd68b4-685d-4b27-af73-dbee33994088"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"icon":[0,"NavigationWhatsapp"],"image":[0,null],"label":[0,"WhatsApp marketing"],"url":[0,"/products/whatsapp"]}],[0,{"_key":[0,"6fe88d21-2120-4096-878b-1ee3415caeb4"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"icon":[0,"NavigationSocialMarketing"],"image":[0,null],"label":[0,"Social marketing"],"url":[0,"/products/social"]}]]],"eyebrow":[0,"CHANNELS"],"width":[0,"standard"]}],[0,{"_key":[0,"0a1e99b1-094a-452d-b854-d9faafd6b52d"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"3430b730-c6ed-4f2d-8863-19e89c7c623f"],"badge":[0,{"color":[0,"poppy"],"text":[0,"New"]}],"image":[0,null],"label":[0,"Marketing Agent"],"url":[0,"/solutions/ai/marketing-agent"]}],[0,{"_key":[0,"1a8a343a-6d3d-40d8-bb74-39c81bf96d96"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"Customer Agent"],"url":[0,"/solutions/ai/customer-agent"]}],[0,{"_key":[0,"9f23aa5d-57d6-49e6-a92f-1a83a4983151"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"Customer Hub"],"url":[0,"/products/customer-experience-hub"]}],[0,{"_key":[0,"3e148ab1-dbef-42cf-845a-968f90c4aee5"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"Helpdesk"],"url":[0,"/products/helpdesk"]}],[0,{"_key":[0,"e94c998d-bf12-43b3-bd2d-f0e2458cfd93"],"image":[0,null],"label":[0,"Marketing Analytics"],"url":[0,"/products/marketing-analytics"]}],[0,{"_key":[0,"a5baece7-1035-48cf-92c8-b42678a44576"],"image":[0,null],"label":[0,"Advanced Klaviyo Data Platform"],"url":[0,"/products/advanced-cdp"]}],[0,{"_key":[0,"cc7c3cd1-cd26-430b-9895-706d3d402838"],"image":[0,null],"label":[0,"Segmentation"],"url":[0,"/features/segmentation"]}],[0,{"_key":[0,"05046cd0-01f6-478e-bc98-840087d4b133"],"image":[0,null],"label":[0,"Reviews"],"url":[0,"/products/review-management"]}],[0,{"_key":[0,"99ef50fd-3c75-4043-ac96-7f30f0c0c88f"],"image":[0,null],"label":[0,"Templates"],"url":[0,"/features/templates"]}]]],"eyebrow":[0,"TOP PRODUCTS + FEATURES"],"width":[0,"standard"]}]]],"lowerItems":[1,[[0,{"_key":[0,"b3f02059-8234-4c99-8d25-5f289e0672b5"],"_type":[0,"six_column"],"childItems":[1,[[0,{"_key":[0,"904cc5cb-d64d-4de7-8294-a940eb1f158e"],"description":[0,"One platform. Every channel. Real results."],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/baeb51700705ac37ed422f09fff04a0bf9900422-668x400.webp"]}]}],"label":[0,"The Klaviyo omniverse"],"url":[0,"/solutions/omnichannel"]}],[0,{"_key":[0,"ceadcb91-1d33-474c-bf3e-6111f7fe45cb"],"description":[0,"AI strategist and assistant for marketers."],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ae936bd6b977ede47a47817389f3f4c88af83bf3-502x300.webp"]}]}],"label":[0,"Marketing Agent"],"url":[0,"/solutions/ai/marketing-agent"]}],[0,{"_key":[0,"770b06a2-4ddd-41b1-97fe-ade42329cfa2"],"description":[0,"AI support and sales rep for shoppers."],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/9de21910b9048ec6cb4ef0826d2a072d0cb02af0-502x300.webp"]}]}],"label":[0,"Customer Agent"],"url":[0,"/solutions/ai/customer-agent"]}],[0,{"_key":[0,"cdfbdf3e-722d-47e4-964d-f4c6b516e227"],"description":[0,"Get more personal on more channels."],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ce5b07ba71d2f4ad7dda0ced439c6b20c954e263-669x400.webp"]}]}],"label":[0,"New features"],"url":[0,"/whats-new"]}],[0,{"_key":[0,"f150ad5a-2da8-4c06-9a15-97db69238c70"],"description":[0,"Watch the replay of our livestream sessions."],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/5f35a8bf57394c93ee3d334660e938e206268dc0-669x400.webp"]}]}],"label":[0,"K:BOS 2025"],"url":[0,"/events/kbos-2025-recap"]}]]],"eyebrow":[0,"SPOTLIGHT"]}]]]}],"label":[0,"Platform"]}],[0,{"_key":[0,"3be61f3e-7478-499d-b827-c66a1794f5c7"],"_type":[0,"navbarItem"],"drawer":[0,{"columns":[1,[[0,{"_key":[0,"d3f40407-1eee-45ab-80b4-843a0ac12001"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"wbUf74AzsTIPJWAPCWqz8d"],"description":[0,"Integrate with 350+ apps to seamlessly connect all of your data to Klaviyo"],"featured":[0,true],"image":[0,null],"label":[0,"Explore apps"],"trailingMark":[0,true],"url":[0,"https://marketplace.klaviyo.com/en-us/"]}]]],"eyebrow":[0,"KLAVIYO APP MARKETPLACE"],"width":[0,"standard"]}],[0,{"_key":[0,"5656a308-3c23-4d4d-acd3-78064908119f"],"_type":[0,"visual_list"],"childItems":[1,[[0,{"_key":[0,"7b81717c-90eb-4a62-a013-885ab9452690"],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ebac5b0bbbfad81c1d7784c51c525832e7700a38-262x120.webp"]}]}],"label":[0,"Shopify"],"url":[0,"https://www.klaviyo.com/ecommerce-integrations/shopify"]}],[0,{"_key":[0,"0dc6a025-e20a-4ef2-8999-da7f0b889162"],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/cbe11091b91c8f140bf47b6656218b19b0bd9fac-262x120.webp"]}]}],"label":[0,"Salesforce"],"url":[0,"https://www.klaviyo.com/ecommerce-integrations/commerce-cloud"]}],[0,{"_key":[0,"7e20c66c-989d-4a48-ab56-c868ad4431ac"],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/7c3c7232e4d426b133fb7a1458ee5a6faa371eaf-262x120.webp"]}]}],"label":[0,"Wix"],"url":[0,"https://www.klaviyo.com/ecommerce-integrations//wix"]}],[0,{"_key":[0,"53746f10-87e7-4cb1-94ef-a156c5a3a855"],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/810a806fe9ab3d05f9e2bfc701aba0774b1866b5-262x120.webp"]}]}],"label":[0,"WooCommerce"],"url":[0,"https://www.klaviyo.com/ecommerce-integrations/woocommerce"]}],[0,{"_key":[0,"4d091608-407e-490a-b5d3-a20cf466ba29"],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ea92879e13620ad4c849c1d0322334fb409ed111-262x120.webp"]}]}],"label":[0,"Adobe Commerce (Magento)"],"url":[0,"https://www.klaviyo.com/ecommerce-integrations/magento"]}],[0,{"_key":[0,"64c947b4-19e1-4efb-9a19-04221c32af64"],"image":[0,{"_type":[0,"image"],"asset":[0,{"url":[0,"https://cdn.sanity.io/images/6ct6b26e/marketing-prod/43f28b304c058503374e25edfb214b7eed123afc-262x120.webp"]}]}],"label":[0,"BigCommerce"],"url":[0,"https://www.klaviyo.com/ecommerce-integrations/bigcommerce"]}]]]}],[0,{"_key":[0,"fbd53d6b-a9c3-4921-9da9-c8b83c6bc4ce"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"wbUf74AzsTIPJWAPCWqz9p"],"description":[0,"Our apps make it simple to integrate your entire tech stack"],"featured":[0,true],"image":[0,null],"label":[0,"Integration benefits"],"trailingMark":[0,true],"url":[0,"/platform-integrations"]}],[0,{"_key":[0,"a98d517b-7e35-422f-b8d8-5d5d6345a14e"],"image":[0,null],"label":[0,"Advertising"],"url":[0,"https://marketplace.klaviyo.com/en-us/browse/?categoryId=15"]}],[0,{"_key":[0,"de9877f0-ce75-4209-905c-f198c9ecca9a"],"image":[0,null],"label":[0,"Shipping"],"url":[0,"https://marketplace.klaviyo.com/en-us/browse/?categoryId=9"]}],[0,{"_key":[0,"8d7e8362-7a41-48c3-a461-c387bc41814e"],"image":[0,null],"label":[0,"Point of sale"],"url":[0,"https://marketplace.klaviyo.com/en-us/browse/?categoryId=18"]}],[0,{"_key":[0,"d5370cd1-6217-4e72-93d1-db524e753fec"],"image":[0,null],"label":[0,"Loyalty"],"url":[0,"https://marketplace.klaviyo.com/en-us/browse/?categoryId=8"]}],[0,{"_key":[0,"a8f2ec03-f70a-4b0e-b218-42fc32ba9385"],"image":[0,null],"label":[0,"Subscription"],"url":[0,"https://marketplace.klaviyo.com/en-us/browse/?categoryId=25"]}],[0,{"_key":[0,"d2a09935-16cc-4002-934d-71edf209dc07"],"image":[0,null],"label":[0,"View top apps and integrations"],"url":[0,"http://marketplace.klaviyo.com/en-us"]}]]],"width":[0,"standard"]}],[0,{"_key":[0,"324ea7dd-4872-4aba-aabb-73255dc76bae"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"wbUf74AzsTIPJWAPCWqzB1"],"description":[0,"Create apps and integrations to grow your business using Klaviyo’s APIs"],"featured":[0,true],"image":[0,null],"label":[0,"Developers"],"trailingMark":[0,true],"url":[0,"https://developers.klaviyo.com/en"]}],[0,{"_key":[0,"e4b44df3-0c9c-4cb3-b3b5-da4d0f61db5a"],"image":[0,null],"label":[0,"Getting started"],"url":[0,"https://developers.klaviyo.com/en/docs/get_started"]}],[0,{"_key":[0,"4dec07a2-8fe9-43b6-b82a-8a1f9ab615eb"],"image":[0,null],"label":[0,"Developer guides"],"url":[0,"https://developers.klaviyo.com/en/docs"]}],[0,{"_key":[0,"18b67899-915d-4ba6-80e1-19958df06522"],"image":[0,null],"label":[0,"API docs"],"url":[0,"https://developers.klaviyo.com/en/reference/api_overview"]}]]],"width":[0,"standard"]}]]],"lowerItems":[1,[]]}],"label":[0,"Apps & Integrations"]}],[0,{"_key":[0,"988826b9-1c96-4588-a7df-37ffc8b4e2bc"],"_type":[0,"navbarItem"],"drawer":[0,{"columns":[1,[[0,{"_key":[0,"3265d531-6c7b-4395-8fc1-025445a3ea08"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"wbUf74AzsTIPJWAPCWqzCD"],"description":[0,"Your all-in-one success center with answers, resources, and community to keep you growing"],"featured":[0,true],"image":[0,null],"label":[0,"The Klaviyo Power Up"],"trailingMark":[0,true],"url":[0,"/customer-resources"]}],[0,{"_key":[0,"0e8727cc-95ba-4ab4-b6d6-09fc6fdcaaad"],"image":[0,null],"label":[0,"Help center"],"url":[0,"https://help.klaviyo.com/hc/en-us"]}],[0,{"_key":[0,"9cf7755a-cb70-49b5-9870-e182b3f79474"],"image":[0,null],"label":[0,"Academy"],"url":[0,"https://academy.klaviyo.com/en-us"]}],[0,{"_key":[0,"4bd71f9b-bf87-4516-a282-60957d5d38aa"],"image":[0,null],"label":[0,"Community"],"url":[0,"https://community.klaviyo.com"]}],[0,{"_key":[0,"53fddffe-ad6c-48a7-b14c-3108fc6cea21"],"image":[0,null],"label":[0,"Developers"],"url":[0,"https://developers.klaviyo.com/en"]}]]],"width":[0,"standard"]}],[0,{"_key":[0,"9656fd92-6c1a-401d-bd81-a4f1887651c6"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"9fbd3f2f-0158-429d-8cb3-d271f8a46476"],"description":[0,"Onboarding and support resources to get the most out of Klaviyo"],"image":[0,null],"label":[0,"Support overview"],"url":[0,"/success"]}],[0,{"_key":[0,"8777684f-502e-43a0-852d-1b2dcd03c0fd"],"description":[0,"Enterprise and professional support packages and services"],"image":[0,null],"label":[0,"Professional services"],"url":[0,"https://www.klaviyo.com/success/premium-support"]}],[0,{"_key":[0,"4356244b-9343-4f5b-a01f-19226f5e6942"],"description":[0,"Explore partners to work with"],"image":[0,null],"label":[0,"Partner directory"],"url":[0,"https://connect.klaviyo.com"]}]]],"eyebrow":[0,"Support"],"width":[0,"standard"]}],[0,{"_key":[0,"5f3d7ba0-d40f-4fd1-89a3-b6d8edd75bd0"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"42107eb4-0274-4fed-a35f-be46a99dc18c"],"description":[0,"Learn from customers who have grown with Klaviyo"],"image":[0,null],"label":[0,"Case studies"],"url":[0,"/customers"]}],[0,{"_key":[0,"94290652-2605-4498-b2bd-5c4c423a2e93"],"description":[0,"Industry news and growth strategies"],"image":[0,null],"label":[0,"Blog"],"url":[0,"/blog"]}],[0,{"_key":[0,"c2f699bb-0624-4f1c-afe7-19609f339588"],"description":[0,"Best practices, strategic guidance, and benchmark reports"],"image":[0,null],"label":[0,"Guides and reports"],"url":[0,"/marketing-resources"]}],[0,{"_key":[0,"6bfd749a-cfed-482f-a149-dd70b5cd4eb7"],"description":[0,"Join us at our flagship conference K:BOS and other events throughout the year"],"image":[0,null],"label":[0,"Events"],"url":[0,"/events"]}],[0,{"_key":[0,"8633d8a5-eeaf-4926-8eb5-bdc4e3908c60"],"description":[0,"Trust and security information"],"image":[0,null],"label":[0,"Trust center"],"url":[0,"https://www.klaviyo.com/trust"]}]]],"eyebrow":[0,"Discover more"],"width":[0,"standard"]}],[0,{"_key":[0,"bff9133b2b81"],"_type":[0,"link_list"],"childItems":[1,[[0,{"_key":[0,"ea5d3a6bebd9"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"cotton"]}],"featured":[0,false],"icon":[0,""],"image":[0,null],"label":[0,"Email marketing templates"],"trailingMark":[0,false],"url":[0,"https://www.klaviyo.com/features/email-templates"]}],[0,{"_key":[0,"6d2ed23fdedc"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"cotton"]}],"featured":[0,false],"icon":[0,""],"image":[0,null],"label":[0,"2026 Marketing calendar"],"trailingMark":[0,false],"url":[0,"https://www.klaviyo.com/marketing-resources/marketing-campaign-calendar"]}],[0,{"_key":[0,"7dd4a3b1c312"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"cotton"]}],"featured":[0,false],"icon":[0,""],"image":[0,null],"label":[0,"Email subject line generator"],"trailingMark":[0,false],"url":[0,"https://www.klaviyo.com/tools/email-subject-line-generator"]}],[0,{"_key":[0,"23d8b1d1f8bd"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"cotton"]}],"featured":[0,false],"icon":[0,""],"image":[0,null],"label":[0,"Email & SMS ROI calculator"],"trailingMark":[0,false],"url":[0,"https://www.klaviyo.com/tools/roi-calculator"]}]]],"eyebrow":[0,"Free Tools"],"width":[0,"standard"]}]]],"lowerItems":[1,[[0,{"_key":[0,"6a8efdcd0b86"],"_type":[0,"inline_list"],"childItems":[1,[[0,{"_key":[0,"a0472d3e1761"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"cotton"]}],"featured":[0,false],"icon":[0,""],"image":[0,null],"label":[0,"Check out the data that defined Black Friday & Cyber Monday"],"trailingMark":[0,false],"url":[0,"https://www.klaviyo.com/bfcm/holiday-shopping-trends"]}]]],"eyebrow":[0,"2025 BFCM RECAP"]}]]]}],"label":[0,"Resources"]}],[0,{"_key":[0,"83527c00-fc9f-499f-a038-d20bf43632b9"],"_type":[0,"navbarItem"],"drawer":[0,{"columns":[1,[]],"lowerItems":[1,[]]}],"label":[0,"How it works"],"url":[0,"/platform-demo"]}],[0,{"_key":[0,"fc85f13a-8eb9-41e5-bc49-024d7a62bdc8"],"_type":[0,"navbarItem"],"drawer":[0,{"columns":[1,[]],"lowerItems":[1,[]]}],"label":[0,"Pricing"],"url":[0,"/pricing"]}]]],"utilityNavigationItems":[1,[[0,{"_key":[0,"3d30106f-92de-4ca1-b353-cecc1b350c6b"],"_type":[0,"basicMenuItem"],"image":[0,null],"label":[0,"Home"],"url":[0,"https://www.klaviyo.com"]}],[0,{"_key":[0,"29a010c3-5bd1-4a6c-a471-8e1a9aa05f9d"],"_type":[0,"basicMenuItem"],"image":[0,null],"label":[0,"Help center"],"url":[0,"https://help.klaviyo.com/hc/en-us"]}],[0,{"_key":[0,"e853f65b-e035-49da-b841-41b0f199fb2a"],"_type":[0,"basicMenuItem"],"image":[0,null],"label":[0,"Enterprise"],"url":[0,"https://www.klaviyo.com/enterprise"]}],[0,{"_key":[0,"7f42967c-8016-4e6d-800f-a1e210da2890"],"_type":[0,"basicMenuItem"],"image":[0,null],"label":[0,"Partners"],"url":[0,"https://www.klaviyo.com/partners"]}],[0,{"_key":[0,"11ab15ee-8496-4d48-a008-0864e8351484"],"_type":[0,"basicMenuItem"],"image":[0,null],"label":[0,"Careers"],"url":[0,"https://www.klaviyo.com/careers"]}]]],"showSubnav":[0,false]}" ssr client="load" before-hydration-url="/blog/_astro/astro_scripts/before-hydration.js.BWsVurST.js" opts="{"name":"ReactHeader","value":true}" await-children><header id="primary-navigation-header" class="_header_1vldn_1" slot="header"><a data-variant="ghost" aria-label="Skip to main content" class="_dark_1dvtu_112 _skipButton_1jt0p_1 _button_1dvtu_1 _ghost_1dvtu_52" href="#site-content" role="link" tabindex="0" target="_self" id="skip-button">Skip to main content</a><div class="_utilityNavigation_1e8p0_1"><div class="grid _grid_1e8p0_18"><div class="_container_1e8p0_30"><nav class="_utility_1e8p0_1"><ul class="_linkList_1e8p0_100"><li class="_listItem_1e8p0_108"><a class="_link_1e8p0_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com" aria-current="false">Home</a></li><li class="_listItem_1e8p0_108"><a class="_link_1e8p0_83 _universalMenuItem_s73z6_1" href="https://help.klaviyo.com/hc/en-us" aria-current="false">Help center</a></li><li class="_listItem_1e8p0_108"><a class="_link_1e8p0_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/enterprise" aria-current="false">Enterprise</a></li><li class="_listItem_1e8p0_108"><a class="_link_1e8p0_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/partners" aria-current="false">Partners</a></li><li class="_listItem_1e8p0_108"><a class="_link_1e8p0_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/careers" aria-current="false">Careers</a></li></ul></nav><div class="_children_1e8p0_57"></div><div class="_actions_1e8p0_72"><div class="_languageSelectorContainer_1e8p0_154"></div><div class="_siteActions_1e8p0_79 visuallyHidden"><ul class="_linkList_1e8p0_100"><li><a class="_link_1e8p0_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/search-all" aria-label="Search"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" color="currentColor" style="height:1.6rem"><path fill="currentColor" fill-rule="evenodd" d="M7.434 2.084a4.907 4.907 0 1 0 0 9.813 4.907 4.907 0 0 0 0-9.813M1.027 6.991a6.407 6.407 0 1 1 12.813 0 6.407 6.407 0 0 1-12.813 0" clip-rule="evenodd"></path><path fill="currentColor" fill-rule="evenodd" d="M10.944 10.5a.75.75 0 0 1 1.06 0l3.637 3.637a.75.75 0 0 1-1.06 1.061l-3.637-3.636a.75.75 0 0 1 0-1.061" clip-rule="evenodd"></path></svg></a></li></ul></div><nav class="_platformActions_1e8p0_87 visuallyHidden"><ul class="_linkList_1e8p0_100"><li><a class="_accountLogIn_1d674_1 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/login"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Log in</div></div></div></a></li></ul></nav></div></div></div></div><div class="_universalNavigation_1pr3e_1 _invertOnHover_1pr3e_46"><div class="grid _container_1pr3e_65"><a title="Go to the Klaviyo home page" href="/" class="_logoContainer_1pr3e_72"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 581 172" color="currentColor" style="height:3.6rem" class="_logo_1pr3e_72"><path fill="currentColor" d="M329.918 34.367a11.85 11.85 0 0 0 8.284-3.315 11.69 11.69 0 0 0 3.576-8.129 11.87 11.87 0 0 0-3.512-8.29 12.03 12.03 0 0 0-8.348-3.488 11.85 11.85 0 0 0-8.185 3.551 11.69 11.69 0 0 0-3.338 8.227 11.5 11.5 0 0 0 3.403 8.065 11.66 11.66 0 0 0 8.12 3.38M410.509 45.371h28.604v2.254a15.3 15.3 0 0 0-4.538 1.558c-2.615 1.215-7.845 7.104-11.86 16.973-6.799 17.148-13.943 37.404-21.442 60.618l-2.792 8.803c-1.223 3.979-2.269 6.576-2.792 8.143s-1.224 3.979-2.438 6.919a38.6 38.6 0 0 1-2.659 6.409c-1.401 2.597-4.016 7.923-6.107 9.525-3.316 2.773-8.2 5.889-14.298 5.37-11.86 0-20.751-8.803-20.928-19.217 0-7.105 4.538-11.779 11.337-11.779 4.884 0 9.236 2.641 9.236 8.134 0 3.988-4.006 8.143-4.006 10.221 0 5.369 3.138 7.922 9.245 7.922 4.875 0 8.864-3.116 11.851-9.349 4.016-7.104 4.361-14.894 1.046-23.557l-25.103-65.98c-5.761-15.237-10.122-20.246-15.521-20.783V45.3h39.578v2.253c-4.707.52-7.144 3.293-7.144 8.31 0 3.636 1.391 9.182 4.006 16.286l4.707 12.81c5.407 13.855 9.75 25.977 12.037 33.601 5.053-15.758 9.751-29.614 14.298-41.736 3.315-9.006 4.884-15.414 4.884-19.226 0-6.752-3.661-9.868-9.245-9.868zM135.158 129.714c-5.052-.88-9.413-5.37-9.413-14.895V0L96.972 6.233v2.43c4.884-.52 9.75 3.802 9.75 12.984v93.172c0 9.006-4.884 14.2-9.75 14.895q-.687.12-1.383.167a15.4 15.4 0 0 1-7.268-1.276c-3.865-1.673-7.091-4.657-9.821-9.111L65.203 98.366a24.44 24.44 0 0 0-11.884-9.785 24.64 24.64 0 0 0-15.418-.779L52.9 71.35c11.328-12.465 21.797-20.432 31.733-23.724V45.37H51.642v2.254c8.545 3.292 8.021 10.564-1.773 22.008l-21.096 24.41V0L0 6.233v2.43c4.884 0 9.75 4.841 9.75 13.327v92.829c0 10.221-4.706 14.2-9.75 14.895v2.254h38.222v-2.254c-6.276-.88-9.414-5.713-9.414-14.895v-17.14l8.19-9.005 19.838 32.378c4.707 7.799 9.068 10.916 16.044 10.916h66.391v-1.761s-1.897-.132-4.113-.493M214.368 118.763V80.029c-.382-25.326-11.072-36.858-35.554-36.858a34.97 34.97 0 0 0-21.619 7.27c-6.453 4.851-9.591 10.397-9.591 16.806 0 6.233 3.484 10.907 9.236 10.907 6.108 0 10.469-3.46 10.469-8.31 0-3.636-2.447-8.662-2.447-12.122 0-6.241 4.716-11.611 12.906-11.611 10.469 0 17.959 7.8 17.959 25.115v10.388l-8.714 2.077c-4.538.88-8.367 1.761-11.337 2.641s-6.798 2.078-11.337 3.803c-9.068 3.469-13.943 6.761-18.135 12.994a18.1 18.1 0 0 0-3.138 10.22c0 14.367 10.113 20.952 24.243 20.952 11.159 0 23.046-5.89 28.418-16.973.077 3.496.92 6.933 2.473 10.071 5.912 11.884 25.493 4.859 25.493 4.859v-2.253c-8.572 1.329-9.281-8.795-9.325-11.242m-18.615-11.99c0 5.713-2.092 10.388-6.275 13.68-4.007 3.293-8.191 5.027-12.552 5.027-8.545 0-14.129-5.546-14.129-15.767 0-4.841 2.659-9.349 4.884-11.945a21.3 21.3 0 0 1 6.107-4.332c2.961-1.558 4.432-2.359 6.453-3.292l7.978-2.94c4.006-1.558 6.444-2.421 7.49-2.94zM581 45.371h-67.818V0H581l-14.236 22.686zM443.147 120.946a45.33 45.33 0 0 1-12.933-32.263 44.5 44.5 0 0 1 3.224-17.337 44.8 44.8 0 0 1 9.709-14.76c8.554-9.014 19.031-13.53 31.263-13.53 12.046 0 22.533 4.516 31.086 13.53a44.2 44.2 0 0 1 9.845 14.722 44 44 0 0 1 3.256 17.375 44.6 44.6 0 0 1-3.276 17.443 44.9 44.9 0 0 1-9.825 14.82c-8.553 8.803-19.04 13.355-31.086 13.355-12.232 0-22.709-4.508-31.263-13.355m46.979-62.916c-3.448-6.699-7.978-10.625-13.296-11.682-10.787-2.156-20.325 8.856-23.879 26.366a82.6 82.6 0 0 0-1.091 23.847 65.8 65.8 0 0 0 6.577 22.889c3.457 6.708 7.978 10.625 13.296 11.681 10.788 2.157 20.6-9.322 24.181-27.008 2.97-14.78 1.463-32.782-5.832-46.102z"></path><path fill="currentColor" d="M340.032 114.819V45.371h-61.383v2.087c8.199 1.215 12.099 7.36 8.377 17.324-19.182 51.78-17.959 49.456-19.182 53.611-1.223-3.988-4.016-13.785-8.545-26.075-4.53-12.289-7.499-20.44-8.722-24.076-4.707-14.376-3.138-19.746 4.538-20.608V45.38h-39.764v2.254c5.93 1.215 11.16 7.966 15.521 20.088l6.107 15.758c6.71 17.025 14.591 40.494 17.223 48.497h13.216c4.255-12.325 21.327-61.508 23.614-66.508 2.464-5.696 5.256-10.01 8.377-12.994a15.54 15.54 0 0 1 5.378-3.722 15.64 15.64 0 0 1 6.446-1.19s9.582 0 9.582 9.182v58.074c0 9.684-4.707 14.2-9.591 14.895v2.254h38.018v-2.254c-5.026-.695-9.21-5.194-9.21-14.895"></path></svg><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 266 178" color="currentColor" style="height:3rem" class="_flag_1pr3e_83"><path fill="currentColor" d="M266 178H0V0h266l-55.835 89z"></path></svg></a><nav class="_nav_1pr3e_122"><ul class="_list_1pr3e_139"><li class="_listItem_1pr3e_176 _hasChildren_1pr3e_181"><div class="_link_1pr3e_157 _hasChildren_1pr3e_181 _openOnClick_1pr3e_181 _universalMenuItem_s73z6_1" tabindex="0"><span>Platform</span></div><div class="_drawer_1pr3e_181 _drawer_vqtvm_1"><div class="_content_vqtvm_40"><ul class="grid _list_vqtvm_10"><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">Overview</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/platform"><div><div class="_iconAndLabelContainer_s73z6_168"><div>The B2C CRM<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Discover how the Klaviyo CRM, built for your business, can help you create lasting customer relationships.</div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">SOLUTIONS</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/ai"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo AI (K:AI)<span class="_trailingMark_s73z6_126"></span></div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">New</span></div><div class="_description_s73z6_61">AI agents, Image Remix, insights & more</div></div></a></li><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/marketing-automation"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Marketing<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Marketing automation across all channels</div></div></a></li><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/customer-service"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Service<span class="_trailingMark_s73z6_126"></span></div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div><div class="_description_s73z6_61">Happier customers, more sales</div></div></a></li><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/analytics"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Analytics<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">What’s working, what’s next, zero noise</div></div></a></li><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/customer-data-platform"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Data Platform<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">The smarter, simpler CDP to unify and activate your data in real time</div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">CHANNELS</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/omnichannel"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Omnichannel marketing<span class="_trailingMark_s73z6_126"></span></div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div><div class="_description_s73z6_61">AI, data, and channels working as one</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/email-marketing"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 11" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><path fill="currentColor" fill-rule="evenodd" d="M2.1 0C.94 0 0 .923 0 2.063v6.874C0 10.078.94 11 2.1 11h9.795c1.16 0 2.1-.922 2.1-2.061L14 2.064C14 .924 13.06 0 11.9 0zm-.7 2.063c0-.38.314-.688.7-.688h9.8c.387 0 .7.308.7.688v.1l-.004-.006L7 5.39 1.405 2.157l-.005.009zm0 1.687v5.188c0 .38.314.687.7.687h9.795c.386 0 .7-.307.7-.687l.004-5.187L7 6.985z" clip-rule="evenodd"></path></svg><div>Email marketing</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/sms-marketing"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><g fill="currentColor"><path d="M10.5 5.6a.7.7 0 0 1-.7.7H4.2a.7.7 0 1 1 0-1.4h5.6a.7.7 0 0 1 .7.7M7.7 9.1a.7.7 0 1 0 0-1.4H4.2a.7.7 0 1 0 0 1.4z"></path><path fill-rule="evenodd" d="M0 7a7 7 0 0 1 14 0c0 1.075-.284 2.079-.7 2.96v3.34H9.96c-.881.416-1.885.7-2.96.7a7 7 0 0 1-7-7m7-5.6a5.6 5.6 0 0 0 0 11.2c.875 0 1.719-.244 2.488-.627l.148-.073H11.9V9.636l.073-.148c.382-.769.627-1.613.627-2.488A5.6 5.6 0 0 0 7 1.4" clip-rule="evenodd"></path></g></svg><div>SMS marketing</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/sms-marketing/rcs"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" data-name="rcs" viewBox="0 0 32 32" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><path fill="currentColor" fill-rule="evenodd" d="M11.4 9.56c-1.52 0-2.76 1.24-2.76 2.76v7.36c0 1.52 1.24 2.76 2.76 2.76h9.19a2.76 2.76 0 0 0 2.76-2.76v-7.36c0-1.52-1.23-2.76-2.75-2.76zm3.68 4.14c0 .76-.62 1.38-1.38 1.38s-1.38-.62-1.38-1.38.62-1.38 1.38-1.38 1.38.62 1.38 1.38m4.87 1.82a2.77 2.77 0 0 0-3.71 0l-1.62 1.47c-1.03-.84-2.59-.8-3.58.1l-.56.51v2.08c0 .12.02.24.07.35l1.73-1.58c.33-.3.89-.3 1.22 0l1.14 1.02 2.84-2.58a.92.92 0 0 1 1.24 0l2.8 2.54v-2.48l-1.56-1.42Z"></path><path fill="currentColor" fill-rule="evenodd" d="M16 .67C7.53.67.67 7.53.67 16S7.53 31.33 16 31.33c2.35 0 4.55-.62 6.48-1.53h7.31v-7.31c.91-1.93 1.53-4.13 1.53-6.48C31.33 7.53 24.47.67 16 .67M3.74 16C3.74 9.23 9.23 3.74 16 3.74S28.26 9.23 28.26 16c0 1.92-.54 3.76-1.37 5.45l-.16.32v4.96h-4.96l-.32.16c-1.69.84-3.53 1.37-5.45 1.37-6.77 0-12.26-5.49-12.26-12.26"></path></svg><div>RCS for Business</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/mobile-push"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><g fill="currentColor"><path fill-rule="evenodd" d="M10.684 0a3.316 3.316 0 1 0 0 6.632 3.316 3.316 0 0 0 0-6.632M8.842 3.316a1.842 1.842 0 1 1 3.684 0 1.842 1.842 0 0 1-3.684 0" clip-rule="evenodd"></path><path d="M2.947 2.21h3.076c.125-.53.339-1.027.625-1.473h-3.7A2.947 2.947 0 0 0 0 3.684v7.369A2.947 2.947 0 0 0 2.947 14h7.369a2.947 2.947 0 0 0 2.947-2.947v-3.7c-.446.285-.943.499-1.474.624v3.076c0 .813-.66 1.473-1.473 1.473H2.947c-.814 0-1.473-.66-1.473-1.473V3.684c0-.814.66-1.473 1.473-1.473"></path></g></svg><div>Mobile app marketing</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/whatsapp"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" data-name="whatsapp" viewBox="0 0 32 32" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><path fill="currentColor" fill-rule="evenodd" d="M26.86 5.13C23.98 2.26 20.15.68 16.06.67 7.65.67.8 7.48.8 15.86c0 2.68.7 5.29 2.04 7.6L.67 31.33l8.09-2.11a15.3 15.3 0 0 0 7.3 1.85c8.41 0 15.26-6.82 15.27-15.19 0-4.06-1.58-7.88-4.47-10.75M16.06 28.5c-2.28 0-4.51-.61-6.46-1.76l-.46-.27-4.8 1.25 1.28-4.66-.3-.48a12.55 12.55 0 0 1-1.94-6.72c0-6.96 5.69-12.63 12.69-12.63 3.39 0 6.57 1.32 8.97 3.7a12.5 12.5 0 0 1 3.71 8.93c0 6.96-5.69 12.63-12.69 12.63Zm6.96-9.46c-.38-.19-2.26-1.11-2.61-1.23-.35-.13-.6-.19-.86.19-.25.38-.99 1.24-1.21 1.49s-.45.28-.83.09-1.61-.59-3.07-1.88c-1.13-1.01-1.9-2.25-2.12-2.63s-.02-.59.17-.77c.17-.17.38-.44.57-.67.19-.22.25-.38.38-.63s.06-.47-.03-.67c-.1-.19-.86-2.06-1.18-2.82-.31-.74-.62-.64-.86-.65-.22-.01-.48-.01-.73-.01s-.67.09-1.02.47-1.34 1.3-1.34 3.17 1.37 3.67 1.56 3.93c.19.25 2.69 4.09 6.52 5.73.91.39 1.62.62 2.17.8.91.29 1.75.25 2.4.15.73-.11 2.26-.92 2.57-1.81.32-.89.32-1.65.22-1.81s-.35-.25-.73-.44Z"></path></svg><div>WhatsApp marketing</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/social"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" data-name="navigation social marketing" viewBox="0 0 32 32" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><path fill="currentColor" fill-rule="evenodd" d="M.7 10.96c0-4.65 3.77-8.41 8.42-8.41 2.76 0 5 1.19 6.46 2.76l.43.43.43-.43c1.46-1.58 3.7-2.76 6.46-2.76 4.65 0 8.41 3.77 8.41 8.42 0 1.66-.21 3.04-.81 4.36-.59 1.3-1.51 2.41-2.7 3.6l-9.63 9.63c-1.2 1.2-3.13 1.2-4.33 0l-9.63-9.63c-1.2-1.2-2.11-2.31-2.7-3.6-.6-1.32-.81-2.7-.81-4.36Zm8.42-5.35a5.36 5.36 0 0 0-5.36 5.36c0 1.4.17 2.31.53 3.1.37.81.98 1.61 2.08 2.71L16 26.41l9.63-9.63c1.1-1.1 1.71-1.9 2.08-2.71.36-.79.53-1.7.53-3.1 0-2.96-2.4-5.36-5.36-5.36-1.85 0-3.3.79-4.23 1.8l-.02.02L16 10.06l-2.63-2.63-.02-.02c-.93-1.01-2.37-1.8-4.23-1.8"></path></svg><div>Social marketing</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">TOP PRODUCTS + FEATURES</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="/solutions/ai/marketing-agent"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing Agent</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">New</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/solutions/ai/customer-agent"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Customer Agent</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/customer-experience-hub"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Customer Hub</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/helpdesk"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Helpdesk</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/marketing-analytics"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing Analytics</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/advanced-cdp"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Advanced Klaviyo Data Platform</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/features/segmentation"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Segmentation</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/review-management"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Reviews</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/features/templates"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Templates</div></div></div></a></li></ul></li></ul><ul class="grid _list_vqtvm_10 _lower_vqtvm_62"><li class="_column_vqtvm_52 _lower_14087_124 _list_14087_13 _six_column_14087_100"><div class="_eyebrow_14087_1">SPOTLIGHT</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="/solutions/omnichannel"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/baeb51700705ac37ed422f09fff04a0bf9900422-668x400.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"><div>The Klaviyo omniverse</div></div><div class="_description_s73z6_61">One platform. Every channel. Real results.</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/solutions/ai/marketing-agent"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ae936bd6b977ede47a47817389f3f4c88af83bf3-502x300.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing Agent</div></div><div class="_description_s73z6_61">AI strategist and assistant for marketers.</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/solutions/ai/customer-agent"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/9de21910b9048ec6cb4ef0826d2a072d0cb02af0-502x300.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"><div>Customer Agent</div></div><div class="_description_s73z6_61">AI support and sales rep for shoppers.</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/whats-new"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ce5b07ba71d2f4ad7dda0ced439c6b20c954e263-669x400.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"><div>New features</div></div><div class="_description_s73z6_61">Get more personal on more channels.</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/events/kbos-2025-recap"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/5f35a8bf57394c93ee3d334660e938e206268dc0-669x400.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"><div>K:BOS 2025</div></div><div class="_description_s73z6_61">Watch the replay of our livestream sessions.</div></div></a></li></ul></li></ul></div></div></li><li class="_listItem_1pr3e_176 _hasChildren_1pr3e_181"><div class="_link_1pr3e_157 _hasChildren_1pr3e_181 _openOnClick_1pr3e_181 _universalMenuItem_s73z6_1" tabindex="0"><span>Apps & Integrations</span></div><div class="_drawer_1pr3e_181 _drawer_vqtvm_1"><div class="_content_vqtvm_40"><ul class="grid _list_vqtvm_10"><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">KLAVIYO APP MARKETPLACE</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="https://marketplace.klaviyo.com/en-us/"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Explore apps<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Integrate with 350+ apps to seamlessly connect all of your data to Klaviyo</div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _visual_list_14087_109"><ul class="_childList_14087_22"><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations/shopify"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ebac5b0bbbfad81c1d7784c51c525832e7700a38-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations/commerce-cloud"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/cbe11091b91c8f140bf47b6656218b19b0bd9fac-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations//wix"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/7c3c7232e4d426b133fb7a1458ee5a6faa371eaf-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations/woocommerce"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/810a806fe9ab3d05f9e2bfc701aba0774b1866b5-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations/magento"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ea92879e13620ad4c849c1d0322334fb409ed111-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations/bigcommerce"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/43f28b304c058503374e25edfb214b7eed123afc-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/platform-integrations"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Integration benefits<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Our apps make it simple to integrate your entire tech stack</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://marketplace.klaviyo.com/en-us/browse/?categoryId=15"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Advertising</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://marketplace.klaviyo.com/en-us/browse/?categoryId=9"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Shipping</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://marketplace.klaviyo.com/en-us/browse/?categoryId=18"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Point of sale</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://marketplace.klaviyo.com/en-us/browse/?categoryId=8"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Loyalty</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://marketplace.klaviyo.com/en-us/browse/?categoryId=25"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Subscription</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="http://marketplace.klaviyo.com/en-us"><div><div class="_iconAndLabelContainer_s73z6_168"><div>View top apps and integrations</div></div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="https://developers.klaviyo.com/en"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Developers<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Create apps and integrations to grow your business using Klaviyo’s APIs</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://developers.klaviyo.com/en/docs/get_started"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Getting started</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://developers.klaviyo.com/en/docs"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Developer guides</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://developers.klaviyo.com/en/reference/api_overview"><div><div class="_iconAndLabelContainer_s73z6_168"><div>API docs</div></div></div></a></li></ul></li></ul></div></div></li><li class="_listItem_1pr3e_176 _hasChildren_1pr3e_181"><div class="_link_1pr3e_157 _hasChildren_1pr3e_181 _openOnClick_1pr3e_181 _universalMenuItem_s73z6_1" tabindex="0"><span>Resources</span></div><div class="_drawer_1pr3e_181 _drawer_vqtvm_1"><div class="_content_vqtvm_40"><ul class="grid _list_vqtvm_10"><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/customer-resources"><div><div class="_iconAndLabelContainer_s73z6_168"><div>The Klaviyo Power Up<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Your all-in-one success center with answers, resources, and community to keep you growing</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://help.klaviyo.com/hc/en-us"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Help center</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://academy.klaviyo.com/en-us"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Academy</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://community.klaviyo.com"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Community</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://developers.klaviyo.com/en"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Developers</div></div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">Support</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="/success"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Support overview</div></div><div class="_description_s73z6_61">Onboarding and support resources to get the most out of Klaviyo</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/success/premium-support"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Professional services</div></div><div class="_description_s73z6_61">Enterprise and professional support packages and services</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://connect.klaviyo.com"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Partner directory</div></div><div class="_description_s73z6_61">Explore partners to work with</div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">Discover more</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="/customers"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Case studies</div></div><div class="_description_s73z6_61">Learn from customers who have grown with Klaviyo</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/blog"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Blog</div></div><div class="_description_s73z6_61">Industry news and growth strategies</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/marketing-resources"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Guides and reports</div></div><div class="_description_s73z6_61">Best practices, strategic guidance, and benchmark reports</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/events"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Events</div></div><div class="_description_s73z6_61">Join us at our flagship conference K:BOS and other events throughout the year</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/trust"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Trust center</div></div><div class="_description_s73z6_61">Trust and security information</div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">Free Tools</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/features/email-templates" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Email marketing templates</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/marketing-resources/marketing-campaign-calendar" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>2026 Marketing calendar</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/tools/email-subject-line-generator" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Email subject line generator</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/tools/roi-calculator" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Email & SMS ROI calculator</div></div></div></a></li></ul></li></ul><ul class="grid _list_vqtvm_10 _lower_vqtvm_62"><li class="_column_vqtvm_52 _lower_14087_124 _list_14087_13 _inline_list_14087_50"><div class="_eyebrow_14087_1">2025 BFCM RECAP</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/bfcm/holiday-shopping-trends" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Check out the data that defined Black Friday & Cyber Monday</div></div></div></a></li></ul></li></ul></div></div></li><li class="_listItem_1pr3e_176"><a class="_link_1pr3e_157 _openOnClick_1pr3e_181 _universalMenuItem_s73z6_1" href="/platform-demo"><span>How it works</span></a></li><li class="_listItem_1pr3e_176"><a class="_link_1pr3e_157 _openOnClick_1pr3e_181 _universalMenuItem_s73z6_1" href="/pricing"><span>Pricing</span></a></li></ul></nav><ul class="_list_1pr3e_139 _ctaList_1pr3e_143"><li class="_ctaListItem_1pr3e_149"><a class="_cta_1pr3e_143 _primary_1pr3e_259 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/sign-up" _type="ctaMenuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Sign up</div></div></div></a></li><li class="_ctaListItem_1pr3e_149"><a class="_cta_1pr3e_143 _secondary_1pr3e_260 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/demo-request" _type="ctaMenuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Get a demo</div></div></div></a></li></ul><div class="_mobileMenuToggle_1pr3e_126"><button aria-label="Toggle mobile menu" class="_toggleButton_1pr3e_131"><svg width="24" height="18" viewBox="0 0 24 18" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="24" height="2" rx="1" fill="currentColor"></rect><rect y="8" width="24" height="2" rx="1" fill="currentColor"></rect><rect y="16" width="24" height="2" rx="1" fill="currentColor"></rect></svg></button></div></div><dialog class="_mobileMenuDialog_scbs5_1"><div class="_closeContainer_scbs5_62"><button class="_close_scbs5_62" autofocus=""></button></div><nav class="_nav_scbs5_51"><ul class="_list_scbs5_58"><li class="_listItem_scbs5_58 _hasChildren_scbs5_121"><details><summary><div class="_link_scbs5_114 _hasChildren_scbs5_121 _universalMenuItem_s73z6_1 _featured_s73z6_33"><span>Platform</span></div></summary><div class="_drawer_vqtvm_1"><div class="_content_vqtvm_40"><ul class="grid _list_vqtvm_10"><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">Overview</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/platform"><div><div class="_iconAndLabelContainer_s73z6_168"><div>The B2C CRM<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Discover how the Klaviyo CRM, built for your business, can help you create lasting customer relationships.</div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">SOLUTIONS</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/ai"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo AI (K:AI)<span class="_trailingMark_s73z6_126"></span></div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">New</span></div><div class="_description_s73z6_61">AI agents, Image Remix, insights & more</div></div></a></li><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/marketing-automation"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Marketing<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Marketing automation across all channels</div></div></a></li><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/customer-service"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Service<span class="_trailingMark_s73z6_126"></span></div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div><div class="_description_s73z6_61">Happier customers, more sales</div></div></a></li><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/analytics"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Analytics<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">What’s working, what’s next, zero noise</div></div></a></li><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/customer-data-platform"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Data Platform<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">The smarter, simpler CDP to unify and activate your data in real time</div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">CHANNELS</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/solutions/omnichannel"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Omnichannel marketing<span class="_trailingMark_s73z6_126"></span></div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div><div class="_description_s73z6_61">AI, data, and channels working as one</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/email-marketing"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 11" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><path fill="currentColor" fill-rule="evenodd" d="M2.1 0C.94 0 0 .923 0 2.063v6.874C0 10.078.94 11 2.1 11h9.795c1.16 0 2.1-.922 2.1-2.061L14 2.064C14 .924 13.06 0 11.9 0zm-.7 2.063c0-.38.314-.688.7-.688h9.8c.387 0 .7.308.7.688v.1l-.004-.006L7 5.39 1.405 2.157l-.005.009zm0 1.687v5.188c0 .38.314.687.7.687h9.795c.386 0 .7-.307.7-.687l.004-5.187L7 6.985z" clip-rule="evenodd"></path></svg><div>Email marketing</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/sms-marketing"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><g fill="currentColor"><path d="M10.5 5.6a.7.7 0 0 1-.7.7H4.2a.7.7 0 1 1 0-1.4h5.6a.7.7 0 0 1 .7.7M7.7 9.1a.7.7 0 1 0 0-1.4H4.2a.7.7 0 1 0 0 1.4z"></path><path fill-rule="evenodd" d="M0 7a7 7 0 0 1 14 0c0 1.075-.284 2.079-.7 2.96v3.34H9.96c-.881.416-1.885.7-2.96.7a7 7 0 0 1-7-7m7-5.6a5.6 5.6 0 0 0 0 11.2c.875 0 1.719-.244 2.488-.627l.148-.073H11.9V9.636l.073-.148c.382-.769.627-1.613.627-2.488A5.6 5.6 0 0 0 7 1.4" clip-rule="evenodd"></path></g></svg><div>SMS marketing</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/sms-marketing/rcs"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" data-name="rcs" viewBox="0 0 32 32" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><path fill="currentColor" fill-rule="evenodd" d="M11.4 9.56c-1.52 0-2.76 1.24-2.76 2.76v7.36c0 1.52 1.24 2.76 2.76 2.76h9.19a2.76 2.76 0 0 0 2.76-2.76v-7.36c0-1.52-1.23-2.76-2.75-2.76zm3.68 4.14c0 .76-.62 1.38-1.38 1.38s-1.38-.62-1.38-1.38.62-1.38 1.38-1.38 1.38.62 1.38 1.38m4.87 1.82a2.77 2.77 0 0 0-3.71 0l-1.62 1.47c-1.03-.84-2.59-.8-3.58.1l-.56.51v2.08c0 .12.02.24.07.35l1.73-1.58c.33-.3.89-.3 1.22 0l1.14 1.02 2.84-2.58a.92.92 0 0 1 1.24 0l2.8 2.54v-2.48l-1.56-1.42Z"></path><path fill="currentColor" fill-rule="evenodd" d="M16 .67C7.53.67.67 7.53.67 16S7.53 31.33 16 31.33c2.35 0 4.55-.62 6.48-1.53h7.31v-7.31c.91-1.93 1.53-4.13 1.53-6.48C31.33 7.53 24.47.67 16 .67M3.74 16C3.74 9.23 9.23 3.74 16 3.74S28.26 9.23 28.26 16c0 1.92-.54 3.76-1.37 5.45l-.16.32v4.96h-4.96l-.32.16c-1.69.84-3.53 1.37-5.45 1.37-6.77 0-12.26-5.49-12.26-12.26"></path></svg><div>RCS for Business</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/mobile-push"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><g fill="currentColor"><path fill-rule="evenodd" d="M10.684 0a3.316 3.316 0 1 0 0 6.632 3.316 3.316 0 0 0 0-6.632M8.842 3.316a1.842 1.842 0 1 1 3.684 0 1.842 1.842 0 0 1-3.684 0" clip-rule="evenodd"></path><path d="M2.947 2.21h3.076c.125-.53.339-1.027.625-1.473h-3.7A2.947 2.947 0 0 0 0 3.684v7.369A2.947 2.947 0 0 0 2.947 14h7.369a2.947 2.947 0 0 0 2.947-2.947v-3.7c-.446.285-.943.499-1.474.624v3.076c0 .813-.66 1.473-1.473 1.473H2.947c-.814 0-1.473-.66-1.473-1.473V3.684c0-.814.66-1.473 1.473-1.473"></path></g></svg><div>Mobile app marketing</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/whatsapp"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" data-name="whatsapp" viewBox="0 0 32 32" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><path fill="currentColor" fill-rule="evenodd" d="M26.86 5.13C23.98 2.26 20.15.68 16.06.67 7.65.67.8 7.48.8 15.86c0 2.68.7 5.29 2.04 7.6L.67 31.33l8.09-2.11a15.3 15.3 0 0 0 7.3 1.85c8.41 0 15.26-6.82 15.27-15.19 0-4.06-1.58-7.88-4.47-10.75M16.06 28.5c-2.28 0-4.51-.61-6.46-1.76l-.46-.27-4.8 1.25 1.28-4.66-.3-.48a12.55 12.55 0 0 1-1.94-6.72c0-6.96 5.69-12.63 12.69-12.63 3.39 0 6.57 1.32 8.97 3.7a12.5 12.5 0 0 1 3.71 8.93c0 6.96-5.69 12.63-12.69 12.63Zm6.96-9.46c-.38-.19-2.26-1.11-2.61-1.23-.35-.13-.6-.19-.86.19-.25.38-.99 1.24-1.21 1.49s-.45.28-.83.09-1.61-.59-3.07-1.88c-1.13-1.01-1.9-2.25-2.12-2.63s-.02-.59.17-.77c.17-.17.38-.44.57-.67.19-.22.25-.38.38-.63s.06-.47-.03-.67c-.1-.19-.86-2.06-1.18-2.82-.31-.74-.62-.64-.86-.65-.22-.01-.48-.01-.73-.01s-.67.09-1.02.47-1.34 1.3-1.34 3.17 1.37 3.67 1.56 3.93c.19.25 2.69 4.09 6.52 5.73.91.39 1.62.62 2.17.8.91.29 1.75.25 2.4.15.73-.11 2.26-.92 2.57-1.81.32-.89.32-1.65.22-1.81s-.35-.25-.73-.44Z"></path></svg><div>WhatsApp marketing</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/social"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" data-name="navigation social marketing" viewBox="0 0 32 32" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><path fill="currentColor" fill-rule="evenodd" d="M.7 10.96c0-4.65 3.77-8.41 8.42-8.41 2.76 0 5 1.19 6.46 2.76l.43.43.43-.43c1.46-1.58 3.7-2.76 6.46-2.76 4.65 0 8.41 3.77 8.41 8.42 0 1.66-.21 3.04-.81 4.36-.59 1.3-1.51 2.41-2.7 3.6l-9.63 9.63c-1.2 1.2-3.13 1.2-4.33 0l-9.63-9.63c-1.2-1.2-2.11-2.31-2.7-3.6-.6-1.32-.81-2.7-.81-4.36Zm8.42-5.35a5.36 5.36 0 0 0-5.36 5.36c0 1.4.17 2.31.53 3.1.37.81.98 1.61 2.08 2.71L16 26.41l9.63-9.63c1.1-1.1 1.71-1.9 2.08-2.71.36-.79.53-1.7.53-3.1 0-2.96-2.4-5.36-5.36-5.36-1.85 0-3.3.79-4.23 1.8l-.02.02L16 10.06l-2.63-2.63-.02-.02c-.93-1.01-2.37-1.8-4.23-1.8"></path></svg><div>Social marketing</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">TOP PRODUCTS + FEATURES</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="/solutions/ai/marketing-agent"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing Agent</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">New</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/solutions/ai/customer-agent"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Customer Agent</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/customer-experience-hub"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Customer Hub</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/helpdesk"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Helpdesk</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/marketing-analytics"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing Analytics</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/advanced-cdp"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Advanced Klaviyo Data Platform</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/features/segmentation"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Segmentation</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/products/review-management"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Reviews</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/features/templates"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Templates</div></div></div></a></li></ul></li></ul><ul class="grid _list_vqtvm_10 _lower_vqtvm_62"><li class="_column_vqtvm_52 _lower_14087_124 _list_14087_13 _six_column_14087_100"><div class="_eyebrow_14087_1">SPOTLIGHT</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="/solutions/omnichannel"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/baeb51700705ac37ed422f09fff04a0bf9900422-668x400.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"><div>The Klaviyo omniverse</div></div><div class="_description_s73z6_61">One platform. Every channel. Real results.</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/solutions/ai/marketing-agent"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ae936bd6b977ede47a47817389f3f4c88af83bf3-502x300.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing Agent</div></div><div class="_description_s73z6_61">AI strategist and assistant for marketers.</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/solutions/ai/customer-agent"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/9de21910b9048ec6cb4ef0826d2a072d0cb02af0-502x300.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"><div>Customer Agent</div></div><div class="_description_s73z6_61">AI support and sales rep for shoppers.</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/whats-new"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ce5b07ba71d2f4ad7dda0ced439c6b20c954e263-669x400.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"><div>New features</div></div><div class="_description_s73z6_61">Get more personal on more channels.</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/events/kbos-2025-recap"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/5f35a8bf57394c93ee3d334660e938e206268dc0-669x400.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"><div>K:BOS 2025</div></div><div class="_description_s73z6_61">Watch the replay of our livestream sessions.</div></div></a></li></ul></li></ul></div></div></details></li><li class="_listItem_scbs5_58 _hasChildren_scbs5_121"><details><summary><div class="_link_scbs5_114 _hasChildren_scbs5_121 _universalMenuItem_s73z6_1 _featured_s73z6_33"><span>Apps & Integrations</span></div></summary><div class="_drawer_vqtvm_1"><div class="_content_vqtvm_40"><ul class="grid _list_vqtvm_10"><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">KLAVIYO APP MARKETPLACE</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="https://marketplace.klaviyo.com/en-us/"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Explore apps<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Integrate with 350+ apps to seamlessly connect all of your data to Klaviyo</div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _visual_list_14087_109"><ul class="_childList_14087_22"><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations/shopify"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ebac5b0bbbfad81c1d7784c51c525832e7700a38-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations/commerce-cloud"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/cbe11091b91c8f140bf47b6656218b19b0bd9fac-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations//wix"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/7c3c7232e4d426b133fb7a1458ee5a6faa371eaf-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations/woocommerce"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/810a806fe9ab3d05f9e2bfc701aba0774b1866b5-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations/magento"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/ea92879e13620ad4c849c1d0322334fb409ed111-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li><li><a class="_visualList_s73z6_83 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/ecommerce-integrations/bigcommerce"><div><div class="_imageContainer_s73z6_74"><img class="_image_s73z6_74" loading="lazy" src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/43f28b304c058503374e25edfb214b7eed123afc-262x120.webp"/></div><div class="_iconAndLabelContainer_s73z6_168"></div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/platform-integrations"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Integration benefits<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Our apps make it simple to integrate your entire tech stack</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://marketplace.klaviyo.com/en-us/browse/?categoryId=15"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Advertising</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://marketplace.klaviyo.com/en-us/browse/?categoryId=9"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Shipping</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://marketplace.klaviyo.com/en-us/browse/?categoryId=18"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Point of sale</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://marketplace.klaviyo.com/en-us/browse/?categoryId=8"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Loyalty</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://marketplace.klaviyo.com/en-us/browse/?categoryId=25"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Subscription</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="http://marketplace.klaviyo.com/en-us"><div><div class="_iconAndLabelContainer_s73z6_168"><div>View top apps and integrations</div></div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="https://developers.klaviyo.com/en"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Developers<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Create apps and integrations to grow your business using Klaviyo’s APIs</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://developers.klaviyo.com/en/docs/get_started"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Getting started</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://developers.klaviyo.com/en/docs"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Developer guides</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://developers.klaviyo.com/en/reference/api_overview"><div><div class="_iconAndLabelContainer_s73z6_168"><div>API docs</div></div></div></a></li></ul></li></ul></div></div></details></li><li class="_listItem_scbs5_58 _hasChildren_scbs5_121"><details><summary><div class="_link_scbs5_114 _hasChildren_scbs5_121 _universalMenuItem_s73z6_1 _featured_s73z6_33"><span>Resources</span></div></summary><div class="_drawer_vqtvm_1"><div class="_content_vqtvm_40"><ul class="grid _list_vqtvm_10"><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33" href="/customer-resources"><div><div class="_iconAndLabelContainer_s73z6_168"><div>The Klaviyo Power Up<span class="_trailingMark_s73z6_126"></span></div></div><div class="_description_s73z6_61">Your all-in-one success center with answers, resources, and community to keep you growing</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://help.klaviyo.com/hc/en-us"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Help center</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://academy.klaviyo.com/en-us"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Academy</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://community.klaviyo.com"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Community</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://developers.klaviyo.com/en"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Developers</div></div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">Support</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="/success"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Support overview</div></div><div class="_description_s73z6_61">Onboarding and support resources to get the most out of Klaviyo</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/success/premium-support"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Professional services</div></div><div class="_description_s73z6_61">Enterprise and professional support packages and services</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://connect.klaviyo.com"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Partner directory</div></div><div class="_description_s73z6_61">Explore partners to work with</div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">Discover more</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="/customers"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Case studies</div></div><div class="_description_s73z6_61">Learn from customers who have grown with Klaviyo</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/blog"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Blog</div></div><div class="_description_s73z6_61">Industry news and growth strategies</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/marketing-resources"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Guides and reports</div></div><div class="_description_s73z6_61">Best practices, strategic guidance, and benchmark reports</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="/events"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Events</div></div><div class="_description_s73z6_61">Join us at our flagship conference K:BOS and other events throughout the year</div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/trust"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Trust center</div></div><div class="_description_s73z6_61">Trust and security information</div></div></a></li></ul></li><li class="_column_vqtvm_52 _list_14087_13 _link_list_14087_60 _standard_14087_42"><div class="_eyebrow_14087_1">Free Tools</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/features/email-templates" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Email marketing templates</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/marketing-resources/marketing-campaign-calendar" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>2026 Marketing calendar</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/tools/email-subject-line-generator" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Email subject line generator</div></div></div></a></li><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/tools/roi-calculator" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Email & SMS ROI calculator</div></div></div></a></li></ul></li></ul><ul class="grid _list_vqtvm_10 _lower_vqtvm_62"><li class="_column_vqtvm_52 _lower_14087_124 _list_14087_13 _inline_list_14087_50"><div class="_eyebrow_14087_1">2025 BFCM RECAP</div><ul class="_childList_14087_22"><li><a class="_universalMenuItem_s73z6_1" href="https://www.klaviyo.com/bfcm/holiday-shopping-trends" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Check out the data that defined Black Friday & Cyber Monday</div></div></div></a></li></ul></li></ul></div></div></details></li><li class="_listItem_scbs5_58"><a class="_link_scbs5_114 _universalMenuItem_s73z6_1 _featured_s73z6_33" href="/platform-demo"><span>How it works</span></a></li><li class="_listItem_scbs5_58"><a class="_link_scbs5_114 _universalMenuItem_s73z6_1 _featured_s73z6_33" href="/pricing"><span>Pricing</span></a></li></ul><ul class="_list_scbs5_58 _utilityList_scbs5_100"><li><a class="_utilityLink_scbs5_106 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com" _type="basicMenuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Home</div></div></div></a></li><li><a class="_utilityLink_scbs5_106 _universalMenuItem_s73z6_1" href="https://help.klaviyo.com/hc/en-us" _type="basicMenuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Help center</div></div></div></a></li><li><a class="_utilityLink_scbs5_106 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/enterprise" _type="basicMenuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Enterprise</div></div></div></a></li><li><a class="_utilityLink_scbs5_106 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/partners" _type="basicMenuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Partners</div></div></div></a></li><li><a class="_utilityLink_scbs5_106 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/careers" _type="basicMenuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Careers</div></div></div></a></li><li><a class="_utilityLink_scbs5_106 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/search-all"><div><div class="_iconAndLabelContainer_s73z6_168"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" color="currentColor" style="height:1.4rem" class="_icon_s73z6_56"><path fill="currentColor" fill-rule="evenodd" d="M7.434 2.084a4.907 4.907 0 1 0 0 9.813 4.907 4.907 0 0 0 0-9.813M1.027 6.991a6.407 6.407 0 1 1 12.813 0 6.407 6.407 0 0 1-12.813 0" clip-rule="evenodd"></path><path fill="currentColor" fill-rule="evenodd" d="M10.944 10.5a.75.75 0 0 1 1.06 0l3.637 3.637a.75.75 0 0 1-1.06 1.061l-3.637-3.636a.75.75 0 0 1 0-1.061" clip-rule="evenodd"></path></svg><div>Search</div></div></div></a></li></ul><ul class="_list_scbs5_58 _ctaList_scbs5_88"><div class="_languageSelectorContainer_scbs5_307"><div class="_languageSelector_18hva_25 _cotton_18hva_61 _drawer_18hva_18"><button class="_currentLanguage_18hva_65 _universalMenuItem_s73z6_1"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" color="currentColor" style="height:1.6rem"><path fill="currentColor" fill-rule="evenodd" d="M1.655 7.375h1.97c.08-1.772.498-3.388 1.155-4.62q.105-.195.22-.381a6.38 6.38 0 0 0-3.345 5.001m6.281-7a7.625 7.625 0 0 0 .038 15.25H8A7.625 7.625 0 1 0 7.936.375m-.561 1.38c-.514.224-1.038.739-1.492 1.59-.549 1.027-.927 2.435-1.006 4.03h2.498zm0 6.87H4.877c.08 1.595.457 3.003 1.006 4.03.454.851.978 1.366 1.492 1.59zM5 13.626a7 7 0 0 1-.22-.382c-.657-1.23-1.074-2.847-1.154-4.619h-1.97A6.38 6.38 0 0 0 5 13.626m5.923.04a6.38 6.38 0 0 0 3.422-5.041h-2.023c-.08 1.772-.497 3.388-1.154 4.62a7 7 0 0 1-.245.422m.148-5.041H8.625v5.596c.498-.235 1.002-.744 1.44-1.566.549-1.027.927-2.435 1.006-4.03m0-1.25H8.625V1.779c.498.235 1.002.744 1.44 1.566.549 1.027.927 2.435 1.006 4.03m1.251 0c-.08-1.772-.497-3.388-1.154-4.62a7 7 0 0 0-.245-.422 6.38 6.38 0 0 1 3.422 5.042z" clip-rule="evenodd"></path></svg><span class="_currentLanguageName_18hva_81 _drawer_18hva_18">United States<!-- --> - <span class="_languageCountry_18hva_117 _cotton_18hva_61">EN</span></span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9 5" color="currentColor" style="height:0.3rem" class="_chevron_18hva_52"><path fill="currentColor" d="M.88 0 4.5 3.101 8.12 0 9 .914 4.5 5 0 .914z"></path></svg></button><nav class="_languageMenu_18hva_1 _drawer_18hva_18"><ul class="_languageList_18hva_91"><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/" aria-current="true" hrefLang="en-us" lang="en-us"><span>United States<!-- --> - <span class="_languageCountry_18hva_117">EN</span></span><svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 16 16" color="currentColor" style="height:1.4rem" aria-label="(current language)"><path fill="currentColor" d="M14.47 3.53c.26.26.26.68 0 .94l-8.51 8.51-4.47-5.21A.666.666 0 1 1 2.5 6.9l3.53 4.12 7.49-7.49c.26-.26.68-.26.94 0z"></path><path fill="currentColor" d="M5.93 13.72 1.11 8.1a1.2 1.2 0 0 1-.28-.85c.02-.31.17-.59.4-.79.49-.42 1.23-.36 1.64.12l3.18 3.71 7.11-7.11c.4-.4 1.02-.45 1.47-.15h.03l.16.15c.22.22.34.51.34.82s-.12.6-.34.82z"></path></svg></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/de/" hrefLang="de" lang="de"><span>Deutschland<!-- --> - <span class="_languageCountry_18hva_117">DE</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/au/" hrefLang="en-au" lang="en-au"><span>Australia<!-- --> - <span class="_languageCountry_18hva_117">EN</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/uk/" hrefLang="en-gb" lang="en-gb"><span>United Kingdom<!-- --> - <span class="_languageCountry_18hva_117">EN</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/sg/" hrefLang="en-sg" lang="en-sg"><span>Singapore<!-- --> - <span class="_languageCountry_18hva_117">EN</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/es/" hrefLang="es-es" lang="es-es"><span>España<!-- --> - <span class="_languageCountry_18hva_117">ES</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/fr/" hrefLang="fr-fr" lang="fr-fr"><span>France<!-- --> - <span class="_languageCountry_18hva_117">FR</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/it/" hrefLang="it-it" lang="it-it"><span>Italia<!-- --> - <span class="_languageCountry_18hva_117">IT</span></span></a></li></ul></nav></div></div><li><a class="_cta_1pr3e_143 _primary_1pr3e_259 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/sign-up" _type="ctaMenuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Sign up</div></div></div></a></li><li><a class="_cta_1pr3e_143 _secondary_1pr3e_260 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/demo-request" _type="ctaMenuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Get a demo</div></div></div></a></li><li><a class="_accountLogIn_1d674_1 _universalMenuItem_s73z6_1" href="https://www.klaviyo.com/login"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Log in</div></div></div></a></li></ul></nav></dialog></div><div class="_alertBar_8is0a_1" style="--color-alert-bar-background:var(--color-violet);--color-alert-bar-text:var(--color-white)"><div class="_grid_8is0a_20 grid"><a class="_content_8is0a_38" href="https://www.klaviyo.com/whats-new" target="_blank"><div class="_message_8is0a_52" data-testid="alert-bar-message"><span>Explore 50+ new features designed to help you grow big in 2026</span></div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9 5" color="currentColor" style="height:0.5rem" aria-hidden="true" class="_chevron_8is0a_57"><path fill="currentColor" d="M.88 0 4.5 3.101 8.12 0 9 .914 4.5 5 0 .914z"></path></svg></a><button aria-label="Dismiss message" class="_dismiss_8is0a_67"><svg xmlns="http://www.w3.org/2000/svg" data-name="uuid-a1a74c47-e9aa-4210-9408-c57dc5dc83ab" viewBox="0 0 16 16" color="currentColor" style="height:1rem"><path fill="currentColor" d="M12.89 14.09c-.32 0-.62-.12-.85-.35L7.99 9.69l-4.06 4.06c-.45.45-1.25.45-1.7 0-.22-.22-.35-.53-.35-.85s.12-.62.35-.85L6.29 8 2.25 3.94a1.201 1.201 0 1 1 1.7-1.7L8.01 6.3l4.05-4.06c.45-.45 1.25-.45 1.7 0 .23.22.35.53.35.85s-.12.62-.35.85L9.7 8l4.06 4.05c.22.22.35.53.35.85s-.12.62-.35.85-.52.35-.85.35Z"></path></svg></button></div></div></header><!--astro:end--></astro-island> <main id="site-content"> <astro-island uid="12MfjU" prefix="r21" component-url="/blog/_astro/optimizely.ibZbQSX0.js" component-export="default" renderer-url="/blog/_astro/client.IaDn9qiQ.js" props="{}" ssr client="load" before-hydration-url="/blog/_astro/astro_scripts/before-hydration.js.BWsVurST.js" opts="{"name":"OptimizelyInitializer","value":true}"></astro-island> <div class="breadcrumbs" data-astro-cid-nvwpp57f><div class="_breadcrumbsComponent_1ilbl_1" slot="breadcrumbs"><nav class="grid _container_1ilbl_14"><div class="_breadcrumbs_1ilbl_1 _light_1ilbl_10"><a class="_breadcrumb_1ilbl_1" href="/">Home</a><span class="_spacer_1ilbl_77">/</span><a class="_breadcrumb_1ilbl_1" href="/blog">Blog</a><span class="_spacer_1ilbl_77">/</span><div class="_lastBreadcrumb_1ilbl_35">Solution Recipe 4: Extending Klaviyo’s Product Block Functionality</div></div></nav></div></div><div class="grid container two-column" data-astro-cid-nvwpp57f> <aside class="sidebar" data-astro-cid-nvwpp57f> <script>(()=>{var a=(s,i,o)=>{let r=async()=>{await(await s())()},t=typeof i.value=="object"?i.value:void 0,c={rootMargin:t==null?void 0:t.rootMargin},n=new IntersectionObserver(e=>{for(let l of e)if(l.isIntersecting){n.disconnect(),r();break}},c);for(let e of o.children)n.observe(e)};(self.Astro||(self.Astro={})).visible=a;window.dispatchEvent(new Event("astro:visible"));})();</script><astro-island uid="Z1sxSM1" prefix="r17" component-url="/blog/_astro/sidebar.DSXZrLQ3.js" component-export="default" renderer-url="/blog/_astro/client.IaDn9qiQ.js" props="{"hasSideDownloadCta":[0,false],"h2List":[1,[[0,{"id":[0,"introduction"],"name":[0,"Introduction"]}],[0,{"id":[0,"challenge"],"name":[0,"Challenge"]}],[0,{"id":[0,"ingredients"],"name":[0,"Ingredients"]}],[0,{"id":[0,"prerequisites"],"name":[0,"Prerequisites"]}],[0,{"id":[0,"quick-tips"],"name":[0,"Quick tips"]}],[0,{"id":[0,"instructions"],"name":[0,"Instructions"]}],[0,{"id":[0,"bonus-manual-product-selection"],"name":[0,"Bonus: Manual product selection"]}],[0,{"id":[0,"bonus-sale-prices-vs-regular-prices"],"name":[0,"Bonus: Sale prices vs. regular prices"]}],[0,{"id":[0,"impact"],"name":[0,"Impact"]}]]],"showTableOfContents":[0,true],"sideDownloadCta":[0,{"backgroundColor":[0,"cotton"],"bodyCopy":[0,""],"buttons":[1,[]],"headline":[0,""],"thumbnail":[0]}],"windowLocation":[0,"https://www.klaviyo.com/blog/solution-recipe-4-extending-klaviyos-product-block-functionality.html"],"slot":[0,"sidebar"]}" ssr client="visible" before-hydration-url="/blog/_astro/astro_scripts/before-hydration.js.BWsVurST.js" opts="{"name":"Sidebar","value":true}" await-children><div class="_sidebar_1usd4_1"><div class="_sidebarStickyChildren_1usd4_19"><nav class="_tableOfContents_1usd4_24 _articleTableOfContents_1nmf9_1"><details open=""><summary class="_headerContainer_1nmf9_74"><h5 class="h5 semiBold">Table of contents</h5><div class="_chevron_1nmf9_56"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" color="currentColor" style="height:2rem"><path fill="currentColor" d="M21.884 16.884a1.25 1.25 0 0 1-1.768 0L12 8.768l-8.116 8.116a1.25 1.25 0 0 1-1.768-1.768l9-9a1.25 1.25 0 0 1 1.768 0l9 9a1.25 1.25 0 0 1 0 1.768"></path></svg></div></summary><ul style="max-height:220px" class="_sectionLinkList_1nmf9_12 content"><div><a aria-current="true" href="#introduction" class="sectionLink _sectionLinkToc_1nmf9_39"><li class="linkListItem _linkListItem_1nmf9_34"><p class="paragraph1 _sectionName_1nmf9_4">Introduction</p></li></a><a aria-current="false" href="#challenge" class="sectionLink _sectionLinkToc_1nmf9_39"><li class="linkListItem _linkListItem_1nmf9_34"><p class="paragraph1 _sectionName_1nmf9_4">Challenge</p></li></a><a aria-current="false" href="#ingredients" class="sectionLink _sectionLinkToc_1nmf9_39"><li class="linkListItem _linkListItem_1nmf9_34"><p class="paragraph1 _sectionName_1nmf9_4">Ingredients</p></li></a><a aria-current="false" href="#prerequisites" class="sectionLink _sectionLinkToc_1nmf9_39"><li class="linkListItem _linkListItem_1nmf9_34"><p class="paragraph1 _sectionName_1nmf9_4">Prerequisites</p></li></a></div><a aria-current="false" href="#quick-tips" class="sectionLink _sectionLinkToc_1nmf9_39"><li class="linkListItem _linkListItem_1nmf9_34"><p class="paragraph1 _sectionName_1nmf9_4">Quick tips</p></li></a><a aria-current="false" href="#instructions" class="sectionLink _sectionLinkToc_1nmf9_39"><li class="linkListItem _linkListItem_1nmf9_34"><p class="paragraph1 _sectionName_1nmf9_4">Instructions</p></li></a><a aria-current="false" href="#bonus-manual-product-selection" class="sectionLink _sectionLinkToc_1nmf9_39"><li class="linkListItem _linkListItem_1nmf9_34"><p class="paragraph1 _sectionName_1nmf9_4">Bonus: Manual product selection</p></li></a><a aria-current="false" href="#bonus-sale-prices-vs-regular-prices" class="sectionLink _sectionLinkToc_1nmf9_39"><li class="linkListItem _linkListItem_1nmf9_34"><p class="paragraph1 _sectionName_1nmf9_4">Bonus: Sale prices vs. regular prices</p></li></a><a aria-current="false" href="#impact" class="sectionLink _sectionLinkToc_1nmf9_39"><li class="linkListItem _linkListItem_1nmf9_34"><p class="paragraph1 _sectionName_1nmf9_4">Impact</p></li></a></ul></details></nav><div class="_socialIcons_1usd4_34"><button class="_shareLink_1usd4_39" rel="noopener"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 25" color="currentColor" style="height:1em" class="_icon_1usd4_44"><g clip-path="url(#copy_svg__a)"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.624" d="M6.75 18.437H4.125A2.625 2.625 0 0 1 1.5 15.81v-10.5a2.625 2.625 0 0 1 2.625-2.624h10.5a2.625 2.625 0 0 1 2.625 2.625v2.625m-7.875 15.75h10.5A2.625 2.625 0 0 0 22.5 21.06v-10.5a2.625 2.625 0 0 0-2.625-2.624h-10.5a2.625 2.625 0 0 0-2.625 2.625v10.5a2.625 2.625 0 0 0 2.625 2.624"></path></g><defs><clipPath id="copy_svg__a"><path fill="#fff" d="M0 .687h24v24H0z"></path></clipPath></defs></svg></button><a class="_shareLink_1usd4_39" rel="noopener" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.klaviyo.com%2Fblog%2Fsolution-recipe-4-extending-klaviyos-product-block-functionality.html"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 16" color="currentColor" style="height:1em" class="_icon_1usd4_44"><path fill="currentColor" fill-rule="evenodd" d="M2.843 15.995V8.769H0V6.192h2.844V3.813C2.844 1.415 4.404 0 6.764 0c1.129 0 2.05.111 2.335.144v2.694l-1.9-.001c-1.282 0-1.522.579-1.522 1.389v1.966h3.286L8.5 8.769H5.677v7.226z" clip-rule="evenodd"></path></svg></a><a class="_shareLink_1usd4_39" rel="noopener" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.klaviyo.com%2Fblog%2Fsolution-recipe-4-extending-klaviyos-product-block-functionality.html"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" color="currentColor" style="height:1em" class="_icon_1usd4_44"><path fill="currentColor" d="M19 13.5 30.6 0h-2.8l-10 11.8L9.7 0H.3l12.2 17.8L.3 32h2.8l10.7-12.4L22.3 32h9.3zm-3.8 4.4L14 16.2 4.1 2.1h4.2l8 11.4 1.2 1.8L27.9 30h-4.2z"></path></svg></a><a class="_shareLink_1usd4_39" rel="noopener" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.klaviyo.com%2Fblog%2Fsolution-recipe-4-extending-klaviyos-product-block-functionality.html"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" color="currentColor" style="height:1em" class="_icon_1usd4_44"><path fill="currentColor" fill-rule="evenodd" d="M11.975 15.189v-4.933c0-1.178-.023-2.691-1.595-2.691-1.597 0-1.84 1.282-1.84 2.604v5.02H5.472V5.044h2.944v1.385h.041c.41-.796 1.411-1.639 2.904-1.639 3.105 0 3.678 2.101 3.678 4.834v5.565zM2.013 3.657c-.984 0-1.778-.819-1.778-1.83C.235.819 1.03 0 2.013 0c.981 0 1.778.819 1.778 1.827 0 1.011-.797 1.83-1.778 1.83m1.535 11.532H.478V5.044h3.07z" clip-rule="evenodd"></path></svg></a></div></div></div><!--astro:end--></astro-island> </aside> <div class="header" data-astro-cid-nvwpp57f> <div class="header"> <h1 class="h2 semibold">Solution Recipe 4: Extending Klaviyo’s Product Block Functionality</h1> <div class="_infoContainer_ertsd_104"> <div class="_row_1r0t6_2"><div class="_authorImageFrame_1r0t6_10"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 266 178" color="" style="height:1em" class="_klaviyoLogo_1r0t6_30" role="img" aria-label="Profile photo of author"><path fill="" d="M266 178H0V0h266l-55.835 89z"></path></svg></div><div class="_authorDetails_1r0t6_45"><a href="/blog/author/walid-bendris" class="_authorName_1r0t6_51 formRegular">Walid Bendris</a><div class="formRegular">16 min read</div></div></div> <div class="_blogCategoryButton_ertsd_114 _detailsRow_1803p_12 blogCategoryButton"><a href="/blog/category/developer" class="formRegular _categoryLink_1803p_1">For developers</a><div class="formRegular _blogDate_1803p_16"> August 17, 2021 </div></div> <button type="button" class="button" id="copy-as-markdown" data-copy-label="Copy as Markdown" data-copied-label="Copied" aria-label="Copy as Markdown" data-astro-cid-fysp7rwx> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 25" color="" style="height:1em" class="icon iconCopy" aria-hidden="true" data-astro-cid-fysp7rwx="true"><g clip-path="url(#copy_svg__a)"><path stroke="" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.624" d="M6.75 18.437H4.125A2.625 2.625 0 0 1 1.5 15.81v-10.5a2.625 2.625 0 0 1 2.625-2.624h10.5a2.625 2.625 0 0 1 2.625 2.625v2.625m-7.875 15.75h10.5A2.625 2.625 0 0 0 22.5 21.06v-10.5a2.625 2.625 0 0 0-2.625-2.624h-10.5a2.625 2.625 0 0 0-2.625 2.625v10.5a2.625 2.625 0 0 0 2.625 2.624"></path></g><defs><clipPath id="copy_svg__a"><path fill="#fff" d="M0 .687h24v24H0z"></path></clipPath></defs></svg> <svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 16 16" color="" style="height:1em" class="icon iconCheck" aria-hidden="true" data-astro-cid-fysp7rwx="true"><path fill="" d="M14.47 3.53c.26.26.26.68 0 .94l-8.51 8.51-4.47-5.21A.666.666 0 1 1 2.5 6.9l3.53 4.12 7.49-7.49c.26-.26.68-.26.94 0z"></path><path fill="" d="M5.93 13.72 1.11 8.1a1.2 1.2 0 0 1-.28-.85c.02-.31.17-.59.4-.79.49-.42 1.23-.36 1.64.12l3.18 3.71 7.11-7.11c.4-.4 1.02-.45 1.47-.15h.03l.16.15c.22.22.34.51.34.82s-.12.6-.34.82z"></path></svg> <span class="label" data-astro-cid-fysp7rwx>Copy as Markdown</span> </button> <script type="module" src="/blog/_astro/CopyAsMarkdown.astro_astro_type_script_index_0_lang.Cxcn66ge.js"></script> </div> </div> </div> <article class="content" id="content" data-astro-cid-nvwpp57f> <div class="blockContent"> <hr class="wp-block-separator"> <p><em>Solution Recipes are tutorials to achieve specific objectives in Klaviyo. They can also help you master Klaviyo, learn new third-party technologies, and come up with creative ideas. They are written mainly for developers & technically-advanced users.</em></p><p><em><strong>Note:</strong> We do our best to make sure any code and API references are accurate and current when this is published, but you might need to update code and it’s always a best practice to leverage our<a href="https://developers.klaviyo.com/en/reference/api_overview">latest API versions</a>. If you have questions, feel free to hop over to our<a href="https://community.klaviyo.com/groups/developer-group-64">Developer Community</a>.</em></p><div class="steps" data-astro-cid-zgo3ggvm> <div class="steps-headline" data-astro-cid-zgo3ggvm></div> <div class="steps-innerblock" data-astro-cid-zgo3ggvm> <div class="step" data-astro-cid-zgo3ggvm> <div class="step-title" data-astro-cid-zgo3ggvm>What you’ll learn</div> <div class="step-circle" data-astro-cid-zgo3ggvm> <div class="step-number" data-astro-cid-zgo3ggvm>1</div> </div> <div class="step-body" data-astro-cid-zgo3ggvm> <p>How to create a customizable Product Block-like Text block using Klaviyo’s native features and Django Template Tagging.</p> </div> </div><div class="step" data-astro-cid-zgo3ggvm> <div class="step-title" data-astro-cid-zgo3ggvm>Why it matters</div> <div class="step-circle" data-astro-cid-zgo3ggvm> <div class="step-number" data-astro-cid-zgo3ggvm>2</div> </div> <div class="step-body" data-astro-cid-zgo3ggvm> <p>The prebuilt Product Block provides some easy-to-use preset functionality, but it might not cover 100% of business/marketing cases.</p> </div> </div><div class="step" data-astro-cid-zgo3ggvm> <div class="step-title" data-astro-cid-zgo3ggvm>Level of sophistication</div> <div class="step-circle" data-astro-cid-zgo3ggvm> <div class="step-number" data-astro-cid-zgo3ggvm>3</div> </div> <div class="step-body" data-astro-cid-zgo3ggvm> <p>High</p> </div> </div> </div> </div><h2 id="introduction">Introduction</h2><p>Klaviyo’s template editor allows you to use a preset block called the <em>Product Block</em>. This block lets you choose from a selection of filtered/weighted <em>Product Feeds</em> which pull from your <em>Catalog</em>. In addition to this, Klaviyo provides a range of <a href="https://docs.djangoproject.com/en/3.1/ref/templates/builtins/">default Django</a> and <a href="https://help.klaviyo.com/hc/en-us/articles/115005084927-Template-Tags-and-Variable-Syntax">custom built</a> template tagging syntax to let you customize the look, feel and personalization of our email templates.</p><h2 id="challenge">Challenge</h2><p>While the default setup and options for the Product Block work for most businesses, there are a handful of use-cases which can warrant a more customized approach. Because of the nature of the default block and the need to support its functionality at scale, customization options are relatively limited.</p><p><em>Note: this block setup requires custom html and template tagging/Django. As such, its troubleshooting is <strong>not</strong> supported by our Support team. Please take this into consideration if you plan to use this approach in your account.</em></p><h2 id="ingredients">Ingredients</h2><ul><li>1 Catalog — Synced via one of <a href="https://help.klaviyo.com/hc/en-us/categories/115000032731-Ecommerce-Integrations">our ecommerce integrations</a> or using our Custom Catalog feature</li><li>1 <a href="https://help.klaviyo.com/hc/en-us/articles/115005082787-How-to-Use-Product-Feeds-and-Recommendations#create-a-product-feed1">Product Feed</a> — A filtered list of products that optionally can be weighted by various factors</li><li>1 <a href="https://help.klaviyo.com/hc/en-us/articles/115000219092">Product Block</a> — A block in an email template that’s able to natively access our Product Feeds</li><li>1 scoop template tagging experience</li><li>1 pinch HTML formatting experience</li></ul><h2 id="prerequisites">Prerequisites</h2><p>This recipe requires a relatively good understanding of template tag usage/structure, email HTML design, and the concepts of conditional logic and loop iteration. Beyond these, most of the tools you’ll need are likely already in the platform!</p><h2 id="quick-tips">Quick tips</h2><p>Before we get started, here are some quick tips for playing around with data in templates.</p><h3>Previewing objects</h3><p>There are a few data objects being used in the examples below but we won’t go into detail about all of the existing data on each of these objects. Instead, you can preview the available data by just printing out that object on the template itself after it’s initialized. For example, if you want to see all of the available fields on the <strong>catalog_item</strong> initialized by a Catalog Lookup, you can print it out in a template by adding the tag:</p><div class="code-snippet" data-code="{{ catalog_item }}" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{{ catalog_item }}</span></span></code></pre> </div> </div> <script type="module">(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},o=new t.Error().stack;o&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[o]="4fb41bf7-7449-40f4-9f4b-86eb4cae111a",t._sentryDebugIdIdentifier="sentry-dbid-4fb41bf7-7449-40f4-9f4b-86eb4cae111a")}catch{}})();document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".code-snippet__copy-button").forEach(o=>{o.addEventListener("click",async d=>{const e=d.target,c=e.closest(".code-snippet").dataset.code;if(c)try{await navigator.clipboard.writeText(c);const n=e.textContent;e.textContent="Copied!",e.classList.add("copied"),setTimeout(()=>{e.textContent=n,e.classList.remove("copied")},2e3)}catch(n){console.error("Failed to copy:",n),e.textContent="Failed",setTimeout(()=>{e.textContent="Copy"},2e3)}})})});
//# sourceMappingURL=CodeSnippet.astro_astro_type_script_index_0_lang.B02BZM_6.js.map</script><p>by itself within that Catalog Lookup scope (<em>i.e.</em> between the <strong>{% catalog %}</strong> and <strong>{% endcatalog %}</strong> tags). After adding this tag, save the block and preview it to see a full list of available fields for that object.</p><h3>Troubleshooting</h3><p>The steps in this recipe are laid out incrementally so you can see what each step adds or changes from the previous one. When setting up this customized Product Block (or any custom HTML content within a template), make sure to change one thing at a time, saving and previewing as you progress. If something was mis-typed in your setup, it will be easier to catch the error if fewer things changed from the previous working version.</p><h2 id="instructions">Instructions</h2><h3>Step 1: Set up a Catalog in Klaviyo</h3><p>Integrate with one of our <a href="https://help.klaviyo.com/hc/en-us/categories/115000032731-Ecommerce-Integrations">prebuilt ecommerce integrations</a> or reach out to our Support Team for instructions on how to get set up with our Custom Catalog feature. You can check if you have items in your Catalog by <a href="https://klaviyo.com/catalog/items">navigating to the Catalog landing page in your account</a>.</p><p><em>Context: This step guarantees we have actual items to work with in the final template. If the catalog is empty, this customized “Product Block” won’t have anything to display.</em></p><h3>Step 2: Set up a Product Feed</h3><p>Head to the <a href="https://help.klaviyo.com/hc/en-us/articles/115005082787-How-to-Use-Product-Feeds-and-Recommendations#create-a-product-feed1">Product Feed</a> section of the account and set up the type of feed you’d like to display with this custom block. For the example outlined in this recipe, let’s call this feed “<strong>ExampleProductFeed</strong>”.</p><p><em>Context: Product Feeds generate a per-profile weighted list of items from the Catalog on your account and the chosen parameters/metric(s) on the feed’s settings. Without this, we won’t know which items to show the person receiving the final email.</em></p><h3>Step 3: Add a Product Block to a template</h3><p>Drag a <a href="https://help.klaviyo.com/hc/en-us/articles/115000219092">Product Block</a> into your template and select the Product Feed you made in the previous step.</p><p><em>Context: Product Blocks themselves play a special role in this setup. In order for a Product Feed’s information to be accessible within a template, that feed must be “primed” for that template, basically the template needs to know what feed to load before attempting to render itself. To do this, we can take advantage of our native Product Block which allows you to select a Product Feed and is designed to prime that feed for the email.</em></p><h3>Step 4: Set the Product Block visibility to False</h3><p>Set the <a href="https://help.klaviyo.com/hc/en-us/articles/115005258208-How-to-Show-or-Hide-Template-Blocks-Based-on-Dynamic-Variables">show/hide block feature</a> logic for this Product Block to <strong>False</strong>.</p><p><em>Context: We need a default Product Block in this email during template render time in order to “prime” the Product Feed we want to use. That said, we don’t want both the default and customized Product Blocks to appear in the final email sent to the recipient, we only need it to “prime” the feed when the template renders. Our show/hide block feature evaluates before send time so anything evaluating to false will be removed from the final email (rather than just hidden). We can easily set this default block’s display conditions to evaluate as false and guarantee it isn’t included in the final email by just setting its display condition to <strong>False</strong>.</em></p><h3>Step 5: Add a Text Block to a template</h3><p>Drag a Text Block into your template below the Product Feed.</p><p><em>Context: Text Blocks provide a lot of customization power in our templates by not enforcing much default formatting and allowing you to access the “source” of the block to add HTML and Django template tagging. We’ll be using this feature of these blocks to create our own Product Block.</em></p><h3>Step 6: Add an HTML table within an HTML table to the Text Block</h3><p>Add a basic HTML table within another HTML table to your Text Block:</p><div class="code-snippet" data-code="<table>
<tbody>
<tr>
<td>
<table>
<tbody>
<tr>
<th></th>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span><table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <td></span></span>
<span class="line"><span> <table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th></th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span> </table></span></span>
<span class="line"><span> </td></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span></table></span></span></code></pre> </div> </div> <p><em>Context: Our Product Block displays items in a grid using a number of rows and columns. In order to mimic this behaviour, we can use an HTML table. For ease of formatting later, we’re using 2 nested tables. One for the general structure of the grid of items and one for each item in that grid (in order to display that item’s information).</em></p><h3>Step 7: Use a “with” statement to reference the Product Feed</h3><p>Add a <a href="https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#with">with statement</a> so we can refer to the primed Product Feed with an easy name (eg. “product_feed”). Make sure to close the with statement with an “endwith”:</p><div class="code-snippet" data-code="{% with product_feed=feeds.ExampleProductFeed %}
<table>
<tbody>
<tr>
<td>
<table>
<tbody>
<tr>
<th></th>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
{% endwith %}" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{% with product_feed=feeds.ExampleProductFeed %}</span></span>
<span class="line"><span><table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <td></span></span>
<span class="line"><span> <table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th></th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span> </table></span></span>
<span class="line"><span> </td></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span></table></span></span>
<span class="line"><span>{% endwith %}</span></span></code></pre> </div> </div> <p><em>Context: Now that we have a general structure to work within, we need to somehow reference the Product Feed we primed earlier. We can do this by calling it as a variable using a “with” statement. “feeds” in this case is a reserved name which contains a reference to all primed feeds for this template.</em></p><h3>Step 8: Pull in the name of the first item in the feed</h3><p>Use a lookup on <strong>product_feed</strong> to get the ID of the first item, then use that ID to look up the same item in the Catalog using a <a href="https://help.klaviyo.com/hc/en-us/articles/360004785571-The-Catalog-Lookup-Feature">Catalog Lookup</a> and pull that item’s name into the HTML table. If you preview the template now, you should be able to see the name of the first item in the selected Product Feed.</p><div class="code-snippet" data-code="{% with product_feed=feeds.ExampleProductFeed %}
<table>
<tbody>
<tr>
<td>{% catalog product_feed.0.item_id %}
<table>
<tbody>
<tr>
<th>{{ catalog_item.title }}</th>
</tr>
</tbody>
</table>
{% endcatalog %}</td>
</tr>
</tbody>
</table>
{% endwith %}" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{% with product_feed=feeds.ExampleProductFeed %}</span></span>
<span class="line"><span><table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <td>{% catalog product_feed.0.item_id %}</span></span>
<span class="line"><span> <table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th>{{ catalog_item.title }}</th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span> </table></span></span>
<span class="line"><span> {% endcatalog %}</td></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span></table></span></span>
<span class="line"><span>{% endwith %}</span></span></code></pre> </div> </div> <div class="wp-block-image size-full" data-astro-cid-hhol7apy><img src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/003050de2c642436a95a02970b3c46a26e06a5dc-640x239.webp" alt><script>(function(){const dialogId = "image-dialog-679l88xus47";
const enabled = false;
if (enabled) {
const trigger = document.querySelector(`[data-dialog="${dialogId}"]`);
const dialog = document.getElementById(dialogId);
const closeButton = dialog?.querySelector('.close-button');
if (trigger && dialog && closeButton) {
trigger.addEventListener('click', () => {
dialog.showModal();
});
closeButton.addEventListener('click', () => {
dialog.close();
});
dialog.addEventListener('click', (e) => {
if (e.target === dialog) {
dialog.close();
}
});
}
}
})();</script></div><p><em>Context: The Product Feed contains a weighted list of items for a given profile but only certain information about these items based on what our default Product Block uses. To access all of the information about a given item from the Catalog, we need to look that item up based on its ID. “item_id” above is a reserved name for the ID of a given item in a Product Feed. The Catalog Lookup is added inside the exterior table but on the outside of the interior table since each interior table should represent a single item.</em></p><h3>Step 9: Add a “for loop”</h3><p>Add a <a href="https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#for">for loop</a> to the outside of the “table data” (<td>) around the interior table and refer to each item in the Product Feed dynamically:</p><div class="code-snippet" data-code="{% with product_feed=feeds.ExampleProductFeed %}
<table>
<tbody>
<tr>{% for item in product_feed %}
<td>{% catalog item.item_id %}
<table>
<tbody>
<tr>
<th>{{ catalog_item.title }}</th>
</tr>
</tbody>
</table>
{% endcatalog %}</td>
{% endfor %}</tr>
</tbody>
</table>
{% endwith %}" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{% with product_feed=feeds.ExampleProductFeed %}</span></span>
<span class="line"><span><table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr>{% for item in product_feed %}</span></span>
<span class="line"><span> <td>{% catalog item.item_id %}</span></span>
<span class="line"><span> <table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th>{{ catalog_item.title }}</th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span> </table></span></span>
<span class="line"><span> {% endcatalog %}</td></span></span>
<span class="line"><span> {% endfor %}</tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span></table></span></span>
<span class="line"><span>{% endwith %}</span></span></code></pre> </div> </div> <div class="wp-block-image size-full" data-astro-cid-hhol7apy><img src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/07923706008b4cb0cd5890ecb308575fa24d4c8e-640x312.webp" alt><script>(function(){const dialogId = "image-dialog-zxd9xt4o3jj";
const enabled = false;
if (enabled) {
const trigger = document.querySelector(`[data-dialog="${dialogId}"]`);
const dialog = document.getElementById(dialogId);
const closeButton = dialog?.querySelector('.close-button');
if (trigger && dialog && closeButton) {
trigger.addEventListener('click', () => {
dialog.showModal();
});
closeButton.addEventListener('click', () => {
dialog.close();
});
dialog.addEventListener('click', (e) => {
if (e.target === dialog) {
dialog.close();
}
});
}
}
})();</script></div><p><em>Context: We have the name of one item displaying but ideally we want to display more, in this example let’s say 6. Instead of creating 6 copies of the same interior table and catalog lookup but referring to the first 6 items, let’s use a for loop instead. We want to display these items side-by-side so instead of just wrapping the interior table itself, we want to wrap the table data element around that table. Each table data (or table header) element creates a new column in an HTML table. In other words, creating table data elements in a loop will generate side-by-side items in the table.</em></p><h3>Step 10: Calculate columns/rows</h3><p>Add some new variables to the with statement for the number of items we want and the number of items per column. In this case, the total number of items we want to display is achieved by “<a href="https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#slice">slicing</a>” the product_feed to that number of items (6 in this example). The number of columns per row is achieved by setting “columns” as a variable (3 in this example) and toggling a new row when we hit that number:</p><div class="code-snippet" data-code="{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}
<table>
<tbody>
<tr>{% for item in product_feed %}
<td>{% catalog item.item_id %}
<table>
<tbody>
<tr>
<th>{{ catalog_item.title }}</th>
</tr>
</tbody>
</table>
{% endcatalog %}</td>
{% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}
{% endfor %}</tr>
</tbody>
</table>
{% endwith %}" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}</span></span>
<span class="line"><span><table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr>{% for item in product_feed %}</span></span>
<span class="line"><span> <td>{% catalog item.item_id %}</span></span>
<span class="line"><span> <table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th>{{ catalog_item.title }}</th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span> </table></span></span>
<span class="line"><span> {% endcatalog %}</td></span></span>
<span class="line"><span> {% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}</span></span>
<span class="line"><span> {% endfor %}</tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span></table></span></span>
<span class="line"><span>{% endwith %}</span></span></code></pre> </div> </div> <div class="wp-block-image size-full" data-astro-cid-hhol7apy><img src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/65b4b25221b9e519914b261fcdb6825932c2d2fb-640x288.webp" alt><script>(function(){const dialogId = "image-dialog-01ojf8dgo328";
const enabled = false;
if (enabled) {
const trigger = document.querySelector(`[data-dialog="${dialogId}"]`);
const dialog = document.getElementById(dialogId);
const closeButton = dialog?.querySelector('.close-button');
if (trigger && dialog && closeButton) {
trigger.addEventListener('click', () => {
dialog.showModal();
});
closeButton.addEventListener('click', () => {
dialog.close();
});
dialog.addEventListener('click', (e) => {
if (e.target === dialog) {
dialog.close();
}
});
}
}
})();</script></div><p><em>Context: If you preview the table now, you’ll see 6 item names, side-by-side, likely going off the edge of the email template. To avoid this, we need to add some logic to handle wrapping items onto the next line. The wrapping logic here takes advantage of a for loop counter variable provided by Django (<a href="https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#for">foorloop.counter</a>) and a boolean expression for whether the provided number is divisible by another (<a href="https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#divisibleby">divisibleby</a>) and wraps these as an if statement around an end/start of a new table row element (<tr>).</em></p><h3>Step 11: Pull in images</h3><p>Now that we have some basic structure down, let’s flesh out what gets displayed. First, let’s pull in an image for each product by adding another table row above the title row:</p><div class="code-snippet" data-code="{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}
<table>
<tbody>
<tr>{% for item in product_feed %}
<td>{% catalog item.item_id %}
<table>
<tbody>
<tr>
<th><a href="{{ catalog_item.url }}"><img alt="{{ catalog_item.title }}" src="{{ catalog_item.featured_image.thumbnail.src }}" /> </a></th>
</tr>
<tr>
<th>{{ catalog_item.title }}</th>
</tr>
</tbody>
</table>
{% endcatalog %}</td>
{% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}
{% endfor %}</tr>
</tbody>
</table>
{% endwith %}" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}</span></span>
<span class="line"><span><table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr>{% for item in product_feed %}</span></span>
<span class="line"><span> <td>{% catalog item.item_id %}</span></span>
<span class="line"><span> <table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th><a href="{{ catalog_item.url }}"><img alt="{{ catalog_item.title }}" src="{{ catalog_item.featured_image.thumbnail.src }}" /> </a></th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th>{{ catalog_item.title }}</th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span> </table></span></span>
<span class="line"><span> {% endcatalog %}</td></span></span>
<span class="line"><span> {% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}</span></span>
<span class="line"><span> {% endfor %}</tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span></table></span></span>
<span class="line"><span>{% endwith %}</span></span></code></pre> </div> </div> <div class="wp-block-image size-full" data-astro-cid-hhol7apy><img src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/89a6097666b8dfe4f91ea5117034170359d25b69-640x611.webp" alt><script>(function(){const dialogId = "image-dialog-dq41zda3hw9";
const enabled = false;
if (enabled) {
const trigger = document.querySelector(`[data-dialog="${dialogId}"]`);
const dialog = document.getElementById(dialogId);
const closeButton = dialog?.querySelector('.close-button');
if (trigger && dialog && closeButton) {
trigger.addEventListener('click', () => {
dialog.showModal();
});
closeButton.addEventListener('click', () => {
dialog.close();
});
dialog.addEventListener('click', (e) => {
if (e.target === dialog) {
dialog.close();
}
});
}
}
})();</script></div><h3>Step 12: Pull in prices</h3><p>Let’s add in some prices for each item. Pull the price number in from the catalog and format it in the Account or email’s native currency using the “currency_format” tag and “<a href="https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#floatformat">floatformat</a>” filter:</p><div class="code-snippet" data-code="{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}
<table>
<tbody>
<tr>{% for item in product_feed %}
<td>{% catalog item.item_id %}
<table>
<tbody>
<tr>
<th><a href="{{ catalog_item.url }}"><img alt="{{ catalog_item.title }}" src="{{ catalog_item.featured_image.thumbnail.src }}" /> </a></th>
</tr>
<tr>
<th>{{ catalog_item.title }}</th>
</tr>
<tr>
<td>
<p>
{% if catalog_item.metadata|lookup:"$price" %}
{% currency_format catalog_item.metadata|lookup:"$price"|floatformat:2 %}
{% elif catalog_item.metadata|lookup:"price" %}
{% currency_format catalog_item.metadata|lookup:"price"|floatformat:2 %}
{% endif %}
</p>
</td>
</tr>
</tbody>
</table>
{% endcatalog %}</td>
{% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}
{% endfor %}</tr>
</tbody>
</table>
{% endwith %}" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}</span></span>
<span class="line"><span><table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr>{% for item in product_feed %}</span></span>
<span class="line"><span> <td>{% catalog item.item_id %}</span></span>
<span class="line"><span> <table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th><a href="{{ catalog_item.url }}"><img alt="{{ catalog_item.title }}" src="{{ catalog_item.featured_image.thumbnail.src }}" /> </a></th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th>{{ catalog_item.title }}</th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <td></span></span>
<span class="line"><span> <p></span></span>
<span class="line"><span> {% if catalog_item.metadata|lookup:"$price" %}</span></span>
<span class="line"><span> {% currency_format catalog_item.metadata|lookup:"$price"|floatformat:2 %}</span></span>
<span class="line"><span> {% elif catalog_item.metadata|lookup:"price" %}</span></span>
<span class="line"><span> {% currency_format catalog_item.metadata|lookup:"price"|floatformat:2 %}</span></span>
<span class="line"><span> {% endif %}</span></span>
<span class="line"><span> </p></span></span>
<span class="line"><span> </td></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span> </table></span></span>
<span class="line"><span> {% endcatalog %}</td></span></span>
<span class="line"><span> {% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}</span></span>
<span class="line"><span> {% endfor %}</tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span></table></span></span>
<span class="line"><span>{% endwith %}</span></span></code></pre> </div> </div> <div class="wp-block-image size-full" data-astro-cid-hhol7apy><img src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/06a3ef8c1c5f5486acd63aa5e032dc32d6c1f509-640x569.webp" alt><script>(function(){const dialogId = "image-dialog-tglbmw6aq0l";
const enabled = false;
if (enabled) {
const trigger = document.querySelector(`[data-dialog="${dialogId}"]`);
const dialog = document.getElementById(dialogId);
const closeButton = dialog?.querySelector('.close-button');
if (trigger && dialog && closeButton) {
trigger.addEventListener('click', () => {
dialog.showModal();
});
closeButton.addEventListener('click', () => {
dialog.close();
});
dialog.addEventListener('click', (e) => {
if (e.target === dialog) {
dialog.close();
}
});
}
}
})();</script></div><h3>Step 13: Add a button</h3><p>The image above is linked, but buttons can provide a more clear call-to-action so let’s add one of those to each item</p><div class="code-snippet" data-code="{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}
<table>
<tbody>
<tr>{% for item in product_feed %}
<td>{% catalog item.item_id %}
<table>
<tbody>
<tr>
<th><a href="{{ catalog_item.url }}"><img alt="{{ catalog_item.title }}" src="{{ catalog_item.featured_image.thumbnail.src }}" /> </a></th>
</tr>
<tr>
<th>{{ catalog_item.title }}</th>
</tr>
<tr>
<td>
<p>
{% if catalog_item.metadata|lookup:"$price" %}
{% currency_format catalog_item.metadata|lookup:"$price"|floatformat:2 %}
{% elif catalog_item.metadata|lookup:"price" %}
{% currency_format catalog_item.metadata|lookup:"price"|floatformat:2 %}
{% endif %}
</p>
</td>
</tr>
<tr>
<td>
<p><a href="{{ catalog_item.url }}">Buy Now</a></p>
</td>
</tr>
</tbody>
</table>
{% endcatalog %}</td>
{% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}
{% endfor %}</tr>
</tbody>
</table>
{% endwith %}" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}</span></span>
<span class="line"><span><table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr>{% for item in product_feed %}</span></span>
<span class="line"><span> <td>{% catalog item.item_id %}</span></span>
<span class="line"><span> <table></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th><a href="{{ catalog_item.url }}"><img alt="{{ catalog_item.title }}" src="{{ catalog_item.featured_image.thumbnail.src }}" /> </a></th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th>{{ catalog_item.title }}</th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <td></span></span>
<span class="line"><span> <p></span></span>
<span class="line"><span> {% if catalog_item.metadata|lookup:"$price" %}</span></span>
<span class="line"><span> {% currency_format catalog_item.metadata|lookup:"$price"|floatformat:2 %}</span></span>
<span class="line"><span> {% elif catalog_item.metadata|lookup:"price" %}</span></span>
<span class="line"><span> {% currency_format catalog_item.metadata|lookup:"price"|floatformat:2 %}</span></span>
<span class="line"><span> {% endif %}</span></span>
<span class="line"><span> </p></span></span>
<span class="line"><span> </td></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <td></span></span>
<span class="line"><span> <p><a href="{{ catalog_item.url }}">Buy Now</a></p></span></span>
<span class="line"><span> </td></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span> </table></span></span>
<span class="line"><span> {% endcatalog %}</td></span></span>
<span class="line"><span> {% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}</span></span>
<span class="line"><span> {% endfor %}</tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span></table></span></span>
<span class="line"><span>{% endwith %}</span></span></code></pre> </div> </div> <div class="wp-block-image size-full" data-astro-cid-hhol7apy><img src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/3f9f653a1fe34e507a9de01fb540bc5f09460e71-640x529.webp" alt><script>(function(){const dialogId = "image-dialog-t9kqimzmkuk";
const enabled = false;
if (enabled) {
const trigger = document.querySelector(`[data-dialog="${dialogId}"]`);
const dialog = document.getElementById(dialogId);
const closeButton = dialog?.querySelector('.close-button');
if (trigger && dialog && closeButton) {
trigger.addEventListener('click', () => {
dialog.showModal();
});
closeButton.addEventListener('click', () => {
dialog.close();
});
dialog.addEventListener('click', (e) => {
if (e.target === dialog) {
dialog.close();
}
});
}
}
})();</script></div><p><em>Context: A button in email HTML is basically a link in a styled block element (eg. a paragraph or div). The above example starts with a basic link in a paragraph element, we’ll style it later.</em></p><h3>Step 14: Add some styling</h3><p>All the data and structure are there now, but you may notice a few things that seem off:</p><ol><li>If you product images that aren’t a standardized size/shape, they will appear differently and shift other elements of each product in the table (eg. shifting the names up and down)</li><li>If your product names vary considerably in length, they may shift other product elements up and down</li><li>The item price isn’t centered</li><li>The “buy now button” isn’t a button and isn’t centered</li></ol><p>To fix these formatting concerns, we need to add some CSS styles and HTML attributes to some of these elements. You can format these however you like at this point, but we’ve provided an example of how to do this with the customized Product Block we’ve been building so far. Add a class to each element that you’d like to format and at the top of your Product Block code, add a style element with some formatting for each of those classes (note, some of the styles are tagged with “<a href="https://www.w3schools.com/css/css_important.asp">!important</a>” to override any default settings you have on your template for things like link formatting):</p><div class="code-snippet" data-code="{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}
<style type="text/css">
.custom_product_block_table {
margin-left:auto;
margin-right:auto;
width: 100%;
}
.custom_product_block_text {
text-align:center;
}
.custom_product_block_image_cell {
height:120px;
}
.custom_product_block_image {
max-height:120px;
max-width:180px;
}
.custom_product_block_title_cell {
height:60px;
vertical-align: text-top;
text-align:center;
}
.custom_product_block_price_cell {
height:20px;
vertical-align: text-top;
}
.custom_product_block_button {
display: inline-block;
padding-top:10px;
padding-bottom:10px;
font-size:16px;
border-radius:5px;
padding-left:10px;
padding-right:10px;
background-color:#11CC50;
font-family:"Helvetica Neue", Arial;
text-decoration: none !important;
color:#FFFFFF !important;
font-weight:bold !important;
}
</style>
<table class="custom_product_block_table">
<tbody>
<tr>{% for item in product_feed %}
<td>{% catalog item.item_id %}
<table class="custom_product_block_table">
<tbody>
<tr>
<th><a href="{{ catalog_item.url }}"><img alt="{{ catalog_item.title }}" class="custom_product_block_image" src="{{ catalog_item.featured_image.thumbnail.src }}" /> </a></th>
</tr>
<tr>
<th class="custom_product_block_title_cell">{{ catalog_item.title }}</th>
</tr>
<tr>
<td class="custom_product_block_price_cell">
<p class="custom_product_block_text">
{% if catalog_item.metadata|lookup:"$price" %}
{% currency_format catalog_item.metadata|lookup:"$price"|floatformat:2 %}
{% elif catalog_item.metadata|lookup:"price" %}
{% currency_format catalog_item.metadata|lookup:"price"|floatformat:2 %}
{% endif %}
</p>
</td>
</tr>
<tr>
<td>
<p class="custom_product_block_text"><a href="{{ catalog_item.url }}" class="custom_product_block_button">Buy Now</a></p>
</td>
</tr>
</tbody>
</table>
{% endcatalog %}</td>
{% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}
{% endfor %}</tr>
</tbody>
</table>
{% endwith %}" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}</span></span>
<span class="line"><span></span></span>
<span class="line"><span><style type="text/css"></span></span>
<span class="line"><span> .custom_product_block_table {</span></span>
<span class="line"><span> margin-left:auto; </span></span>
<span class="line"><span> margin-right:auto;</span></span>
<span class="line"><span> width: 100%;</span></span>
<span class="line"><span> }</span></span>
<span class="line"><span> .custom_product_block_text {</span></span>
<span class="line"><span> text-align:center;</span></span>
<span class="line"><span> }</span></span>
<span class="line"><span> .custom_product_block_image_cell {</span></span>
<span class="line"><span> height:120px;</span></span>
<span class="line"><span> }</span></span>
<span class="line"><span> .custom_product_block_image {</span></span>
<span class="line"><span> max-height:120px;</span></span>
<span class="line"><span> max-width:180px;</span></span>
<span class="line"><span> }</span></span>
<span class="line"><span> .custom_product_block_title_cell {</span></span>
<span class="line"><span> height:60px;</span></span>
<span class="line"><span> vertical-align: text-top;</span></span>
<span class="line"><span> text-align:center;</span></span>
<span class="line"><span> }</span></span>
<span class="line"><span> .custom_product_block_price_cell {</span></span>
<span class="line"><span> height:20px;</span></span>
<span class="line"><span> vertical-align: text-top;</span></span>
<span class="line"><span> }</span></span>
<span class="line"><span> .custom_product_block_button {</span></span>
<span class="line"><span> display: inline-block;</span></span>
<span class="line"><span> padding-top:10px;</span></span>
<span class="line"><span> padding-bottom:10px;</span></span>
<span class="line"><span> font-size:16px;</span></span>
<span class="line"><span> border-radius:5px;</span></span>
<span class="line"><span> padding-left:10px;</span></span>
<span class="line"><span> padding-right:10px;</span></span>
<span class="line"><span> background-color:#11CC50;</span></span>
<span class="line"><span> font-family:"Helvetica Neue", Arial;</span></span>
<span class="line"><span> text-decoration: none !important;</span></span>
<span class="line"><span> color:#FFFFFF !important;</span></span>
<span class="line"><span> font-weight:bold !important;</span></span>
<span class="line"><span> }</span></span>
<span class="line"><span></style></span></span>
<span class="line"><span></span></span>
<span class="line"><span><table class="custom_product_block_table"></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr>{% for item in product_feed %}</span></span>
<span class="line"><span> <td>{% catalog item.item_id %}</span></span>
<span class="line"><span> <table class="custom_product_block_table"></span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th><a href="{{ catalog_item.url }}"><img alt="{{ catalog_item.title }}" class="custom_product_block_image" src="{{ catalog_item.featured_image.thumbnail.src }}" /> </a></th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <th class="custom_product_block_title_cell">{{ catalog_item.title }}</th></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <td class="custom_product_block_price_cell"></span></span>
<span class="line"><span> <p class="custom_product_block_text"></span></span>
<span class="line"><span> {% if catalog_item.metadata|lookup:"$price" %}</span></span>
<span class="line"><span> {% currency_format catalog_item.metadata|lookup:"$price"|floatformat:2 %}</span></span>
<span class="line"><span> {% elif catalog_item.metadata|lookup:"price" %}</span></span>
<span class="line"><span> {% currency_format catalog_item.metadata|lookup:"price"|floatformat:2 %}</span></span>
<span class="line"><span> {% endif %}</span></span>
<span class="line"><span> </p></span></span>
<span class="line"><span> </td></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <td></span></span>
<span class="line"><span> <p class="custom_product_block_text"><a href="{{ catalog_item.url }}" class="custom_product_block_button">Buy Now</a></p></span></span>
<span class="line"><span> </td></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span> </table></span></span>
<span class="line"><span> {% endcatalog %}</td></span></span>
<span class="line"><span> {% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}</span></span>
<span class="line"><span> {% endfor %}</tr></span></span>
<span class="line"><span> </tbody></span></span>
<span class="line"><span></table></span></span>
<span class="line"><span>{% endwith %}</span></span></code></pre> </div> </div> <div class="wp-block-image size-full" data-astro-cid-hhol7apy><img src="https://cdn.sanity.io/images/6ct6b26e/marketing-prod/cdeb0c1b5c5b610ce6ecd2bf60adaa786db3d896-640x582.webp" alt><script>(function(){const dialogId = "image-dialog-t38qy3i8vio";
const enabled = false;
if (enabled) {
const trigger = document.querySelector(`[data-dialog="${dialogId}"]`);
const dialog = document.getElementById(dialogId);
const closeButton = dialog?.querySelector('.close-button');
if (trigger && dialog && closeButton) {
trigger.addEventListener('click', () => {
dialog.showModal();
});
closeButton.addEventListener('click', () => {
dialog.close();
});
dialog.addEventListener('click', (e) => {
if (e.target === dialog) {
dialog.close();
}
});
}
}
})();</script></div><p><em>Context: You’ll notice some of the styling tricks used in the elements above are used to account for variances in information stored for each item. For example, the table header and table data elements used for the item “title” and “price” are locked to a certain height minimum and aligned to the top of their given cell. This allows us to account for variances in the length of an item’s title or the inclusion of multiple prices while still making the text appear aligned with other items on the same row in the template.</em></p><p><em>💡 NOTE: The basic example styling above does not necessarily account for all nuances of some inbox services (like Outlook) which do not respect certain style properties (especially on images). It is highly recommended that you standardize the size of all of your catalog images to squares with a width/height of ~200px to avoid any potential issues or at least add additional styling for these cases if you are unable to standardize these images.</em></p><h2 id="bonus-manual-product-selection">Bonus: Manual product selection</h2><p>Dynamic recommendations are great, but what if you want to select products manually from the catalog? You may notice that while you can manually select items in our default Product Block, the customized one built in this recipe still relies on the name of a Product Feed in order to work. In order to get around this requirement there’s one aspect of this block we can take advantage of: the for loop iterates through a list of products and looks up their IDs in the catalog. Instead, we can provide a list of IDs we already know and just look those up in the catalog. To do this, you’ll need to update the “with” statement and the beginning of the tables from this</p><div class="code-snippet" data-code="{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}
...
<tbody>
<tr>{% for item in product_feed %}
<td>{% catalog item.item_id %}
<table>
..." data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}</span></span>
<span class="line"><span>...</span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr>{% for item in product_feed %}</span></span>
<span class="line"><span> <td>{% catalog item.item_id %}</span></span>
<span class="line"><span> <table></span></span>
<span class="line"><span>...</span></span></code></pre> </div> </div> <p>to something like this (assuming these product IDs are 123, 456, and 789):</p><div class="code-snippet" data-code="{% with columns=3 product_feed="123,456,789" %}
...
<tbody>
<tr>{% for item_id in product_feed|split:"," %}"
<td>{% catalog item_id %}
<table>
..." data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>{% with columns=3 product_feed="123,456,789" %}</span></span>
<span class="line"><span>...</span></span>
<span class="line"><span> <tbody></span></span>
<span class="line"><span> <tr>{% for item_id in product_feed|split:"," %}"</span></span>
<span class="line"><span> <td>{% catalog item_id %}</span></span>
<span class="line"><span> <table></span></span>
<span class="line"><span>...</span></span></code></pre> </div> </div> <p>This example</p><ol><li>replaces the “product_feed” with a comma-separated string of item IDs</li><li>uses a “<a href="https://help.klaviyo.com/hc/en-us/articles/115005084927-Template-Tags-and-Variable-Syntax#basic-filters-15">split</a>” filter to turn that string into a list</li><li>loops through each ID in that list for the catalog lookup</li></ol><h2 id="bonus-sale-prices-vs-regular-prices">Bonus: Sale prices vs. regular prices</h2><p>If you have a setup that includes both sale and regular prices for items, you can add some formatting that changes how these display. For example, if a sale price exists and is lower than the regular price, you might want to show the regular price with a strikethrough and the sale price. This can be achieved using some if statements like in the example below:</p><div class="code-snippet" data-code="...
<tr>
<td class="custom_product_block_price_cell">
{% with price=catalog_item.metadata.price|floatadd:"0" compare_at_price=catalog_item.metadata.compare_at_price|floatadd:"0" %}
<p class="custom_product_block_text">
{% if compare_at_price and price < compare_at_price %}
<strike>{% currency_format compare_at_price|floatformat:2 %}</strike><br>
{% currency_format price|floatformat:2 %}
{% else %}
{% currency_format price|floatformat:2 %}
{% endif %}
</p>
{% endwith %}
</td>
</tr>
..." data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__header" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <div class="code-snippet__actions" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <span class="code-snippet__language code-snippet__language--text" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> text </span> <button class="code-snippet__copy-button" type="button" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;">
Copy
</button> </div> </div> <div class="code-snippet__code" data-astro-cid-mnja5ucx style="--bg: #ffffff;--headerBg: #f6f8fa;--border: #d0d7de;--filenameText: #57606a;"> <pre class="astro-code github-light" style="background-color:#fff;color:#24292e; overflow-x: auto;" tabindex="0" data-astro-cid-mnja5ucx data-language="text"><code><span class="line"><span>...</span></span>
<span class="line"><span> <tr></span></span>
<span class="line"><span> <td class="custom_product_block_price_cell"></span></span>
<span class="line"><span> {% with price=catalog_item.metadata.price|floatadd:"0" compare_at_price=catalog_item.metadata.compare_at_price|floatadd:"0" %}</span></span>
<span class="line"><span> <p class="custom_product_block_text"></span></span>
<span class="line"><span> {% if compare_at_price and price < compare_at_price %}</span></span>
<span class="line"><span> <strike>{% currency_format compare_at_price|floatformat:2 %}</strike><br></span></span>
<span class="line"><span> {% currency_format price|floatformat:2 %}</span></span>
<span class="line"><span> {% else %}</span></span>
<span class="line"><span> {% currency_format price|floatformat:2 %}</span></span>
<span class="line"><span> {% endif %}</span></span>
<span class="line"><span> </p></span></span>
<span class="line"><span> {% endwith %}</span></span>
<span class="line"><span> </td></span></span>
<span class="line"><span> </tr></span></span>
<span class="line"><span>...</span></span></code></pre> </div> </div> <p>We use the filter “<a href="https://help.klaviyo.com/hc/en-us/articles/115005084927-Template-Tags-and-Variable-Syntax#floatadd16">floatadd</a>” here with 0 to ensure the price being use is interpreted as a float rather than a string for the comparison. This example also assumes there is a metadata property called “compare_at_price” for catalog items, the name of this property may vary depending on your integration or custom catalog setup.</p><h2 id="impact">Impact</h2><p>Klaviyo’s default product block can provide a lot of utility without the need for complex setup, but sometimes you just need to make your own minor tweaks and branding updates outside of the capabilities of this block. Using the setup described here, your Product Blocks can be more on-brand and customized to your businesses particular style.</p> </div> <div class="_styledAuthors_15srf_95 _singleAuthor_15srf_107"><div class="_authorContainer_15srf_1"><picture class="_authorImageFallback_15srf_45"><source srcSet="/static/author/author-image-fallback.webp" type="image/webp"/><source srcSet="/static/author/author-image-fallback.jpg" type="image/jpeg"/><img src="/static/author/author-image-fallback.jpg" alt="Walid Bendris"/></picture><div class="_authorDetails_15srf_38"><div class="_authorName_15srf_70">Walid Bendris</div></div></div></div> <div class="_relatedContentGrid_ertsd_156"> <div class="_relatedContent_ertsd_156"> <div class="blogCards _blogCards_hdowa_25 _paddingTopmd_hdowa_46 _paddingBottommd_hdowa_55 _light_hdowa_30 _white_hdowa_35"><div class="grid _wrapper_hdowa_59"><div class="_borderContainer_hdowa_63 _displayGrayLine_hdowa_66"><div class="_titleRow_hdowa_70"><div class="_text_hdowa_81"><h2 class="_categoryTitle_hdowa_87 h3 semiBold">Related content</h2></div></div><div class="grid _cardContainer_hdowa_1"><div class="blogCard _blogCard_hdowa_6 _blogCard_kfoew_2 _light_kfoew_8"><a aria-label="Read" style="aspect-ratio:1.5 / 1" target="_self" href="/blog/account-subscription-history-solution-recipe-access-historical-subscription-and-suppression-data-for-all-profiles-in-a-klaviyo-account-with-this-python-script" class="_animationOutline_vezxe_1 animationOutline"><div class="_cardImageAnimation_kfoew_17 _imageContainer_vezxe_63 _isAnchor_vezxe_74"><div class="_imagePlaceholderContainer_kfoew_29 _light_kfoew_8"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 266 178" color="" style="height:1em" aria-label="Profile photo of author" class="_klaviyoLogo_kfoew_73 _featuredKlaviyoLogo_kfoew_5" role="img"><path fill="" d="M266 178H0V0h266l-55.835 89z"></path></svg></div><div class="_hoverContainer_vezxe_16"><div class="_hoverSlideContainer_vezxe_44"><button aria-label="" class="_light_1dvtu_41 _button_vezxe_59 _button_1dvtu_1" role="button" tabindex="-1" variant="primary" aria-hidden="true">Read</button></div></div></div></a><div class="_categoryButton_kfoew_34 _detailsRow_1803p_12 blogCategoryButton"><a href="/blog/category/developer" class="formRegular _categoryLink_1803p_1">For developers</a><div class="formRegular _blogDate_1803p_16">Dec 23, 2023</div></div><a tabindex="-1" href="/blog/account-subscription-history-solution-recipe-access-historical-subscription-and-suppression-data-for-all-profiles-in-a-klaviyo-account-with-this-python-script" class="_title_kfoew_38 semiBold h5">Account Subscription History Solution Recipe</a><div class="_excerpt_kfoew_11 p2">With this solution recipe, you will have the ability to use Klaviyo's Public API to populate your own Chrome extension.</div></div><div class="blogCard _blogCard_hdowa_6 _blogCard_kfoew_2 _light_kfoew_8"><a aria-label="Read" style="aspect-ratio:1.5 / 1" target="_self" href="/blog/solution-recipe-using-ai-and-apis-to-create-and-upload-images-to-your-klaviyo-account" class="_animationOutline_vezxe_1 animationOutline"><div class="_cardImageAnimation_kfoew_17 _imageContainer_vezxe_63 _isAnchor_vezxe_74"><div class="_imagePlaceholderContainer_kfoew_29 _light_kfoew_8"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 266 178" color="" style="height:1em" aria-label="Profile photo of author" class="_klaviyoLogo_kfoew_73 _featuredKlaviyoLogo_kfoew_5" role="img"><path fill="" d="M266 178H0V0h266l-55.835 89z"></path></svg></div><div class="_hoverContainer_vezxe_16"><div class="_hoverSlideContainer_vezxe_44"><button aria-label="" class="_light_1dvtu_41 _button_vezxe_59 _button_1dvtu_1" role="button" tabindex="-1" variant="primary" aria-hidden="true">Read</button></div></div></div></a><div class="_categoryButton_kfoew_34 _detailsRow_1803p_12 blogCategoryButton"><a href="/blog/category/developer" class="formRegular _categoryLink_1803p_1">For developers</a><div class="formRegular _blogDate_1803p_16">Dec 5, 2023</div></div><a tabindex="-1" href="/blog/solution-recipe-using-ai-and-apis-to-create-and-upload-images-to-your-klaviyo-account" class="_title_kfoew_38 semiBold h5">Solution Recipe: Using AI and APIs to create and upload images to your Klaviyo account</a><div class="_excerpt_kfoew_11 p2">How to update profile properties in Klaviyo using the Klaviyo Profiles API endpoint</div></div><div class="blogCard _blogCard_hdowa_6 _blogCard_kfoew_2 _light_kfoew_8"><a aria-label="Read" style="aspect-ratio:1.5 / 1" target="_self" href="/blog/solution-recipe-25-append-unappend-and-unset-custom-properties-programmatically-with-klaviyo" class="_animationOutline_vezxe_1 animationOutline"><div class="_cardImageAnimation_kfoew_17 _imageContainer_vezxe_63 _isAnchor_vezxe_74"><div class="_imagePlaceholderContainer_kfoew_29 _light_kfoew_8"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 266 178" color="" style="height:1em" aria-label="Profile photo of author" class="_klaviyoLogo_kfoew_73 _featuredKlaviyoLogo_kfoew_5" role="img"><path fill="" d="M266 178H0V0h266l-55.835 89z"></path></svg></div><div class="_hoverContainer_vezxe_16"><div class="_hoverSlideContainer_vezxe_44"><button aria-label="" class="_light_1dvtu_41 _button_vezxe_59 _button_1dvtu_1" role="button" tabindex="-1" variant="primary" aria-hidden="true">Read</button></div></div></div></a><div class="_categoryButton_kfoew_34 _detailsRow_1803p_12 blogCategoryButton"><a href="/blog/category/developer" class="formRegular _categoryLink_1803p_1">For developers</a><div class="formRegular _blogDate_1803p_16">Oct 24, 2023</div></div><a tabindex="-1" href="/blog/solution-recipe-25-append-unappend-and-unset-custom-properties-programmatically-with-klaviyo" class="_title_kfoew_38 semiBold h5">Solution Recipe: Append, unappend, and unset custom properties programmatically with Klaviyo</a><div class="_excerpt_kfoew_11 p2">How to update profile properties in Klaviyo using the Klaviyo Profiles API endpoint</div></div></div></div></div></div> </div> </div> </article> </div> <div class="backToTop" id="back-to-top" data-astro-cid-wegpedfq> <a aria-label="Back to top" class="link" href="#site-content" data-astro-cid-wegpedfq> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" color="white" style="height:1.8rem" data-astro-cid-wegpedfq="true"><path fill="white" d="M5.65 15.9c-.72-.73-1.89-.73-2.61 0s-.72 1.91 0 2.63l11.82 11.92c.72.73 1.89.73 2.61 0l11.82-11.92c.72-.73.72-1.91 0-2.63-.72-.73-1.89-.73-2.61 0l-8.67 8.74V.83h-3.7v23.81z"></path></svg> </a> </div> <script type="module">(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="93d30bad-e0a8-4514-a06b-132e8496538e",e._sentryDebugIdIdentifier="sentry-dbid-93d30bad-e0a8-4514-a06b-132e8496538e")}catch{}})();const n=document.getElementById("back-to-top"),d=document.getElementById("site-content");n&&d&&d.offsetHeight>2*window.innerHeight&&n.classList.add("enabled");
//# sourceMappingURL=BackToTop.astro_astro_type_script_index_0_lang.B4qlbOT9.js.map</script> <pre aria-hidden="true" class="rawMarkdown" id="raw-markdown" hidden># Solution Recipe 4: Extending Klaviyo’s Product Block Functionality
_Solution Recipes are tutorials to achieve specific objectives in Klaviyo. They can also help you master Klaviyo, learn new third-party technologies, and come up with creative ideas. They are written mainly for developers & technically-advanced users._
_**Note:** We do our best to make sure any code and API references are accurate and current when this is published, but you might need to update code and it’s always a best practice to leverage our[latest API versions](https://developers.klaviyo.com/en/reference/api_overview). If you have questions, feel free to hop over to our[Developer Community](https://community.klaviyo.com/groups/developer-group-64)._
```json
{
"_key": "c12490f6-0a8a-45e7-bd5c-77f2c7a599f2",
"_type": "steps",
"steps": [
{
"_key": "71d21e88-d311-4f22-9710-a00ae23bf155",
"_type": "step",
"body": [
{
"_key": "oR5rmzJRTTTXSt7VQbkB4s",
"_type": "block",
"children": [
{
"_key": "oR5rmzJRTTTXSt7VQbkB5Y",
"_type": "span",
"marks": [],
"text": "How to create a customizable Product Block-like Text block using Klaviyo’s native features and Django Template Tagging."
}
],
"markDefs": [],
"style": "normal"
}
],
"title": "What you’ll learn"
},
{
"_key": "b12dd2f0-85db-416e-8f7f-2251c7fea82d",
"_type": "step",
"body": [
{
"_key": "oR5rmzJRTTTXSt7VQbkB6E",
"_type": "block",
"children": [
{
"_key": "oR5rmzJRTTTXSt7VQbkB6u",
"_type": "span",
"marks": [],
"text": "The prebuilt Product Block provides some easy-to-use preset functionality, but it might not cover 100% of business/marketing cases."
}
],
"markDefs": [],
"style": "normal"
}
],
"title": "Why it matters"
},
{
"_key": "42783531-c94c-49cc-953c-c16e89f6a16c",
"_type": "step",
"body": [
{
"_key": "oR5rmzJRTTTXSt7VQbkB7a",
"_type": "block",
"children": [
{
"_key": "oR5rmzJRTTTXSt7VQbkB8G",
"_type": "span",
"marks": [],
"text": "High"
}
],
"markDefs": [],
"style": "normal"
}
],
"title": "Level of sophistication"
}
]
}
```
## Introduction
Klaviyo’s template editor allows you to use a preset block called the _Product Block_. This block lets you choose from a selection of filtered/weighted _Product Feeds_ which pull from your _Catalog_. In addition to this, Klaviyo provides a range of [default Django](https://docs.djangoproject.com/en/3.1/ref/templates/builtins/) and [custom built](https://help.klaviyo.com/hc/en-us/articles/115005084927-Template-Tags-and-Variable-Syntax) template tagging syntax to let you customize the look, feel and personalization of our email templates.
## Challenge
While the default setup and options for the Product Block work for most businesses, there are a handful of use-cases which can warrant a more customized approach. Because of the nature of the default block and the need to support its functionality at scale, customization options are relatively limited.
_Note: this block setup requires custom html and template tagging/Django. As such, its troubleshooting is **not** supported by our Support team. Please take this into consideration if you plan to use this approach in your account._
## Ingredients
- 1 Catalog — Synced via one of [our ecommerce integrations](https://help.klaviyo.com/hc/en-us/categories/115000032731-Ecommerce-Integrations) or using our Custom Catalog feature
- 1 [Product Feed](https://help.klaviyo.com/hc/en-us/articles/115005082787-How-to-Use-Product-Feeds-and-Recommendations#create-a-product-feed1) — A filtered list of products that optionally can be weighted by various factors
- 1 [Product Block](https://help.klaviyo.com/hc/en-us/articles/115000219092) — A block in an email template that’s able to natively access our Product Feeds
- 1 scoop template tagging experience
- 1 pinch HTML formatting experience
## Prerequisites
This recipe requires a relatively good understanding of template tag usage/structure, email HTML design, and the concepts of conditional logic and loop iteration. Beyond these, most of the tools you’ll need are likely already in the platform!
## Quick tips
Before we get started, here are some quick tips for playing around with data in templates.
### Previewing objects
There are a few data objects being used in the examples below but we won’t go into detail about all of the existing data on each of these objects. Instead, you can preview the available data by just printing out that object on the template itself after it’s initialized. For example, if you want to see all of the available fields on the **catalog_item** initialized by a Catalog Lookup, you can print it out in a template by adding the tag:
```json
{
"_key": "e1e480da-cafe-40d3-9f06-2866080d3d6d",
"_type": "codeSnippet",
"code": "{{ catalog_item }}",
"language": "text",
"theme": "github-light"
}
```
by itself within that Catalog Lookup scope (_i.e._ between the **{% catalog %}** and **{% endcatalog %}** tags). After adding this tag, save the block and preview it to see a full list of available fields for that object.
### Troubleshooting
The steps in this recipe are laid out incrementally so you can see what each step adds or changes from the previous one. When setting up this customized Product Block (or any custom HTML content within a template), make sure to change one thing at a time, saving and previewing as you progress. If something was mis-typed in your setup, it will be easier to catch the error if fewer things changed from the previous working version.
## Instructions
### Step 1: Set up a Catalog in Klaviyo
Integrate with one of our [prebuilt ecommerce integrations](https://help.klaviyo.com/hc/en-us/categories/115000032731-Ecommerce-Integrations) or reach out to our Support Team for instructions on how to get set up with our Custom Catalog feature. You can check if you have items in your Catalog by [navigating to the Catalog landing page in your account](https://klaviyo.com/catalog/items).
_Context: This step guarantees we have actual items to work with in the final template. If the catalog is empty, this customized “Product Block” won’t have anything to display._
### Step 2: Set up a Product Feed
Head to the [Product Feed](https://help.klaviyo.com/hc/en-us/articles/115005082787-How-to-Use-Product-Feeds-and-Recommendations#create-a-product-feed1) section of the account and set up the type of feed you’d like to display with this custom block. For the example outlined in this recipe, let’s call this feed “**ExampleProductFeed**”.
_Context: Product Feeds generate a per-profile weighted list of items from the Catalog on your account and the chosen parameters/metric(s) on the feed’s settings. Without this, we won’t know which items to show the person receiving the final email._
### Step 3: Add a Product Block to a template
Drag a [Product Block](https://help.klaviyo.com/hc/en-us/articles/115000219092) into your template and select the Product Feed you made in the previous step.
_Context: Product Blocks themselves play a special role in this setup. In order for a Product Feed’s information to be accessible within a template, that feed must be “primed” for that template, basically the template needs to know what feed to load before attempting to render itself. To do this, we can take advantage of our native Product Block which allows you to select a Product Feed and is designed to prime that feed for the email._
### Step 4: Set the Product Block visibility to False
Set the [show/hide block feature](https://help.klaviyo.com/hc/en-us/articles/115005258208-How-to-Show-or-Hide-Template-Blocks-Based-on-Dynamic-Variables) logic for this Product Block to **False**.
_Context: We need a default Product Block in this email during template render time in order to “prime” the Product Feed we want to use. That said, we don’t want both the default and customized Product Blocks to appear in the final email sent to the recipient, we only need it to “prime” the feed when the template renders. Our show/hide block feature evaluates before send time so anything evaluating to false will be removed from the final email (rather than just hidden). We can easily set this default block’s display conditions to evaluate as false and guarantee it isn’t included in the final email by just setting its display condition to **False**._
### Step 5: Add a Text Block to a template
Drag a Text Block into your template below the Product Feed.
_Context: Text Blocks provide a lot of customization power in our templates by not enforcing much default formatting and allowing you to access the “source” of the block to add HTML and Django template tagging. We’ll be using this feature of these blocks to create our own Product Block._
### Step 6: Add an HTML table within an HTML table to the Text Block
Add a basic HTML table within another HTML table to your Text Block:
```json
{
"_key": "cdaea3f5-b88c-4fd1-8f27-3ac1848ed053",
"_type": "codeSnippet",
"code": "<table>\n <tbody>\n <tr>\n <td>\n <table>\n <tbody>\n <tr>\n <th></th>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n</table>",
"language": "text",
"theme": "github-light"
}
```
_Context: Our Product Block displays items in a grid using a number of rows and columns. In order to mimic this behaviour, we can use an HTML table. For ease of formatting later, we’re using 2 nested tables. One for the general structure of the grid of items and one for each item in that grid (in order to display that item’s information)._
### Step 7: Use a “with” statement to reference the Product Feed
Add a [with statement](https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#with) so we can refer to the primed Product Feed with an easy name (eg. “product_feed”). Make sure to close the with statement with an “endwith”:
```json
{
"_key": "9307ee5e-cfcc-42a5-9dd9-836b6430ce0b",
"_type": "codeSnippet",
"code": "{% with product_feed=feeds.ExampleProductFeed %}\n<table>\n <tbody>\n <tr>\n <td>\n <table>\n <tbody>\n <tr>\n <th></th>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n</table>\n{% endwith %}",
"language": "text",
"theme": "github-light"
}
```
_Context: Now that we have a general structure to work within, we need to somehow reference the Product Feed we primed earlier. We can do this by calling it as a variable using a “with” statement. “feeds” in this case is a reserved name which contains a reference to all primed feeds for this template._
### Step 8: Pull in the name of the first item in the feed
Use a lookup on **product_feed** to get the ID of the first item, then use that ID to look up the same item in the Catalog using a [Catalog Lookup](https://help.klaviyo.com/hc/en-us/articles/360004785571-The-Catalog-Lookup-Feature) and pull that item’s name into the HTML table. If you preview the template now, you should be able to see the name of the first item in the selected Product Feed.
```json
{
"_key": "1d32cf8b-6e2a-4fc6-9ccb-4dca16e3cf3e",
"_type": "codeSnippet",
"code": "{% with product_feed=feeds.ExampleProductFeed %}\n<table>\n <tbody>\n <tr>\n <td>{% catalog product_feed.0.item_id %}\n <table>\n <tbody>\n <tr>\n <th>{{ catalog_item.title }}</th>\n </tr>\n </tbody>\n </table>\n {% endcatalog %}</td>\n </tr>\n </tbody>\n</table>\n{% endwith %}",
"language": "text",
"theme": "github-light"
}
```

_Context: The Product Feed contains a weighted list of items for a given profile but only certain information about these items based on what our default Product Block uses. To access all of the information about a given item from the Catalog, we need to look that item up based on its ID. “item_id” above is a reserved name for the ID of a given item in a Product Feed. The Catalog Lookup is added inside the exterior table but on the outside of the interior table since each interior table should represent a single item._
### Step 9: Add a “for loop”
Add a [for loop](https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#for) to the outside of the “table data” (<td>) around the interior table and refer to each item in the Product Feed dynamically:
```json
{
"_key": "e440d5ce-2273-44fb-803a-ca53913301bd",
"_type": "codeSnippet",
"code": "{% with product_feed=feeds.ExampleProductFeed %}\n<table>\n <tbody>\n <tr>{% for item in product_feed %}\n <td>{% catalog item.item_id %}\n <table>\n <tbody>\n <tr>\n <th>{{ catalog_item.title }}</th>\n </tr>\n </tbody>\n </table>\n {% endcatalog %}</td>\n {% endfor %}</tr>\n </tbody>\n</table>\n{% endwith %}",
"language": "text",
"theme": "github-light"
}
```

_Context: We have the name of one item displaying but ideally we want to display more, in this example let’s say 6. Instead of creating 6 copies of the same interior table and catalog lookup but referring to the first 6 items, let’s use a for loop instead. We want to display these items side-by-side so instead of just wrapping the interior table itself, we want to wrap the table data element around that table. Each table data (or table header) element creates a new column in an HTML table. In other words, creating table data elements in a loop will generate side-by-side items in the table._
### Step 10: Calculate columns/rows
Add some new variables to the with statement for the number of items we want and the number of items per column. In this case, the total number of items we want to display is achieved by “[slicing](https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#slice)” the product_feed to that number of items (6 in this example). The number of columns per row is achieved by setting “columns” as a variable (3 in this example) and toggling a new row when we hit that number:
```json
{
"_key": "bfc84f68-3a25-458f-b73f-a57923b039cd",
"_type": "codeSnippet",
"code": "{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:\":6\" %}\n<table>\n <tbody>\n <tr>{% for item in product_feed %}\n <td>{% catalog item.item_id %}\n <table>\n <tbody>\n <tr>\n <th>{{ catalog_item.title }}</th>\n </tr>\n </tbody>\n </table>\n {% endcatalog %}</td>\n {% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}\n {% endfor %}</tr>\n </tbody>\n</table>\n{% endwith %}",
"language": "text",
"theme": "github-light"
}
```

_Context: If you preview the table now, you’ll see 6 item names, side-by-side, likely going off the edge of the email template. To avoid this, we need to add some logic to handle wrapping items onto the next line. The wrapping logic here takes advantage of a for loop counter variable provided by Django ([foorloop.counter](https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#for)) and a boolean expression for whether the provided number is divisible by another ([divisibleby](https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#divisibleby)) and wraps these as an if statement around an end/start of a new table row element (<tr>)._
### Step 11: Pull in images
Now that we have some basic structure down, let’s flesh out what gets displayed. First, let’s pull in an image for each product by adding another table row above the title row:
```json
{
"_key": "e5fdcfd3-9173-4b16-a5e5-ff23caa9b36d",
"_type": "codeSnippet",
"code": "{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:\":6\" %}\n<table>\n <tbody>\n <tr>{% for item in product_feed %}\n <td>{% catalog item.item_id %}\n <table>\n <tbody>\n <tr>\n <th><a href=\"{{ catalog_item.url }}\"><img alt=\"{{ catalog_item.title }}\" src=\"{{ catalog_item.featured_image.thumbnail.src }}\" /> </a></th>\n </tr>\n <tr>\n <th>{{ catalog_item.title }}</th>\n </tr>\n </tbody>\n </table>\n {% endcatalog %}</td>\n {% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}\n {% endfor %}</tr>\n </tbody>\n</table>\n{% endwith %}",
"language": "text",
"theme": "github-light"
}
```

### Step 12: Pull in prices
Let’s add in some prices for each item. Pull the price number in from the catalog and format it in the Account or email’s native currency using the “currency_format” tag and “[floatformat](https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#floatformat)” filter:
```json
{
"_key": "e950ed10-fb3b-4344-94dc-4aad6a02dfee",
"_type": "codeSnippet",
"code": "{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:\":6\" %}\n<table>\n <tbody>\n <tr>{% for item in product_feed %}\n <td>{% catalog item.item_id %}\n <table>\n <tbody>\n <tr>\n <th><a href=\"{{ catalog_item.url }}\"><img alt=\"{{ catalog_item.title }}\" src=\"{{ catalog_item.featured_image.thumbnail.src }}\" /> </a></th>\n </tr>\n <tr>\n <th>{{ catalog_item.title }}</th>\n </tr>\n <tr>\n <td>\n <p>\n {% if catalog_item.metadata|lookup:\"$price\" %}\n {% currency_format catalog_item.metadata|lookup:\"$price\"|floatformat:2 %}\n {% elif catalog_item.metadata|lookup:\"price\" %}\n {% currency_format catalog_item.metadata|lookup:\"price\"|floatformat:2 %}\n {% endif %}\n </p>\n </td>\n </tr>\n </tbody>\n </table>\n {% endcatalog %}</td>\n {% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}\n {% endfor %}</tr>\n </tbody>\n</table>\n{% endwith %}",
"language": "text",
"theme": "github-light"
}
```

### Step 13: Add a button
The image above is linked, but buttons can provide a more clear call-to-action so let’s add one of those to each item
```json
{
"_key": "0c08fa15-269c-4f99-8675-60340e70a123",
"_type": "codeSnippet",
"code": "{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:\":6\" %}\n<table>\n <tbody>\n <tr>{% for item in product_feed %}\n <td>{% catalog item.item_id %}\n <table>\n <tbody>\n <tr>\n <th><a href=\"{{ catalog_item.url }}\"><img alt=\"{{ catalog_item.title }}\" src=\"{{ catalog_item.featured_image.thumbnail.src }}\" /> </a></th>\n </tr>\n <tr>\n <th>{{ catalog_item.title }}</th>\n </tr>\n <tr>\n <td>\n <p>\n {% if catalog_item.metadata|lookup:\"$price\" %}\n {% currency_format catalog_item.metadata|lookup:\"$price\"|floatformat:2 %}\n {% elif catalog_item.metadata|lookup:\"price\" %}\n {% currency_format catalog_item.metadata|lookup:\"price\"|floatformat:2 %}\n {% endif %}\n </p>\n </td>\n </tr>\n <tr>\n <td>\n <p><a href=\"{{ catalog_item.url }}\">Buy Now</a></p>\n </td>\n </tr>\n </tbody>\n </table>\n {% endcatalog %}</td>\n {% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}\n {% endfor %}</tr>\n </tbody>\n</table>\n{% endwith %}",
"language": "text",
"theme": "github-light"
}
```

_Context: A button in email HTML is basically a link in a styled block element (eg. a paragraph or div). The above example starts with a basic link in a paragraph element, we’ll style it later._
### Step 14: Add some styling
All the data and structure are there now, but you may notice a few things that seem off:
1. If you product images that aren’t a standardized size/shape, they will appear differently and shift other elements of each product in the table (eg. shifting the names up and down)
2. If your product names vary considerably in length, they may shift other product elements up and down
3. The item price isn’t centered
4. The “buy now button” isn’t a button and isn’t centered
To fix these formatting concerns, we need to add some CSS styles and HTML attributes to some of these elements. You can format these however you like at this point, but we’ve provided an example of how to do this with the customized Product Block we’ve been building so far. Add a class to each element that you’d like to format and at the top of your Product Block code, add a style element with some formatting for each of those classes (note, some of the styles are tagged with “[!important](https://www.w3schools.com/css/css_important.asp)” to override any default settings you have on your template for things like link formatting):
```json
{
"_key": "4f62ebc9-43a4-46f3-9d76-20c89dc43e7c",
"_type": "codeSnippet",
"code": "{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:\":6\" %}\n\n<style type=\"text/css\">\n .custom_product_block_table {\n margin-left:auto; \n margin-right:auto;\n width: 100%;\n }\n .custom_product_block_text {\n text-align:center;\n }\n .custom_product_block_image_cell {\n height:120px;\n }\n .custom_product_block_image {\n max-height:120px;\n max-width:180px;\n }\n .custom_product_block_title_cell {\n height:60px;\n vertical-align: text-top;\n text-align:center;\n }\n .custom_product_block_price_cell {\n height:20px;\n vertical-align: text-top;\n }\n .custom_product_block_button {\n display: inline-block;\n padding-top:10px;\n padding-bottom:10px;\n font-size:16px;\n border-radius:5px;\n padding-left:10px;\n padding-right:10px;\n background-color:#11CC50;\n font-family:\"Helvetica Neue\", Arial;\n text-decoration: none !important;\n color:#FFFFFF !important;\n font-weight:bold !important;\n }\n</style>\n\n<table class=\"custom_product_block_table\">\n <tbody>\n <tr>{% for item in product_feed %}\n <td>{% catalog item.item_id %}\n <table class=\"custom_product_block_table\">\n <tbody>\n <tr>\n <th><a href=\"{{ catalog_item.url }}\"><img alt=\"{{ catalog_item.title }}\" class=\"custom_product_block_image\" src=\"{{ catalog_item.featured_image.thumbnail.src }}\" /> </a></th>\n </tr>\n <tr>\n <th class=\"custom_product_block_title_cell\">{{ catalog_item.title }}</th>\n </tr>\n <tr>\n <td class=\"custom_product_block_price_cell\">\n <p class=\"custom_product_block_text\">\n {% if catalog_item.metadata|lookup:\"$price\" %}\n {% currency_format catalog_item.metadata|lookup:\"$price\"|floatformat:2 %}\n {% elif catalog_item.metadata|lookup:\"price\" %}\n {% currency_format catalog_item.metadata|lookup:\"price\"|floatformat:2 %}\n {% endif %}\n </p>\n </td>\n </tr>\n <tr>\n <td>\n <p class=\"custom_product_block_text\"><a href=\"{{ catalog_item.url }}\" class=\"custom_product_block_button\">Buy Now</a></p>\n </td>\n </tr>\n </tbody>\n </table>\n {% endcatalog %}</td>\n {% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}\n {% endfor %}</tr>\n </tbody>\n</table>\n{% endwith %}",
"language": "text",
"theme": "github-light"
}
```

_Context: You’ll notice some of the styling tricks used in the elements above are used to account for variances in information stored for each item. For example, the table header and table data elements used for the item “title” and “price” are locked to a certain height minimum and aligned to the top of their given cell. This allows us to account for variances in the length of an item’s title or the inclusion of multiple prices while still making the text appear aligned with other items on the same row in the template._
_💡 NOTE: The basic example styling above does not necessarily account for all nuances of some inbox services (like Outlook) which do not respect certain style properties (especially on images). It is highly recommended that you standardize the size of all of your catalog images to squares with a width/height of ~200px to avoid any potential issues or at least add additional styling for these cases if you are unable to standardize these images._
## Bonus: Manual product selection
Dynamic recommendations are great, but what if you want to select products manually from the catalog? You may notice that while you can manually select items in our default Product Block, the customized one built in this recipe still relies on the name of a Product Feed in order to work. In order to get around this requirement there’s one aspect of this block we can take advantage of: the for loop iterates through a list of products and looks up their IDs in the catalog. Instead, we can provide a list of IDs we already know and just look those up in the catalog. To do this, you’ll need to update the “with” statement and the beginning of the tables from this
```json
{
"_key": "6f88ee96-0fa7-486c-82cc-4110d1c1e21d",
"_type": "codeSnippet",
"code": "{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:\":6\" %}\n...\n <tbody>\n <tr>{% for item in product_feed %}\n <td>{% catalog item.item_id %}\n <table>\n...",
"language": "text",
"theme": "github-light"
}
```
to something like this (assuming these product IDs are 123, 456, and 789):
```json
{
"_key": "fffe48fd-443f-41dd-807b-74d205a65db5",
"_type": "codeSnippet",
"code": "{% with columns=3 product_feed=\"123,456,789\" %}\n...\n <tbody>\n <tr>{% for item_id in product_feed|split:\",\" %}\"\n <td>{% catalog item_id %}\n <table>\n...",
"language": "text",
"theme": "github-light"
}
```
This example
1. replaces the “product_feed” with a comma-separated string of item IDs
2. uses a “[split](https://help.klaviyo.com/hc/en-us/articles/115005084927-Template-Tags-and-Variable-Syntax#basic-filters-15)” filter to turn that string into a list
3. loops through each ID in that list for the catalog lookup
## Bonus: Sale prices vs. regular prices
If you have a setup that includes both sale and regular prices for items, you can add some formatting that changes how these display. For example, if a sale price exists and is lower than the regular price, you might want to show the regular price with a strikethrough and the sale price. This can be achieved using some if statements like in the example below:
```json
{
"_key": "647bd197-dee1-4252-942b-bb651128093b",
"_type": "codeSnippet",
"code": "...\n <tr>\n <td class=\"custom_product_block_price_cell\">\n {% with price=catalog_item.metadata.price|floatadd:\"0\" compare_at_price=catalog_item.metadata.compare_at_price|floatadd:\"0\" %}\n <p class=\"custom_product_block_text\">\n {% if compare_at_price and price < compare_at_price %}\n <strike>{% currency_format compare_at_price|floatformat:2 %}</strike><br>\n {% currency_format price|floatformat:2 %}\n {% else %}\n {% currency_format price|floatformat:2 %}\n {% endif %}\n </p>\n {% endwith %}\n </td>\n </tr>\n...",
"language": "text",
"theme": "github-light"
}
```
We use the filter “[floatadd](https://help.klaviyo.com/hc/en-us/articles/115005084927-Template-Tags-and-Variable-Syntax#floatadd16)” here with 0 to ensure the price being use is interpreted as a float rather than a string for the comparison. This example also assumes there is a metadata property called “compare_at_price” for catalog items, the name of this property may vary depending on your integration or custom catalog setup.
## Impact
Klaviyo’s default product block can provide a lot of utility without the need for complex setup, but sometimes you just need to make your own minor tweaks and branding updates outside of the capabilities of this block. Using the setup described here, your Product Blocks can be more on-brand and customized to your businesses particular style.
</pre> <div class="light klaviyoForm"> <div class="grid"> <div class="form klaviyo-form-WSHs39"></div> </div> </div> <script id="meta-post-schema" type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.klaviyo.com/blog/solution-recipe-4-extending-klaviyos-product-block-functionality"},"headline":"Solution Recipe 4: Extending Klaviyo’s Product Block Functionality - Klaviyo","description":"","image":["https://www.klaviyo.com"],"publisher":{"@type":"Organization","name":"Klaviyo","url":"https://www.klaviyo.com","logo":{"@type":"ImageObject","url":"https://www.klaviyo.com/static/klaviyo-social-share-image.jpg"}},"datePublished":"2021-08-17T22:58:00.000Z","dateModified":"2024-08-23T20:04:02.000Z","mentions":[],"author":[{"@type":"Person","name":"Walid Bendris","url":"https://www.klaviyo.com/blog/author/walid-bendris"}]}</script> </main> <astro-island uid="zKHM" prefix="r22" component-url="/blog/_astro/universal-footer.MoiaBMrG.js" component-export="UniversalFooter" renderer-url="/blog/_astro/client.IaDn9qiQ.js" props="{"slot":[0,"footer"],"backgroundColor":[0,"cotton"],"basePathType":[0,"path"],"copyrightMenuItems":[1,[[0,{"_key":[0,"17abcf69-b179-46c9-b396-e55650fc4c0d"],"_type":[0,"basicMenuItem"],"image":[0,null],"label":[0,"Site Map"],"url":[0,"https://www.klaviyo.com/sitemap"]}],[0,{"_key":[0,"32061d2c-7c51-4afc-9455-b72f5c780aa4"],"_type":[0,"basicMenuItem"],"image":[0,null],"label":[0,"Terms and Privacy"],"url":[0,"https://www.klaviyo.com/legal"]}],[0,{"_key":[0,"6769ee57-be59-4a85-b543-312886464262"],"_type":[0,"basicMenuItem"],"image":[0,null],"label":[0,"Security"],"url":[0,"https://www.klaviyo.com/security"]}],[0,{"_key":[0,"20505562-2618-40f9-8766-b236be64dec2"],"_type":[0,"basicMenuItem"],"image":[0,null],"label":[0,"Trust"],"url":[0,"https://www.klaviyo.com/trust"]}],[0,{"_key":[0,"78d332a4-7e5f-4902-8902-3b3d2d66aaec"],"_type":[0,"basicMenuItem"],"image":[0,null],"label":[0,"Intellectual Property Notices"],"url":[0,"https://www.klaviyo.com/legal/intellectual-property-notices"]}]]],"langCode":[0,"en-US"],"menuItems":[1,[[0,{"_key":[0,"97db08c0-b948-4bed-88f9-74d3f73b0e25"],"_type":[0,"menuColumn"],"childItems":[1,[[0,{"_key":[0,"939451e8-a827-47f6-b4ee-a4da7478ec65"],"_type":[0,"menuItem"],"featured":[0,true],"image":[0,null],"label":[0,"About Klaviyo"],"url":[0,"/about"]}],[0,{"_key":[0,"793c5035-2934-4709-a0ff-90c73159bd6b"],"_type":[0,"menuItem"],"featured":[0,true],"image":[0,null],"label":[0,"Newsroom"],"url":[0,"/newsroom"]}],[0,{"_key":[0,"9be65870-53e4-4a7c-9c61-e86bed953695"],"_type":[0,"menuItem"],"featured":[0,true],"image":[0,null],"label":[0,"Investor relations"],"url":[0,"https://investors.klaviyo.com/overview/default.aspx"]}],[0,{"_key":[0,"ef3cec4c-5d0c-476b-9097-dc1e771af64c"],"_type":[0,"menuItem"],"featured":[0,true],"image":[0,null],"label":[0,"Contact us"],"url":[0,"/contact-us"]}],[0,{"_key":[0,"8fbaf3c9-0f5c-4476-a464-2f37e02bc7a4"],"_type":[0,"menuItem"],"featured":[0,true],"image":[0,null],"label":[0,"Careers"],"url":[0,"/careers"]}]]],"eyebrow":[0,"Company"]}],[0,{"_key":[0,"5595fdff-449b-4e36-ae9b-9e57fe50e3cc"],"_type":[0,"menuColumn"],"childItems":[1,[[0,{"_key":[0,"7065e258-aaac-4ce7-8bb0-b7affc2ad23b"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"B2C CRM overview"],"url":[0,"/platform"]}],[0,{"_key":[0,"49129a55-0476-48e7-9e37-c7e1817394c5"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"Klaviyo AI (K:AI)"],"url":[0,"/solutions/ai"]}],[0,{"_key":[0,"b969e85d-4baf-44af-9b65-e17f45c45390"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Klaviyo Marketing"],"url":[0,"/solutions/marketing-automation"]}],[0,{"_key":[0,"0cb52fda-3fb2-43bc-b94e-2a6af63eac04"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"Klaviyo Service"],"url":[0,"/solutions/customer-service"]}],[0,{"_key":[0,"4f374309-0982-495d-8010-fa775e53bc58"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Klaviyo Analytics"],"url":[0,"/solutions/analytics"]}],[0,{"_key":[0,"a9788cff-08d6-4be5-b4cf-9736a467f966"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Klaviyo Data Platform"],"url":[0,"/solutions/customer-data-platform"]}]]],"eyebrow":[0,"Platform"]}],[0,{"_key":[0,"7be78a3e-7e58-4e78-86b2-afb7490c76ad"],"_type":[0,"menuColumn"],"childItems":[1,[[0,{"_key":[0,"34705ba9-10bf-4160-98c2-c05776fc7363"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"Omnichannel marketing"],"url":[0,"https://www.klaviyo.com/solutions/omnichannel"]}],[0,{"_key":[0,"2d91cdc1-3241-4ff4-ac2c-465ffd03f148"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Email marketing"],"url":[0,"/products/email-marketing"]}],[0,{"_key":[0,"13817015-4955-402a-be3b-f702ba24ce41"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"SMS marketing"],"url":[0,"/products/sms-marketing"]}],[0,{"_key":[0,"c8f1d0a8-ce2a-4c0c-ba7f-5f15ade32b36"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"RCS for Business"],"url":[0,"https://www.klaviyo.com/products/sms-marketing/rcs"]}],[0,{"_key":[0,"4699d8bf-065e-4555-a16c-488ff51b1b8b"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Mobile app marketing"],"url":[0,"/products/mobile-app-marketing"]}],[0,{"_key":[0,"c0a3d156-125a-439d-b3b8-8e00fe383d5f"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"WhatsApp marketing"],"url":[0,"https://www.klaviyo.com/products/whatsapp"]}],[0,{"_key":[0,"ed277c7f-3191-44c2-983a-13ccb9eb13e4"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"Social marketing"],"url":[0,"/products/social"]}]]],"eyebrow":[0,"Channels"]}],[0,{"_key":[0,"e4823e01-b956-4102-ac13-0b105a8a3691"],"_type":[0,"menuColumn"],"childItems":[1,[[0,{"_key":[0,"15ad806a-5789-43ea-b214-c5de89b56bc5"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"poppy"],"text":[0,"New"]}],"image":[0,null],"label":[0,"Marketing Agent"],"url":[0,"/solutions/ai/marketing-agent"]}],[0,{"_key":[0,"82515920-58e3-4a8c-8067-26c249f7067b"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"Customer Agent"],"url":[0,"/solutions/ai/customer-agent"]}],[0,{"_key":[0,"76782dd2-dc87-4c95-a07a-90a406bf1e43"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"Customer Hub"],"url":[0,"/products/customer-experience-hub"]}],[0,{"_key":[0,"0e429aaa-34cd-48c5-b50f-fd566d737ef3"],"_type":[0,"menuItem"],"badge":[0,{"color":[0,"poppy"],"text":[0,"NEW"]}],"image":[0,null],"label":[0,"Helpdesk"],"url":[0,"/products/helpdesk"]}],[0,{"_key":[0,"754107e8-4dbb-4c8e-8623-3efc56763e37"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Marketing Analytics"],"url":[0,"/products/marketing-analytics"]}],[0,{"_key":[0,"41dfbb70-d7ce-47b6-b261-4304cb421263"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Advanced Klaviyo Data Platform"],"url":[0,"/products/advanced-cdp"]}],[0,{"_key":[0,"f084200f-a877-4b93-855f-7aeebaaa5840"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Web forms"],"url":[0,"/features/web-forms"]}],[0,{"_key":[0,"4c940fa5-2671-4361-ab03-9f5319e562ca"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Email templates"],"url":[0,"/features/templates"]}]]],"eyebrow":[0,"Top Products + Features"]}],[0,{"_key":[0,"fcb7d3a9-be70-436a-bf6c-7e067d03cce5"],"_type":[0,"menuColumn"],"childItems":[1,[[0,{"_key":[0,"a27ba300-1ec3-4656-8bc5-1aa3200aa78c"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Enterprise"],"url":[0,"/enterprise"]}],[0,{"_key":[0,"d225e027-904f-465d-abfb-cb2719f71da0"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Agency and tech partners"],"url":[0,"/partners"]}],[0,{"_key":[0,"6966fc09-c537-4701-b851-7ede3d29068b"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Developers"],"url":[0,"https://developers.klaviyo.com/en"]}],[0,{"_key":[0,"3544c8b5-cb6a-4dc6-a253-f7284c35ba0e"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Retail and ecommerce"],"url":[0,"/industry/retail"]}],[0,{"_key":[0,"d655bf29-0bce-43cd-823c-b82acac5b7ba"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Restaurant marketing"],"url":[0,"/industry/restaurants"]}],[0,{"_key":[0,"cf0af53f-a8da-4afa-9c3e-0362285562e7"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Wellness"],"url":[0,"/industry/wellness"]}]]],"eyebrow":[0,"Klaviyo for"]}],[0,{"_key":[0,"234a54cc-70e9-4b74-af9a-c8740b252b59"],"_type":[0,"menuColumn"],"childItems":[1,[[0,{"_key":[0,"12a80d13-39ae-41b8-b22b-4e368cfd7a9d"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Klaviyo vs. Klaviyo alternatives"],"url":[0,"/compare"]}],[0,{"_key":[0,"aed2f48e-65b4-4b9d-98f4-4b26824f7397"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Klaviyo vs. Mailchimp"],"url":[0,"/compare/klaviyo-vs-mailchimp"]}],[0,{"_key":[0,"9c8bd734-d821-4b9f-848a-297b63703e3b"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Klaviyo vs. Postscript"],"url":[0,"/compare/klaviyo-vs-postscript"]}],[0,{"_key":[0,"63d4d539-3d11-45f5-8607-b5e1b0a3abee"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Klaviyo vs. Attentive"],"url":[0,"/compare/klaviyo-vs-attentive"]}],[0,{"_key":[0,"10b5ef80-b8bf-4823-b835-6d22be20e7d8"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Klaviyo vs. Salesforce"],"url":[0,"/compare/klaviyo-vs-salesforce-marketing-cloud"]}],[0,{"_key":[0,"79589906-cc05-409f-b5aa-a64e30b1aece"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Klaviyo vs. Listrak"],"url":[0,"/compare/klaviyo-vs-listrak"]}]]],"eyebrow":[0,"Why Klaviyo"]}],[0,{"_key":[0,"7a59f32c-629d-47c3-bd88-bb8d1fe6a38f"],"_type":[0,"menuColumn"],"childItems":[1,[[0,{"_key":[0,"b835918c-0ded-4134-83ab-b8af991bda05"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Marketing resources"],"url":[0,"/marketing-resources"]}],[0,{"_key":[0,"8d708df8-8b9f-4fdd-81ba-007d1b70caab"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Marketing campaign calendar"],"url":[0,"/marketing-resources/marketing-campaign-calendar"]}],[0,{"_key":[0,"ca4f2800-3708-4268-92ad-749271611caa"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Marketing glossary"],"url":[0,"/glossary"]}],[0,{"_key":[0,"a147f679-8833-4343-94d9-c1d77b65397a"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Subject line generator"],"url":[0,"/tools/email-subject-line-generator"]}],[0,{"_key":[0,"dcc90778-c9c1-4498-b8e9-4a6c039945ab"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"ROI calculator"],"url":[0,"/tools/roi-calculator"]}],[0,{"_key":[0,"8d3f7c02-2db7-4fe5-920d-d9bf4ae46f31"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Case studies"],"url":[0,"/customers"]}]]],"eyebrow":[0,"Tools + Resources"]}],[0,{"_key":[0,"5e91ab48-7b94-4c52-9afe-223ed8629852"],"_type":[0,"menuColumn"],"childItems":[1,[[0,{"_key":[0,"636ad567-2a32-4202-b666-190c418d3113"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Portfolio"],"url":[0,"/features/portfolio"]}],[0,{"_key":[0,"ebba7a8f-02ad-4c7c-aa43-5f21c9ed2e19"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Apps and Integrations"],"url":[0,"/platform-integrations"]}],[0,{"_key":[0,"94b73b1b-a168-4232-8174-b8353fdb1278"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Features"],"url":[0,"/features"]}],[0,{"_key":[0,"e4acb72b-4e28-42dc-8297-7bafb45b80db"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"What's new"],"url":[0,"/whats-new"]}],[0,{"_key":[0,"9f892b6d-9321-4805-88cb-db10ef527640"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Events"],"url":[0,"/events"]}],[0,{"_key":[0,"6c88346f-3391-44e6-bda6-aff354a9aa4e"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Help Center"],"url":[0,"https://help.klaviyo.com/hc/en-us"]}],[0,{"_key":[0,"0169a509-1288-482e-baae-1fef728e0a4c"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Academy"],"url":[0,"https://academy.klaviyo.com/en-us"]}],[0,{"_key":[0,"5bc79fa0-9651-4427-88ad-22d3db4a951a"],"_type":[0,"menuItem"],"image":[0,null],"label":[0,"Community"],"url":[0,"https://community.klaviyo.com/"]}]]],"eyebrow":[0,"Explore more"]}]]],"sites":[1,[[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-de-DE"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo vereint Marketing und Kundenservice in einem KI-basierten B2C-CRM. Testen Sie unsere Omnichannel-Marketingsoftware, unterstützt von K:AI-Agents, um personalisierte Erlebnisse über E-Mail-Marketing, WhatsApp und weitere Kanäle bereitzustellen."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"localeOverride":[0,"de"],"separator":[0,"-"],"title":[0,"Klaviyo DE"],"isoCode":[0,"de"],"isoName":[0,"German"],"locale":[0,"de-DE"],"marketingSitePath":[0,"de"],"name":[0,"German (Germany)"],"nativeName":[0,"Deutsch (Deutschland)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-en-AU"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifies marketing and service with its AI-first B2C CRM. Try out our omnichannel marketing software, powered by K:AI agents to deliver personalised experiences across email marketing, WhatsApp, and more."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo AU"],"isoCode":[0,"en"],"isoName":[0,"English"],"locale":[0,"en-AU"],"marketingSitePath":[0,"au"],"name":[0,"English (Australia)"],"nativeName":[0,"English (Australia)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-en-GB"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifies marketing and service with its AI-first B2C CRM. Try out omnichannel marketing software, powered by K:AI agents to deliver personalised experiences across email marketing, WhatsApp, and more."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo UK"],"isoCode":[0,"en"],"isoName":[0,"English"],"locale":[0,"en-GB"],"marketingSitePath":[0,"uk"],"name":[0,"English (United Kingdom)"],"nativeName":[0,"English (United Kingdom)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-en-SG"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifies marketing and service with its AI-first B2C CRM. Try out our omnichannel marketing software, powered by K:AI agents to deliver personalised experiences across email marketing, WhatsApp, and more."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo SG"],"isoCode":[0,"en"],"isoName":[0,"English"],"locale":[0,"en-SG"],"marketingSitePath":[0,"sg"],"name":[0,"English (Singapore)"],"nativeName":[0,"English (Singapore)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-en-US"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifies AI-powered email marketing and SMS to drive growth, retention, and measurable results. Build personalized, omnichannel experiences across WhatsApp, ecommerce, and more with K:AI Agents."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo"],"isoCode":[0,"en"],"isoName":[0,"English"],"locale":[0,"en-US"],"marketingSitePath":[0,""],"name":[0,"English (United States)"],"nativeName":[0,"English (United States)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-es-ES"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifica el marketing y la atención al cliente con su CRM B2C basado en IA. Prueba el software de marketing omnicanal, impulsado por agentes K:AI para ofrecer experiencias personalizadas a través de email marketing, WhatsApp y más."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo ES"],"isoCode":[0,"es"],"isoName":[0,"Spanish"],"locale":[0,"es-ES"],"marketingSitePath":[0,"es"],"name":[0,"Spanish (Spain)"],"nativeName":[0,"Español (España)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-fr-FR"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifie le marketing et le service client avec son CRM B2C axé sur l'IA. Essayez le logiciel de marketing omnicanal, optimisé par des agents K:AI pour offrir des expériences personnalisées via l'email marketing, WhatsApp et plus encore."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo FR"],"isoCode":[0,"fr"],"isoName":[0,"French"],"locale":[0,"fr-FR"],"marketingSitePath":[0,"fr"],"name":[0,"French (France)"],"nativeName":[0,"Français (France)"]}],[0,{"_createdAt":[0,"2025-12-17T21:33:47Z"],"_id":[0,"siteSettings-it-IT"],"_rev":[0,"YJdfQsb7RbX76Tb8OaItHV"],"_type":[0,"siteSettings"],"_updatedAt":[0,"2025-12-17T21:33:47Z"],"description":[0,"Klaviyo unifica marketing e assistenza clienti con il suo CRM B2C basato sull'IA. Prova il software di marketing omnichannel, potenziato da agenti K:AI per offrire esperienze personalizzate su email marketing, WhatsApp e altro ancora."],"generateSitemap":[0,true],"includeInHreflangTags":[0,true],"indexSite":[0,true],"separator":[0,"-"],"title":[0,"Klaviyo IT"],"isoCode":[0,"it"],"isoName":[0,"Italian"],"locale":[0,"it-IT"],"marketingSitePath":[0,"it"],"name":[0,"Italian (Italy)"],"nativeName":[0,"Italiano (Italia)"]}]]],"translations":[1,[]]}" ssr client="load" before-hydration-url="/blog/_astro/astro_scripts/before-hydration.js.BWsVurST.js" opts="{"name":"ReactFooter","value":true}" await-children><footer class="_footer_17ejh_1 _cotton_17ejh_23" data-navigation-style="default" slot="footer"><div class="grid _grid_17ejh_31"><div class="_beFooter_17ejh_45"><div class="be-ix-link-block"></div></div><nav class="_footerNav_17ejh_40"><ul class="_menuContainer_17ejh_49 _desktopList_17ejh_53"><li class="_menuColumnListItems_17ejh_72"><div class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1" open=""><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Company</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33 _cotton_s73z6_38" href="/about" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>About Klaviyo</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33 _cotton_s73z6_38" href="/newsroom" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Newsroom</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33 _cotton_s73z6_38" href="https://investors.klaviyo.com/overview/default.aspx" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Investor relations</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33 _cotton_s73z6_38" href="/contact-us" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Contact us</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33 _cotton_s73z6_38" href="/careers" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Careers</div></div></div></a></li></ul></details></div><div class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1" open=""><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Klaviyo for</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/enterprise" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Enterprise</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/partners" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Agency and tech partners</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://developers.klaviyo.com/en" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Developers</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/industry/retail" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Retail and ecommerce</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/industry/restaurants" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Restaurant marketing</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/industry/wellness" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Wellness</div></div></div></a></li></ul></details></div></li><li class="_menuColumnListItems_17ejh_72"><div class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1" open=""><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Platform</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/platform" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>B2C CRM overview</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/ai" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo AI (K:AI)</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/marketing-automation" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Marketing</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/customer-service" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Service</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/analytics" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Analytics</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/customer-data-platform" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Data Platform</div></div></div></a></li></ul></details></div><div class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1" open=""><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Why Klaviyo</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Klaviyo alternatives</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare/klaviyo-vs-mailchimp" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Mailchimp</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare/klaviyo-vs-postscript" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Postscript</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare/klaviyo-vs-attentive" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Attentive</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare/klaviyo-vs-salesforce-marketing-cloud" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Salesforce</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare/klaviyo-vs-listrak" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Listrak</div></div></div></a></li></ul></details></div></li><li class="_menuColumnListItems_17ejh_72"><div class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1" open=""><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Channels</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/solutions/omnichannel" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Omnichannel marketing</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/email-marketing" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Email marketing</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/sms-marketing" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>SMS marketing</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/products/sms-marketing/rcs" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>RCS for Business</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/mobile-app-marketing" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Mobile app marketing</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/products/whatsapp" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>WhatsApp marketing</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/social" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Social marketing</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li></ul></details></div><div class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1" open=""><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Tools + Resources</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/marketing-resources" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing resources</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/marketing-resources/marketing-campaign-calendar" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing campaign calendar</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/glossary" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing glossary</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/tools/email-subject-line-generator" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Subject line generator</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/tools/roi-calculator" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>ROI calculator</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/customers" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Case studies</div></div></div></a></li></ul></details></div></li><li class="_menuColumnListItems_17ejh_72"><div class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1" open=""><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Top Products + Features</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/ai/marketing-agent" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing Agent</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">New</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/ai/customer-agent" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Customer Agent</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/customer-experience-hub" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Customer Hub</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/helpdesk" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Helpdesk</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/marketing-analytics" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing Analytics</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/advanced-cdp" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Advanced Klaviyo Data Platform</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/features/web-forms" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Web forms</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/features/templates" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Email templates</div></div></div></a></li></ul></details></div><div class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1" open=""><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Explore more</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/features/portfolio" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Portfolio</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/platform-integrations" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Apps and Integrations</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/features" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Features</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/whats-new" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>What's new</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/events" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Events</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://help.klaviyo.com/hc/en-us" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Help Center</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://academy.klaviyo.com/en-us" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Academy</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://community.klaviyo.com/" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Community</div></div></div></a></li></ul></details></div></li></ul><ul class="_menuContainer_17ejh_49 _mobileList_17ejh_63"><li class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1"><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Company</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33 _cotton_s73z6_38" href="/about" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>About Klaviyo</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33 _cotton_s73z6_38" href="/newsroom" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Newsroom</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33 _cotton_s73z6_38" href="https://investors.klaviyo.com/overview/default.aspx" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Investor relations</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33 _cotton_s73z6_38" href="/contact-us" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Contact us</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _featured_s73z6_33 _cotton_s73z6_38" href="/careers" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Careers</div></div></div></a></li></ul></details></li><li class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1"><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Platform</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/platform" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>B2C CRM overview</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/ai" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo AI (K:AI)</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/marketing-automation" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Marketing</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/customer-service" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Service</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/analytics" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Analytics</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/customer-data-platform" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo Data Platform</div></div></div></a></li></ul></details></li><li class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1"><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Channels</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/solutions/omnichannel" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Omnichannel marketing</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/email-marketing" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Email marketing</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/sms-marketing" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>SMS marketing</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/products/sms-marketing/rcs" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>RCS for Business</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/mobile-app-marketing" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Mobile app marketing</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/products/whatsapp" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>WhatsApp marketing</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/social" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Social marketing</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li></ul></details></li><li class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1"><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Top Products + Features</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/ai/marketing-agent" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing Agent</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">New</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/solutions/ai/customer-agent" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Customer Agent</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/customer-experience-hub" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Customer Hub</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/helpdesk" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Helpdesk</div><span class="_badge_lflca_1" style="--badge-background-color:var(--color-poppy-shade);--badge-text-color:var(--color-white)">NEW</span></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/marketing-analytics" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing Analytics</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/products/advanced-cdp" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Advanced Klaviyo Data Platform</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/features/web-forms" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Web forms</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/features/templates" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Email templates</div></div></div></a></li></ul></details></li><li class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1"><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Klaviyo for</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/enterprise" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Enterprise</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/partners" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Agency and tech partners</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://developers.klaviyo.com/en" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Developers</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/industry/retail" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Retail and ecommerce</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/industry/restaurants" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Restaurant marketing</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/industry/wellness" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Wellness</div></div></div></a></li></ul></details></li><li class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1"><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Why Klaviyo</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Klaviyo alternatives</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare/klaviyo-vs-mailchimp" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Mailchimp</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare/klaviyo-vs-postscript" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Postscript</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare/klaviyo-vs-attentive" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Attentive</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare/klaviyo-vs-salesforce-marketing-cloud" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Salesforce</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/compare/klaviyo-vs-listrak" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Klaviyo vs. Listrak</div></div></div></a></li></ul></details></li><li class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1"><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Tools + Resources</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/marketing-resources" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing resources</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/marketing-resources/marketing-campaign-calendar" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing campaign calendar</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/glossary" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Marketing glossary</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/tools/email-subject-line-generator" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Subject line generator</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/tools/roi-calculator" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>ROI calculator</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/customers" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Case studies</div></div></div></a></li></ul></details></li><li class="_menuColumnListItem_17ejh_72"><details class="_dropdown_hz1ov_1"><summary class="_menuTitle_hz1ov_1"><span class="_label_hz1ov_1">Explore more</span></summary><ul class="content _menuList_hz1ov_50"><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/features/portfolio" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Portfolio</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/platform-integrations" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Apps and Integrations</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/features" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Features</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/whats-new" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>What's new</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="/events" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Events</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://help.klaviyo.com/hc/en-us" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Help Center</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://academy.klaviyo.com/en-us" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Academy</div></div></div></a></li><li class="_menuListItem_hz1ov_60"><a class="_universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://community.klaviyo.com/" _type="menuItem"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Community</div></div></div></a></li></ul></details></li></ul></nav><div class="_languageSelector_17ejh_19"><div class="_languageSelector_18hva_25 _cotton_18hva_61"><button class="_currentLanguage_18hva_65 _universalMenuItem_s73z6_1"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" color="currentColor" style="height:1.6rem"><path fill="currentColor" fill-rule="evenodd" d="M1.655 7.375h1.97c.08-1.772.498-3.388 1.155-4.62q.105-.195.22-.381a6.38 6.38 0 0 0-3.345 5.001m6.281-7a7.625 7.625 0 0 0 .038 15.25H8A7.625 7.625 0 1 0 7.936.375m-.561 1.38c-.514.224-1.038.739-1.492 1.59-.549 1.027-.927 2.435-1.006 4.03h2.498zm0 6.87H4.877c.08 1.595.457 3.003 1.006 4.03.454.851.978 1.366 1.492 1.59zM5 13.626a7 7 0 0 1-.22-.382c-.657-1.23-1.074-2.847-1.154-4.619h-1.97A6.38 6.38 0 0 0 5 13.626m5.923.04a6.38 6.38 0 0 0 3.422-5.041h-2.023c-.08 1.772-.497 3.388-1.154 4.62a7 7 0 0 1-.245.422m.148-5.041H8.625v5.596c.498-.235 1.002-.744 1.44-1.566.549-1.027.927-2.435 1.006-4.03m0-1.25H8.625V1.779c.498.235 1.002.744 1.44 1.566.549 1.027.927 2.435 1.006 4.03m1.251 0c-.08-1.772-.497-3.388-1.154-4.62a7 7 0 0 0-.245-.422 6.38 6.38 0 0 1 3.422 5.042z" clip-rule="evenodd"></path></svg><span class="_currentLanguageName_18hva_81">United States<!-- --> - <span class="_languageCountry_18hva_117 _cotton_18hva_61">EN</span></span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9 5" color="currentColor" style="height:0.3rem" class="_chevron_18hva_52"><path fill="currentColor" d="M.88 0 4.5 3.101 8.12 0 9 .914 4.5 5 0 .914z"></path></svg></button><nav class="_languageMenu_18hva_1"><ul class="_languageList_18hva_91"><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/" aria-current="true" hrefLang="en-us" lang="en-us"><span>United States<!-- --> - <span class="_languageCountry_18hva_117">EN</span></span><svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 16 16" color="currentColor" style="height:1.4rem" aria-label="(current language)"><path fill="currentColor" d="M14.47 3.53c.26.26.26.68 0 .94l-8.51 8.51-4.47-5.21A.666.666 0 1 1 2.5 6.9l3.53 4.12 7.49-7.49c.26-.26.68-.26.94 0z"></path><path fill="currentColor" d="M5.93 13.72 1.11 8.1a1.2 1.2 0 0 1-.28-.85c.02-.31.17-.59.4-.79.49-.42 1.23-.36 1.64.12l3.18 3.71 7.11-7.11c.4-.4 1.02-.45 1.47-.15h.03l.16.15c.22.22.34.51.34.82s-.12.6-.34.82z"></path></svg></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/de/" hrefLang="de" lang="de"><span>Deutschland<!-- --> - <span class="_languageCountry_18hva_117">DE</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/au/" hrefLang="en-au" lang="en-au"><span>Australia<!-- --> - <span class="_languageCountry_18hva_117">EN</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/uk/" hrefLang="en-gb" lang="en-gb"><span>United Kingdom<!-- --> - <span class="_languageCountry_18hva_117">EN</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/sg/" hrefLang="en-sg" lang="en-sg"><span>Singapore<!-- --> - <span class="_languageCountry_18hva_117">EN</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/es/" hrefLang="es-es" lang="es-es"><span>España<!-- --> - <span class="_languageCountry_18hva_117">ES</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/fr/" hrefLang="fr-fr" lang="fr-fr"><span>France<!-- --> - <span class="_languageCountry_18hva_117">FR</span></span></a></li><li class="_listItem_18hva_100"><a class="_link_18hva_46 _cotton_18hva_61 _universalMenuItem_s73z6_1" href="/it/" hrefLang="it-it" lang="it-it"><span>Italia<!-- --> - <span class="_languageCountry_18hva_117">IT</span></span></a></li></ul></nav></div></div><div class="_logo_17ejh_114"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 7340 2186" color="currentColor" style="height:auto"><path fill="currentColor" d="M4029.53 291.505c-.01-38.964 15.28-76.382 42.6-104.238s64.49-43.935 103.56-44.791c39.67.445 77.59 16.368 105.63 44.358s43.97 65.82 44.38 105.383c-.97 38.965-17.23 75.997-45.27 103.142-28.05 27.145-65.66 42.239-104.74 42.04-38.72-.225-75.79-15.672-103.15-42.988-27.37-27.316-42.82-64.295-43.01-102.906m1165.26 315.867c70.57 0 117.01 39.608 117.01 125.52 0 48.442-19.86 129.795-61.87 244.345-57.14 154.013-117.01 330.113-181.01 530.293-28.58-96.74-83.87-250.9-152.16-427.43l-58.58-162.418c-33.15-90.186-50.86-160.569-50.86-206.873 0-63.829 31-99.733 90.58-105.574V576.74h-501.62v28.495c68.44 6.553 123.58 70.382 196.45 264.148l317.74 838.467c42.01 109.99 37.58 209.01-13.14 299.2-37.58 79.21-88.3 118.82-150.16 118.82-77.15 0-117.01-33.05-117.01-101.3 0-26.36 50.86-79.21 50.86-129.79 0-70.39-55.15-103.44-117.01-103.44-85.72 0-142.87 59.41-142.87 149.6 2.14 132.07 114.3 244.34 264.88 244.34 77.15 6.56 139.01-33.05 180.88-68.24 26.57-19.81 59.57-88.05 77.29-120.96a498 498 0 0 0 33.15-81.5c15.43-37.47 24.28-68.25 30.86-88.05 6.57-19.8 19.85-52.86 35.28-103.44l35.29-112.27c95.01-294.92 185.74-552.37 271.46-770.217 50.86-125.378 116.44-199.465 149.58-215.564a194.3 194.3 0 0 1 57.15-19.804V576.74h-361.75zM1710.88 1648.44c-64.01-10.97-119.16-68.25-119.16-189.35V0l-364.17 79.217v30.774c61.72-6.553 123.58 48.442 123.58 165.129v1183.97c0 113.98-61.86 180.51-123.58 189.35-6 .99-11.86 1.71-17.43 2.13a195 195 0 0 1-92.16-16.24c-52.63-24.52-96.14-65.01-124.293-115.69l-168.588-268.85c-35.428-56.5-88.218-100.06-150.5-124.19a310.65 310.65 0 0 0-195.104-9.73l189.732-209.158C812.792 748.279 945.091 646.98 1070.96 605.235V576.74H653.777v28.495c108.153 41.745 101.581 134.211-22.002 279.536L364.749 1195.08V0L.572 79.218v30.774c61.863 0 123.583 61.692 123.583 169.546V1459.09c0 129.93-59.577 180.51-123.583 189.35v28.49h483.332v-28.49c-79.436-10.97-119.155-72.67-119.155-189.35v-217.85l103.725-113.98 251.595 411.47c59.577 99.73 114.297 138.63 203.02 138.63h839.221v-22.51s-23.43-2.14-51.43-6.41m1120.39 3.42v28.49s-247.74 89.19-322.6-61.83a303.7 303.7 0 0 1-31.29-128.23c-68.43 140.76-218.45 215.71-359.75 215.71-178.73 0-306.74-83.64-306.74-266.29.11-45.96 13.94-90.84 39.72-128.94 53-79.22 114.29-120.96 229.59-164.99 57.15-22.08 105.87-37.47 142.87-48.44s85.72-22.08 142.87-33.05l110.3-26.36V905.287c0-220.124-94.87-319.144-227.31-319.144-103.72 0-163.3 68.246-163.3 147.462 0 44.025 30.86 107.853 30.86 154.015 0 61.692-55.15 105.717-132.44 105.717-72.72 0-116.87-59.412-116.87-138.629 0-81.495 39.72-151.878 121.3-213.712 78.26-60.569 174.67-93.136 273.74-92.466 309.74 0 445.18 146.606 449.9 468.46v491.25c1.71 32.06 10.71 160.86 119.15 143.62m-353.89-581.59c-13.29 6.7-44.15 17.67-94.87 37.47l-101.58 37.48c-25.43 11.68-44.14 21.94-81.58 41.74a268.8 268.8 0 0 0-77.29 55c-37.36 42.11-59.14 95.7-61.72 151.87 0 129.94 70.58 200.32 178.73 200.32 55.15 0 108.16-22.08 158.87-63.82 53.01-41.89 79.44-101.3 79.44-173.82zm4086.11 56.99a569.7 569.7 0 0 1-41.53 221.68 570.9 570.9 0 0 1-124.34 188.37 543 543 0 0 1-179.75 125.31 544.3 544.3 0 0 1-214.79 44.18 544.3 544.3 0 0 1-214.8-44.18 542.8 542.8 0 0 1-179.74-125.31c-106.74-109.85-165.51-257.39-163.45-410.33a568.6 568.6 0 0 1 40.83-220.229 569.7 569.7 0 0 1 122.76-187.536c50.33-54.224 111.36-97.487 179.26-127.075a538.9 538.9 0 0 1 215.28-44.861 538.9 538.9 0 0 1 215.28 44.861c67.9 29.588 128.93 72.851 179.26 127.075a561.9 561.9 0 0 1 124.61 187.021 560.65 560.65 0 0 1 41.26 220.744zm-360.75-389.809c-43.72-85.485-101.3-134.923-168.45-148.458-136.58-27.356-257.16 112.555-302.17 335.101a1049 1049 0 0 0-14.28 303.046 835.9 835.9 0 0 0 83.29 291.07c43.72 85.49 101.29 135.07 168.44 148.46 136.59 27.5 260.74-118.54 306.03-343.22 38.44-188.07 19.29-416.738-72.86-585.999M4303.7 1459.09V576.597h-776.79v26.501c103.72 15.387 153.02 93.463 105.87 219.981-242.88 658.091-227.31 628.601-242.88 681.311-15.43-50.57-50.72-175.1-108.16-331.39-57.43-156.3-95.15-259.592-109.44-305.896-59.57-182.653-39.71-250.899 57.15-261.869V576.74h-503.76v28.495c75.15 15.387 141.3 101.299 196.45 255.315l77.29 200.32c84.87 216.28 184.59 515.05 218.02 616.2h167.3c53.87-156.72 269.89-781.614 298.75-845.158 31.14-72.377 66.58-127.23 106.15-165.128 40.37-38.764 93.85-61.03 149.87-62.404 0 0 121.3-5.272 121.3 116.829v737.881c0 123.38-59.58 180.51-121.3 189.35v28.49h481.05v-28.49c-64.01-8.84-116.87-65.97-116.87-189.35M6740.42 1500.99c-19.08-19.1-45.04-29.56-73.02-29.56-27.99 0-53.94 10.46-73.02 29.56-19.15 19.03-29.65 44.91-29.65 72.82s10.5 53.79 29.65 72.82c19.14 19.03 45.03 29.56 73.02 29.56 27.98 0 53.94-10.47 73.02-29.5 19.15-18.59 29.64-44.47 29.64-72.88 0-28.42-10.49-53.79-29.64-72.82m-73.02 155.47c-22.46 0-42.62-8.31-58.27-23.91-14.94-15.8-23.21-36.67-23.21-58.74 0-22.08 8.2-42.88 23.15-58.68 15.71-15.66 35.94-23.97 58.33-23.97s42.62 8.31 58.33 23.91c14.94 15.79 23.21 36.66 23.21 58.74 0 22.07-8.2 42.88-23.15 58.67-15.71 15.67-35.88 23.98-58.33 23.98z"></path><path fill="currentColor" d="M6709.56 1554.02c0-18.96-13.74-29.56-36.76-29.56h-44.27v95.4h22.13v-34.44h15.52l22.58 34.44h24.81l-26.14-39.32c14.18-4.89 22.13-14.15 22.13-26.52m-39.88 14.59h-19.02v-26.51h19.02c10.62 0 16.79 4.88 16.79 13.25 0 8.82-5.72 13.26-16.79 13.26M6494.92 0h844.37L7172.7 288.37l166.59 288.227h-844.37z"></path></svg><div class="_tagline_17ejh_123">The B2C CRM</div></div><div class="_social_17ejh_143"><a class="_socialLink_17ejh_161 _universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.facebook.com/Klaviyo/" rel="noopener"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 16" color="currentColor" style="height:1.6rem"><path fill="currentColor" fill-rule="evenodd" d="M2.843 15.995V8.769H0V6.192h2.844V3.813C2.844 1.415 4.404 0 6.764 0c1.129 0 2.05.111 2.335.144v2.694l-1.9-.001c-1.282 0-1.522.579-1.522 1.389v1.966h3.286L8.5 8.769H5.677v7.226z" clip-rule="evenodd"></path></svg><span class="_socialIconText_17ejh_170">Facebook</span></a><a class="_socialLink_17ejh_161 _universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://twitter.com/klaviyo/" rel="noopener"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" color="currentColor" style="height:1.6rem"><path fill="currentColor" d="M19 13.5 30.6 0h-2.8l-10 11.8L9.7 0H.3l12.2 17.8L.3 32h2.8l10.7-12.4L22.3 32h9.3zm-3.8 4.4L14 16.2 4.1 2.1h4.2l8 11.4 1.2 1.8L27.9 30h-4.2z"></path></svg><span class="_socialIconText_17ejh_170">Twitter</span></a><a class="_socialLink_17ejh_161 _universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.linkedin.com/company/klaviyo/" rel="noopener"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" color="currentColor" style="height:1.6rem"><path fill="currentColor" fill-rule="evenodd" d="M11.975 15.189v-4.933c0-1.178-.023-2.691-1.595-2.691-1.597 0-1.84 1.282-1.84 2.604v5.02H5.472V5.044h2.944v1.385h.041c.41-.796 1.411-1.639 2.904-1.639 3.105 0 3.678 2.101 3.678 4.834v5.565zM2.013 3.657c-.984 0-1.778-.819-1.778-1.83C.235.819 1.03 0 2.013 0c.981 0 1.778.819 1.778 1.827 0 1.011-.797 1.83-1.778 1.83m1.535 11.532H.478V5.044h3.07z" clip-rule="evenodd"></path></svg><span class="_socialIconText_17ejh_170">LinkedIn</span></a><a class="_socialLink_17ejh_161 _universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.instagram.com/klaviyo/" rel="noopener"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 19 18" color="currentColor" style="height:1.6rem"><path fill="currentColor" fill-rule="evenodd" d="M17.985 12.711c-.044.957-.196 1.612-.418 2.184a4.4 4.4 0 0 1-1.038 1.594 4.4 4.4 0 0 1-1.595 1.038c-.572.223-1.227.375-2.184.419-.96.044-1.267.054-3.71.054-2.445 0-2.752-.01-3.712-.054-.957-.044-1.612-.196-2.184-.419a4.4 4.4 0 0 1-1.595-1.038c-.5-.5-.807-1.002-1.037-1.594-.223-.572-.375-1.227-.419-2.184C.05 11.751.04 11.445.04 9S.05 6.249.093 5.289c.044-.958.196-1.612.42-2.184a4.4 4.4 0 0 1 1.036-1.594A4.4 4.4 0 0 1 3.144.472C3.716.25 4.371.098 5.328.054 6.288.01 6.595 0 9.04 0s2.751.01 3.711.054c.957.044 1.612.196 2.184.418.592.23 1.094.538 1.595 1.039s.808 1.002 1.038 1.594c.222.572.374 1.226.418 2.184.044.96.054 1.267.054 3.711s-.01 2.751-.054 3.711m-1.62-7.348c-.04-.878-.187-1.354-.31-1.671a2.8 2.8 0 0 0-.673-1.035 2.8 2.8 0 0 0-1.035-.673c-.317-.123-.794-.27-1.67-.31-.95-.044-1.235-.052-3.638-.052s-2.688.008-3.637.052c-.877.04-1.354.187-1.67.31-.42.163-.72.358-1.036.673a2.8 2.8 0 0 0-.673 1.035c-.123.317-.27.793-.31 1.671C1.67 6.312 1.66 6.597 1.66 9s.01 2.688.053 3.637c.04.877.187 1.354.31 1.671.164.42.358.72.673 1.035s.615.51 1.035.673c.317.123.794.27 1.671.31.95.043 1.234.052 3.637.052s2.688-.009 3.637-.052c.877-.04 1.354-.187 1.671-.31.42-.163.72-.358 1.035-.673s.51-.615.673-1.035c.123-.317.27-.794.31-1.671.043-.949.053-1.234.053-3.637s-.01-2.688-.053-3.637m-2.522-.088a1.08 1.08 0 1 1 0-2.16 1.08 1.08 0 0 1 0 2.16M9.04 13.621a4.621 4.621 0 1 1 0-9.243 4.621 4.621 0 0 1 0 9.243M9.04 6a3 3 0 1 0 0 6 3 3 0 0 0 0-6" clip-rule="evenodd"></path></svg><span class="_socialIconText_17ejh_170">Instagram</span></a></div><div class="_legal_17ejh_180 _cotton_17ejh_23"><div>Copyright © 2026 Klaviyo. All rights reserved.</div><nav class="_legalNavigation_17ejh_207"><a class="_legalLink_17ejh_218 _universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/sitemap"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Site Map</div></div></div></a><a class="_legalLink_17ejh_218 _universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/legal"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Terms and Privacy</div></div></div></a><a class="_legalLink_17ejh_218 _universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/security"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Security</div></div></div></a><a class="_legalLink_17ejh_218 _universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/trust"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Trust</div></div></div></a><a class="_legalLink_17ejh_218 _universalMenuItem_s73z6_1 _cotton_s73z6_38" href="https://www.klaviyo.com/legal/intellectual-property-notices"><div><div class="_iconAndLabelContainer_s73z6_168"><div>Intellectual Property Notices</div></div></div></a></nav></div></div></footer><!--astro:end--></astro-island> <div id="portal"></div> <noscript id="klaviyo-google-tag-manager-noscript"> <iframe src="https://www.googletagmanager.com/gtm.js/ns.html?id=GTM-M28G2G" height="0" width="0" style="display: none; visibility: hidden;" aria-hidden="true"></iframe> </noscript> </body></html>