← All projects
1 min read
Notification Router
Switch WhatsApp or SMS vendors from settings, not code.
One messaging layer used across the company's client projects. Project code asks for a WhatsApp, SMS, email or push message, and the router decides which vendor sends it, based on admin settings.
- Shared Frappe app
- Python
- Frappe
- WhatsApp Business API
- SMS gateways
- FCM
In production · used across client projects
Notification Router
What it does
One call for every channel
WhatsApp, SMS, email and push all go through the same interface.
Vendors are a setting
Admins pick the vendor per channel. Changing it needs no deploy.
Safe on test servers
A copy of production on a dev server never messages real people.
Built for bulk
Large sends run in the background and failures are logged for follow-up.
Under the hood, briefly
- Three layers. Project app → router app → one small Frappe app per vendor, installable on any site. Each vendor app is like a Postman collection in code, and converts its vendor’s response into one standard shape.
- Why it exists. Vendor calls used to sit inside each project app, so switching vendors meant editing every call site. Twelve call sites moved onto the router.
- Test mode. The router compares the current site URL with the production URL stored in its settings. When they differ, every message goes to a configured test email, number or device token, with an optional log-only switch.
Next project
Vending ERP →