EmailNotificationService
Component Detail
Service Layer
medium complexity
backend
0
Dependencies
0
Dependents
4
Entities
0
Integrations
Description
Handles server-side composition and dispatch of email messages for critical platform events. It formats event-specific email content, resolves recipient addresses from user profiles, and delivers messages via a configured email provider such as SendGrid or AWS SES. Respects per-user email preference flags before sending.
email-notification-service
Sources & reasoning
Line 116 documents HLF's explicit need for improved peer mentor follow-up via scenario-based messages. Email and SMS extend that follow-up capability to users without app access or with push disabled. The source places this in Phase 2 (→ v1.0); blueprint confirms [v1.0].
-
docs/source/likeperson.md · line 116Oppfølging av likepersoner: 40 % var ikke fornøyd med oppfølgingen i spørreundersøkelse. Scenariobaserte push-meldinger og kalendersynkronisering.
Responsibilities
- Compose event-specific email content from templates and event payload data
- Resolve recipient email addresses from user profiles
- Deliver outbound emails via a third-party email provider API
- Track delivery status and handle provider-level bounce or failure callbacks
- Respect user email opt-out preferences before dispatching
Interfaces
sendEmail(userId: string, eventType: string, payload: NotificationPayload): Promise<DeliveryResult>
sendBulkEmail(userIds: string[], eventType: string, payload: NotificationPayload): Promise<BulkDeliveryResult>
handleDeliveryWebhook(providerEvent: ProviderWebhookEvent): void
isEmailEnabled(userId: string): Promise<boolean>
Related Data Entities (4)
Data entities managed by this component