booster

Email Lifecycle Strategy

Boost to Monthly Conversion

(4)

Boost 1 - Donation Confirmation

Built - View
Donor

Subject Line

"Your boost to {{ contact.schoolteam|default("your team") }} went through"

Trigger

Immediately after a one-time boost is processed

Timing

Real-time

Goal

Confirm the gift, provide a receipt, and plant the seed to go monthly.

Technical Trigger

stripe.payment_intent.succeeded (one-time) -> enqueue donor email with {donor_id, team_id, amount, charge_id}

Boost 2 - Turn It Monthly

Built - View
Donor

Subject Line

"One boost is great. Monthly changes the season for {{ contact.schoolteam|default("your team") }}."

Trigger

3 days after a one-time boost

Timing

3 days post-boost

Goal

Convert one-time boosters into recurring monthly supporters.

Technical Trigger

scheduled_job: donor.last_boost_at <= now - 3d AND has_active_subscription = false

Boost 3 - The Team Needs You All Season

Built - View
Donor

Subject Line

"{{ contact.schoolteam|default("your team") }} needs you all season, not just today"

Trigger

10 days after a one-time boost (still not monthly)

Timing

10 days post-boost

Goal

Make the case that a single boost fades - monthly sustains the whole season.

Technical Trigger

scheduled_job: donor.last_boost_at <= now - 10d AND has_active_subscription = false

Boost 4 - Last Chance to Go Monthly

Built - View
Donor

Subject Line

"Last chance to turn your boost into monthly"

Trigger

21 days after a one-time boost (still not monthly)

Timing

21 days post-boost

Goal

Final conversion push with urgency and a simple one-tap upgrade link.

Technical Trigger

scheduled_job: donor.last_boost_at <= now - 21d AND has_active_subscription = false

Donor Lifecycle

(4)

Monthly Donor Welcome

Built - View
Donor

Subject Line

"You're in. Here's what happens next for {{ contact.schoolteam|default("your team") }}"

Trigger

Immediately after first monthly gift is set up

Timing

Real-time

Goal

Welcome recurring donors, explain what they unlocked, set expectations.

Technical Trigger

stripe.invoice.paid (first cycle) OR stripe.subscription.created -> donor.is_recurring = true

Monthly Donation Receipt

Built - View
Donor

Subject Line

"Your monthly boost to {{ contact.schoolteam|default("your team") }} processed"

Trigger

Each successful monthly charge

Timing

Monthly

Goal

Provide a recurring receipt and keep the donor informed of ongoing support.

Technical Trigger

stripe.invoice.payment_succeeded WHERE subscription_id IS NOT NULL

Season Update from the Team

Built - View
Donor

Subject Line

"Season update from {{ contact.schoolteam|default("your team") }}"

Trigger

Monthly during the active season

Timing

Monthly (in-season)

Goal

Keep donors connected with team news, photos, and progress toward the goal.

Technical Trigger

scheduled_job: team.season_status = "active" AND day_of_month = 1 -> send to all active donors on team

Game Day Cheer

Built - View
Donor

Subject Line

"It's game day - {{ contact.schoolteam|default("your team") }} needs you"

Trigger

Morning of a scheduled game/match

Timing

Game days

Goal

Drive engagement on game days and remind donors who they are supporting.

Technical Trigger

scheduled_job: team.games WHERE game_date = today -> send to donors who opted into game alerts

Donor Retention & Re-engagement

(7)

Goal Reached Celebration

Built - View
Donor

Subject Line

"We hit the goal - thank you for boosting {{ contact.schoolteam|default("your team") }}"

Trigger

When the team hits its funding goal

Timing

Event-based

Goal

Celebrate the win with donors and thank them for making it happen.

Technical Trigger

event: team.raised_total >= team.funding_goal -> broadcast to all donors on team

Year-End Impact Summary

Built - View
Donor

Subject Line

"Your year of impact for {{ contact.schoolteam|default("your team") }}"

Trigger

End of calendar year / season

Timing

Annual

Goal

Show cumulative impact and motivate a year-end or next-season gift.

Technical Trigger

scheduled_job: date = Dec 31 OR team.season_end_date -> aggregate donor.gifts_total for year

Inactive Donor Re-engagement

Built - View
Donor

Subject Line

"Still cheering for {{ contact.schoolteam|default("your team") }}?"

Trigger

No donation or page visit in 60 days

Timing

60 days inactive

Goal

Re-engage lapsed donors with team updates and a soft ask.

Technical Trigger

scheduled_job: donor.last_activity_at <= now - 60d AND donor.status = "active"

Share the Team Page Nudge

Built - View
Donor

Subject Line

"Share {{ contact.schoolteam|default("your team") }}'s page with 5 people"

Trigger

1 week after a boost if the page was not shared

Timing

7 days post-boost

Goal

Encourage donors to spread the word and bring in more supporters.

Technical Trigger

scheduled_job: donor.last_boost_at = now - 7d AND donor.shared_page = false

Upgrade Monthly Amount

Built - View
Donor

Subject Line

"Ready to do more for {{ contact.schoolteam|default("your team") }}?"

Trigger

3 months into a recurring donation

Timing

3 months recurring

Goal

Ask engaged monthly donors to increase their monthly gift.

Technical Trigger

scheduled_job: subscription.created_at <= now - 90d AND subscription.status = "active"

Birthday Message

Built - View
Donor

Subject Line

"Happy birthday from booster"

Trigger

On the donor birthday

Timing

Annual

Goal

Build a personal connection with a birthday note and a soft team-page link.

Technical Trigger

scheduled_job: donor.birth_month = current_month AND donor.birth_day = current_day

Refer a Friend or Team

Built - View
Donor

Subject Line

"Know another team that needs a fundraiser?"

Trigger

2 weeks after a boost

Timing

14 days post-boost

Goal

Turn happy donors into advocates by asking them to refer other teams or fans.

Technical Trigger

scheduled_job: donor.last_boost_at = now - 14d

Donor Financial / Admin

(3)

Failed Payment Retry

Built - View
Donor

Subject Line

"Your monthly boost needs a quick update"

Trigger

When a monthly charge fails

Timing

Event-based

Goal

Notify the donor, explain the issue, and provide a link to update their card.

Technical Trigger

stripe.invoice.payment_failed -> include retry_date and update_payment_link

Card Expiring Soon

Built - View
Donor

Subject Line

"Your card ends soon - keep your boost going"

Trigger

30 days before a stored card expires

Timing

Pre-expiry

Goal

Prevent churn by prompting donors to update expiring cards before they lapse.

Technical Trigger

scheduled_job: payment_method.exp_month/yr within 30d -> send update-card link

Year-End Tax Receipt

Built - View
Donor

Subject Line

"Your {{ year }} tax receipt from booster"

Trigger

End of calendar year

Timing

Annual

Goal

Deliver a consolidated tax-deductible receipt for the full year of giving.

Technical Trigger

scheduled_job: date = Jan 15 -> compile donor.tax_total for prior calendar year

Page Owner Operations

(6)

New Boost Notification

Built - View
Page Owner

Subject Line

"New boost on {{ contact.schoolteam|default("your team") }} - {{ amount }}"

Trigger

Real-time when a donation lands

Timing

Real-time

Goal

Keep coaches/ADs informed of every donation as it happens.

Technical Trigger

stripe.payment_intent.succeeded -> page_owner_id lookup -> push notification + email

Weekly Donations Digest

Built - View
Page Owner

Subject Line

"Your weekly fundraising digest - {{ contact.schoolteam|default("your team") }}"

Trigger

Every Monday morning

Timing

Weekly

Goal

Summarize the week: total raised, number of donors, and momentum vs goal.

Technical Trigger

scheduled_job: weekday = Monday 09:00 ET -> aggregate team.donations for prior 7 days

Stripe Connection Reminder

Built - View
Page Owner

Subject Line

"Connect Stripe to start accepting donations"

Trigger

Page created but Stripe not connected

Timing

1, 3, 7 days after signup

Goal

Push page owners to connect Stripe so their page can accept donations.

Technical Trigger

scheduled_job: page.stripe_account_id IS NULL AND page.created_at age in {1d, 3d, 7d}

Page Setup Incomplete

Built - View
Page Owner

Subject Line

"Finish your team page to raise more"

Trigger

Page missing photo, story, or goal

Timing

3 days after signup

Goal

Prompt owners to finish their page so it converts visitors into donors.

Technical Trigger

scheduled_job: page.completeness_score < 100% AND page.created_at <= now - 3d

Payout Confirmation

Built - View
Page Owner

Subject Line

"Funds are on the way to your account"

Trigger

When a Stripe payout processes

Timing

Event-based

Goal

Confirm funds are on the way and build trust in the platform.

Technical Trigger

stripe.payout.paid -> look up connected account -> notify page owner

Failed Payout Alert

Built - View
Page Owner

Subject Line

"Your payout needs attention"

Trigger

When a Stripe payout fails

Timing

Event-based

Goal

Alert owners to resolve bank/account issues so funds are not delayed.

Technical Trigger

stripe.payout.failed -> page owner alert with failure_reason + resolve link

Page Owner Growth & Engagement

(7)

Goal Milestone Reached

Built - View
Page Owner

Subject Line

"Milestone reached - {{ percent }}% of your goal"

Trigger

At 25%, 50%, 75%, and 100% of funding goal

Timing

Event-based

Goal

Celebrate progress and prompt owners to share the milestone with supporters.

Technical Trigger

event: team.raised_total crosses {0.25, 0.50, 0.75, 1.0} * team.funding_goal

Low Activity Alert

Built - View
Page Owner

Subject Line

"No donations in 2 weeks - here's how to fix it"

Trigger

No donations in 14 days

Timing

14 days no activity

Goal

Nudge owners to re-share their page and re-engage their community.

Technical Trigger

scheduled_job: team.last_donation_at <= now - 14d AND team.season_status = "active"

Season Kickoff Reminder

Built - View
Page Owner

Subject Line

"Season starts soon - refresh your page"

Trigger

2 weeks before season start

Timing

Pre-season

Goal

Remind owners to refresh their page and launch a new fundraising push.

Technical Trigger

scheduled_job: team.season_start_date - 14d = today

Top Donor Spotlight

Built - View
Page Owner

Subject Line

"Your top supporters this month"

Trigger

Monthly

Timing

Monthly

Goal

Show owners their top supporters and suggest personal thank-you outreach.

Technical Trigger

scheduled_job: day_of_month = 1 -> query top 3 donors by amount for team

Share to Socials Prompt

Built - View
Page Owner

Subject Line

"Post your page this week to reach new donors"

Trigger

Weekly during the active season

Timing

Weekly (in-season)

Goal

Encourage owners to post their page link on socials to reach new donors.

Technical Trigger

scheduled_job: weekday = Friday AND team.season_status = "active"

Page Inactive Re-engagement

Built - View
Page Owner

Subject Line

"Your page has been quiet - let's change that"

Trigger

No page edits or shares in 30 days

Timing

30 days inactive

Goal

Re-engage dormant owners with tips and a fresh push to grow donations.

Technical Trigger

scheduled_job: page.last_edited_at <= now - 30d AND page.last_shared_at <= now - 30d

End of Season Recap

Built - View
Page Owner

Subject Line

"Season recap - {{ contact.schoolteam|default("your team") }}"

Trigger

End of the team season

Timing

End of season

Goal

Summarize season totals, thank donors, and set up next season fundraising.

Technical Trigger

scheduled_job: team.season_end_date = today -> compile season totals + donor list
booster.club email lifecycle strategy - 31 recommended automated emails.