# Shopify-pet · Post 1 — Story **Where to post:** r/shopify, r/ecommerce, Shopify community forums, pet-business Facebook groups (Pet Industry Distributors Association, Pet Boss Nation), Klaviyo community Slack. **Format:** ~400 words. Owner-to-owner tone. --- ## Title Why my Klaviyo flows were skipping 18% of my customers (and the CSV cleanup that fixed it) ## Body Background: I run {{your-store-context — e.g., "a 4-year-old pet supplements store doing about $X/month"}}. Last summer I noticed the open rate on my "abandoned cart" Klaviyo flow was lower than usual. Klaviyo's dashboard said the flow was firing fine. Took me a week to figure out the actual problem: **Klaviyo was silently dropping 18% of my customers because their phone numbers weren't formatted correctly.** Not "wrong" — just not in the format Klaviyo's SMS module accepts. So the SMS part of the flow never sent, and the email-only fallback didn't kick in for half of those. The root cause was the Shopify customer export. Customers had entered their phones every which way: - `(415) 555-0143` — works - `415.555.0143` — Klaviyo: "invalid" - `4155550143` — Klaviyo: "invalid for this country" - `+44 20 7946 0958` — works only if the country field is set; for ~30% of my customers it wasn't - `415-555-0143 ext 12` — Klaviyo: "invalid" The fix is a one-time CSV cleanup before each Klaviyo sync: **1. Pull the Shopify customer export.** Customers > Export > "All customers" > CSV. **2. Run every phone number through E.164 normalization.** E.164 is the international format Klaviyo (and basically every other SMS platform) wants: `+14155550143`. Python's `phonenumbers` library does this if you're scripting; spreadsheet add-ons exist but they're painful at >5k rows. **3. Default the country code per row.** If the customer's address country is "United States", default the phone country to US. This catches the rows that are missing `+1` but are obviously American. **4. Drop or quarantine anything still un-parseable.** Don't import broken rows hoping Klaviyo will figure it out. It won't. **5. Re-import the cleaned CSV to a Shopify customer segment** (or push directly to Klaviyo via their API). I eventually wrapped this whole pipeline into a desktop app called DataTools because doing it monthly was tedious. $49, runs locally so customer data stays on my machine, datatools.app/shopify-pet if you're curious. But the 5 steps above are what actually matters — works regardless of tool. Anyone else seeing low SMS deliverability? I'd bet money it's this. — {{your-name}}