A pluggable SMS layer for ERPNext that routes transactional and marketing messages across MSG91, Twilio, Vonage, Infobip, Sinch and regional gateways from a single DocType, with DLT-compliant templates, delivery receipts and two-way inbound routing. ECOSIRE builds, installs and supports it on your Frappe/ERPNext v15/v16 site. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $199.00 USD; request a quote for a scoped proposal.
Illustrative previewA pluggable SMS layer for ERPNext that routes transactional and marketing messages across MSG91,
Twilio, Vonage, Infobip, Sinch and regional gateways from a single DocType, with DLT-compliant templates, delivery receipts and two-way inbound routing.
ECOSIRE builds, installs and supports it on your Frappe/ERPNext v15/v16 site.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your ERPNext.
You go live in about 2–4 weeks, with a post-launch support window.
ERPNext ships an SMS Settings DocType, but it assumes one gateway with a single GET/POST URL and hard-coded parameter names. The moment you need failover between providers, region-specific routing (an Indian MSG91 route for domestic traffic and a Twilio route for international), DLT-registered template and sender-ID enforcement, or genuine delivery receipts written back to the sending document, that native config runs out of road. Teams end up hard-coding a second gateway into a custom script, lose every message when the primary provider throttles, and have no audit trail of what actually got delivered versus what silently failed at the carrier.
The Multi-Gateway SMS Hub is a proper Frappe app (its own module, installed via bench get-app and bench install-app) that introduces a pluggable gateway abstraction. Each provider — MSG91, Twilio, Vonage, Infobip, Sinch, and any regional aggregator you use — is a configured SMS Gateway record implementing a common send interface, with credentials, base URL, auth style, throughput limits and a priority/weight for routing and failover. A central SMS Message DocType is the single log for every outbound and inbound message, carrying provider message-id, status, cost, segment count and the linked source document. Routing rules select a gateway by country prefix, message type (transactional vs promotional) or sender ID, and fall through to the next-priority gateway on a hard failure.
Sending is wired into ERPNext through hooks.py document events and scheduler events, not one-off buttons. A doc_events handler fires SMS on state transitions you choose — Sales Order on_submit, Delivery Note dispatch, Payment Entry receipt — using a SMS Template DocType with Jinja placeholders bound to the source doc, and enforcing your DLT/sender-ID mapping so non-compliant sends are blocked before they hit the carrier. Delivery Receipts (DLR) arrive on a whitelisted webhook endpoint (a @frappe.whitelist(allow_guest=True) method with signature verification), which updates the matching SMS Message status and timestamps. Inbound (two-way) SMS lands on the same webhook layer and is routed by keyword or virtual number to create a ToDo, Communication, or a lead/ticket against the right party. Bulk campaigns run as a queued, rate-limited background job over a segmented recipient list (Report/Query filters or Contact tags), respecting per-gateway throughput and quiet-hours. Roles and permissions are handled with a dedicated role profile so marketers can send campaigns without touching gateway credentials, and every send is exposed over the standard Frappe REST API and whitelisted methods for your other systems.
Because this is build-to-order, we start from your actual gateways, DLT/sender-ID registrations, the exact DocTypes and events that should trigger messages, and your compliance constraints — then build, test on a staging bench, and hand over the running app. Typical delivery is 2–4 weeks from confirmed scope. You receive the full source and git repository, so nothing is locked behind a marketplace subscription; ECOSIRE installs it on your v15 or v16 site, trains your team, and supports it through go-live.
Needs reliable transactional SMS — order confirmations, dispatch and OTP alerts — that automatically fail over between providers so a single gateway outage never drops a customer notification.
Runs segmented promotional campaigns from ERPNext Contacts and Customer Groups, needs DLT-compliant templates, opt-out handling and per-campaign delivery reporting without ever touching gateway API keys.
Owns the ERPNext instance and wants SMS wired into DocType events via hooks.py, exposed over the REST API for other apps, and maintainable through a clean git repo on v15/v16.
Operates across regions with strict DLT/sender-ID and DND rules and needs an auditable log of every message sent, delivered or blocked, with costs attributed per gateway.
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Multiple gateways | Pluggable layer — MSG91, Twilio, Vonage, Infobip, Sinch and regional, one interface | Whatever you hard-code, usually one or two | Often single-gateway or a fixed short list | One gateway via SMS Settings URL |
| Failover & routing | Priority/weight routing by country and message type with auto-failover | Only if you build and test it yourself | Rarely; usually static config | None — single endpoint |
| DLT / sender-ID compliance | Template-ID and sender-ID mapping enforced pre-send | Manual per project | Varies; often partial | Not modelled |
| Delivery receipts (DLR) | Signed webhook writes carrier status back to each message | Build the webhook yourself | Sometimes, provider-specific | No delivery-status tracking |
| Two-way / inbound SMS | Inbound routed to ToDo, Communication, Lead or ticket | Bespoke build | Usually outbound-only | Not supported |
| Bulk campaigns | Queued, rate-limited, segmented with opt-out/DND suppression | DIY queue and throttling | Basic bulk send, limited segmentation | No campaign layer |
| Fit to your data & triggers | Wired to your exact DocTypes via hooks.py doc_events | Fully bespoke but you own all the risk | Generic; adapt your process to it | Manual send only |
| Ownership & support | Full source, git handover, training and support window | You own it and all maintenance | Marketplace subscription, vendor-controlled | Frappe community support only |
This is a build-to-order app, not an instant download. Typical delivery is 2–4 weeks from confirmed scope, depending on how many gateways, routing rules and document triggers you need. We agree the scope on the initial call, build on a staging bench, run UAT with you, then install on your production site.
The gateway layer is pluggable. We commonly build MSG91, Twilio, Vonage, Infobip and Sinch, plus regional aggregators you already use. Any provider with an HTTP/REST send API and a delivery-receipt callback can be added as a new SMS Gateway record — that's the whole point of the abstraction.
Yes. The SMS Template DocType maps your DLT-registered template IDs and approved sender IDs, and the send pipeline blocks or rejects non-compliant messages before they reach the carrier. We configure this against your actual registrations during the build.
Frappe/ERPNext v15 and v16. We target your exact site version and Python/Frappe release, and hand over a git repo so the app stays upgradeable as you move between versions.
Both use a whitelisted webhook endpoint with signature verification. Delivery receipts (DLR) update each SMS Message with the carrier's delivered/failed status and timestamp; inbound messages are routed by keyword or virtual number to create a ToDo, Communication, Lead or ticket against the matching contact.
Every build includes a post-go-live support window for bug fixes and configuration tweaks. Because you own the full source and git repository, there's no marketplace lock-in — you or we can extend gateways, routing rules and triggers later. Longer-term maintenance and version-upgrade support is available as an ongoing arrangement.
Yes. Sending and message lookups are exposed over the standard Frappe REST API and dedicated @frappe.whitelist() methods, so your website, mobile app or third-party services can trigger and query messages using API keys and the role-based permissions we configure.

A build-to-order 2Checkout (Verifone) payment integration for ERPNext, giving global digital-goods sellers card acceptance, 45+ local payment methods, multi-currency checkout, and reconciled invoices. ECOSIRE scopes, builds, installs, and supports it on your ERPNext v15/v16 instance.

A build-to-order ERPNext application for anonymous 360-degree reviews — configurable peer, manager, report and self rater groups, weighted competency scoring, and aggregated gap-analysis and heatmap reports. ECOSIRE scopes, builds, installs and supports it on your Frappe/ERPNext v15/v16 instance.

A build-to-order ERPNext app that detects abandoned webshop and POS carts, then runs multi-channel WhatsApp, email, and SMS recovery and win-back sequences with dynamic cart content and coupon injection. ECOSIRE scopes, builds, installs, and supports it for your v15/v16 instance.

A build-to-order ERPNext app for running B2B account-based campaigns: define target-account lists, sequence outreach calls, auto-distribute them to agents, and score account engagement across every contact. ECOSIRE designs, builds, installs and supports it after you confirm scope.
A pluggable SMS layer for ERPNext that routes transactional and marketing messages across MSG91, Twilio, Vonage, Infobip, Sinch and regional gateways from a single DocType, with DLT-compliant templates, delivery receipts and two-way inbound routing. ECOSIRE builds, installs and supports it on your Frappe/ERPNext v15/v16 site.