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.

Feature: Email/SMS Notifications

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 116
    Oppfø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>