Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Role Theme Switcher Module role_theme_switcher crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

kwtSMS

1 sites No security coverage
View on drupal.org

This module integrates with kwtsms.com to provide SMS functionality in Drupal, including OTP login, two-factor authentication, password resets, user notifications, and e-commerce alerts. It also offers features for managing SMS logs and templates.

SMS gateway integration with kwtsms.com for Drupal 10.3+ and 11. Adds OTP login, two-factor authentication, password reset via SMS, user notifications, and Commerce order alerts through the kwtSMS API.

Features

Authentication

  • OTP login: SMS as primary login or second factor (2FA), configurable per role
  • Password reset via SMS: SMS only, Email + SMS, or Email only
  • Rate limiting per phone and IP, lockout after failed attempts

Notifications

  • User registration SMS to customers and admins
  • Commerce: order placed, status updates, payment confirmations
  • Commerce: low stock alerts, shipping updates, abandoned cart reminders

Admin UI (7 tabs)

  • Dashboard: status overview, SMS stats, 30-day volume chart
  • Settings: global on/off, test mode, country code, sender ID, OTP/2FA config
  • Gateway: API login/logout, balance, sender IDs, coverage, test SMS
  • Templates: multilingual EN/AR message templates with Drupal Token support
  • Integrations: Commerce event toggles
  • Logs: filterable SMS log with CSV export
  • Help: setup guide and support links

Developer

  • Events for module integration: kwtsms.otp_request and kwtsms.sms_send
  • SMS Framework v2 gateway plugin (bridge submodule)
  • Phone normalization with Arabic/Hindi digit support
  • Message cleaning: strips emoji, HTML, hidden Unicode
  • Bulk sending with 200/batch and ERR013 backoff
  • Log retention policy with configurable days

Post-Installation

Navigate to Admin > Configuration > kwtSMS (/admin/config/kwtsms):

  1. Gateway tab: Enter your kwtSMS API username and password, click Login
  2. Settings tab: Select your sender ID and default country code, enable SMS sending
  3. Templates tab: Customize message text for each notification type (English and Arabic)
  4. Settings > Authentication: Configure OTP login mode and password reset mode

For Commerce notifications, enable the kwtsms_commerce submodule and configure toggles on the Integrations tab.

Additional Requirements

  • Drupal Commerce: Enable kwtsms_commerce submodule for order SMS notifications
  • SMS Framework: Enable kwtsms_smsframework bridge to use kwtSMS as an SMS Framework gateway
  • Token: Adds a token browser UI for SMS template editing

Similar projects

  • SMS Framework: Generic SMS gateway abstraction. kwtSMS provides a dedicated, opinionated integration with built-in OTP, 2FA, templates, and Commerce support out of the box. A bridge submodule is included for SMS Framework interoperability.
  • TFA: General two-factor authentication. kwtSMS provides SMS-specific 2FA with phone normalization, rate limiting, and anti-enumeration built in.

Supporting this Module

Activity

Tracked releases
1
Tracked since
Apr 2026
Latest release
4 months ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
1.1.0 Stable Apr 9, 2026