Claude Code logo
Claude Code template
klaviyo.comdocs.claude.com

Abandoned Cart Email Writer

A three-email recovery sequence with no discount in email one — reminder, objection, last call. It won't invent urgency, and it never sends.

NewNew8.8 KB snapshotStarter VM
Claude Code logo

What's inside

Harness

Claude Code

Plan

Starter

vCPU

1

Memory

2 GiB

Snapshot

8.8 KB

How it works · ~3 minutes

  1. 01 · Fork

    New isolated microVM on your subdomain — creator state included.

  2. 02 · Your keys

    Log into Claude Code with your own model credentials (BYOK).

  3. 03 · Ask it to work

    Open the terminal and give it a real job. You keep what ships.

30-day money-back on your first purchase · no free trial · keys never leave the VM

About this template

A 10% code in email one is how the discount becomes the price

Cart recovery "works" — the recovery rate looks great. What actually happened: you discounted the people who were going to buy anyway, and taught everyone else that abandoning the cart is how you get 10% off.

So this writes no discount in email one. Ever. That's the rule that protects the margin, and it's in a file you can read.

Three emails, each with a job

  • +1 hour — the reminder. No discount, no urgency. Most abandons are a phone call or a dead battery, not a price objection. Restore the cart and get out of the way.
  • +24 hours — the objection. Still no discount. It answers the specific reason your category gets abandoned — shipping cost, sizing doubt, returns worry, payment trust — and it asks you which one rather than assuming price.
  • +72 hours — last call. Scarcity only if true. A discount here at the earliest, and only if you opted in.

Ask for a discount in email one and it pushes back once with the reason, then records that you overrode it.

It won't invent urgency

"Only 3 left!" on an unlimited-stock item is a lie that costs you the customer you just recovered. Stock levels, delivery dates and return windows come from your export or from you — never from the model.

Written to the cart, not to a segment

An email naming the actual item beats "you left something behind". It uses what the export gives — item, variant, price, cart value, repeat-buyer status — and anything absent stays absent.

High cart value gets the objection email, not a bigger discount. Low cart value may not deserve three emails at all, and the segment note says so.

Compliance is in the rules, not assumed

Unsubscribe in all three emails. Postal address for CAN-SPAM, or [MISSING: postal address] if you haven't supplied one. No misleading subject lines — fake Re: threading is the fastest route to a spam folder.

Subject lines are for testing

Three variants per email, and it never names a winner. There's no data to pick one and the rules forbid pretending otherwise.

What you supply

Your own Claude Code login, plus an abandoned-checkout export (Shopify: Orders → Abandoned checkouts) in ~/cart/exports/.

No ESP key. The export is the input, which is also why nothing can send.

Where this stops

It writes copy to paste into Klaviyo, Shopify Email, or whatever you use. It does not send, connect to an ESP, or schedule anything.

It won't quote a recovery-rate benchmark — it has neither your data nor a citable source. And it's for cart abandoners, who consented; a purchased list is a different thing and out of scope.

Verified on build: the skill, the working tree, the NEVER_SEND guard, the no-discount-in-email-one rule, the three-email structure and the compliance rules are present on a fresh fork. Running it on your own carts is yours to do.

Inside this fork

Forking copies this template into a brand-new, fully isolated microVM on your own subdomain. Here's exactly what lands in it.

  • Claude Code agent

    The upstream harness, pre-installed — same version the creator ran.

  • Starter VM

    1 vCPU · 2 GiB RAM · 10 GiB disk.

  • Creator's /persist data

    The captured persist volume is copied byte-for-byte into your fork.

  • BYOK — your keys, your VM

    Add your model API keys after forking; they live only inside your microVM.

What this agent can do

1 skill

  • cart-recovery-writer

    Write a three-email abandoned-cart recovery sequence from a cart export — reminder, objection, last call — with no discount in email one.…

What you'll configure after forking

Secrets are scrubbed from shared templates — these are the names you supply in your agent's terminal once it boots.

Environment variables

  • ANTHROPIC_API_KEY

Your turn

Your own Abandoned Cart Email Writer, live in about 3 minutes.

Forking copies this Claude Codeagent into a brand-new, fully isolated microVM on your own subdomain — the creator's /persist state and all. Add your own keys after it boots; they never leave the box. Don't love it? Your first jurniti purchase comes with 30 days to get every cent back.

New paid VM · BYOK · 30-day money-back on your first purchase · ~3 min to provision

Starter · fork

$25/ mo

Needs 1 of your own API key