Skip to content

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
  • Email
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 →