- Welcome Sequence (5) — copies ready
- Abandoned Cart (4) — copies ready
- Post-Purchase (5) — copies ready
- Browse Abandonment (3) — copies ready
Based on DTC welcome email research (Klaviyo, HubSpot, Campaign Monitor):
- Founder story (E1): ~250 words
- Education (E2): ~200 words
- Interactive (E3): ~150 words + visuals
- Cart/Browse/PP: 80-150 words each
- Pull REAL reviews from Trustpilot/product pages
- Review & approve all copies
- Design phase: NanoBanana images + HTML templates
- Karl: DNS fix (SPF/DKIM/DMARC) — BLOCKER
- Upload to Klaviyo + configure flow triggers
| Flow | Entry | Exit |
|---|---|---|
| Welcome | Added to list | Purchase → Post-Purchase |
| Abandoned Cart | Started Checkout, no purchase 1hr | Purchase. Suppressed during Welcome (first 7 days). |
| Post-Purchase | Placed Order | Completes sequence. Repeat purchase restarts. |
| Browse Abandon | Viewed Product, no cart 2hrs | Adds to cart or purchases. Suppressed if in Welcome or Cart flow. |
Used in: AC1, AC2, AC4, BA1, BA3, PP5
Klaviyo's Shopify integration automatically captures product name, image, price, and URL when a customer abandons a cart or views a product. In the email template, we use Klaviyo's built-in "Dynamic Product Block" — no code needed. You drag the block into the template, and Klaviyo populates it with the actual product the customer left behind.
Used in: AC2, BA3, E4 variants
Klaviyo does not natively pull reviews from Shopify. Two options:
Option A (Recommended): Connect a review platform like Judge.me or Trustpilot that integrates with Klaviyo. Reviews auto-populate in emails matched to the specific product.
Option B (Manual): We curate 3-5 top verified reviews per product and hardcode them into Klaviyo template blocks with conditional logic per product category.
Used in: AC3, BA2
Different Suntribe products have different ingredient counts (SPF 30 = 5, SPF 50 = 9). We handle this with Klaviyo conditional content blocks. In the email template, we create separate content sections and use Klaviyo's "Show/Hide" logic based on the product category in the cart/browse event.
Used in: PP5
Klaviyo's "Product Recommendations" block uses purchase history and catalog data to suggest complementary products. We configure it to recommend based on the customer's last purchase (e.g., bought SPF 30 → suggest Zinc Stick). Alternatively, we set up manual conditional splits in the Klaviyo flow based on product category purchased.
| Variable | Source | Used In |
|---|---|---|
{{ event.extra.line_items }} | Shopify cart data (auto-synced via native integration) | AC1-AC4 (cart items) |
{{ product_name }} | Klaviyo product catalog | All cart + browse emails |
{{ person.first_name }} | Klaviyo profile | Subject lines (optional) |
Dynamic Product Block | Drag-and-drop in Klaviyo editor | Product cards in all flows |
Product Recommendations | Klaviyo AI + catalog | PP5 cross-sell |
Show/Hide conditional | Klaviyo template logic | AC3, BA2 ingredient lists |
utm_content parameter (surfing/family/mountains/everyday). When the subscriber clicks, Klaviyo captures the URL. A conditional split in the Klaviyo flow checks which utm_content value was clicked and sends the matching E4 variant. No custom code — this is standard Klaviyo flow logic.Started Checkout event from Shopify captures the full cart (product names, images, prices, URLs). The "Dynamic Product Block" in Klaviyo's email builder auto-renders the exact products the customer left in their cart. No custom code needed — drag the block in, and Klaviyo handles the rest.Placed Order event from Shopify includes the product name. In the email template, the variable {{ event.extra.line_items[0].product.name }} auto-populates with whatever the customer purchased. If they bought multiple items, it shows the first item's name.Viewed Product event from Shopify captures the product the customer looked at. The dynamic product block auto-renders that product in the email. Suppressed if subscriber is in Welcome (first 7 days) or Cart flow — Klaviyo flow filters handle this automatically.Viewed Product event. The template logic is reusable across both Cart and Browse flows.Klaviyo not authorised to send for suntribesunscreen.com.
Fix: Add include:_spf.klaviyo.com
No Klaviyo DKIM. Emails are unsigned.
Fix: Add Klaviyo DKIM CNAMEs from Klaviyo > Settings > Domains
p=none, reports to Brevo (third party).
Fix: Upgrade to p=quarantine after SPF/DKIM done
- ONLY Brandon Grotesque (fallback: Arial, Helvetica)
- NEVER serifs
- Background: off-white
#fffcf8(never pure white/black) - CTA: teal
#14D2B6pill, 28px radius - Max width: 600px. Mobile-first (80% mobile traffic).
- "5 ingredients" = ONLY SPF 30 and Kids SPF 30
- SPF 50 = 9 ingredients. "27 vs 9" comparison.
- "Non-Nano Zinc Oxide" — capitalised exactly
- "Castor Oil" NOT "Castor Wax"
- From name: always "Karl from Suntribe"
| Colour | Hex | Usage |
|---|---|---|
| Off-white | #fffcf8 | Background (ALWAYS) |
| Brown | #5b4b43 | Body text, dark sections |
| Teal | #14D2B6 | CTAs, accents |
| Blue | #55A0C3 | Secondary accent |
| Peach | #FFAA71 | Warm tertiary |