Service Layer medium complexity backend
0
Dependencies
0
Dependents
3
Entities
0
Integrations

Description

Handles server-side composition and dispatch of SMS messages for time-sensitive platform events such as assignment arrivals and account actions. It formats concise SMS text from event payloads, resolves verified phone numbers from user profiles, and delivers messages via a configured SMS gateway such as Twilio. Respects per-user SMS preference flags and country-specific sending rules before dispatching.

Feature: Email/SMS Notifications

sms-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 short, event-specific SMS text from event payload data
  • Resolve recipient phone numbers from user profiles
  • Deliver outbound SMS messages via a third-party SMS gateway API
  • Handle delivery receipts and gateway-level error responses
  • Enforce per-user SMS opt-out preferences and country sending restrictions

Interfaces

sendSms(userId: string, eventType: string, payload: NotificationPayload): Promise<DeliveryResult>
sendBulkSms(userIds: string[], eventType: string, payload: NotificationPayload): Promise<BulkDeliveryResult>
handleDeliveryReceipt(gatewayEvent: GatewayReceiptEvent): void
isSmsEnabled(userId: string): Promise<boolean>