System Settings SMS, MoMo, KMPP and general configuration
⚠
Administrator Only. Settings entered here update the system configuration immediately without needing to restart the server or edit any files. Credentials are stored securely in the database.
📱 SMS Messaging
💳 MoMo Payments
👑 KMPP Settings
📲 WhatsApp & Voice
⚙ General
📨 Message Channels
📅 SMS Schedule
💰 Finance Goals
🤖 AI Assistant
📧 Email
🏆 Certificate
🖨 Print
🔒 Security
🩺 System Health
🏢
Branch
SMS is configured separately per branch — pick which branch's settings to view or edit below. Each branch sends through its own provider, using its own sending staff's SMS.
Branch
A branch with no settings saved yet has SMS sending blocked for its own staff, until configured here
📱
SMS Provider
Configure the SMS gateway for the branch selected above
Not configured
SMS Provider
Choose your SMS service provider
Arkesel — enter your API Key and Sender ID below, then save.
Hubtel SMS — enter your Client Secret in the API Key field, your Client ID below, and a Sender ID, then save.
mNotify — enter your API Key and Sender ID below (Sender ID must be pre-approved in your mNotify account), then save.
Use Send Test SMS below to confirm your setup actually sends for this branch.
API Key
Your SMS provider API key or secret
Client ID
Required for Hubtel SMS only
Sender ID / Name
Name shown as sender on SMS (max 11 characters, no spaces)
Allow emoji in messages
Off by default — an emoji forces the whole message into a slower, less reliable multi-part format. Turn this on only if you'd rather keep emoji and accept that trade-off.
🌐
Public / System SMS
Some SMS has no staff member sending it at all — a student submitting an exam, someone requesting an appointment online, a login OTP code. Pick which branch's settings those use.
Default branch for public SMS
Defaults to Headquarters until changed here
🧪
Test SMS Connection
Send a test message to verify your SMS configuration
✓ Saved
💳
Hubtel Payment Gateway
Configure live MoMo payments for tithes, offerings, and KMPP partner contributions
Simulation mode
📋 How to get Hubtel credentials:
1. Register at hubtel.com
2. Go to Developer → API Keys and create an app
3. Copy your Client ID and Client Secret below
4. Ensure your Hubtel account has a verified merchant number
Payment Mode
Switch to Direct Collection once Hubtel enables mobilemoney-receive scope on your API key — no code changes needed
Hubtel Client ID
From your Hubtel developer account
Hubtel Client Secret
Keep this secret — never share it
Hubtel Merchant ID
Your merchant account number from rmp.hubtel.com (e.g. 11684) — used in the Direct Collection API URL
Callback URL
Hubtel sends payment results here. Set this in your Hubtel dashboard too.
📱
Merchant Numbers
The MoMo numbers that receive payments from members and partners
MTN Mobile Money Number
Members send tithes & offerings to this number
Telecel Cash Number
For members on Telecel (Vodafone) network
🧪
Test MoMo Connection
Verify that your Hubtel credentials are correct and the gateway is live
✓ Saved
👑
KMPP Member ID Format
Configure how KMPP Partner IDs are generated
Loading KMPP settings…
🔔
Partner Notifications
Automatic SMS notifications sent to KMPP partners
Welcome SMS
Send SMS to new partners when their application is approved
Payment Reminder SMS
Reminder SMS before each partner's pledge is due (Monthly, Quarterly, or Annually, per their own pledge frequency) — only once per cycle, never daily. Timing details: Settings → 📅 SMS Schedule.
Payment Confirmation SMS
SMS alert to partner when MoMo payment is received
⚠ Notifications only send when SMS Provider is configured and not in test mode.
💬
WhatsApp Business
Send messages directly to members' WhatsApp
Not configured
📲
Provider & Credentials
Choose your WhatsApp provider and enter the required credentials
WhatsApp Provider
Choose your WhatsApp service provider
Hubtel — requires WhatsApp Business activation with Meta through Hubtel.
Arkesel — enter API key and Sender ID (must be WhatsApp-enabled account).
mNotify — enter API key and Sender ID from your mNotify dashboard.
WhatsTool Business — enter your API key and WhatsApp API Number ID from Developers API in your WhatsTool dashboard.
Meta WhatsApp Cloud API — connects directly to Meta, no third-party platform in between. Enter your Phone Number ID and access token from developers.facebook.com.
Client ID
From your Hubtel WhatsApp Business account
Client Secret
Sender Name
Name members see as the WhatsApp sender (max 75 characters — WhatsApp Business display name limit, not the 11-character SMS sender ID limit)
✓ Saved
🧪
Test WhatsApp
Send a test message to verify your setup
📞
Voice Call
Auto-call members with a pre-recorded audio message
Not configured
📲
Provider & Credentials
Choose your voice provider and enter credentials
Voice Provider
Choose your voice call service provider
Arkesel — uses a separate Voice balance. Top up at arkesel.com → Voice dashboard.
mNotify — uses your mNotify account voice credits.
Voice API Key
Leave blank to reuse your SMS provider API key
Caller ID
Number or name shown on members' phones when they receive the call
✓ Saved
✝
Ministry Identity
The name that appears across all pages, portals and SMS messages
Ministry / Church Name
Full name shown in the sidebar on every page and in SMS messages (use line break \n for two lines)
Tagline
Small text shown under the name in the sidebar (e.g. Church Management)
Short Name / Abbreviation
Used in browser tab titles (e.g. CWE)
🌐
Site Configuration
General system settings
Site URL
Public URL of this system (used for callback URLs and links in SMS)
Timezone
Church timezone for dates and scheduled tasks
⏱
Session Timeout
Automatically log out inactive users after the selected period
Moved to 🔒 Security
The session timeout (sign out after no activity) is now set — and enforced — in the Security tab, together with the longest a sign-in can last, two-step sign-in and who is signed in right now.
🗄
System Information
Read-only system status
Loading…
🚫
Master Switches
Completely stops every outgoing SMS or Email notification in the CMS, regardless of any individual message's channel setting below. Doesn't affect the "Send Test SMS" diagnostic button, which is meant to check your provider credentials even while notifications are turned off.
Disable All SMS
Stops every outgoing SMS notification, church-wide.
Disable All Email Notifications
Stops every outgoing notification email, church-wide (doesn't affect newsletters or other bulk email features).
📨
Notification Channel (Global Default)
Controls how every automated message in the CMS and Bible School is delivered — admissions, password resets, new member welcome, KMPP, fee reminders, and everything else that currently sends SMS. Individual overrides below take priority over this.
Send Via
"Email Only" falls back to SMS automatically for anyone without an email on file, so a message is never silently lost.
Each message below defaults to whatever's chosen under General → Notification Channel. Pick a specific override here only for messages you want to behave differently — e.g. keep the Login OTP always on SMS for reliability, while sending fee reminders by email to save on SMS cost. Pick "Off" to stop that one specific message entirely, without affecting anything else.
✓ Saved
💬
Peer Messaging (Portals)
By default, only CMS admin/staff can start a new Staff Messages conversation — everyone else can only reply to one already started for them. Turning any of these on lets that pairing start new conversations directly with each other from their own portal, not just reply.
Staff ↔ Staff
Staff Portal users can message each other directly, not just reply.
Student ↔ Student
Bible School students can message each other directly.
Student ↔ Staff/Lecturer
Students and Staff/Lecturer Portal users can message each other directly, either direction.
KMPP ↔ Staff
KMPP partners and Staff Portal users can message each other directly, either direction.
🔔
Push Notifications
Browser push notifications for approvals, new Staff Messages, and other alerts that already show up in your in-app Notifications bell — so you get notified even when this tab isn't open. Enable it here for your own account; each person enables it individually from wherever they're logged in.
Controls the 4 recurring, church-wide automated SMS/WhatsApp jobs. Bible School's own automated messages (class reminders, fee reminders, pending digest, assignment reminders) are managed separately in Bible School → Notifications → Automated Triggers — deliberately not duplicated here.
💰 Auto-Create Next Payroll Period
Runs at the time below, only fires on the 1st of the month. Creates a Draft run per branch that has active payroll profiles — still needs Calculate, review, and approval before anything is paid. Off by default.
⏰ Run time:
🗓️ Appointment Reminders
Runs at the time below. Sends a reminder (SMS, and email if one's on file) to anyone with an approved appointment scheduled for the next day. Each appointment is only ever reminded once. Off by default.
⏰ Run time:
🎂 Birthday SMS
Runs daily at the time below
⏰ Run time:
👥 Send to:
📖 Devotional WhatsApp Broadcast
Runs daily at the time below
⏰ Run time:
⛪ Sunday Service Reminder
Runs weekly on the day and time below
📅 Day: ⏰ Time:
👥 Send to:
Use {name} for member's first name, {fullname} for first + last name, {time} for the Service Time above, {venue} for the Venue/Address above, {church} for the church name, {title} for "Brother"/"Sister" based on the member's Gender on file, {titleshort} for "Bro."/"Sis." — e.g. "Good Morning {title} {name}" → "Good Morning Sister Patience"
📅 Other Service Reminders
Add reminders for any other weekly service — Midweek Bible Study, Prayer Meeting, Youth Service, etc. Each has its own day, time, and audience, separate from the Sunday Service Reminder above.
📊 Scheduled Reports Dispatch
Sends out any Bible School reports configured under Scheduled Reports (daily/weekly/monthly) when they come due. On by default.
⏰ Run time:
🗓️ Leave Lifecycle Check
Automatically marks approved staff leave requests as Completed once their end date has passed. On by default.
⏰ Run time:
🔁 Recurring Accounting Transactions
Posts any recurring accounting transactions configured under Accounting when they come due (weekly/monthly/quarterly/annually). On by default.
⏰ Run time:
📉 Fixed Asset Depreciation
Posts straight-line depreciation for active fixed assets, once per asset per calendar month. On by default.
⏰ Run time:
🔄 Recurring Events Top-Up
Keeps a rolling window of future occurrences generated for each recurring event series, so they stay visible on the calendar without anyone having to manually extend them. On by default.
⏰ Run time:
🤝 KMPP Payment Reminder
A background check runs daily, but each partner is only ever reminded once per pledge cycle — not daily. The settings below control, per pledge frequency, how many days before the cycle ends the reminder goes out, and how long the full cycle is before someone can be reminded again.
⏰ Check time:
Frequency
Cycle length (days)
Remind (days before)
Monthly
Quarterly
Annually
📚 Bible School Class Reminder
SMS students the day before a class session they're registered for
⏰ Run time:
💳 Bible School Fee Reminder
SMS students with an outstanding balance, weekly on the day and time below
📅 Day: ⏰ Time:
📋 Pending Registrations Digest
Notifies HQ approvers when Bible School course registrations are awaiting approval
⏰ Run time:
📝 Assignment Due Reminder
SMS students whose assignment is due tomorrow and who haven't submitted yet
⏰ Run time:
💰 Annual Income Goal
Set your church's annual income targets. These appear as progress bars on the Finance dashboard.
Total income target for the year
Target amount for the building fund
Must match exactly the category name in Finance
Which year these goals apply to
🤖
AI Provider
Choose which AI service powers the AI Ministry Assistant and configure its API key
Not configured
AI Provider
Select the AI service you want to use
Anthropic Claude — get your API key at console.anthropic.com. Recommended for church use — warm, safe, and excellent at writing.
OpenAI — get your API key at platform.openai.com.
Google Gemini — get your API key at aistudio.google.com.
API Key
Your secret API key from the provider — never share this
Model
Which model version to use
🧪
Test AI Connection
Send a test prompt to verify your API key and provider are working
✓ Saved
📧
SMTP Email Configuration
Configure outgoing email for giving statements, event confirmations, and bulk communications
Email Provider
Pick your mail service to auto-fill host and port, or choose Custom
SMTP Host
e.g. smtp.gmail.com / smtp.office365.com
SMTP Port
587 for TLS (recommended) · 465 for SSL · 25 for plain
Username / Email
Your email address or SMTP username
Password / App Password
For Gmail: use an App Password, not your main password
From Name / Address
Display name and address for outgoing emails
📬
Mailbox Provisioning
Moved to 📧 Email Accounts (SMS & Messaging → Email Accounts tab → ⚙ Provisioning Settings) so it sits next to where it's actually used. This card is just a signpost — the real settings live there now.
🧪
Test Connection
Verify your SMTP settings before saving
✓ Saved
🏆
Certificate Settings
Now managed directly from the Certificate Designer
📜

Certificate settings are managed from the Certificate Designer.

The following are all set directly inside the Certificate Designer and saved properly to the database:

  • Church logo & seal
  • Signatory names, titles & signature images
  • Certificate title, course name & description
  • Scripture verse & reference
  • Colours & background style
📜 Open Certificate Designer →
🖨
Print Settings
Now managed centrally from the Document Designer
📄

Print defaults are managed from the Document Designer.

Paper size, orientation, margins, fonts, watermark, and show/hide toggles are all set from the 🖨 Print tab inside Document Designer. Settings saved there apply to every printed report across the CMS — Members, Finance, Attendance, Certificates, and all other modules.

📄 Open Document Designer →
🩺
System Overview
Real-time status of every subsystem — nothing here is shown as "Healthy" without an actual check
Loading…
🗄
Database
Connection, size, tables, and last backup
Loading…
📦
Backup & Disaster Recovery
Database, uploaded files, and full-system backups — with checksums and verification
These are supplementary snapshots for inspection/recovery. On hosts with ephemeral storage (e.g. a typical Render web service), files here do not survive a redeploy unless a backup notification email is configured below.
Backup History
Loading…
Background Jobs
📁
Storage & Uploaded Files
Disk usage and an inventory of everything in the uploads folder
Loading…
🔐
Security
Configuration checks — never shows actual secret values
Loading…
🔌
External Services
Email, SMS, Payment, and AI integrations — configured status only
Loading…
📝
System Logs
Recent failures and backup-related activity
Loading…
🧩
Permissions & Modules Health
Catches drift between the sidebar and the permissions system before it turns into "why can't anyone grant this?"
Loading…
🔄
Restore & Recovery
Load a database snapshot or a files archive back onto this server — Headquarters Administrators only
⚠ RESTORE OPERATION MAY OVERWRITE CURRENT DATA. Restoring writes directly to the live database or live uploads folder. This cannot be undone by clicking a button again — only by restoring a different, earlier backup. Read the confirmation screen carefully before proceeding.
Loading local backups…