Make re-engagement email tiers configurable from admin; v1.1.20
Day thresholds and per-tier subject/body/CTA are now editable in the Email Templates panel. Tier keys are position-based (t1/t2/t3) so changing day values never re-sends emails already fired. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -478,6 +478,12 @@ function EmailTemplatesPanel({
|
||||
fieldKeys={['studyReminderEmailSubjectPrefix','studyReminderEmailBody','studyReminderEmailCtaLabel','studyReminderEmailSignoff']}
|
||||
openKey="study-reminder" />
|
||||
|
||||
<EmailTemplateCard type="study" icon="💤" title="Study Account — Re-engagement Reminders"
|
||||
trigger="A student with reminders enabled hasn't logged in for the configured number of days (fires up to 3 tiers, one per check)"
|
||||
autoVars="Student's name, study title, study URL, and a one-click unsubscribe link are auto-inserted"
|
||||
fieldKeys={['studyReengagementDays','studyReengagementT1Subject','studyReengagementT1Body','studyReengagementT1Cta','studyReengagementT2Subject','studyReengagementT2Body','studyReengagementT2Cta','studyReengagementT3Subject','studyReengagementT3Body','studyReengagementT3Cta']}
|
||||
openKey="study-reengagement" />
|
||||
|
||||
<EmailTemplateCard type="transactional" icon="🔐" title="Account Security — Email Change Confirmation"
|
||||
trigger="A student requests to change their account email address"
|
||||
autoVars="Button links to a one-time verification URL (auto-generated per request, not editable)"
|
||||
@@ -972,6 +978,16 @@ const FIELDS: Array<{ key: StringField; label: string; multiline?: boolean; sect
|
||||
{ key: 'studyReminderEmailBody', label: 'Body Paragraph', multiline: true, section: 'email-templates' },
|
||||
{ key: 'studyReminderEmailCtaLabel', label: 'Button Label', section: 'email-templates' },
|
||||
{ key: 'studyReminderEmailSignoff', label: 'Signoff', multiline: true, section: 'email-templates' },
|
||||
{ key: 'studyReengagementDays', label: 'Inactivity thresholds — comma-separated days for each tier (e.g. "7,14,30")', section: 'email-templates' },
|
||||
{ key: 'studyReengagementT1Subject', label: 'Tier 1 — Subject Line', section: 'email-templates' },
|
||||
{ key: 'studyReengagementT1Body', label: 'Tier 1 — Body', multiline: true, section: 'email-templates' },
|
||||
{ key: 'studyReengagementT1Cta', label: 'Tier 1 — Button Label', section: 'email-templates' },
|
||||
{ key: 'studyReengagementT2Subject', label: 'Tier 2 — Subject Line', section: 'email-templates' },
|
||||
{ key: 'studyReengagementT2Body', label: 'Tier 2 — Body', multiline: true, section: 'email-templates' },
|
||||
{ key: 'studyReengagementT2Cta', label: 'Tier 2 — Button Label', section: 'email-templates' },
|
||||
{ key: 'studyReengagementT3Subject', label: 'Tier 3 — Subject Line', section: 'email-templates' },
|
||||
{ key: 'studyReengagementT3Body', label: 'Tier 3 — Body', multiline: true, section: 'email-templates' },
|
||||
{ key: 'studyReengagementT3Cta', label: 'Tier 3 — Button Label', section: 'email-templates' },
|
||||
{ key: 'emailChangeSubject', label: 'Subject Line', section: 'email-templates' },
|
||||
{ key: 'emailChangeBody', label: 'Body Text', multiline: true, section: 'email-templates' },
|
||||
{ key: 'emailChangeCtaLabel', label: 'Button Label', section: 'email-templates' },
|
||||
|
||||
@@ -231,6 +231,17 @@ export interface SiteContent {
|
||||
studyReminderEmailBody: string
|
||||
studyReminderEmailCtaLabel: string
|
||||
studyReminderEmailSignoff: string
|
||||
// ── Study Re-engagement Emails ──
|
||||
studyReengagementDays: string
|
||||
studyReengagementT1Subject: string
|
||||
studyReengagementT1Body: string
|
||||
studyReengagementT1Cta: string
|
||||
studyReengagementT2Subject: string
|
||||
studyReengagementT2Body: string
|
||||
studyReengagementT2Cta: string
|
||||
studyReengagementT3Subject: string
|
||||
studyReengagementT3Body: string
|
||||
studyReengagementT3Cta: string
|
||||
// ── Email Change Confirmation ──
|
||||
emailChangeSubject: string
|
||||
emailChangeBody: string
|
||||
@@ -429,6 +440,16 @@ export const DEFAULTS: SiteContent = {
|
||||
studyReminderEmailBody: 'A new lesson has been unlocked in your study track. Open it below to continue where you left off.',
|
||||
studyReminderEmailCtaLabel: 'Open the Lesson',
|
||||
studyReminderEmailSignoff: 'Grace and peace,\nVerse by Verse with Nate',
|
||||
studyReengagementDays: '7,14,30',
|
||||
studyReengagementT1Subject: 'Your study is waiting for you',
|
||||
studyReengagementT1Body: "It's been a while — your progress is saved and your next lesson is ready whenever you are.",
|
||||
studyReengagementT1Cta: 'Continue Studying',
|
||||
studyReengagementT2Subject: "Don't lose your momentum",
|
||||
studyReengagementT2Body: "Every note and completed lesson is still right there. A little each day adds up — come back and continue.",
|
||||
studyReengagementT2Cta: 'Return to Your Study',
|
||||
studyReengagementT3Subject: 'Your progress is still here',
|
||||
studyReengagementT3Body: "Your study progress is still intact and waiting. There's no deadline — come back whenever you're ready.",
|
||||
studyReengagementT3Cta: 'Open Your Study',
|
||||
emailChangeSubject: 'Confirm your new email address',
|
||||
emailChangeBody: 'Click the link below to confirm your new account email. If you did not request this change, ignore this message.',
|
||||
emailChangeCtaLabel: 'Confirm Email Change',
|
||||
|
||||
Reference in New Issue
Block a user