- E-Commerce & SaaS
Email Marketing AI Assistant: Breaking a 500K-Subscriber Open-Rate Plateau
Lifted open rates from 15% to 47% and CTR to 12.3% for a 500K-subscriber e-commerce list using GPT-4 personalization and send-time optimization.
- AI & Machine Learning
- Backend Engineering
- Email Infrastructure
At a glance
- Sector
- E-Commerce & SaaS
- Type
- Services
- AI & Machine Learning · Backend Engineering · Email Infrastructure
The problem
The Challenge: A 500K-Subscriber List Stuck at a 15% Plateau
A mid-sized e-commerce brand had grown their email list to 500,000 subscribers through years of paid acquisition and content marketing. They used a major ESP (Klaviyo) with best-practice segmentation and had run over 200 subject line A/B tests in the past year — but their open rate was flat at 15% and click-through rate was at 1.8%. Revenue per email had been declining quarter-over-quarter for 18 months, even as list size grew. The marketing team suspected they had hit an engagement ceiling, but they didn't know how to break through it.
In 2026, email remains one of the highest-ROI marketing channels — but only if you can get subscribers to open and click. Generic 'batch-and-blast' campaigns, even with segmentation, are fundamentally limited because they send the same content to people with very different preferences, browsing history, and purchase intent. True one-to-one personalization at 500K subscribers was technically impossible with off-the-shelf ESP tools.
What we built
Our Solution: Per-Subscriber AI Personalization Engine
We built a personalization layer that sits between the product catalog and the ESP. For every send, the system pulls subscriber-level behavioral data (browsing history, past purchases, open patterns, device type, timezone), then uses GPT-4 to generate a unique subject line, preview text, and product recommendation block tailored to that individual subscriber. FastAPI handles the personalization requests, Celery distributes the workload, and the output is pushed to Klaviyo via API for final delivery.
The key insight: rather than replace Klaviyo (which handles deliverability, list management, and compliance well), we augmented it. Marketers still write campaign briefs in Klaviyo — but our system generates 500,000 unique variations at send time instead of 1 generic version. Every subscriber gets subject lines that reference things they actually care about, sent at the time they're most likely to be checking email.
Calls we would still defend
Per-Subscriber Generation at Send Time — Instead of creating 10-20 segment variations, we generate a unique subject line and preview text for each of the 500K subscribers — GPT-4 is fast and cheap enough at scale to make this economically viable.
Send-Time Optimization — A per-subscriber model predicts the optimal send time based on historical open behavior — accounting for timezone, day of week, and typical email-checking patterns. Result: a 40% open rate lift from timing alone before personalization.
Deliverability Guardrails — Built an automated content safety layer that filters out AI-generated copy containing spam trigger words, ALL-CAPS, excessive emojis, or phrases that historically correlate with poor inbox placement — protecting the sender reputation.
Built with
GPT-4 / GPT-4o
Generates unique subject lines, preview text, and personalized product recommendations per subscriber at scale — the quality difference over smaller models was worth the cost.
FastAPI
High-performance async Python backend handling the personalization API with sub-200ms p99 latency per subscriber lookup.
Celery + Redis
Distributed task queue processing 500K personalization jobs per campaign in parallel batches — completes full list generation in under 4 minutes.
AWS SES + Klaviyo
Hybrid delivery: Klaviyo for list management and compliance, SES as a backup sender for high-volume transactional with per-cent cost advantages.
PostgreSQL
Stores subscriber behavioral profiles, historical send data, and generated content cache for auditing and retroactive analysis.
Send-Time Optimization Model
Custom XGBoost model predicting optimal per-subscriber send time — delivered 40% open rate lift independent of content personalization.
Where it landed
What the build changed
47%
Open rate
up from a 15% baseline, with per-subscriber subject lines on a 500K list
12.3%
Click-through rate
on the same list after send-time optimisation
210%
Revenue per email
increase, from generating each message at send time rather than per segment
FAQ
The questions this build raises
What was actually built, the constraints it had to meet, and how it holds up in use.
At send time, the system pulls each subscriber's behavioral profile (browsing history, past purchases, engagement patterns) and uses GPT-4 to generate a unique subject line, preview text, and content block tailored to them — not a segment. This means 500,000 subscribers get 500,000 unique email experiences, compared to traditional segmentation which might produce only 5-10 variants.
Clients typically see open rates 2-3x their baseline within 60 days. Our client went from 15% to 47% — but real improvement depends on your starting point. Lists with lots of behavioral data to personalize from see bigger lifts than cold lists. Expect 30-50% of the improvement to come from send-time optimization alone, even before content personalization.
No — we augment your existing ESP, not replace it. Your ESP continues handling list management, compliance, suppression, and delivery. Our personalization layer sits in front of it, generating unique content variations that are then pushed to the ESP's send API. This avoids the pain of migration and keeps your deliverability reputation intact.
We built an automated content safety layer that filters out phrases historically correlated with spam filters — trigger words, ALL CAPS abuse, excessive emojis, suspicious link patterns. Every generated variant is scored before sending, and anything below threshold is automatically regenerated or falls back to a safe default. This has kept our clients' inbox placement above 98%.
Minimum viable data is: email address, signup source, past 90 days of email engagement (opens, clicks), and any on-site behavior you can capture (page views, product interest). The more purchase history and browsing data you provide, the better the personalization — but the system produces meaningful lift even with just engagement data alone.
Keep looking
Other builds, taken apart the same way
analytics
Multi-touch attribution across twelve ad channels
D2C E-Commerce & Retail
analytics
Customer Journey Mapper
B2B SaaS & Subscription Business

