SmsNotificationService
Component Detail
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.
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 116Oppfø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>
Related Data Entities (3)
Data entities managed by this component