Text Notifications

Text Notifications

Submitted

May 5, 2026 

Approved

 

Status

PROPOSED

Impact

MEDIUM

Arch Ticket

https://folio-org.atlassian.net/browse/ARCH-351

Prod ticket

https://folio-org.atlassian.net/browse/UXPROD-1532

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-notifications modules

  • one-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

Configuration Key

Description

VONAGE_API_KEY

Secure Value: API key - retrieved using dashboard

VONAGE_API_SECRET

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

Configuration Key

Description

TWILIO_ACCOUNT_SID

Secure Value: API key - retrieved using dashboard

TWILIO_AUTH_TOKEN

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-sms containing UI and backend changes for SMS functionality; depends on app-notification

Audit

  • mod-audit supports auditing patron notifications

  • An additional table in mod-sms will track new and ongoing notifications with retry policies based on ENV variables, if needed

  • mod-sms tables 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

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