Skip to content

Email people who did not finish checkout

Status beta

Say "email people who did not finish checkout" and get two reminders for each unpaid checkout, stopping the moment they pay.

Remind anyone who starts checkout and leaves. The reminders stop the moment the Order is paid.

Needs Charge monthly

What you get

  • 1Sequence of two reminders that ends when the Order is paidSequence
  • 1Funnel from your pricing page through checkoutFunnel

Your agent does

Sequence.create then Funnel.create
You, to your agent

Email people who did not finish checkout.

Recover abandoned checkouts.

Remind people who started paying and stopped.

# 1. Sequence.create
SEQUENCE=$(curl -X POST https://api.sb/leaseline.app/sequences \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"steps":[{"wait":"1h"},{"send":"Your checkout is saved"},{"wait":"1d"},{"send":"Any questions before you start?"}],"exitOn":"Order.paid"}' | jq -r '.sequence["$id"] | split("/") | last')

# 2. Funnel.create
curl -X POST https://api.sb/leaseline.app/funnels \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"steps":[{"page":"pricing"},{"checkout":"pro"},{"sequence":"'"$SEQUENCE"'","after":"Order.placed"}]}'
import { $ } from 'startup-builder'

const sequence = await $.Sequence.create({ steps: [{ wait: '1h' }, { send: 'Your checkout is saved' }, { wait: '1d' }, { send: 'Any questions before you start?' }], exitOn: 'Order.paid' })
await $.Funnel.create({ steps: [{ page: 'pricing' }, { checkout: 'pro' }, { sequence: sequence.$id, after: 'Order.placed' }] })
SEQUENCE=$(npx startup-builder do Sequence.create --json '{"steps":[{"wait":"1h"},{"send":"Your checkout is saved"},{"wait":"1d"},{"send":"Any questions before you start?"}],"exitOn":"Order.paid"}' | jq -r '.sequence["$id"] | split("/") | last')
npx startup-builder do Funnel.create --json '{"steps":[{"page":"pricing"},{"checkout":"pro"},{"sequence":"'"$SEQUENCE"'","after":"Order.placed"}]}'
{
  "name": "do",
  "arguments": {
    "code": "const sequence = await $.Sequence.create({ steps: [{ wait: '1h' }, { send: 'Your checkout is saved' }, { wait: '1d' }, { send: 'Any questions before you start?' }], exitOn: 'Order.paid' })\nreturn await $.Funnel.create({ steps: [{ page: 'pricing' }, { checkout: 'pro' }, { sequence: sequence.$id, after: 'Order.placed' }] })"
  }
}

Change it

  • Wait three hours before the first reminder.
  • Offer a first-month discount in the second email.
  • Only remind people who reached the card step.

Under the hood

Systems
Sequences, Billing
Nouns
Sequence, Funnel, Order
Events
Order.placed, Order.paid

An Order that is placed and not paid enters the Sequence; Order.paid ends it from any step.