← Back Listkit Product design · Nov 2024–Jun 2025.

ListKit Email Engine: Closing the Gap
Between Purchased Leads and Running Campaigns

Sole product designer for ListKit's Email Engine — 
the system that turns purchased B2B leads into outbound campaigns.

 
ListKit's Email Engine — the system that turns purchased leads into running outreach campaigns.

1

Context
Model: B2B SaaS Market: Companies running B2B outbound / cold email Team: Agency (UserActive) embedded with ListKit's product org — see below ↓ Key objective: Reduce drop-off between lead purchase and campaign creation My role:  Sole Product Designer, Nov 2024 – Jun 2025 (8 months)

2

Team
A two-organization team, synced weekly. This wasn't an in-house team — it was an agency embedded inside a client's product org, syncing on a weekly standup cadence for 8 months straight.       Agency side (UserActive) Mariana (Design Manager) + Me (sole Product Designer) Client side (ListKit)  Yulia  (Manager) and Annel (Manager), with Oliver (co-founder) involved on strategic calls

Two organizations, one weekly cadence — every design decision passed through both sides before it shipped.

3

Challenge
Users paid for leads, then the product let them forget why. ListKit sells verified B2B contact data. Users search a database, spend credits to unlock leads, and — in theory — turn those leads into an email campaign through the Email Engine. In practice, the credit purchase was the highest-intent moment in the product, and also where the most users disappeared. Someone would redeem a batch of leads, land on an order confirmation, and stop.

The team gave this an intentionally blunt framing: how do we make it impossible for a user to miss the campaign feature right after they've paid for leads?



The moment of highest intent — a user about to redeem credits for a list of leads. Nothing downstream nudged them toward using those leads.

4

Discovery
A short annotation that mapped the whole notification system. Next to the actual notification mockups in the file sits a short annotation — Churn Reduction Artifact: Define an External Communication Strategy — categorizing every nudge into two types:
1 Error fixing   2 types — things actively broken 2 Growth hooks
8 types — moments where a small nudge could turn a passive user active 
+ a note that each needed a way to be turned on or off.
Two of those growth hooks are visible directly in the file: a positive-reply toast and a campaign-running-low toast. Small as the annotation is, it's what turned a pile of individual toast ideas into a maintained taxonomy — not implementing hooks case by case as they came up.
What's my success metric? Feature page views rejected  Proves discovery, not value. Raw "campaign created" count rejected
Doesn't confirm the campaign came from purchased leads, not an old workflow.
Internal Workflow Capture Rate the one I built the launch around
(leads sent through campaigns ÷ leads purchased). 
It answers the actual business question: 
did the product keep the whole workflow in-house, or did people just export and leave.
Open rate as headline metric rejected
Apple's Mail Privacy Protection makes it unreliable industry-wide. Used only as a guardrail; reply rate is the real signal.

The annotation — two categories, ten notification types — sitting right next to one of the toasts it describes.


The second toast from that same taxonomy: a campaign running low on leads.

5

Solution
Four moments, four different responses — including the one that hit a wall.

The full retention loop in one line — including where it breaks and how it recovers.

Right after payment The previous behavior sent users back to Order History with a passive link to campaigns. I replaced it with an explicit decision screen (Launch an Email Campaign or Build a Workflow) because that assumption — that people would remember why they were there — was exactly what was failing.

Engineering constraint I designed around: new sender accounts go through a mandatory warmup period before they can send at full volume — deliverability providers flag accounts that ramp up too fast as spam. The decision screen doesn't oversell instant full-volume outreach; it nudges toward setup, with the warmup timeline visible on the account itself rather than promising something the infrastructure can't deliver yet.

The order-confirmation state that used to be the end of the flow — leads redeemed, nothing pointing further.


The decision point I added: leads redeemed, and here's exactly what to do next.

Inside an empty campaign I considered a generic empty-state message pointing to Settings. Instead, the campaign builder's empty state offers direct find leads / upload CSV actions built into the builder itself.

Campaign builder empty state with in-context lead-sourcing CTAs.

When a campaign runs dry "You're out of leads, but this campaign worked" — with an offer to auto-source similar leads and spin up a duplicate campaign automatically.

Auto-generated follow-up campaign, created from a successful list that ran out of leads.

When the fix itself hits a wall The auto-created follow-up campaign can push an account over its plan's monthly credit limit. That can't fail silently. It surfaces the product's existing "Campaign limit reached" banner and Buy Credits modal — the same upgrade path used everywhere else credits run out, not a one-off error state built just for this edge case.

Retention meets a real constraint: the auto-generated campaign hits the account's credit ceiling, and resolves through the product's existing upgrade path instead of a dead end.

The taxonomy, shipped The growth-hook category from the Discovery artifact showed up as contextual toasts tied directly to campaign performance: 1 Low open rate   "Heads up — your emails aren't getting enough opens" deep-linking into the subject-line field. 2 Good open rate
"Nice open rate — now let's boost replies" deep-linking into the email copy editor.

Low open rate triggers a nudge that deep-links straight into the subject-line field.


A good open rate shifts the nudge toward the email copy editor instead.

6

Impact
Measured over a 90-day window post-launch:

22.7%

37.3%

52.8%

Adoption rate Internal Workflow Capture Rate Second-month retention Activation and Discovery were tracked separately during the launch window; the three figures above cover the Adoption / Internal Workflow Capture / Retention stages of the funnel defined in Discovery.

For context, Userpilot's 2025 SaaS Benchmark Report puts average Core Feature Adoption for CRM & Sales tools at ~25.6% — a 22.7% adoption rate for a brand-new workflow module sits close to market average, a solid result for a first launch, not a breakout one.

Company-wide during this period: ARR doubled, churn fell from 11% to 5% — shaped by product, growth, and design working in parallel, not a single person's work. One result I can attribute directly: a landing-page hero I designed won its A/B test, lifting sign-ups by 67% and pricing-page views by 32%. 
From Execution to Strategy. Where the questions started coming from me. Early in the project, product feedback on my designs came from Mariana — attributed comments on specific screens. On April 2nd, I started leaving my own sticky notes on the file — "Questions" and "UX Proposals" about the Email Engine as a whole, not just the screen in front of me: Gmail/Outlook inbox forwarding, Slack alerts for positive replies, a "Hot lead detected" in-app banner, re-engagement triggers for inactive campaigns. Nobody asked me to solve these. I noticed them while designing and wrote them down as I went.

Some of it later shipped — in a different shape. The "Slack alerts for positive replies" idea resurfaced weeks later as the in-app growth-hook toast documented in Discovery ("You've just received a reply!"). Not identical to what I first sketched, but recognizably the same instinct.

Self-authored questions and proposals — not responses to a brief, but things I noticed and flagged on my own.

7

Learnings
The MakeDeal habit — ask how this breaks under real usage — was already running by the time I started this project. What still wasn't systematic: 1 Ship the taxonomy, then instrument it.    We shipped the growth-hook UI without wiring success metrics to each individual nudge from day one. 2 Surface the wall before you build around it.
The credit-limit edge case only got its own screen after the main flow was already live — it should have been scenario one, not an afterthought.

← Previous CaseNext Case • Aithentic →
Top 2026 © Oleksandr Vartanov