Lifecycle marketing campaigns

Sent via Sendy (self-hosted, on Amazon SES). A separate rail from the dunning & billing emails, and not blocked by the Chargebee migration that gates those.

{{fields}} resolve from the tables below; text in "quotes" is literal email copy. In Sendy these render as [Field name,fallback=there] tags at build time.

Every marketing send carries a real {{unsubscribe}} footer. The transactional dunning emails don't, because those are account-servicing, not bulk mail. Don't cross the wires.

Transactional vs marketing

Same voice, two entirely separate pipelines. This doc is only the marketing rail.

 Transactional (dunning)Marketing (this doc)
Sender railSES, billing addressSendy on SES, named person
Fires ona billing event (charge fail, retry, pause)subscribe-date + time, or list / segment
Depends onChargebee webhooks blockeda user feed into Sendy independent
Unsubscribeno (servicing mail)yes, on every send

How Sendy fires

Sendy has exactly three ways to send. None of them react to in-product behavior on their own.

MechanismFires onUse for
Autorespondersubscribe-date + elapsed time (Day 0, Day 2, …)drips: onboarding, education
Segment broadcasta manual send to a filtered segmentone-offs: product news, seasonal offers
List movea user added to / removed from a listcrossing a state boundary (free → paid)

What Sendy knows about a user

Open — gates every behavioral campaign

Sendy only knows what we sync into it: its list membership and its custom fields. It cannot react to "user made their first deck" unless a job writes that state into Sendy on a schedule. Until this is settled, every campaign is designed both ways:

Blind — Sendy has signup date + plan tier only. Campaigns run on time and plan. Onboarding still works in full; behavioral targeting does not.

Synced — a job writes {{deck_count}}, {{last_active}}, {{activated}} into custom fields on a schedule, so segments can branch on behavior.

Anywhere a campaign leans on synced data, it's tagged needs feed so it's easy to resolve once we know.

Campaign map

CampaignSendy triggerSegmentData neededStatus
Onboarding / activationautoresponderall new signupssignup date onlywritten ↓
Free → paid conversionautoresponder + segmentfree plan, still activeplan; needs feed to target engagednext pass
Feature educationautoresponder / broadcasthasn't used feature Xneeds feednext pass
Reactivationsegment broadcastdormant free, 30d+ idleneeds feednext pass
Broadcastsmanual broadcastnews: all · offers: segmentnone / plannext pass

Message intent — onboarding drip

One clear action per email, always pointing at real product. Warm, never pushy. Each touch earns the next by being useful, not by nagging.

TouchWhat the message should do
Day 0 · WelcomeSay what Presentations.AI does in one line and point at the single first action: make a deck. Note the free credits are already there.
Day 2 · First deckLower the barrier to the first deck. Show how little input it takes. Give a concrete starting prompt.
Day 4 · CapabilityTeach one genuinely useful thing they may not know: turn a document or notes into a deck.
Day 7 · RangeShow what people build with it, so they see it fits their own use. Invite them back in.
Day 12 · What's nextSoft bridge to Pro for anyone outgrowing the free credits. The seam where onboarding hands off to conversion.

Merge fields

{{first_name}}User's first name. Sendy fallback: "there"
{{credits}}Free-plan credit grant (200)
{{deck_count}}Decks the user has made. needs feed
{{last_active}}Last time they created or edited a deck. needs feed
{{activated}}Has made at least one real deck (true/false). needs feed
{{sender}}Placeholder: a real teammate's name + a named from-address (not billing@)
{{unsubscribe}}Sendy's per-send unsubscribe link. Required on every marketing email

Onboarding / activation drip

A five-touch autoresponder off the signup date, running ~12 days. It's the one campaign that works fully in the blind case, since every touch is time-based. Where synced data would sharpen it, the needs feed flag shows the behavioral upgrade.

Two tracks, once the feed exists

Not-yet-activated (default, works blind): the copy below, nudging toward a first deck.

Activated needs feed: once {{activated}} is true, suppress the "make your first deck" nudges and switch that user to a lighter "here's what's next" track (Day 4 onward only). Until the feed exists, everyone runs the not-yet-activated track on time, and the copy is written so it never insults someone who already made a deck.

Day 0 · Welcome
Autoresponder, sends on signup · all new signups
From{{sender}}, Presentations.AI
SubjWelcome to Presentations.AI, {{first_name}}
PrevType a topic. Watch it become a deck.

Hi {{first_name}},

Presentations.AI turns an idea into a finished deck. You describe what you need, and you get real slides back, ready to edit and present.

The quickest way to see it is to make one. You have {{credits}} credits on the free plan, so there's nothing to set up first.

Make your first deck

{{sender}}, Presentations.AI

Check: if the product already sends a verify/welcome on signup, move this to Day 1 or fold it in, so we don't land two welcomes.

Day 2 · First deck
Autoresponder, Day 2 · needs feed to suppress if already activated
From{{sender}}, Presentations.AI
SubjYour first deck is a sentence away
PrevOne line in, a full deck out.

Hi {{first_name}},

The first deck takes about a minute. You don't start from a blank canvas. You type one line about what you want, and the slides come back drafted.

Something like "a 10-slide pitch for a coffee subscription startup" is plenty to start. You can change anything after.

Start a deck

{{sender}}, Presentations.AI

Day 4 · Capability
Autoresponder, Day 4 · on the activated track, this is where that user joins
From{{sender}}, Presentations.AI
SubjTurn a document into a deck
PrevDrop in notes or a doc. Get slides back.

Hi {{first_name}},

If you already have the content, you don't have to retype it. Paste in your notes, or bring in a document, and Presentations.AI shapes it into slides.

It's the fastest way to turn something you've already written into something you can present.

Try it with a document

{{sender}}, Presentations.AI

Day 7 · Range
Autoresponder, Day 7 · all still on the drip
From{{sender}}, Presentations.AI
SubjWhat people build with Presentations.AI
PrevPitches, sales decks, class material, reports.

Hi {{first_name}},

A quick sense of what it's good for, in case your use isn't the obvious one:

• Investor and sales pitches
• Turning a report or doc into a readable deck
• Class and training material
• Internal updates and reviews

Whatever you're working on next, it's a good place to start.

Open Presentations.AI

{{sender}}, Presentations.AI

Day 12 · What's next
Autoresponder, Day 12 · needs feed to send only to still-free, engaged users
From{{sender}}, Presentations.AI
SubjYou've got room to go further
PrevMore credits, heavier decks, when you need them.

Hi {{first_name}},

If Presentations.AI has earned a place in how you work, Pro gives you room to lean on it: 5,000 credits and headroom for bigger, more frequent decks.

No rush. The free plan stays exactly as it is. This is just here for when you outgrow it.

See what Pro adds

{{sender}}, Presentations.AI

This is the seam. Day 12 hands off to the free → paid conversion campaign below, so the two shouldn't double up on the same week. Suppression rule between them is a next-pass detail.

Free → paid conversion

Scaffold · next pass

Intent: move active free-plan users to Pro, on value not pressure. Best when it can target the engaged (credits nearly spent, coming back often) rather than blast all free users. needs feed for the good version; a plan-only time drip is the blind fallback. Distinct from dunning: this is people who never paid, not a failed charge.

Feature education

Scaffold · next pass

Intent: teach one feature to the segment that hasn't touched it (brand kit, export to PPT, templates, collaboration). Broadcast per feature, or a slow evergreen autoresponder. needs feed to know who's used what.

Reactivation

Scaffold · next pass

Intent: win back dormant free users (30+ days idle) with what's new since they left, or a reason to come back. Segment broadcast. needs feed for the idle segment. This is the free-user cousin of the billing win-back in the dunning doc, and must not overlap it.

Broadcasts

Scaffold · next pass

Intent: reusable one-off templates. Product news (to all, opted-in) and seasonal offers (to a plan segment). Not a drip, so this is a house-style template plus rules, not a sequence.