Repository navigation
Add a lifecycle email for paid organizers who have gone quiet - #1457
Merged
Merged
Conversation
LAPSED_PAYER emails the account owner once, 60 days after the end of the account's most recent date with real paid sales, if nothing has run or been created since and nothing is upcoming. It looks back 18 months, so it also reaches accounts that went quiet before the template was enabled. When the last event ended 3+ months ago it mentions features added since. A sale counts when the order is completed, payment was received, it is not fully refunded or manually created, and the account has at least two distinct buyers outside its own team and organizer emails. All lifecycle emails now skip suspended accounts and title-case first names typed entirely in one case.
Contributor
✅ E2E smoke tests: Everything passed.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A new lifecycle email, LAPSED_PAYER ("Planning your next event?"), for organizers who sold paid tickets and then went quiet.
When it sends: once per owner, 60 days after the end of the account's most recent date with real paid sales, if:
Lookback: 18 months, anchored on the last sold date. Unlike the other lifecycle emails, this deliberately reaches accounts that went quiet before the template was enabled (noted in
.claude/rules/backend/lifecycle-emails.md).What counts as a paid sale: the order is completed, payment was received, and it isn't fully refunded or manually created. Offline payments marked as received count. The account needs at least 2 distinct buyers, excluding its own team members' and organizers' emails, which filters out organizers testing their own checkout.
Also skipped:
If the latest sold event was deleted, it falls back to the previous one.
Content:
Also in this PR
Rollout
The template starts disabled. Once enabled, the existing 25-per-type hourly cap applies. A read-only prod dry run returned 170 candidates (153 get the features paragraph), and the query took 0.62s.
Testing
LifecycleNudgeSweepServiceTestcover the send path and every exclusion above, including:pint --testandtscall pass.api-reference:exportproduced no diff.