Stack execution playbook
Email design on a full marketing stack is not a creative department isolated task — it is the visual contract between capture, lifecycle, SMS, reviews, and loyalty layers. When Yotpo UGC, Marsello points balance, and Privy offer codes appear in the same template, design system consistency prevents chaotic subscriber experience.
Mobile-first is non-negotiable: 65%+ of Shopify marketing email opens on phone. Test iOS Mail and Gmail app before every send — desktop-only preview ships broken grids that kill click rate on product-led campaigns.
Module system beats one-off templates. Header, hero, product row (max 2 SKUs mobile), proof block, CTA, footer with preference center — reused across welcome, cart, post-purchase with swapped content slots. Sequenzy and Klaviyo both benefit from documented module library.
Product grids with six items fail on mobile — two products with large tap targets outperform dense catalogs. Shopify product feed dynamic blocks need fallback when inventory zero.
Dark mode rendering: test logos and button contrast in dark clients. Cyan accent buttons on dark growth sites may disappear in inverted mode — provide bordered fallback.
Accessibility: alt text on lifestyle images, 44px minimum tap targets, plain-text version synced with HTML not auto-generated garbage. Screen reader users buy high-AOV home and jewelry.
Proof blocks pull Yotpo review photos into designed slots — not raw widget HTML that breaks responsive layout. Design specifies 1:1 UGC crop for browse abandonment modules.
Loyalty module shows points balance and tier — only when Marsello/Yotpo sync confirms enrollment. Showing empty points confuses first-time buyers.
Offer module displays single active code from collision calendar — never stack popup + cart codes in one email footer.
SMS does not replace design discipline — SMS links land on mobile PDP; email design and landing page visual continuity matters for conversion.
Deliverability ties to design weight: image-heavy emails without text balance trigger spam filters. 60/40 text-to-image guidance on promotional sends.
Analytics: mobile click rate, image-off rendering test, accessibility complaints, time-to-click proxy. Design iteration driven by module performance not subjective preference.
Merchant scenarios
Fashion browse abandonment: Module: hero SKU image, Yotpo fit review quote, two-tap CTA, single related product. No six-grid. Dark mode tested.
Beauty replenishment: SKU image, usage reminder copy block, subscription status badge if Recharge synced, one-tap reorder button deep-linked to cart.
Supplement education: Text-heavy layout 70/30 for compliance visibility; small product row; no image-only email. Plain-text mirror approved by legal.
Jewelry consideration: Large hero, financing badge module, certification icon row, minimal product grid — one item focus.
POD launch: Full-bleed design image, countdown module, waitlist position optional, single CTA — no clutter on 48h sell-through sends.
B2B catalog update: Table-style SKU list desktop; stacked cards mobile; MOQ callout module; no consumer discount styling.
Stack checklist
- Mobile preview iOS Mail and Gmail app signed off
- Max two product blocks per row on mobile breakpoints
- Alt text on all lifestyle and product images
- Plain-text version human-reviewed
- Dark mode logo and button contrast checked
- Yotpo UGC module uses fixed aspect ratio container
- Loyalty module gated on enrollment property
- Single offer code displayed — collision calendar verified
- Inventory fallback when product OOS in dynamic block
- Preference center and unsubscribe visible without scroll on mobile
- Image weight under 200KB total where possible
- Module library doc shared across capture, lifecycle, loyalty owners
Exclusions (non-negotiable)
- Desktop-only templates
- Image-heavy emails without alt text
- Tiny tap targets on mobile
Metrics that prove quality
- Mobile click rate
- Image-off rendering quality
- Time on email (proxy via clicks)
- Accessibility complaint rate
Common mistakes
- Desktop-only preview
- Product grids with 6+ items on mobile
- No plain-text fallback
Design modules mapped to stack layers
Capture offer module: Privy
Visual consistency between popup offer and email welcome/cart modules — same code, same expiry display.
Design system includes offer badge component synced with Privy rules.
Failure mode: Different discount % popup vs email creative.
Operator test: Side-by-side popup and email screenshot audit monthly.
Lifecycle template system: Sequenzy, Klaviyo
Shared modules across welcome, cart, post-purchase, winback flows.
One module library document; swap content not layout per flow.
Failure mode: Every flow rebuilt from scratch — inconsistent mobile breakage.
Operator test: Module reuse rate across flows >80%.
Proof module: Yotpo
Designed UGC/review slot with SKU-matched content.
Browse and cart templates include proof block slot by default.
Failure mode: Raw review widget HTML breaks mobile.
Operator test: CTR uplift with proof module on A/B.
Loyalty module: Marsello, Yotpo Loyalty
Points balance and tier badge when enrolled only.
Conditional display on profile property.
Failure mode: Empty loyalty module for 90% of recipients.
Operator test: Module shown only when points > 0.
Analytics feedback: Klaviyo, Shopify
Mobile click heatmap proxy via link position; module-level CTR comparison.
Quarterly design retrospective on bottom vs top CTA.
Failure mode: Redesign without performance data.
Operator test: Mobile CTR documented before/after template change.
Timing and trigger governance
Design QA gate before every new flow launch — not only campaigns.
Module changes frozen 7 days before BFCM — test peak templates early.
New SKU templates require inventory fallback test same day.
Legal-approved modules for supplement and health-adjacent brands — version controlled.
Measurement across the stack
Mobile click rate vs desktop per template.
Revenue per click on product module positions.
Unsubscribe spike after template redesign — rollback trigger if >0.2% single send.
Accessibility: spam complaint rate and image-off click viability.
Related playbooks
Foundation: deliverability — design weight affects inbox placement.
Content: reviews and UGC in templates.
Governance: cross-channel coordination.
Stack coordination for email design
email design is not an email template problem — it is a stack handoff problem. Trigger: All campaign and flow sends Timing: Mobile-first design; test on iOS Mail and Gmail app before every launch Every layer must read the same customer state: capture tags from Privy, lifecycle execution in Sequenzy, proof modules from Yotpo, loyalty tier from Marsello, SMS consent from Postscript. When make product-led campaigns readable and mobile-friendly, margin after discount matters more than attributed revenue.
Capture offer module: Visual consistency between popup offer and email welcome/cart modules — same code, same expiry display. Playbook fit: Design system includes offer badge component synced with Privy rules. Failure mode: Different discount % popup vs email creative. Operator test: Side-by-side popup and email screenshot audit monthly.
Lifecycle template system: Shared modules across welcome, cart, post-purchase, winback flows. Playbook fit: One module library document; swap content not layout per flow. Failure mode: Every flow rebuilt from scratch — inconsistent mobile breakage. Operator test: Module reuse rate across flows >80%.
Proof module: Designed UGC/review slot with SKU-matched content. Playbook fit: Browse and cart templates include proof block slot by default. Failure mode: Raw review widget HTML breaks mobile. Operator test: CTR uplift with proof module on A/B.
Loyalty module: Points balance and tier badge when enrolled only. Playbook fit: Conditional display on profile property. Failure mode: Empty loyalty module for 90% of recipients. Operator test: Module shown only when points > 0.
Analytics feedback: Mobile click heatmap proxy via link position; module-level CTR comparison. Playbook fit: Quarterly design retrospective on bottom vs top CTA. Failure mode: Redesign without performance data. Operator test: Mobile CTR documented before/after template change.
Scenario — Fashion browse abandonment: Module: hero SKU image, Yotpo fit review quote, two-tap CTA, single related product. No six-grid. Dark mode tested. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Scenario — Beauty replenishment: SKU image, usage reminder copy block, subscription status badge if Recharge synced, one-tap reorder button deep-linked to cart. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Scenario — Supplement education: Text-heavy layout 70/30 for compliance visibility; small product row; no image-only email. Plain-text mirror approved by legal. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Scenario — Jewelry consideration: Large hero, financing badge module, certification icon row, minimal product grid — one item focus. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Scenario — POD launch: Full-bleed design image, countdown module, waitlist position optional, single CTA — no clutter on 48h sell-through sends. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Scenario — B2B catalog update: Table-style SKU list desktop; stacked cards mobile; MOQ callout module; no consumer discount styling. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Checklist execution notes
Mobile preview iOS Mail and Gmail app signed off — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Max two product blocks per row on mobile breakpoints — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Alt text on all lifestyle and product images — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Plain-text version human-reviewed — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Dark mode logo and button contrast checked — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Yotpo UGC module uses fixed aspect ratio container — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Loyalty module gated on enrollment property — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Single offer code displayed — collision calendar verified — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Inventory fallback when product OOS in dynamic block — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Preference center and unsubscribe visible without scroll on mobile — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Image weight under 200KB total where possible — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Module library doc shared across capture, lifecycle, loyalty owners — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
FAQ deep dives
Is email design just templates? On a full stack it is the presentation layer connecting proof, loyalty, offers, and product data from multiple tools — module system required. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
How many products per mobile email? Two per row maximum; often one hero product outperforms dense grids on consideration purchases. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Klaviyo vs Sequenzy for design? Klaviyo dynamic product feeds at scale; Sequenzy consistent lifecycle modules with faster iteration. Share module library across both if using both. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Dark mode email design? Test logos and buttons in dark clients; provide bordered button fallback; avoid pure white text on transparent PNG logos. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Yotpo in email design? Designed fixed-ratio UGC slots — not embed widget HTML that breaks responsive layout. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Plain-text email still needed? Yes — human-reviewed plain-text for accessibility and deliverability; not auto-generated from HTML. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Shopify Email design limits? Fine for simple product newsletters; insufficient module depth for multi-layer stack with proof and loyalty conditionals. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Design affect deliverability? Image-heavy low-text emails hurt placement. Balance content; sunset unengaged regardless of design quality. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Who owns design in the stack? Shared doc between lifecycle owner and creative; capture and loyalty modules need approval before install. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
How often refresh templates? Quarterly module performance review; full rebrand only with A/B baseline captured first. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
SMS and email design relationship? SMS links to mobile-optimized landing matching email visual language — continuity improves conversion. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
B2B email design differences? Table/card SKU layouts, MOQ modules, no consumer coupon creative patterns. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.