feat: Tier B operator scaffolding — bundle, copy SoT, posts, emails
Pick up and finish yesterday's cut-off Tier B pass. - build/: PyInstaller scaffold (datatools.spec + launcher.py + hook-streamlit.py + README) — folder-mode bundle, locked 127.0.0.1, per-OS recipe - marketing/COPY.md: single source of truth for every customer-facing string — landing H1/sub/CTAs, demo CTAs, email subjects, Gumroad listing, banned phrases - marketing/community-posts/: 9 drafts (3 posts × 3 niches: bookkeeper, revops, shopify-pet) — story / tip / soft-offer - marketing/emails/: 18 drafts (Gumroad delivery + 5-touch onboarding × 3 niches), per-niche segmentation guidance - docs/NEXT-STEPS.md: flip 2.2 / 2.4 / 3.1 / 3.4 to done with pointers to the new assets; add Phase 0 inventory rows - .gitignore: narrow `build/` ignore so PyInstaller spec + launcher + hooks get tracked, only generated artifacts (build/build/, build/__pycache__/, build/dist/) stay ignored Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
33
marketing/emails/shopify-pet/02-day3.md
Normal file
33
marketing/emails/shopify-pet/02-day3.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Shopify-pet · Day 3 — The phone-format step Klaviyo cares about
|
||||
|
||||
**Subject:** The phone-format step Klaviyo cares about
|
||||
**Send:** Day 3
|
||||
**Goal:** deepen feature understanding around the format standardizer
|
||||
|
||||
---
|
||||
|
||||
Hi {{first_name}},
|
||||
|
||||
The single biggest source of "Klaviyo dropped this customer silently" is phone formatting. DataTools fixes this in one tool — the **format standardizer** — but the *settings* matter.
|
||||
|
||||
Klaviyo (and basically every modern SMS platform) wants phones in **E.164** format: `+` then country code then number, no spaces, no dashes, no extension. Like: `+14155550143`.
|
||||
|
||||
Three settings in DataTools' format standardizer that get this right:
|
||||
|
||||
**1. Set "Phone output format" to `E.164`.** Default is `national` (`(415) 555-0143`) — fine for display, broken for Klaviyo. Change it once; the preset remembers.
|
||||
|
||||
**2. Set "Default country" per row, not per file.** This is the non-obvious one. For each customer:
|
||||
- If the `country` field has a value (e.g., "Canada", "CA", "Canadá"), use it.
|
||||
- If blank, fall back to the country in the *shipping address*.
|
||||
- If still blank, fall back to the file-level default (you set this — typically your store's primary market).
|
||||
|
||||
DataTools does this automatically when you check "Use per-row country detection". *Skip this and ~30% of international customers will end up with US country codes prepended to their numbers — which Klaviyo accepts but routes wrong, and your SMS never arrives.*
|
||||
|
||||
**3. Set "Quarantine un-parseable phones" to ON.** Don't drop them silently; don't pass them to Klaviyo broken. Send them to `<filename>.quarantine.csv` so you can fix the worst 10-20 by hand and re-include them.
|
||||
|
||||
The combination — E.164 + per-row country + quarantine — typically takes a Shopify export from "60-70% of phones survive Klaviyo's import" to "97-99%". On a 10,000-customer list, that's 2,500 - 3,500 more customers reachable per campaign.
|
||||
|
||||
Reply if you want me to walk through these settings on a screen-share — happy to do this for any buyer in the first 30 days.
|
||||
|
||||
— Michael
|
||||
{{support_email}}
|
||||
Reference in New Issue
Block a user