Hypertune · email handover

Klaviyo handover for Gavin

Klaviyo build list for Gavin · 25 September 2026

From Vinson · 25 September 2026

Replaced by the email plan: who does what, after the call with Austin on 25 September. Use that one.

This is everything to build in Klaviyo, in order. It assumes every proposal in the email report is approved. If anything changes when we go through it with Austin, I'll send you a new version, and the newest one always wins.

Kevin handles the website, the app and Stripe. Where a build needs something from him, it says so, and the full list is in "Waiting on Kevin" near the end.

Before you start: send me an hours estimate per build (1 to 9 below). You're paid hourly, so I'd like to agree the total before work begins.

Why this matters, in one paragraph

Klaviyo credits email with $1,628 in the last 90 days, about 1% of revenue, and most of that is Stripe retrying cards on its own. Nothing in the account has changed since 23 July. Four gaps cost real money:

Rules for every flow and campaign

  1. Conversion metric: Successfully Paid, everywhere, including the account default.
  2. Exit rule on every flow: leave the flow once Successfully Paid has happened since entering.
  3. Smart Sending: on for marketing emails (account created, trial email 2, cancel flows, campaigns). Off for account notices (failed payment, renewal reminder, trial ending), which must never be skipped, and for the trial welcome, which follows the account-created email by minutes.
  4. One job per email: one button, one link destination. Support contact goes in the footer only.
  5. Tag every link: utm_source=klaviyo&utm_medium=email&utm_campaign=<flow or campaign name>&utm_content=<email number>, so we can see which email drove the visit.
  6. Names: "Hi there" when there's no first name, never "Hi ,".
  7. Prices: never type a price into a template. Use the profile or event property Kevin sends. The yearly offer is changing around 30 September, so any typed-in price will go out of date.
  8. Claims: performance is always "up to 60%", never typical or average. Intel is "Hypertune's exclusive partner for gaming optimization"; no "endorsed", "certified" or "official". No pro player names.
  9. Sender name: Austin picks one today. I'll confirm it; don't change the current senders until then.
  10. Test before live: run a test profile through every new or changed flow and send me screenshots of each email on desktop and mobile.

Build order

#BuildTargetWaits on
1Failed payment rebuildLive before 1 NovemberKevin: portal link, Stripe settings
2Campaign rules and segment fixNext weekNothing
3Successfully Paid as the default everywhereNext week, 10 minutesNothing
4Abandoned checkoutDraft next week; live when Kevin's event arrivesKevin: Checkout Abandoned event
5Yearly renewal reminderLive by 15 NovemberKevin: renewal date and amount on profiles
6Cancel and account-created fixesCopy fixes next week; branches when Kevin's field arrivesKevin: Reason Left
7Template passNext weekNothing
8HousekeepingNext weekAustin: sender name, "Became paid" drafts
9Trial sequence, three emailsAfter 1 to 6Kevin: installer link, app-session event, plan and price

1. Failed payment rebuild

Flow: IB // Stripe payment failed -- (Un6Nkh).

Why: Stripe retries a declined card several times and the flow restarts on every retry, so about 3,800 people got 27,157 emails in 90 days. The first email links only to Discord. After 48 hours the flow keeps only insufficient-funds declines and drops everyone else, who recover more often.

Build:

- insufficient funds: "your bank declined the payment; it may go through after payday, or you can use another card";

- expired or lost card: "your card needs updating";

- anything else: the generic version.

Done when: a test profile gets one sequence per 30 days however many retries fail, the button opens the portal, and the flow stops once the payment succeeds.

We measure: past-due subscriptions recovered against lost, monthly. Baseline: 412 recovered, 484 lost, 22 Aug to 21 Sep.

2. Campaign rules and segment fix

Standing rules for every campaign:

Fix the segment IB // Paid & Cancelled users. It currently matches anyone who "started a paid subscription in the last 90 days and has paid in the last 90 days", which catches 3,213 current customers. Redefine it as: cancelled in the last 90 days, and Successfully Paid zero times in the last 35 days.

Done when: both exclusion segments exist and are saved as the default exclusions for new campaigns (or listed in a note in the account if Klaviyo won't save defaults). The fixed segment returns no active subscribers when checked against a handful of known paying customers.

3. Successfully Paid everywhere

Set Successfully Paid as the account's default conversion metric and on all six live flows. Ten minutes.

4. Abandoned checkout

Why: GA4 counted 2,963 checkout starts in 20 days against about 1,100 new paying subscriptions, and Klaviyo has recorded no checkout starts this year. Nobody who leaves the Stripe payment page hears from us.

Build a new flow, triggered by Checkout Abandoned (Kevin sends it when a Stripe checkout expires unpaid, one hour after it opened, and skips anyone already subscribed):

Build it as a draft now. It goes live when Kevin's event arrives and a test checkout has triggered it.

Done when: an abandoned test checkout triggers email 1 within about an hour, the button reopens that checkout, and paying stops the flow.

5. Yearly renewal reminder

Why: 1,811 subscribers on the early-bird $47.88 yearly plan renew for the first time between November and August: 42 in November, 264 in December, then about 250 a month. Kevin switches on Stripe's built-in reminder now, which covers November. Your Klaviyo version replaces it before the December batch.

Build a date-based flow on the renewal date property Kevin adds to each yearly subscriber's profile:

Target: live by 15 November, two weeks before the first December renewals.

Done when: a test profile with a renewal date 15 days out gets both emails on the right days with the right amount.

6. Cancel flows and account-created fixes

Flows: IB // Cancelled subcription -- (XK844V), IB // Cancelled free trial -- (YAQBAv), IB // Account created (Rwzvi6).

Why: both cancel flows split on "Reason Left", but that field is never filled in, so only the generic email has ever sent. Kevin will write the cancellation survey answer into Reason Left.

Map the branches to the survey answers:

Survey answer (share of 730)Branch
Did not give me performance (38%)Existing fix-it email
Too expensive (20%)Existing discount email
Not using it enough (19%)Setup help email
Other (17%)Generic email
Bug (5%)New: support contact email

"Too complicated" is a branch but not a survey answer. Fold it into setup help.

Copy fixes you can do now:

Done when: a test profile with each Reason Left value gets the right branch.

7. Template pass

All 21 templates:

Send me a list of what you changed.

8. Housekeeping

9. Trial sequence

Flow: IB // Stripe Free Trial Activated -- (SDXETb). About 300 trials a month now, so this comes after 1 to 6.

Shape: three emails, one button each, in the V2 design:

Smart Sending off for emails 1 and 3. Full copy, design rules and build steps are in the trial emails brief.

Waiting on Kevin

Agree the exact property and event names with him before you build, so they match.

What Kevin providesUnblocks
Stripe customer portal link with card update switched on1, 5
Stripe: Smart Retries on, retry window as decided, Stripe's failed-payment emails off (on your go-live day), renewal reminder on1, 5
In-app banner from payment failure until paid, same button1 (runs alongside)
Checkout Abandoned event: email, plan, price, recovery_url; 1-hour expiry; skip if subscribed4
Renewal date and renewal amount on each yearly subscriber's profile5
Reason Left written to the profile on cancel, using the survey answer6
Trial end date, plan price and billing period on trial users' profiles9
Direct installer link; whether a link can open the app; an app-session event to Klaviyo9

Not doing

Reporting back