A build-to-order MSG91 connector that adds DLT-compliant transactional and promotional SMS, OTP send-and-verify flows, and delivery-report sync to your ERPNext instance. ECOSIRE scopes, builds, installs and supports it — not an instant download. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $149.00 USD; request a quote for a scoped proposal.

A build-to-order MSG91 connector that adds DLT-compliant transactional and promotional SMS, OTP send-and-verify flows, and delivery-report sync to your ERPNext instance. ECOSIRE scopes, builds, installs and supports it — not an instant download.
Sin pago ahora. Esto envía una solicitud de presupuesto a nuestro equipo; te responderemos por correo con precios y próximos pasos.
Indian SMBs running ERPNext quickly hit a wall on SMS. ERPNext ships with a generic SMS Settings screen that pushes messages to an HTTP gateway, but it has no concept of India's TRAI/DLT regime — no principal-entity or template registration, no sender-ID (header) mapping, no distinction between transactional and promotional routes, and no built-in OTP send-and-verify workflow. The result is silently dropped messages, non-compliant content templates, and OTP logic bolted on with fragile custom scripts. MSG91 is the gateway most Indian teams standardize on, but wiring it into ERPNext properly — with DLT variables mapped to your documents and delivery status flowing back — is exactly where the native tooling runs out of road.
`MSG91 Settings` single DocType storing Auth Key, default route, sender header and base URL, with the key access-controlled by role
`DLT Template` DocType mapping each approved DLT template ID to its registered header/sender ID, route (transactional/promotional) and ordered variable list
Template-first sending via MSG91's flow/template API so every outbound SMS carries a DLT-registered content template, never a raw non-compliant blob
OTP send-and-verify exposed as whitelisted methods (`send_otp` / `verify_otp`) over the Frappe REST API, with configurable length, TTL, retry throttling and hashed at-rest storage
`hooks.py` doc events (e.g. `on_submit` of Sales Invoice, Delivery Note, Payment Entry) that fire the mapped DLT template with document field values
Data-driven trigger-to-template mapping DocType so business users change which document event sends which template without code changes
ECOSIRE builds a proper Frappe application (its own installable app with a versioned hooks.py, module, and DocTypes) that turns MSG91 into a first-class ERPNext messaging layer. At the core is a MSG91 Settings single DocType that holds your Auth Key, base route, and defaults, and a DLT Template DocType that stores each approved DLT template ID, its registered sender ID/header, route (transactional vs promotional), and the ordered variable list. Outbound sends resolve through MSG91's flow/template API so the message that leaves your system always carries a DLT-registered template — the compliant path, not a raw text blob. All traffic and every callback is persisted to an SMS Log DocType (recipient, template, MSG91 request ID, route, status, timestamps) so you have an auditable trail per document and per campaign.
The connection to your business documents is done the Frappe-native way. We register hooks.py doc events (for example on_submit on Sales Invoice, Delivery Note, or Payment Entry) that call whitelisted server methods to fire the right DLT template with the correct field mappings — no hard-coding, the trigger-to-template map is data in a DocType you control. OTP is delivered as a reusable whitelisted method pair (send_otp / verify_otp) exposed over the Frappe REST API and callable from portal pages, custom app flows, or client scripts, with configurable OTP length, expiry, retry throttling, and hashed storage. Delivery-report reconciliation runs two ways: a public webhook endpoint that ingests MSG91 DLR callbacks, plus a scheduler_events job that polls for any pending statuses so the SMS Log never goes stale. Everything is wrapped in Frappe permissions and role profiles so, for example, only a "SMS Manager" role can edit templates or read the Auth Key, while agents can only send.
Because this is build-to-order, nothing ships until we agree on scope. We start with a short scoping call to confirm your MSG91 account setup, your registered DLT templates and sender IDs, which ERPNext documents should trigger which messages, and your OTP use cases. We then build against your requirements, targeting Frappe/ERPNext v15 and v16, validate on a staging bench through UAT, and only then install on production with a rollback plan. Typical delivery is 2–4 weeks from confirmed scope, and you receive the full git repository so the work is yours to maintain, extend, or hand to another team.
Owns the ERPNext instance and needs DLT-compliant SMS live without stitching together fragile custom scripts. Wants templates, sender IDs and OTP managed as DocTypes they can maintain, plus clean permissions so only the right roles touch the Auth Key.
Wants order confirmations, dispatch and payment alerts to fire automatically on document submit and to actually reach customers. Cares that delivery reports sync back so they can see which messages landed and which failed.
Needs a clean, hook-based integration they can read and extend rather than a black box. Values the git handover, whitelisted `send_otp`/`verify_otp` methods for reuse across portals and apps, and v15/v16 compatibility.
Accountable for staying inside TRAI/DLT rules and keeping an audit trail. Needs promotional vs transactional routing handled correctly, DND rules respected, and an `SMS Log` that stands up to scrutiny.
Compre la licencia en ecosire.com y descargue la aplicación ZIP de MSG91 SMS & OTP Integration for ERPNext desde el panel de su cuenta.
Extraiga el ZIP en la carpeta de aplicaciones de su banco o ejecute `bench get-app` con la ruta a la aplicación extraída.
Ejecute `bench --site SITE_NAME install-app APP_NAME` seguido de `bench migrar` para instalar MSG91 SMS & OTP Integration for ERPNext y aplicar su esquema.
Abra la configuración de licencia de ECOSIRE en su sitio y active su clave de licencia. Requiere las aplicaciones gratuitas ecosire_connect y ecosire_license_client.
| Criterio | ECOSIRE | Construcción personalizada | Competidor | Odoo Nativo |
|---|---|---|---|---|
| DLT compliance | Built-in template/header/route mapping for the DLT regime | Depends entirely on in-house effort; often incomplete | Generic; rarely models Indian DLT correctly | |
| OTP send & verify | Whitelisted `send_otp`/`verify_otp` with expiry & throttling | Hand-rolled per project, easy to get wrong | May offer OTP but not tuned to your flows | |
| Document triggers | `hooks.py` doc events with data-driven template mapping | Custom server scripts you maintain yourself | Fixed or limited event coverage | |
| Delivery reports | Webhook DLR ingest + scheduler reconciliation into `SMS Log` | Rarely built; status left unknown | Varies; often send-only | |
| MSG91 fit | Purpose-built for MSG91 flow/template API | You integrate and test the API yourself | Often a different gateway or generic HTTP | |
| Version support | Built and tested on Frappe/ERPNext v15 & v16 | Whatever you build and retest each upgrade | May lag current ERPNext releases | |
| Ownership | Full git repo handover; code is yours | You own it but build it from scratch | Vendor-locked; no source access | |
| Support | Post-go-live support window + follow-on options | Self-supported or ad-hoc contractor | Tiered vendor support, extra cost |
No. This is a build-to-order product. ECOSIRE designs, builds, installs and supports it around your specific MSG91 account, your registered DLT templates and the ERPNext documents you want to trigger messages. There is no instant marketplace download; you receive your own installable app and the full git repository at handover.
Typical delivery is 2–4 weeks from confirmed scope. The clock starts once we've agreed on your MSG91 setup, DLT templates and sender IDs, the document events that should send messages, and your OTP use cases on the scoping call. Larger or more custom workflows can extend the timeline, which we confirm in writing before we build.
Yes. The app is built around the DLT regime: each message sends through an approved DLT template ID mapped to its registered sender ID/header and route, with transactional and promotional traffic separated and DND rules respected for promotional sends. It does not send raw ad-hoc text that would fail DLT scrubbing.
We build and test against Frappe/ERPNext v15 and v16, packaged as a standard installable Frappe app. If you are on a different version, tell us on the scoping call and we will confirm feasibility before committing to scope.
Through Frappe-native `hooks.py` doc events (such as `on_submit` of Sales Invoice, Delivery Note or Payment Entry) that call whitelisted server methods to fire the mapped DLT template with your document's field values. The trigger-to-template mapping lives in a DocType, so you can change which event sends which template without editing code.
Yes. OTP is exposed as whitelisted `send_otp` and `verify_otp` methods over the Frappe REST API, so you can call them from ERPNext portal pages, client scripts, or an external app. Length, expiry, retry throttling and hashed storage are configurable to your requirements.
Every engagement includes a post-go-live support window for defect fixes and configuration adjustments, and you get the full git repository so your team or another partner can maintain and extend it. Longer-term support, new document triggers, or version upgrades can be arranged as a follow-on engagement.
A build-to-order MSG91 connector that adds DLT-compliant transactional and promotional SMS, OTP send-and-verify flows, and delivery-report sync to your ERPNext instance. ECOSIRE scopes, builds, installs and supports it — not an instant download.