https://github.com/boxlinknet/moodle-local_kwtsms
Moodle plugin for sending SMS notifications through the kwtSMS gateway (kwtsms.com). Automates messages for enrollment, grading, course completion, quiz and assignment submissions. Bilingual templates
https://github.com/boxlinknet/moodle-local_kwtsms
arabic kuwait kwtsms lms moodle moodle-plugin notifications php sms sms-gateway
Last synced: about 1 month ago
JSON representation
Moodle plugin for sending SMS notifications through the kwtSMS gateway (kwtsms.com). Automates messages for enrollment, grading, course completion, quiz and assignment submissions. Bilingual templates
- Host: GitHub
- URL: https://github.com/boxlinknet/moodle-local_kwtsms
- Owner: boxlinknet
- Created: 2026-03-26T06:40:50.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-19T01:08:59.000Z (about 2 months ago)
- Last Synced: 2026-04-19T01:31:31.295Z (about 2 months ago)
- Topics: arabic, kuwait, kwtsms, lms, moodle, moodle-plugin, notifications, php, sms, sms-gateway
- Language: PHP
- Homepage: https://www.kwtsms.com/integrations.html
- Size: 188 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# kwtSMS for Moodle
[](https://moodle.org/plugins/local_kwtsms)
[](https://moodle.org)
[](https://www.php.net)
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://github.com/boxlinknet/moodle-local_kwtsms/issues)
[](https://github.com/boxlinknet/moodle-local_kwtsms/releases)
Send SMS notifications to students and administrators via the kwtSMS gateway (kwtsms.com).
Available on the official [Moodle Plugins Directory](https://moodle.org/plugins/local_kwtsms).
## About kwtSMS
[kwtSMS](https://www.kwtsms.com) is a Kuwait-based SMS gateway providing reliable message delivery across the Middle East and internationally. Features include:
- SMS delivery to 200+ countries
- Transactional and promotional sender IDs
- Real-time balance and delivery tracking
- Arabic and English message support
- REST/JSON API with client libraries for PHP, Python, JavaScript, and more
**[Sign up for a kwtSMS account](https://www.kwtsms.com/account/signup/)** to get your API credentials and start sending SMS from your Moodle site.
For more integrations, visit the [kwtSMS Integrations page](https://www.kwtsms.com/integrations.html).
## Features
- **Event-driven SMS:** Automatic notifications for enrollment, unenrollment, grading, course completion, quiz submission, assignment submission, and new user registration
- **7-tab admin interface:** Dashboard, Settings, Gateway, Templates, Integrations, Logs, Help
- **Multilingual templates:** English + Arabic with placeholder support ({firstname}, {coursename}, {grade}, etc.)
- **Gateway management:** Login/logout, balance monitoring, sender ID selection, country code configuration
- **SMS logging:** Full log with status tracking, phone masking, filtering, pagination, and CSV export
- **Daily sync:** Automatic refresh of balance, sender IDs, and coverage data
- **RTL support:** Right-to-left layout support for Arabic interfaces
- **Test mode:** Send to API without delivery for development and testing
## Requirements
- **Moodle:** 4.3 or later (tested on 4.3, 4.4, 4.5, 5.0, 5.1, 5.2)
- **PHP:** 8.1 or later (tested on 8.1, 8.2, 8.3)
- **Database:** PostgreSQL or MariaDB/MySQL (both verified in CI)
- A kwtSMS account (sign up at https://www.kwtsms.com)
### Tested compatibility matrix
Every push runs the Moodle Plugin CI across the full matrix below. All jobs green as of v1.0.2.
| Moodle | PHP | Database |
|--------|-----|----------|
| 4.3 | 8.1 | PostgreSQL |
| 4.4 | 8.1 | MariaDB |
| 4.5 | 8.2 | PostgreSQL |
| 4.5 | 8.3 | MariaDB |
| 5.0 | 8.2 | PostgreSQL |
| 5.1 | 8.3 | MariaDB |
| 5.2 | 8.3 | PostgreSQL |
## Installation
Pick whichever option suits your workflow. All three install the same version.
### Option 1: Install from Moodle.org (recommended)
1. Sign in to your Moodle site as an administrator.
2. Go to **Site administration > Plugins > Install plugins**.
3. Click **Install plugins from the Moodle plugins directory**.
4. Search for `kwtSMS` or go to https://moodle.org/plugins/local_kwtsms.
5. Click **Install now** and follow the prompts.
### Option 2: Upload a ZIP
1. Download the latest release ZIP from the
[GitHub releases page](https://github.com/boxlinknet/moodle-local_kwtsms/releases)
or from the [Moodle plugins directory](https://moodle.org/plugins/local_kwtsms).
2. In Moodle, go to **Site administration > Plugins > Install plugins**.
3. Drag the ZIP into the installer and click **Install plugin from the ZIP file**.
4. Follow the prompts to complete the upgrade.
### Option 3: Install from source
1. Clone or extract the plugin into `local/kwtsms/` under your Moodle directory:
```bash
git clone https://github.com/boxlinknet/moodle-local_kwtsms.git local/kwtsms
```
2. Visit **Site administration > Notifications** to complete the installation.
### After installing
1. Go to **Site administration > Plugins > Local plugins > kwtSMS**.
2. Open the **Gateway** tab and log in with your kwtSMS API credentials.
## Configuration
1. **Gateway tab:** Enter your API username and password, click Login. Select your Sender ID and default country code.
2. **Settings tab:** Enable the gateway, configure test mode, set admin phone numbers, and set the low balance alert threshold.
3. **Integrations tab:** Enable the events you want to trigger SMS notifications.
4. **Templates tab:** Customize the English and Arabic SMS message templates for each event.
## Supported Events
| Event | Recipient | Description |
|-------|-----------|-------------|
| User Enrolled | Student | Sent when a user is enrolled in a course |
| User Unenrolled | Student | Sent when a user is removed from a course |
| Grade Posted | Student | Sent when a grade is published |
| Course Completed | Student | Sent when a user completes a course |
| Quiz Submitted | Student | Sent when a quiz attempt is submitted |
| Assignment Submitted | Student | Sent when an assignment file is uploaded |
| New User Registered | Admin | Sent to admin phones when a new user registers |
## Template Placeholders
| Placeholder | Available In | Description |
|-------------|-------------|-------------|
| `{firstname}` | All events | User's first name |
| `{lastname}` | All events | User's last name |
| `{coursename}` | Course events | Course full name |
| `{grade}` | Grade Posted | The grade value |
| `{activityname}` | Quiz/Assignment | Activity name |
| `{sitename}` | All events | Moodle site name |
## Sender ID
`KWT-SMS` is a shared testing sender ID. For production use, register a private sender ID through your kwtSMS account:
- **Transactional:** Required for OTP and alerts, bypasses DND filtering
- **Promotional:** For announcements and marketing, subject to DND filtering
## Support
- kwtSMS account support: https://www.kwtsms.com/support.html
- Plugin issues: https://github.com/boxlinknet/moodle-local_kwtsms/issues
## License
This plugin is licensed under the GNU GPL v3 or later.
See https://www.gnu.org/copyleft/gpl.html for details.