@tracked/emails 0.2.5 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/emails/monthly-report.js +1 -1
- package/dist/emails/monthly-report.js.map +1 -1
- package/dist/emails/trial-converted.d.ts +8 -0
- package/dist/emails/trial-converted.d.ts.map +1 -0
- package/dist/emails/trial-converted.js +7 -0
- package/dist/emails/trial-converted.js.map +1 -0
- package/dist/emails/trial-ending-soon.d.ts +10 -0
- package/dist/emails/trial-ending-soon.d.ts.map +1 -0
- package/dist/emails/trial-ending-soon.js +36 -0
- package/dist/emails/trial-ending-soon.js.map +1 -0
- package/dist/emails/trial-expired.d.ts +8 -0
- package/dist/emails/trial-expired.d.ts.map +1 -0
- package/dist/emails/trial-expired.js +24 -0
- package/dist/emails/trial-expired.js.map +1 -0
- package/dist/emails/trial-midpoint.d.ts +11 -0
- package/dist/emails/trial-midpoint.d.ts.map +1 -0
- package/dist/emails/trial-midpoint.js +37 -0
- package/dist/emails/trial-midpoint.js.map +1 -0
- package/dist/emails/trial-started.d.ts +10 -0
- package/dist/emails/trial-started.d.ts.map +1 -0
- package/dist/emails/trial-started.js +7 -0
- package/dist/emails/trial-started.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/emails/monthly-report.tsx +4 -4
- package/src/emails/trial-converted.tsx +68 -0
- package/src/emails/trial-ending-soon.tsx +126 -0
- package/src/emails/trial-expired.tsx +96 -0
- package/src/emails/trial-midpoint.tsx +150 -0
- package/src/emails/trial-started.tsx +75 -0
- package/src/index.ts +10 -0
|
@@ -66,7 +66,7 @@ export const MonthlyReportEmail = ({ metrics = defaultMetrics, previousMetrics =
|
|
|
66
66
|
? (metrics.bodyweightChange >= 0 ? "+" : "") +
|
|
67
67
|
formatDecimal(metrics.bodyweightChange, 1) +
|
|
68
68
|
" lbs"
|
|
69
|
-
: "N/A", size: "small" }) })] })] })] })), _jsx(Hr, { style: { borderColor: colors.border, margin: "24px 0" } }), _jsxs(Section, { style: { marginBottom: "24px" }, children: [_jsx(SectionHeading, { children: "Training Summary" }), _jsxs(Row, { children: [_jsx(Column, { style: { width: "48%" }, children: _jsx(MetricCard, { label: "Sessions Per Week", value: formatDecimal(metrics.avgSessionsPerWeek, 1), size: "small", change: _jsx(ChangeIndicator, { value: metrics.avgSessionsPerWeek, previousValue: previousMetrics?.avgSessionsPerWeek || null }) }) }), _jsx(Column, { style: { width: "4%" } }), _jsx(Column, { style: { width: "48%" }, children: _jsx(MetricCard, { label: "Total Sessions", value: formatNumber(metrics.totalSessionsTracked), size: "small", change: _jsx(ChangeIndicator, { value: metrics.totalSessionsTracked, previousValue: previousMetrics?.totalSessionsTracked || null }) }) })] }), _jsx(Section, { style: { marginTop: "10px" }, children: _jsx(MetricCard, { label: "Total Sets Tracked", value: formatNumber(metrics.totalSetsTracked), change: _jsx(ChangeIndicator, { value: metrics.totalSetsTracked, previousValue: previousMetrics?.totalSetsTracked || null }) }) })] }), metrics.topMuscleGroups && metrics.topMuscleGroups.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Hr, { style: { borderColor: colors.border, margin: "24px 0" } }), _jsxs(Section, { style: { marginBottom: "24px" }, children: [_jsx(SectionHeading, { children: "Top 5 Prioritized Muscle Groups" }), _jsx(ListBox, { children: metrics.topMuscleGroups.map((mg, idx) => (_jsx(DataRow, { label: `${idx + 1}. ${mg.name}`, value: `${formatNumber(mg.sets)} sets`, isLast: idx === metrics.topMuscleGroups.length - 1 }, mg.muscleGroupId))) })] })] })), hasSessionInsights && (_jsxs(_Fragment, { children: [_jsx(Hr, { style: { borderColor: colors.border, margin: "24px 0" } }), _jsxs(Section, { style: { marginBottom: "24px" }, children: [_jsx(SectionHeading, { children: "Session Insights" }), _jsxs(ListBox, { children: [metrics.avgReadinessEnergy && (_jsx(DataRow, { label: "Avg Readiness Energy", value: `${formatDecimal(metrics.avgReadinessEnergy)}/
|
|
69
|
+
: "N/A", size: "small" }) })] })] })] })), _jsx(Hr, { style: { borderColor: colors.border, margin: "24px 0" } }), _jsxs(Section, { style: { marginBottom: "24px" }, children: [_jsx(SectionHeading, { children: "Training Summary" }), _jsxs(Row, { children: [_jsx(Column, { style: { width: "48%" }, children: _jsx(MetricCard, { label: "Sessions Per Week", value: formatDecimal(metrics.avgSessionsPerWeek, 1), size: "small", change: _jsx(ChangeIndicator, { value: metrics.avgSessionsPerWeek, previousValue: previousMetrics?.avgSessionsPerWeek || null }) }) }), _jsx(Column, { style: { width: "4%" } }), _jsx(Column, { style: { width: "48%" }, children: _jsx(MetricCard, { label: "Total Sessions", value: formatNumber(metrics.totalSessionsTracked), size: "small", change: _jsx(ChangeIndicator, { value: metrics.totalSessionsTracked, previousValue: previousMetrics?.totalSessionsTracked || null }) }) })] }), _jsx(Section, { style: { marginTop: "10px" }, children: _jsx(MetricCard, { label: "Total Sets Tracked", value: formatNumber(metrics.totalSetsTracked), change: _jsx(ChangeIndicator, { value: metrics.totalSetsTracked, previousValue: previousMetrics?.totalSetsTracked || null }) }) })] }), metrics.topMuscleGroups && metrics.topMuscleGroups.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Hr, { style: { borderColor: colors.border, margin: "24px 0" } }), _jsxs(Section, { style: { marginBottom: "24px" }, children: [_jsx(SectionHeading, { children: "Top 5 Prioritized Muscle Groups" }), _jsx(ListBox, { children: metrics.topMuscleGroups.map((mg, idx) => (_jsx(DataRow, { label: `${idx + 1}. ${mg.name}`, value: `${formatNumber(mg.sets)} sets`, isLast: idx === metrics.topMuscleGroups.length - 1 }, mg.muscleGroupId))) })] })] })), hasSessionInsights && (_jsxs(_Fragment, { children: [_jsx(Hr, { style: { borderColor: colors.border, margin: "24px 0" } }), _jsxs(Section, { style: { marginBottom: "24px" }, children: [_jsx(SectionHeading, { children: "Session Insights" }), _jsxs(ListBox, { children: [metrics.avgReadinessEnergy && (_jsx(DataRow, { label: "Avg Readiness Energy", value: `${formatDecimal(metrics.avgReadinessEnergy)}/5` })), metrics.avgReadinessMood && (_jsx(DataRow, { label: "Avg Readiness Mood", value: `${formatDecimal(metrics.avgReadinessMood)}/5` })), metrics.avgSessionSatisfaction && (_jsx(DataRow, { label: "Avg Session Satisfaction", value: `${formatDecimal(metrics.avgSessionSatisfaction)}/5` })), metrics.avgSessionProgress && (_jsx(DataRow, { label: "Avg Session Progress", value: `${formatDecimal(metrics.avgSessionProgress)}/5`, isLast: true }))] })] })] })), _jsx(Hr, { style: { borderColor: colors.border, margin: "24px 0" } }), _jsx(SmallText, { muted: true, children: "You can manage your email preferences in the Tracked app settings." }), _jsx(EmailFooter, { websiteUrl: websiteUrl, marketing: true, unsubscribeUrl: unsubscribeUrl })] }));
|
|
70
70
|
};
|
|
71
71
|
export default MonthlyReportEmail;
|
|
72
72
|
//# sourceMappingURL=monthly-report.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monthly-report.js","sourceRoot":"","sources":["../../src/emails/monthly-report.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"monthly-report.js","sourceRoot":"","sources":["../../src/emails/monthly-report.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface TrialConvertedEmailProps {
|
|
2
|
+
userName: string;
|
|
3
|
+
dashboardUrl: string;
|
|
4
|
+
websiteUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const TrialConvertedEmail: ({ userName, dashboardUrl, websiteUrl, }: TrialConvertedEmailProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default TrialConvertedEmail;
|
|
8
|
+
//# sourceMappingURL=trial-converted.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trial-converted.d.ts","sourceRoot":"","sources":["../../src/emails/trial-converted.tsx"],"names":[],"mappings":"AAaA,UAAU,wBAAwB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,mBAAmB,GAAI,yCAIjC,wBAAwB,4CA0C1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { EmailLayout, EmailHeader, EmailFooter, Heading, Paragraph, FeatureBox, SmallText, PrimaryButton, DiscordButton, } from "../components/index.js";
|
|
3
|
+
export const TrialConvertedEmail = ({ userName = "Coach", dashboardUrl = "https://dashboard.tracked.gg", websiteUrl = "https://tracked.gg", }) => {
|
|
4
|
+
return (_jsxs(EmailLayout, { preview: "Welcome to Tracked - You're now a subscriber", children: [_jsx(EmailHeader, {}), _jsx(Heading, { children: "Welcome to Tracked" }), _jsxs(Paragraph, { children: ["Hi ", userName, ", thank you for subscribing to Tracked. You now have full access to all coaching features with no time limits."] }), _jsxs(FeatureBox, { title: "What's next:", children: [_jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 Continue managing your clients from the dashboard" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 Your billing is based on your active client count" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 Manage your subscription anytime from billing settings" }), _jsx(SmallText, { children: "\u2022 Reach out if you need any help getting started" })] }), _jsx(Paragraph, { children: "We're excited to have you as part of the Tracked community. If you have any questions about your subscription or the platform, we're here to help." }), _jsx(PrimaryButton, { href: dashboardUrl, children: "Go to Dashboard" }), _jsx(Paragraph, { style: { marginTop: "24px" }, children: "Join our Discord community to connect with other coaches, share tips, and get the latest updates." }), _jsx(DiscordButton, {}), _jsx(EmailFooter, { websiteUrl: websiteUrl })] }));
|
|
5
|
+
};
|
|
6
|
+
export default TrialConvertedEmail;
|
|
7
|
+
//# sourceMappingURL=trial-converted.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trial-converted.js","sourceRoot":"","sources":["../../src/emails/trial-converted.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,GACd,MAAM,wBAAwB,CAAC;AAQhC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,QAAQ,GAAG,OAAO,EAClB,YAAY,GAAG,8BAA8B,EAC7C,UAAU,GAAG,oBAAoB,GACR,EAAE,EAAE;IAC7B,OAAO,CACL,MAAC,WAAW,IAAC,OAAO,EAAC,8CAA8C,aACjE,KAAC,WAAW,KAAG,EAEf,KAAC,OAAO,qCAA6B,EACrC,MAAC,SAAS,sBACJ,QAAQ,sHAEF,EAEZ,MAAC,UAAU,IAAC,KAAK,EAAC,cAAc,aAC9B,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,yEAE7B,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,yEAE7B,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,8EAE7B,EACZ,KAAC,SAAS,wEAA6D,IAC5D,EAEb,KAAC,SAAS,qKAIE,EAEZ,KAAC,aAAa,IAAC,IAAI,EAAE,YAAY,gCAAiC,EAElE,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,kHAG3B,EAEZ,KAAC,aAAa,KAAG,EAEjB,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,GAAI,IAC3B,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface TrialEndingSoonEmailProps {
|
|
2
|
+
userName: string;
|
|
3
|
+
daysRemaining: number;
|
|
4
|
+
trialEndDate: string;
|
|
5
|
+
upgradeUrl: string;
|
|
6
|
+
websiteUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const TrialEndingSoonEmail: ({ userName, daysRemaining, trialEndDate, upgradeUrl, websiteUrl, }: TrialEndingSoonEmailProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export default TrialEndingSoonEmail;
|
|
10
|
+
//# sourceMappingURL=trial-ending-soon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trial-ending-soon.d.ts","sourceRoot":"","sources":["../../src/emails/trial-ending-soon.tsx"],"names":[],"mappings":"AAeA,UAAU,yBAAyB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,oBAAoB,GAAI,oEAMlC,yBAAyB,4CA8F3B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Section, Text } from "@react-email/components";
|
|
3
|
+
import { EmailLayout, EmailHeader, EmailFooter, Heading, Paragraph, FeatureBox, SmallText, PrimaryButton, DiscordButton, colors, } from "../components/index.js";
|
|
4
|
+
export const TrialEndingSoonEmail = ({ userName = "Coach", daysRemaining = 3, trialEndDate = "January 29, 2025", upgradeUrl = "https://dashboard.tracked.gg/billing", websiteUrl = "https://tracked.gg", }) => {
|
|
5
|
+
const dayText = daysRemaining === 1 ? "day" : "days";
|
|
6
|
+
return (_jsxs(EmailLayout, { preview: `Only ${daysRemaining} ${dayText} left in your Tracked trial`, children: [_jsx(EmailHeader, {}), _jsx(Section, { style: {
|
|
7
|
+
backgroundColor: "#FEF3C7",
|
|
8
|
+
padding: "16px 20px",
|
|
9
|
+
borderRadius: "8px",
|
|
10
|
+
marginBottom: "24px",
|
|
11
|
+
borderLeft: "4px solid #F59E0B",
|
|
12
|
+
}, children: _jsxs(Text, { style: {
|
|
13
|
+
color: "#92400E",
|
|
14
|
+
fontSize: "14px",
|
|
15
|
+
fontWeight: "600",
|
|
16
|
+
margin: "0",
|
|
17
|
+
}, children: ["Your trial ends in ", daysRemaining, " ", dayText] }) }), _jsx(Heading, { children: "Your Trial is Almost Over" }), _jsxs(Paragraph, { children: ["Hi ", userName, ", your free trial of Tracked ends on ", trialEndDate, ". To keep your client data and continue using the coaching dashboard, subscribe before your trial expires."] }), _jsxs(FeatureBox, { title: "What happens when your trial ends:", children: [_jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 You'll lose access to the coaching dashboard" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 Your client data will be safely preserved" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 Clients will still have access to their workouts" }), _jsx(SmallText, { children: "\u2022 You can reactivate at any time to regain access" })] }), _jsxs(Section, { style: {
|
|
18
|
+
backgroundColor: colors.surface,
|
|
19
|
+
padding: "20px 24px",
|
|
20
|
+
borderRadius: "8px",
|
|
21
|
+
margin: "24px 0",
|
|
22
|
+
borderLeft: `4px solid ${colors.accent}`,
|
|
23
|
+
}, children: [_jsx(Text, { style: {
|
|
24
|
+
color: colors.accent,
|
|
25
|
+
fontSize: "18px",
|
|
26
|
+
fontWeight: "bold",
|
|
27
|
+
marginBottom: "8px",
|
|
28
|
+
}, children: "Don't lose access" }), _jsx(Text, { style: {
|
|
29
|
+
color: colors.textSecondary,
|
|
30
|
+
fontSize: "14px",
|
|
31
|
+
lineHeight: "20px",
|
|
32
|
+
margin: "0 0 16px 0",
|
|
33
|
+
}, children: "Subscribe now to keep managing your clients without interruption. Pricing starts at just a few dollars per month based on your client count." }), _jsx(PrimaryButton, { href: upgradeUrl, children: "Subscribe Now" })] }), _jsx(Paragraph, { children: "Have questions about pricing or need more time? Reply to this email or reach out on Discord. We're happy to help." }), _jsx(DiscordButton, {}), _jsx(EmailFooter, { websiteUrl: websiteUrl })] }));
|
|
34
|
+
};
|
|
35
|
+
export default TrialEndingSoonEmail;
|
|
36
|
+
//# sourceMappingURL=trial-ending-soon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trial-ending-soon.js","sourceRoot":"","sources":["../../src/emails/trial-ending-soon.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,MAAM,GACP,MAAM,wBAAwB,CAAC;AAUhC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,QAAQ,GAAG,OAAO,EAClB,aAAa,GAAG,CAAC,EACjB,YAAY,GAAG,kBAAkB,EACjC,UAAU,GAAG,sCAAsC,EACnD,UAAU,GAAG,oBAAoB,GACP,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAErD,OAAO,CACL,MAAC,WAAW,IACV,OAAO,EAAE,QAAQ,aAAa,IAAI,OAAO,6BAA6B,aAEtE,KAAC,WAAW,KAAG,EAEf,KAAC,OAAO,IACN,KAAK,EAAE;oBACL,eAAe,EAAE,SAAS;oBAC1B,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,KAAK;oBACnB,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,mBAAmB;iBAChC,YAED,MAAC,IAAI,IACH,KAAK,EAAE;wBACL,KAAK,EAAE,SAAS;wBAChB,QAAQ,EAAE,MAAM;wBAChB,UAAU,EAAE,KAAK;wBACjB,MAAM,EAAE,GAAG;qBACZ,oCAEmB,aAAa,OAAG,OAAO,IACtC,GACC,EAEV,KAAC,OAAO,4CAAoC,EAC5C,MAAC,SAAS,sBACJ,QAAQ,2CAAuC,YAAY,kHAGrD,EAEZ,MAAC,UAAU,IAAC,KAAK,EAAC,oCAAoC,aACpD,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,oEAE7B,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,iEAE7B,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,wEAE7B,EACZ,KAAC,SAAS,yEAA8D,IAC7D,EAEb,MAAC,OAAO,IACN,KAAK,EAAE;oBACL,eAAe,EAAE,MAAM,CAAC,OAAO;oBAC/B,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,KAAK;oBACnB,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,aAAa,MAAM,CAAC,MAAM,EAAE;iBACzC,aAED,KAAC,IAAI,IACH,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM,CAAC,MAAM;4BACpB,QAAQ,EAAE,MAAM;4BAChB,UAAU,EAAE,MAAe;4BAC3B,YAAY,EAAE,KAAK;yBACpB,kCAGI,EACP,KAAC,IAAI,IACH,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM,CAAC,aAAa;4BAC3B,QAAQ,EAAE,MAAM;4BAChB,UAAU,EAAE,MAAM;4BAClB,MAAM,EAAE,YAAY;yBACrB,6JAKI,EACP,KAAC,aAAa,IAAC,IAAI,EAAE,UAAU,8BAA+B,IACtD,EAEV,KAAC,SAAS,oIAGE,EAEZ,KAAC,aAAa,KAAG,EAEjB,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,GAAI,IAC3B,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface TrialExpiredEmailProps {
|
|
2
|
+
userName: string;
|
|
3
|
+
reactivateUrl: string;
|
|
4
|
+
websiteUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const TrialExpiredEmail: ({ userName, reactivateUrl, websiteUrl, }: TrialExpiredEmailProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default TrialExpiredEmail;
|
|
8
|
+
//# sourceMappingURL=trial-expired.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trial-expired.d.ts","sourceRoot":"","sources":["../../src/emails/trial-expired.tsx"],"names":[],"mappings":"AAeA,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,GAAI,0CAI/B,sBAAsB,4CAoExB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Section, Text } from "@react-email/components";
|
|
3
|
+
import { EmailLayout, EmailHeader, EmailFooter, Heading, Paragraph, FeatureBox, SmallText, PrimaryButton, DiscordButton, colors, } from "../components/index.js";
|
|
4
|
+
export const TrialExpiredEmail = ({ userName = "Coach", reactivateUrl = "https://dashboard.tracked.gg/billing", websiteUrl = "https://tracked.gg", }) => {
|
|
5
|
+
return (_jsxs(EmailLayout, { preview: "Your Tracked trial has ended", children: [_jsx(EmailHeader, {}), _jsx(Heading, { children: "Your Trial Has Ended" }), _jsxs(Paragraph, { children: ["Hi ", userName, ", your free trial of Tracked has expired. Your access to the coaching dashboard has been paused, but don't worry \u2014 your data is safe."] }), _jsxs(FeatureBox, { title: "Your data is preserved:", children: [_jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 All client profiles and workout history are saved" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 Your workout templates and programs are intact" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 Client progress data remains accessible when you return" }), _jsx(SmallText, { children: "\u2022 Subscribe anytime to regain full access" })] }), _jsxs(Section, { style: {
|
|
6
|
+
backgroundColor: colors.surface,
|
|
7
|
+
padding: "20px 24px",
|
|
8
|
+
borderRadius: "8px",
|
|
9
|
+
margin: "24px 0",
|
|
10
|
+
borderLeft: `4px solid ${colors.accent}`,
|
|
11
|
+
}, children: [_jsx(Text, { style: {
|
|
12
|
+
color: colors.accent,
|
|
13
|
+
fontSize: "18px",
|
|
14
|
+
fontWeight: "bold",
|
|
15
|
+
marginBottom: "8px",
|
|
16
|
+
}, children: "Ready to continue?" }), _jsx(Text, { style: {
|
|
17
|
+
color: colors.textSecondary,
|
|
18
|
+
fontSize: "14px",
|
|
19
|
+
lineHeight: "20px",
|
|
20
|
+
margin: "0 0 16px 0",
|
|
21
|
+
}, children: "Reactivate your account to pick up right where you left off. Your clients are waiting." }), _jsx(PrimaryButton, { href: reactivateUrl, children: "Reactivate Now" })] }), _jsx(Paragraph, { children: "If you decided Tracked isn't for you right now, we'd love to hear why. Your feedback helps us build a better product for coaches like you." }), _jsx(DiscordButton, {}), _jsx(EmailFooter, { websiteUrl: websiteUrl })] }));
|
|
22
|
+
};
|
|
23
|
+
export default TrialExpiredEmail;
|
|
24
|
+
//# sourceMappingURL=trial-expired.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trial-expired.js","sourceRoot":"","sources":["../../src/emails/trial-expired.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,MAAM,GACP,MAAM,wBAAwB,CAAC;AAQhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,QAAQ,GAAG,OAAO,EAClB,aAAa,GAAG,sCAAsC,EACtD,UAAU,GAAG,oBAAoB,GACV,EAAE,EAAE;IAC3B,OAAO,CACL,MAAC,WAAW,IAAC,OAAO,EAAC,8BAA8B,aACjD,KAAC,WAAW,KAAG,EAEf,KAAC,OAAO,uCAA+B,EACvC,MAAC,SAAS,sBACJ,QAAQ,kJAGF,EAEZ,MAAC,UAAU,IAAC,KAAK,EAAC,yBAAyB,aACzC,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,yEAE7B,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,sEAE7B,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,+EAE7B,EACZ,KAAC,SAAS,iEAAsD,IACrD,EAEb,MAAC,OAAO,IACN,KAAK,EAAE;oBACL,eAAe,EAAE,MAAM,CAAC,OAAO;oBAC/B,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,KAAK;oBACnB,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,aAAa,MAAM,CAAC,MAAM,EAAE;iBACzC,aAED,KAAC,IAAI,IACH,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM,CAAC,MAAM;4BACpB,QAAQ,EAAE,MAAM;4BAChB,UAAU,EAAE,MAAe;4BAC3B,YAAY,EAAE,KAAK;yBACpB,mCAGI,EACP,KAAC,IAAI,IACH,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM,CAAC,aAAa;4BAC3B,QAAQ,EAAE,MAAM;4BAChB,UAAU,EAAE,MAAM;4BAClB,MAAM,EAAE,YAAY;yBACrB,uGAII,EACP,KAAC,aAAa,IAAC,IAAI,EAAE,aAAa,+BAAgC,IAC1D,EAEV,KAAC,SAAS,6JAGE,EAEZ,KAAC,aAAa,KAAG,EAEjB,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,GAAI,IAC3B,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface TrialMidpointEmailProps {
|
|
2
|
+
userName: string;
|
|
3
|
+
daysRemaining: number;
|
|
4
|
+
trialEndDate: string;
|
|
5
|
+
clientsAdded: number;
|
|
6
|
+
upgradeUrl: string;
|
|
7
|
+
websiteUrl?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const TrialMidpointEmail: ({ userName, daysRemaining, trialEndDate, clientsAdded, upgradeUrl, websiteUrl, }: TrialMidpointEmailProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default TrialMidpointEmail;
|
|
11
|
+
//# sourceMappingURL=trial-midpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trial-midpoint.d.ts","sourceRoot":"","sources":["../../src/emails/trial-midpoint.tsx"],"names":[],"mappings":"AAeA,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,GAAI,kFAOhC,uBAAuB,4CAoHzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Section, Text } from "@react-email/components";
|
|
3
|
+
import { EmailLayout, EmailHeader, EmailFooter, Heading, Paragraph, FeatureBox, SmallText, PrimaryButton, DiscordButton, colors, } from "../components/index.js";
|
|
4
|
+
export const TrialMidpointEmail = ({ userName = "Coach", daysRemaining = 7, trialEndDate = "January 29, 2025", clientsAdded = 0, upgradeUrl = "https://dashboard.tracked.gg/billing", websiteUrl = "https://tracked.gg", }) => {
|
|
5
|
+
const hasClients = clientsAdded > 0;
|
|
6
|
+
return (_jsxs(EmailLayout, { preview: `${daysRemaining} days left in your Tracked trial`, children: [_jsx(EmailHeader, {}), _jsx(Heading, { children: "You're Halfway Through Your Trial" }), hasClients ? (_jsxs(Paragraph, { children: ["Hi ", userName, ", you've added ", clientsAdded, " ", clientsAdded === 1 ? "client" : "clients", " to Tracked so far. You have ", daysRemaining, " days left to explore everything the platform has to offer before your trial ends on ", trialEndDate, "."] })) : (_jsxs(Paragraph, { children: ["Hi ", userName, ", you have ", daysRemaining, " days left in your free trial. We noticed you haven't added any clients yet. Let us help you get started."] })), !hasClients && (_jsxs(Section, { style: {
|
|
7
|
+
backgroundColor: colors.surface,
|
|
8
|
+
padding: "16px 24px",
|
|
9
|
+
borderRadius: "8px",
|
|
10
|
+
margin: "24px 0",
|
|
11
|
+
borderLeft: `4px solid ${colors.accent}`,
|
|
12
|
+
}, children: [_jsx(Text, { style: {
|
|
13
|
+
color: colors.accent,
|
|
14
|
+
fontSize: "14px",
|
|
15
|
+
fontWeight: "bold",
|
|
16
|
+
marginBottom: "4px",
|
|
17
|
+
marginTop: "0",
|
|
18
|
+
}, children: "Quick Start Guide" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "1. Add your first client from the dashboard" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "2. Create a workout program or use a template" }), _jsx(SmallText, { children: "3. Assign workouts and start tracking progress" })] })), _jsxs(FeatureBox, { title: "Features you might have missed:", children: [_jsxs(SmallText, { style: { marginBottom: "4px" }, children: ["\u2022 ", _jsx("strong", { children: "Workout Templates" }), " \u2014 Save time with reusable programs"] }), _jsxs(SmallText, { style: { marginBottom: "4px" }, children: ["\u2022 ", _jsx("strong", { children: "Progress Photos" }), " \u2014 Track visual client transformations"] }), _jsxs(SmallText, { style: { marginBottom: "4px" }, children: ["\u2022 ", _jsx("strong", { children: "Check-ins" }), " \u2014 Weekly accountability with your clients"] }), _jsxs(SmallText, { children: ["\u2022 ", _jsx("strong", { children: "Analytics" }), " \u2014 See training trends and client performance"] })] }), _jsxs(Section, { style: {
|
|
19
|
+
backgroundColor: colors.surface,
|
|
20
|
+
padding: "20px 24px",
|
|
21
|
+
borderRadius: "8px",
|
|
22
|
+
margin: "24px 0",
|
|
23
|
+
borderLeft: `4px solid ${colors.accent}`,
|
|
24
|
+
}, children: [_jsx(Text, { style: {
|
|
25
|
+
color: colors.accent,
|
|
26
|
+
fontSize: "16px",
|
|
27
|
+
fontWeight: "bold",
|
|
28
|
+
marginBottom: "8px",
|
|
29
|
+
}, children: "Ready to upgrade?" }), _jsx(Text, { style: {
|
|
30
|
+
color: colors.textSecondary,
|
|
31
|
+
fontSize: "14px",
|
|
32
|
+
lineHeight: "20px",
|
|
33
|
+
margin: "0",
|
|
34
|
+
}, children: "Lock in your subscription now and never lose access to your client data. Pricing is based on the number of active clients you manage." }), _jsx(PrimaryButton, { href: upgradeUrl, children: "View Pricing" })] }), _jsx(Paragraph, { children: "Questions? Join our Discord community to connect with other coaches and get tips on growing your coaching business." }), _jsx(DiscordButton, {}), _jsx(EmailFooter, { websiteUrl: websiteUrl })] }));
|
|
35
|
+
};
|
|
36
|
+
export default TrialMidpointEmail;
|
|
37
|
+
//# sourceMappingURL=trial-midpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trial-midpoint.js","sourceRoot":"","sources":["../../src/emails/trial-midpoint.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface TrialStartedEmailProps {
|
|
2
|
+
userName: string;
|
|
3
|
+
trialEndDate: string;
|
|
4
|
+
daysRemaining: number;
|
|
5
|
+
upgradeUrl: string;
|
|
6
|
+
websiteUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const TrialStartedEmail: ({ userName, trialEndDate, daysRemaining, upgradeUrl, websiteUrl, }: TrialStartedEmailProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export default TrialStartedEmail;
|
|
10
|
+
//# sourceMappingURL=trial-started.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trial-started.d.ts","sourceRoot":"","sources":["../../src/emails/trial-started.tsx"],"names":[],"mappings":"AAaA,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,GAAI,oEAM/B,sBAAsB,4CA6CxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { EmailLayout, EmailHeader, EmailFooter, Heading, Paragraph, FeatureBox, SmallText, PrimaryButton, DiscordButton, } from "../components/index.js";
|
|
3
|
+
export const TrialStartedEmail = ({ userName = "Coach", trialEndDate = "January 29, 2025", daysRemaining = 14, upgradeUrl = "https://dashboard.tracked.gg/billing", websiteUrl = "https://tracked.gg", }) => {
|
|
4
|
+
return (_jsxs(EmailLayout, { preview: "Welcome to your Tracked coaching trial", children: [_jsx(EmailHeader, {}), _jsx(Heading, { children: "Welcome to Your Free Trial" }), _jsxs(Paragraph, { children: ["Hi ", userName, ", your ", daysRemaining, "-day free trial of Tracked has started. You have until ", trialEndDate, " to explore everything the platform has to offer."] }), _jsxs(FeatureBox, { title: "What's included in your trial:", children: [_jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 Unlimited client management (up to 500 clients)" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 Custom workout programming and templates" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 Client progress tracking and analytics" }), _jsx(SmallText, { style: { marginBottom: "4px" }, children: "\u2022 In-app messaging with clients" }), _jsx(SmallText, { children: "\u2022 Full access to the coaching dashboard" })] }), _jsx(Paragraph, { children: "Ready to get started? Head to your dashboard to add your first clients and start building your coaching business." }), _jsx(PrimaryButton, { href: upgradeUrl, children: "Go to Dashboard" }), _jsx(Paragraph, { style: { marginTop: "24px" }, children: "If you have any questions or need help getting set up, our team is here for you. Join our Discord community to connect with other coaches." }), _jsx(DiscordButton, {}), _jsx(EmailFooter, { websiteUrl: websiteUrl })] }));
|
|
5
|
+
};
|
|
6
|
+
export default TrialStartedEmail;
|
|
7
|
+
//# sourceMappingURL=trial-started.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trial-started.js","sourceRoot":"","sources":["../../src/emails/trial-started.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,GACd,MAAM,wBAAwB,CAAC;AAUhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,QAAQ,GAAG,OAAO,EAClB,YAAY,GAAG,kBAAkB,EACjC,aAAa,GAAG,EAAE,EAClB,UAAU,GAAG,sCAAsC,EACnD,UAAU,GAAG,oBAAoB,GACV,EAAE,EAAE;IAC3B,OAAO,CACL,MAAC,WAAW,IAAC,OAAO,EAAC,wCAAwC,aAC3D,KAAC,WAAW,KAAG,EAEf,KAAC,OAAO,6CAAqC,EAC7C,MAAC,SAAS,sBACJ,QAAQ,aAAS,aAAa,6DACT,YAAY,yDAE3B,EAEZ,MAAC,UAAU,IAAC,KAAK,EAAC,gCAAgC,aAChD,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,uEAE7B,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,gEAE7B,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,8DAE7B,EACZ,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,qDAE7B,EACZ,KAAC,SAAS,+DAAoD,IACnD,EAEb,KAAC,SAAS,oIAGE,EAEZ,KAAC,aAAa,IAAC,IAAI,EAAE,UAAU,gCAAiC,EAEhE,KAAC,SAAS,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,2JAG3B,EAEZ,KAAC,aAAa,KAAG,EAEjB,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,GAAI,IAC3B,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,11 @@ import { NewFollowerEmail } from "./emails/new-follower.js";
|
|
|
15
15
|
import { NpsSurveyEmail } from "./emails/nps-survey.js";
|
|
16
16
|
import { SubscriptionCanceledEmail } from "./emails/subscription-canceled.js";
|
|
17
17
|
import { SupportEmail } from "./emails/support-email.js";
|
|
18
|
+
import { TrialConvertedEmail } from "./emails/trial-converted.js";
|
|
19
|
+
import { TrialEndingSoonEmail } from "./emails/trial-ending-soon.js";
|
|
20
|
+
import { TrialExpiredEmail } from "./emails/trial-expired.js";
|
|
21
|
+
import { TrialMidpointEmail } from "./emails/trial-midpoint.js";
|
|
22
|
+
import { TrialStartedEmail } from "./emails/trial-started.js";
|
|
18
23
|
import { TeamInviteEmail } from "./emails/team-invite.js";
|
|
19
24
|
import { TeamMemberRemovedEmail } from "./emails/team-member-removed-email.js";
|
|
20
25
|
import { TrackedMagicLink } from "./emails/tracked-magic-link.js";
|
|
@@ -24,7 +29,7 @@ import { WeekOneCheckinEmail } from "./emails/week-one-checkin.js";
|
|
|
24
29
|
import { WelcomeEmail } from "./emails/welcome.js";
|
|
25
30
|
import { isPrivateRelayEmail, isValidEmailFormat, shouldSendEmailTo } from "./utils/email-validation.js";
|
|
26
31
|
import { isAnonymousUsername, getSafeDisplayName } from "./utils/username-validation.js";
|
|
27
|
-
export { AnniversaryEmail, AppReviewRequestEmail, BodyweightGoalReachedEmail, ClientInactiveAlertEmail, ClientOnboardedEmail, CoachInviteEmail, CoachRemovedClientEmail, DirectMessageEmail, FeatureDiscoveryEmail, FirstWorkoutAssignedEmail, FirstWorkoutCompletedEmail, InactiveReengagementEmail, MonthlyReportEmail, NewFollowerEmail, NpsSurveyEmail, SubscriptionCanceledEmail, SupportEmail, TeamInviteEmail, TeamMemberRemovedEmail, TrackedMagicLink, TrackedMagicLinkActivate, WeeklyProgressDigestEmail, WeekOneCheckinEmail, WelcomeEmail, };
|
|
32
|
+
export { AnniversaryEmail, AppReviewRequestEmail, BodyweightGoalReachedEmail, ClientInactiveAlertEmail, ClientOnboardedEmail, CoachInviteEmail, CoachRemovedClientEmail, DirectMessageEmail, FeatureDiscoveryEmail, FirstWorkoutAssignedEmail, FirstWorkoutCompletedEmail, InactiveReengagementEmail, MonthlyReportEmail, NewFollowerEmail, NpsSurveyEmail, SubscriptionCanceledEmail, SupportEmail, TeamInviteEmail, TeamMemberRemovedEmail, TrackedMagicLink, TrackedMagicLinkActivate, TrialConvertedEmail, TrialEndingSoonEmail, TrialExpiredEmail, TrialMidpointEmail, TrialStartedEmail, WeeklyProgressDigestEmail, WeekOneCheckinEmail, WelcomeEmail, };
|
|
28
33
|
export { isPrivateRelayEmail, isValidEmailFormat, shouldSendEmailTo, isAnonymousUsername, getSafeDisplayName, };
|
|
29
34
|
export * from "./components/index.js";
|
|
30
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,YAAY,GACb,CAAC;AAGF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,CAAC;AAGF,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,YAAY,GACb,CAAC;AAGF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,CAAC;AAGF,cAAc,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,11 @@ import { NewFollowerEmail } from "./emails/new-follower.js";
|
|
|
16
16
|
import { NpsSurveyEmail } from "./emails/nps-survey.js";
|
|
17
17
|
import { SubscriptionCanceledEmail } from "./emails/subscription-canceled.js";
|
|
18
18
|
import { SupportEmail } from "./emails/support-email.js";
|
|
19
|
+
import { TrialConvertedEmail } from "./emails/trial-converted.js";
|
|
20
|
+
import { TrialEndingSoonEmail } from "./emails/trial-ending-soon.js";
|
|
21
|
+
import { TrialExpiredEmail } from "./emails/trial-expired.js";
|
|
22
|
+
import { TrialMidpointEmail } from "./emails/trial-midpoint.js";
|
|
23
|
+
import { TrialStartedEmail } from "./emails/trial-started.js";
|
|
19
24
|
import { TeamInviteEmail } from "./emails/team-invite.js";
|
|
20
25
|
import { TeamMemberRemovedEmail } from "./emails/team-member-removed-email.js";
|
|
21
26
|
import { TrackedMagicLink } from "./emails/tracked-magic-link.js";
|
|
@@ -27,7 +32,7 @@ import { WelcomeEmail } from "./emails/welcome.js";
|
|
|
27
32
|
import { isPrivateRelayEmail, isValidEmailFormat, shouldSendEmailTo, } from "./utils/email-validation.js";
|
|
28
33
|
import { isAnonymousUsername, getSafeDisplayName, } from "./utils/username-validation.js";
|
|
29
34
|
// Export email templates
|
|
30
|
-
export { AnniversaryEmail, AppReviewRequestEmail, BodyweightGoalReachedEmail, ClientInactiveAlertEmail, ClientOnboardedEmail, CoachInviteEmail, CoachRemovedClientEmail, DirectMessageEmail, FeatureDiscoveryEmail, FirstWorkoutAssignedEmail, FirstWorkoutCompletedEmail, InactiveReengagementEmail, MonthlyReportEmail, NewFollowerEmail, NpsSurveyEmail, SubscriptionCanceledEmail, SupportEmail, TeamInviteEmail, TeamMemberRemovedEmail, TrackedMagicLink, TrackedMagicLinkActivate, WeeklyProgressDigestEmail, WeekOneCheckinEmail, WelcomeEmail, };
|
|
35
|
+
export { AnniversaryEmail, AppReviewRequestEmail, BodyweightGoalReachedEmail, ClientInactiveAlertEmail, ClientOnboardedEmail, CoachInviteEmail, CoachRemovedClientEmail, DirectMessageEmail, FeatureDiscoveryEmail, FirstWorkoutAssignedEmail, FirstWorkoutCompletedEmail, InactiveReengagementEmail, MonthlyReportEmail, NewFollowerEmail, NpsSurveyEmail, SubscriptionCanceledEmail, SupportEmail, TeamInviteEmail, TeamMemberRemovedEmail, TrackedMagicLink, TrackedMagicLinkActivate, TrialConvertedEmail, TrialEndingSoonEmail, TrialExpiredEmail, TrialMidpointEmail, TrialStartedEmail, WeeklyProgressDigestEmail, WeekOneCheckinEmail, WelcomeEmail, };
|
|
31
36
|
// Export validation utilities
|
|
32
37
|
export { isPrivateRelayEmail, isValidEmailFormat, shouldSendEmailTo, isAnonymousUsername, getSafeDisplayName, };
|
|
33
38
|
// Export shared components
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,8BAA8B;AAC9B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AAExC,yBAAyB;AACzB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,YAAY,GACb,CAAC;AAEF,8BAA8B;AAC9B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,CAAC;AAEF,2BAA2B;AAC3B,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,8BAA8B;AAC9B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AAExC,yBAAyB;AACzB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,YAAY,GACb,CAAC;AAEF,8BAA8B;AAC9B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,CAAC;AAEF,2BAA2B;AAC3B,cAAc,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -275,25 +275,25 @@ export const MonthlyReportEmail = ({
|
|
|
275
275
|
{metrics.avgReadinessEnergy && (
|
|
276
276
|
<DataRow
|
|
277
277
|
label="Avg Readiness Energy"
|
|
278
|
-
value={`${formatDecimal(metrics.avgReadinessEnergy)}/
|
|
278
|
+
value={`${formatDecimal(metrics.avgReadinessEnergy)}/5`}
|
|
279
279
|
/>
|
|
280
280
|
)}
|
|
281
281
|
{metrics.avgReadinessMood && (
|
|
282
282
|
<DataRow
|
|
283
283
|
label="Avg Readiness Mood"
|
|
284
|
-
value={`${formatDecimal(metrics.avgReadinessMood)}/
|
|
284
|
+
value={`${formatDecimal(metrics.avgReadinessMood)}/5`}
|
|
285
285
|
/>
|
|
286
286
|
)}
|
|
287
287
|
{metrics.avgSessionSatisfaction && (
|
|
288
288
|
<DataRow
|
|
289
289
|
label="Avg Session Satisfaction"
|
|
290
|
-
value={`${formatDecimal(metrics.avgSessionSatisfaction)}/
|
|
290
|
+
value={`${formatDecimal(metrics.avgSessionSatisfaction)}/5`}
|
|
291
291
|
/>
|
|
292
292
|
)}
|
|
293
293
|
{metrics.avgSessionProgress && (
|
|
294
294
|
<DataRow
|
|
295
295
|
label="Avg Session Progress"
|
|
296
|
-
value={`${formatDecimal(metrics.avgSessionProgress)}/
|
|
296
|
+
value={`${formatDecimal(metrics.avgSessionProgress)}/5`}
|
|
297
297
|
isLast
|
|
298
298
|
/>
|
|
299
299
|
)}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import {
|
|
3
|
+
EmailLayout,
|
|
4
|
+
EmailHeader,
|
|
5
|
+
EmailFooter,
|
|
6
|
+
Heading,
|
|
7
|
+
Paragraph,
|
|
8
|
+
FeatureBox,
|
|
9
|
+
SmallText,
|
|
10
|
+
PrimaryButton,
|
|
11
|
+
DiscordButton,
|
|
12
|
+
} from "../components/index.js";
|
|
13
|
+
|
|
14
|
+
interface TrialConvertedEmailProps {
|
|
15
|
+
userName: string;
|
|
16
|
+
dashboardUrl: string;
|
|
17
|
+
websiteUrl?: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const TrialConvertedEmail = ({
|
|
21
|
+
userName = "Coach",
|
|
22
|
+
dashboardUrl = "https://dashboard.tracked.gg",
|
|
23
|
+
websiteUrl = "https://tracked.gg",
|
|
24
|
+
}: TrialConvertedEmailProps) => {
|
|
25
|
+
return (
|
|
26
|
+
<EmailLayout preview="Welcome to Tracked - You're now a subscriber">
|
|
27
|
+
<EmailHeader />
|
|
28
|
+
|
|
29
|
+
<Heading>Welcome to Tracked</Heading>
|
|
30
|
+
<Paragraph>
|
|
31
|
+
Hi {userName}, thank you for subscribing to Tracked. You now have full
|
|
32
|
+
access to all coaching features with no time limits.
|
|
33
|
+
</Paragraph>
|
|
34
|
+
|
|
35
|
+
<FeatureBox title="What's next:">
|
|
36
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
37
|
+
• Continue managing your clients from the dashboard
|
|
38
|
+
</SmallText>
|
|
39
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
40
|
+
• Your billing is based on your active client count
|
|
41
|
+
</SmallText>
|
|
42
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
43
|
+
• Manage your subscription anytime from billing settings
|
|
44
|
+
</SmallText>
|
|
45
|
+
<SmallText>• Reach out if you need any help getting started</SmallText>
|
|
46
|
+
</FeatureBox>
|
|
47
|
+
|
|
48
|
+
<Paragraph>
|
|
49
|
+
We're excited to have you as part of the Tracked community. If you have
|
|
50
|
+
any questions about your subscription or the platform, we're here to
|
|
51
|
+
help.
|
|
52
|
+
</Paragraph>
|
|
53
|
+
|
|
54
|
+
<PrimaryButton href={dashboardUrl}>Go to Dashboard</PrimaryButton>
|
|
55
|
+
|
|
56
|
+
<Paragraph style={{ marginTop: "24px" }}>
|
|
57
|
+
Join our Discord community to connect with other coaches, share tips,
|
|
58
|
+
and get the latest updates.
|
|
59
|
+
</Paragraph>
|
|
60
|
+
|
|
61
|
+
<DiscordButton />
|
|
62
|
+
|
|
63
|
+
<EmailFooter websiteUrl={websiteUrl} />
|
|
64
|
+
</EmailLayout>
|
|
65
|
+
);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export default TrialConvertedEmail;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Section, Text } from "@react-email/components";
|
|
3
|
+
import {
|
|
4
|
+
EmailLayout,
|
|
5
|
+
EmailHeader,
|
|
6
|
+
EmailFooter,
|
|
7
|
+
Heading,
|
|
8
|
+
Paragraph,
|
|
9
|
+
FeatureBox,
|
|
10
|
+
SmallText,
|
|
11
|
+
PrimaryButton,
|
|
12
|
+
DiscordButton,
|
|
13
|
+
colors,
|
|
14
|
+
} from "../components/index.js";
|
|
15
|
+
|
|
16
|
+
interface TrialEndingSoonEmailProps {
|
|
17
|
+
userName: string;
|
|
18
|
+
daysRemaining: number;
|
|
19
|
+
trialEndDate: string;
|
|
20
|
+
upgradeUrl: string;
|
|
21
|
+
websiteUrl?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export const TrialEndingSoonEmail = ({
|
|
25
|
+
userName = "Coach",
|
|
26
|
+
daysRemaining = 3,
|
|
27
|
+
trialEndDate = "January 29, 2025",
|
|
28
|
+
upgradeUrl = "https://dashboard.tracked.gg/billing",
|
|
29
|
+
websiteUrl = "https://tracked.gg",
|
|
30
|
+
}: TrialEndingSoonEmailProps) => {
|
|
31
|
+
const dayText = daysRemaining === 1 ? "day" : "days";
|
|
32
|
+
|
|
33
|
+
return (
|
|
34
|
+
<EmailLayout
|
|
35
|
+
preview={`Only ${daysRemaining} ${dayText} left in your Tracked trial`}
|
|
36
|
+
>
|
|
37
|
+
<EmailHeader />
|
|
38
|
+
|
|
39
|
+
<Section
|
|
40
|
+
style={{
|
|
41
|
+
backgroundColor: "#FEF3C7",
|
|
42
|
+
padding: "16px 20px",
|
|
43
|
+
borderRadius: "8px",
|
|
44
|
+
marginBottom: "24px",
|
|
45
|
+
borderLeft: "4px solid #F59E0B",
|
|
46
|
+
}}
|
|
47
|
+
>
|
|
48
|
+
<Text
|
|
49
|
+
style={{
|
|
50
|
+
color: "#92400E",
|
|
51
|
+
fontSize: "14px",
|
|
52
|
+
fontWeight: "600",
|
|
53
|
+
margin: "0",
|
|
54
|
+
}}
|
|
55
|
+
>
|
|
56
|
+
Your trial ends in {daysRemaining} {dayText}
|
|
57
|
+
</Text>
|
|
58
|
+
</Section>
|
|
59
|
+
|
|
60
|
+
<Heading>Your Trial is Almost Over</Heading>
|
|
61
|
+
<Paragraph>
|
|
62
|
+
Hi {userName}, your free trial of Tracked ends on {trialEndDate}. To
|
|
63
|
+
keep your client data and continue using the coaching dashboard,
|
|
64
|
+
subscribe before your trial expires.
|
|
65
|
+
</Paragraph>
|
|
66
|
+
|
|
67
|
+
<FeatureBox title="What happens when your trial ends:">
|
|
68
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
69
|
+
• You'll lose access to the coaching dashboard
|
|
70
|
+
</SmallText>
|
|
71
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
72
|
+
• Your client data will be safely preserved
|
|
73
|
+
</SmallText>
|
|
74
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
75
|
+
• Clients will still have access to their workouts
|
|
76
|
+
</SmallText>
|
|
77
|
+
<SmallText>• You can reactivate at any time to regain access</SmallText>
|
|
78
|
+
</FeatureBox>
|
|
79
|
+
|
|
80
|
+
<Section
|
|
81
|
+
style={{
|
|
82
|
+
backgroundColor: colors.surface,
|
|
83
|
+
padding: "20px 24px",
|
|
84
|
+
borderRadius: "8px",
|
|
85
|
+
margin: "24px 0",
|
|
86
|
+
borderLeft: `4px solid ${colors.accent}`,
|
|
87
|
+
}}
|
|
88
|
+
>
|
|
89
|
+
<Text
|
|
90
|
+
style={{
|
|
91
|
+
color: colors.accent,
|
|
92
|
+
fontSize: "18px",
|
|
93
|
+
fontWeight: "bold" as const,
|
|
94
|
+
marginBottom: "8px",
|
|
95
|
+
}}
|
|
96
|
+
>
|
|
97
|
+
Don't lose access
|
|
98
|
+
</Text>
|
|
99
|
+
<Text
|
|
100
|
+
style={{
|
|
101
|
+
color: colors.textSecondary,
|
|
102
|
+
fontSize: "14px",
|
|
103
|
+
lineHeight: "20px",
|
|
104
|
+
margin: "0 0 16px 0",
|
|
105
|
+
}}
|
|
106
|
+
>
|
|
107
|
+
Subscribe now to keep managing your clients without interruption.
|
|
108
|
+
Pricing starts at just a few dollars per month based on your client
|
|
109
|
+
count.
|
|
110
|
+
</Text>
|
|
111
|
+
<PrimaryButton href={upgradeUrl}>Subscribe Now</PrimaryButton>
|
|
112
|
+
</Section>
|
|
113
|
+
|
|
114
|
+
<Paragraph>
|
|
115
|
+
Have questions about pricing or need more time? Reply to this email or
|
|
116
|
+
reach out on Discord. We're happy to help.
|
|
117
|
+
</Paragraph>
|
|
118
|
+
|
|
119
|
+
<DiscordButton />
|
|
120
|
+
|
|
121
|
+
<EmailFooter websiteUrl={websiteUrl} />
|
|
122
|
+
</EmailLayout>
|
|
123
|
+
);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export default TrialEndingSoonEmail;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Section, Text } from "@react-email/components";
|
|
3
|
+
import {
|
|
4
|
+
EmailLayout,
|
|
5
|
+
EmailHeader,
|
|
6
|
+
EmailFooter,
|
|
7
|
+
Heading,
|
|
8
|
+
Paragraph,
|
|
9
|
+
FeatureBox,
|
|
10
|
+
SmallText,
|
|
11
|
+
PrimaryButton,
|
|
12
|
+
DiscordButton,
|
|
13
|
+
colors,
|
|
14
|
+
} from "../components/index.js";
|
|
15
|
+
|
|
16
|
+
interface TrialExpiredEmailProps {
|
|
17
|
+
userName: string;
|
|
18
|
+
reactivateUrl: string;
|
|
19
|
+
websiteUrl?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const TrialExpiredEmail = ({
|
|
23
|
+
userName = "Coach",
|
|
24
|
+
reactivateUrl = "https://dashboard.tracked.gg/billing",
|
|
25
|
+
websiteUrl = "https://tracked.gg",
|
|
26
|
+
}: TrialExpiredEmailProps) => {
|
|
27
|
+
return (
|
|
28
|
+
<EmailLayout preview="Your Tracked trial has ended">
|
|
29
|
+
<EmailHeader />
|
|
30
|
+
|
|
31
|
+
<Heading>Your Trial Has Ended</Heading>
|
|
32
|
+
<Paragraph>
|
|
33
|
+
Hi {userName}, your free trial of Tracked has expired. Your access to
|
|
34
|
+
the coaching dashboard has been paused, but don't worry — your data is
|
|
35
|
+
safe.
|
|
36
|
+
</Paragraph>
|
|
37
|
+
|
|
38
|
+
<FeatureBox title="Your data is preserved:">
|
|
39
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
40
|
+
• All client profiles and workout history are saved
|
|
41
|
+
</SmallText>
|
|
42
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
43
|
+
• Your workout templates and programs are intact
|
|
44
|
+
</SmallText>
|
|
45
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
46
|
+
• Client progress data remains accessible when you return
|
|
47
|
+
</SmallText>
|
|
48
|
+
<SmallText>• Subscribe anytime to regain full access</SmallText>
|
|
49
|
+
</FeatureBox>
|
|
50
|
+
|
|
51
|
+
<Section
|
|
52
|
+
style={{
|
|
53
|
+
backgroundColor: colors.surface,
|
|
54
|
+
padding: "20px 24px",
|
|
55
|
+
borderRadius: "8px",
|
|
56
|
+
margin: "24px 0",
|
|
57
|
+
borderLeft: `4px solid ${colors.accent}`,
|
|
58
|
+
}}
|
|
59
|
+
>
|
|
60
|
+
<Text
|
|
61
|
+
style={{
|
|
62
|
+
color: colors.accent,
|
|
63
|
+
fontSize: "18px",
|
|
64
|
+
fontWeight: "bold" as const,
|
|
65
|
+
marginBottom: "8px",
|
|
66
|
+
}}
|
|
67
|
+
>
|
|
68
|
+
Ready to continue?
|
|
69
|
+
</Text>
|
|
70
|
+
<Text
|
|
71
|
+
style={{
|
|
72
|
+
color: colors.textSecondary,
|
|
73
|
+
fontSize: "14px",
|
|
74
|
+
lineHeight: "20px",
|
|
75
|
+
margin: "0 0 16px 0",
|
|
76
|
+
}}
|
|
77
|
+
>
|
|
78
|
+
Reactivate your account to pick up right where you left off. Your
|
|
79
|
+
clients are waiting.
|
|
80
|
+
</Text>
|
|
81
|
+
<PrimaryButton href={reactivateUrl}>Reactivate Now</PrimaryButton>
|
|
82
|
+
</Section>
|
|
83
|
+
|
|
84
|
+
<Paragraph>
|
|
85
|
+
If you decided Tracked isn't for you right now, we'd love to hear why.
|
|
86
|
+
Your feedback helps us build a better product for coaches like you.
|
|
87
|
+
</Paragraph>
|
|
88
|
+
|
|
89
|
+
<DiscordButton />
|
|
90
|
+
|
|
91
|
+
<EmailFooter websiteUrl={websiteUrl} />
|
|
92
|
+
</EmailLayout>
|
|
93
|
+
);
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export default TrialExpiredEmail;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Section, Text } from "@react-email/components";
|
|
3
|
+
import {
|
|
4
|
+
EmailLayout,
|
|
5
|
+
EmailHeader,
|
|
6
|
+
EmailFooter,
|
|
7
|
+
Heading,
|
|
8
|
+
Paragraph,
|
|
9
|
+
FeatureBox,
|
|
10
|
+
SmallText,
|
|
11
|
+
PrimaryButton,
|
|
12
|
+
DiscordButton,
|
|
13
|
+
colors,
|
|
14
|
+
} from "../components/index.js";
|
|
15
|
+
|
|
16
|
+
interface TrialMidpointEmailProps {
|
|
17
|
+
userName: string;
|
|
18
|
+
daysRemaining: number;
|
|
19
|
+
trialEndDate: string;
|
|
20
|
+
clientsAdded: number;
|
|
21
|
+
upgradeUrl: string;
|
|
22
|
+
websiteUrl?: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const TrialMidpointEmail = ({
|
|
26
|
+
userName = "Coach",
|
|
27
|
+
daysRemaining = 7,
|
|
28
|
+
trialEndDate = "January 29, 2025",
|
|
29
|
+
clientsAdded = 0,
|
|
30
|
+
upgradeUrl = "https://dashboard.tracked.gg/billing",
|
|
31
|
+
websiteUrl = "https://tracked.gg",
|
|
32
|
+
}: TrialMidpointEmailProps) => {
|
|
33
|
+
const hasClients = clientsAdded > 0;
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<EmailLayout preview={`${daysRemaining} days left in your Tracked trial`}>
|
|
37
|
+
<EmailHeader />
|
|
38
|
+
|
|
39
|
+
<Heading>You're Halfway Through Your Trial</Heading>
|
|
40
|
+
|
|
41
|
+
{hasClients ? (
|
|
42
|
+
<Paragraph>
|
|
43
|
+
Hi {userName}, you've added {clientsAdded}{" "}
|
|
44
|
+
{clientsAdded === 1 ? "client" : "clients"} to Tracked so far. You
|
|
45
|
+
have {daysRemaining} days left to explore everything the platform has
|
|
46
|
+
to offer before your trial ends on {trialEndDate}.
|
|
47
|
+
</Paragraph>
|
|
48
|
+
) : (
|
|
49
|
+
<Paragraph>
|
|
50
|
+
Hi {userName}, you have {daysRemaining} days left in your free trial.
|
|
51
|
+
We noticed you haven't added any clients yet. Let us help you get
|
|
52
|
+
started.
|
|
53
|
+
</Paragraph>
|
|
54
|
+
)}
|
|
55
|
+
|
|
56
|
+
{!hasClients && (
|
|
57
|
+
<Section
|
|
58
|
+
style={{
|
|
59
|
+
backgroundColor: colors.surface,
|
|
60
|
+
padding: "16px 24px",
|
|
61
|
+
borderRadius: "8px",
|
|
62
|
+
margin: "24px 0",
|
|
63
|
+
borderLeft: `4px solid ${colors.accent}`,
|
|
64
|
+
}}
|
|
65
|
+
>
|
|
66
|
+
<Text
|
|
67
|
+
style={{
|
|
68
|
+
color: colors.accent,
|
|
69
|
+
fontSize: "14px",
|
|
70
|
+
fontWeight: "bold" as const,
|
|
71
|
+
marginBottom: "4px",
|
|
72
|
+
marginTop: "0",
|
|
73
|
+
}}
|
|
74
|
+
>
|
|
75
|
+
Quick Start Guide
|
|
76
|
+
</Text>
|
|
77
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
78
|
+
1. Add your first client from the dashboard
|
|
79
|
+
</SmallText>
|
|
80
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
81
|
+
2. Create a workout program or use a template
|
|
82
|
+
</SmallText>
|
|
83
|
+
<SmallText>3. Assign workouts and start tracking progress</SmallText>
|
|
84
|
+
</Section>
|
|
85
|
+
)}
|
|
86
|
+
|
|
87
|
+
<FeatureBox title="Features you might have missed:">
|
|
88
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
89
|
+
• <strong>Workout Templates</strong> — Save time with reusable
|
|
90
|
+
programs
|
|
91
|
+
</SmallText>
|
|
92
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
93
|
+
• <strong>Progress Photos</strong> — Track visual client
|
|
94
|
+
transformations
|
|
95
|
+
</SmallText>
|
|
96
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
97
|
+
• <strong>Check-ins</strong> — Weekly accountability with your clients
|
|
98
|
+
</SmallText>
|
|
99
|
+
<SmallText>
|
|
100
|
+
• <strong>Analytics</strong> — See training trends and client
|
|
101
|
+
performance
|
|
102
|
+
</SmallText>
|
|
103
|
+
</FeatureBox>
|
|
104
|
+
|
|
105
|
+
<Section
|
|
106
|
+
style={{
|
|
107
|
+
backgroundColor: colors.surface,
|
|
108
|
+
padding: "20px 24px",
|
|
109
|
+
borderRadius: "8px",
|
|
110
|
+
margin: "24px 0",
|
|
111
|
+
borderLeft: `4px solid ${colors.accent}`,
|
|
112
|
+
}}
|
|
113
|
+
>
|
|
114
|
+
<Text
|
|
115
|
+
style={{
|
|
116
|
+
color: colors.accent,
|
|
117
|
+
fontSize: "16px",
|
|
118
|
+
fontWeight: "bold" as const,
|
|
119
|
+
marginBottom: "8px",
|
|
120
|
+
}}
|
|
121
|
+
>
|
|
122
|
+
Ready to upgrade?
|
|
123
|
+
</Text>
|
|
124
|
+
<Text
|
|
125
|
+
style={{
|
|
126
|
+
color: colors.textSecondary,
|
|
127
|
+
fontSize: "14px",
|
|
128
|
+
lineHeight: "20px",
|
|
129
|
+
margin: "0",
|
|
130
|
+
}}
|
|
131
|
+
>
|
|
132
|
+
Lock in your subscription now and never lose access to your client
|
|
133
|
+
data. Pricing is based on the number of active clients you manage.
|
|
134
|
+
</Text>
|
|
135
|
+
<PrimaryButton href={upgradeUrl}>View Pricing</PrimaryButton>
|
|
136
|
+
</Section>
|
|
137
|
+
|
|
138
|
+
<Paragraph>
|
|
139
|
+
Questions? Join our Discord community to connect with other coaches and
|
|
140
|
+
get tips on growing your coaching business.
|
|
141
|
+
</Paragraph>
|
|
142
|
+
|
|
143
|
+
<DiscordButton />
|
|
144
|
+
|
|
145
|
+
<EmailFooter websiteUrl={websiteUrl} />
|
|
146
|
+
</EmailLayout>
|
|
147
|
+
);
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
export default TrialMidpointEmail;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import {
|
|
3
|
+
EmailLayout,
|
|
4
|
+
EmailHeader,
|
|
5
|
+
EmailFooter,
|
|
6
|
+
Heading,
|
|
7
|
+
Paragraph,
|
|
8
|
+
FeatureBox,
|
|
9
|
+
SmallText,
|
|
10
|
+
PrimaryButton,
|
|
11
|
+
DiscordButton,
|
|
12
|
+
} from "../components/index.js";
|
|
13
|
+
|
|
14
|
+
interface TrialStartedEmailProps {
|
|
15
|
+
userName: string;
|
|
16
|
+
trialEndDate: string;
|
|
17
|
+
daysRemaining: number;
|
|
18
|
+
upgradeUrl: string;
|
|
19
|
+
websiteUrl?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const TrialStartedEmail = ({
|
|
23
|
+
userName = "Coach",
|
|
24
|
+
trialEndDate = "January 29, 2025",
|
|
25
|
+
daysRemaining = 14,
|
|
26
|
+
upgradeUrl = "https://dashboard.tracked.gg/billing",
|
|
27
|
+
websiteUrl = "https://tracked.gg",
|
|
28
|
+
}: TrialStartedEmailProps) => {
|
|
29
|
+
return (
|
|
30
|
+
<EmailLayout preview="Welcome to your Tracked coaching trial">
|
|
31
|
+
<EmailHeader />
|
|
32
|
+
|
|
33
|
+
<Heading>Welcome to Your Free Trial</Heading>
|
|
34
|
+
<Paragraph>
|
|
35
|
+
Hi {userName}, your {daysRemaining}-day free trial of Tracked has
|
|
36
|
+
started. You have until {trialEndDate} to explore everything the
|
|
37
|
+
platform has to offer.
|
|
38
|
+
</Paragraph>
|
|
39
|
+
|
|
40
|
+
<FeatureBox title="What's included in your trial:">
|
|
41
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
42
|
+
• Unlimited client management (up to 500 clients)
|
|
43
|
+
</SmallText>
|
|
44
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
45
|
+
• Custom workout programming and templates
|
|
46
|
+
</SmallText>
|
|
47
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
48
|
+
• Client progress tracking and analytics
|
|
49
|
+
</SmallText>
|
|
50
|
+
<SmallText style={{ marginBottom: "4px" }}>
|
|
51
|
+
• In-app messaging with clients
|
|
52
|
+
</SmallText>
|
|
53
|
+
<SmallText>• Full access to the coaching dashboard</SmallText>
|
|
54
|
+
</FeatureBox>
|
|
55
|
+
|
|
56
|
+
<Paragraph>
|
|
57
|
+
Ready to get started? Head to your dashboard to add your first clients
|
|
58
|
+
and start building your coaching business.
|
|
59
|
+
</Paragraph>
|
|
60
|
+
|
|
61
|
+
<PrimaryButton href={upgradeUrl}>Go to Dashboard</PrimaryButton>
|
|
62
|
+
|
|
63
|
+
<Paragraph style={{ marginTop: "24px" }}>
|
|
64
|
+
If you have any questions or need help getting set up, our team is here
|
|
65
|
+
for you. Join our Discord community to connect with other coaches.
|
|
66
|
+
</Paragraph>
|
|
67
|
+
|
|
68
|
+
<DiscordButton />
|
|
69
|
+
|
|
70
|
+
<EmailFooter websiteUrl={websiteUrl} />
|
|
71
|
+
</EmailLayout>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export default TrialStartedEmail;
|
package/src/index.ts
CHANGED
|
@@ -16,6 +16,11 @@ import { NewFollowerEmail } from "./emails/new-follower.js";
|
|
|
16
16
|
import { NpsSurveyEmail } from "./emails/nps-survey.js";
|
|
17
17
|
import { SubscriptionCanceledEmail } from "./emails/subscription-canceled.js";
|
|
18
18
|
import { SupportEmail } from "./emails/support-email.js";
|
|
19
|
+
import { TrialConvertedEmail } from "./emails/trial-converted.js";
|
|
20
|
+
import { TrialEndingSoonEmail } from "./emails/trial-ending-soon.js";
|
|
21
|
+
import { TrialExpiredEmail } from "./emails/trial-expired.js";
|
|
22
|
+
import { TrialMidpointEmail } from "./emails/trial-midpoint.js";
|
|
23
|
+
import { TrialStartedEmail } from "./emails/trial-started.js";
|
|
19
24
|
import { TeamInviteEmail } from "./emails/team-invite.js";
|
|
20
25
|
import { TeamMemberRemovedEmail } from "./emails/team-member-removed-email.js";
|
|
21
26
|
import { TrackedMagicLink } from "./emails/tracked-magic-link.js";
|
|
@@ -58,6 +63,11 @@ export {
|
|
|
58
63
|
TeamMemberRemovedEmail,
|
|
59
64
|
TrackedMagicLink,
|
|
60
65
|
TrackedMagicLinkActivate,
|
|
66
|
+
TrialConvertedEmail,
|
|
67
|
+
TrialEndingSoonEmail,
|
|
68
|
+
TrialExpiredEmail,
|
|
69
|
+
TrialMidpointEmail,
|
|
70
|
+
TrialStartedEmail,
|
|
61
71
|
WeeklyProgressDigestEmail,
|
|
62
72
|
WeekOneCheckinEmail,
|
|
63
73
|
WelcomeEmail,
|