Skip to content

Flows and campaigns

Your store emails the customers who said yes to your news at the moments that matter, with no setup. You can turn any flow off, change its words, or write a one-off campaign. You never give a list of people: Tuppence works out who gets each email when it goes, from the customers who said yes then.

  1. Starteda checkout left unpaid, a sign-up, an order
  2. Checkedwhen it goes, not when it was planned
  3. Sentwith a one-click unsubscribe
FlowStarts whenSendsOn to begin with
abandoned_checkoutA checkout with an email isn’t paid for 1 hourAfter 1 hour and 24 hours. Stops when they orderYes
welcomeSomeone says yes to your news on your storeAt once, then 3 days laterYes
post_purchaseAn order was delivered 14 days agoOnceYes
win_backNo order for 90 days, or twice their usual gapOnceYes
price_dropSomething on their wishlist costs 5 % less or moreOnce per item in 30 daysYes
birthdayTheir birthday, at 09:00 their timeOnce a yearNo

What Tuppence checks before each email goes

Section titled “What Tuppence checks before each email goes”
  • Your store is live, and the flow is on and not paused.
  • The customer still says yes to your news, and their address hasn’t bounced or reported spam.
  • No other marketing email to them in 24 hours, and at most 3 in 7 days. An email over the limit waits; it is never dropped.
  • It is between 08:00 and 20:00 in your business’s time zone.

Every email carries your business’s name and address and a one-click unsubscribe. Emails go from Tuppence in your name until your own sending domain is verified (Store settings › Email).

Terminal window
curl -sS "https://api.tuppence.ai/v1/store_flows" \
-H "Authorization: Bearer $TUPPENCE_SECRET_KEY"
curl -sS -X POST "https://api.tuppence.ai/v1/store_flows/stfl_…" \
-H "Authorization: Bearer $TUPPENCE_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'

copy takes one entry per email the flow sends (delays), each with subject, heading, body and action_label; {business}, {first_name} and {product} are filled in. Saving the words approves them. use_default_copy: true puts Tuppence’s words back.

If 0.5 % of the people a flow emailed unsubscribed, or 0.1 % reported it as spam, over 14 days and at least 200 emails, Tuppence pauses that flow and tells you why. Review the email, change its words if you need to, then turn it back on with POST /v1/store_flows/{id}/resume. Only the emails sent after that count towards the next pause.

A campaign is a one-off email to a group of the customers who said yes: those who bought from a category, have a product on their wishlist, spent more than an amount, or last ordered before a date. Write it (POST /v1/store_campaigns), see how many match now (GET /v1/store_campaigns/{id}/preview), send yourself a test from the dashboard, then schedule it (POST /v1/store_campaigns/{id}/schedule) for a time on your own clock, or now. Its results count what was sent, clicked and the orders within 7 days of a click.

EventWhen
store_flow.pausedA flow paused itself
ToolScopeDoes
list_store_flowsmarketing:readThe six flows, their words and their last 30 days
update_store_flowmarketing:writeOn or off, or new words. A person approves it, and it can be undone
resume_store_flowmarketing:writeBack on after a pause. A person approves it
list_store_campaigns, get_store_campaignmarketing:readCampaigns, how many match now, and their results
create_store_campaign, update_store_campaignmarketing:writeA draft’s words and who it’s for. A person approves each
schedule_store_campaign, unschedule_store_campaignmarketing:writeSend it at a time or now, or stop it. A person approves it

No tool takes a list of people.

Docs assistant

Open as a page
Loading the assistant…