Text Notifications
Submitted | May 5, 2026 |
|---|---|
Approved |
|
Status | PROPOSED |
Impact | MEDIUM |
Arch Ticket | |
Prod ticket |
Executive Summary
Purpose: Enable SMS notifications for patrons via the existing app-notifications flow in FOLIO.
Approach: Introduce a new backend module, mod-sms, that abstracts SMS sending and integrates with external providers.
Providers: Support pluggable connectors for AWS SNS, Vonage, and Twilio; choose per-tenant via configuration.
Scope (initial): Outbound SMS only triggered by app-notifications; message templating and localization reused from existing notifications.
Requirements
Functional Requirements
Folio platform is able to send Text (SMS) notifications using
app-notificationsmodulesone-way notifications (from Folio to patrons)
Non-Functional Requirements
Notification is send in (N) ms
Notifications is reliably delivered to the user
Patron Notification Proposal
New module: mod-sms
Providers
Amazon Simple Notification Service (AWS SNS)
URL shortener is not part of default implementation in SNS API or newer AWS End User Messaging
Vonage
Required configuration values
Configuration Key | Description |
|---|---|
| Secure Value: API key - retrieved using dashboard |
| Secure Value: API secret - retrieved using dashboard |
URL shortener is not part of default implementation in SMS API
Twilio
Provides an ability to send not only SMS messages, but RCS, What’s App notification and Facebook notifications\
Provides internal ability to shorten URL links using shortenUrls request body parameter
Configuration Key | Description |
|---|---|
| Secure Value: API key - retrieved using dashboard |
| Secure Value: API secret - retrieved using dashboard |
Module framework
Module will be implemented using Spring. Message connectors must be provided as conditional singleton beans per tenant.
Application
New
app-smscontaining UI and backend changes for SMS functionality; depends onapp-notification
Audit
mod-auditsupports auditing patron notificationsAn additional table in
mod-smswill track new and ongoing notifications with retry policies based on ENV variables, if neededmod-smstables will store PII such as patron phone numbers and notification text for retries. The Timer API endpoint should clear all unsent records based on event TTL, configured by ENV variables or per tenant via the Settings API.
Development
Checkstyle from https://github.com/folio-org/folio-java-checkstyle/tree/master/src/main/resources/folio-checkstyle
JUnit 6 for unit testing
Wiremock validates API requests
Localstack validates integration with AWS SDK (community version only)
End-to-End testing
Use MockServer to stub communication with external services
Rancher Development and Snapshot testing rely on MockServer capabilities
Limited access environment can validate SMS notifications to real phone numbers
Secure Values management
Local Settings API will be provided by mod-sms service and it will provide to configure a provider and general settings related to it.
Secure value must be stored using default approach for Folio: https://github.com/folio-org/applications-poc-tools/tree/master/folio-secret-store