trial-ending-soon
Source of truth:
packages/notifications/src/translations.ts
Quick facts
Section titled “Quick facts”| Domain | Channels | Recipients |
|---|---|---|
| — | — | — |
Trigger sites
Section titled “Trigger sites”| Source | Context |
|---|---|
apps/worker/src/billing.ts:117 | processTrialScan |
Payload — TrialEndingSoonData
Section titled “Payload — TrialEndingSoonData”interface TrialEndingSoonData { daysLeft: number; trialEndsAt: string; billingUrl: string;}Channel steps
Section titled “Channel steps”Trigger step
Section titled “Trigger step”The caller invokes triggerWorkflow('trial-ending-soon', recipientIds, data) where data is the TrialEndingSoonData shape above. The server pre-translates the payload via getTranslatedPayload('trial-ending-soon', recipientLocale, data) from @repo/notifications before sending, producing { inAppBody, emailSubject, emailBody } for the dashboard templates to render.
See also
Section titled “See also”- Notifications overview — the workflow grid, source-of-truth file map.
- Configuration — env vars, dashboard checklist, channel mapping.