Why Integrate SMS with ERPNext?
ERPNext is a powerful open-source ERP built on the Frappe framework, used by thousands of businesses for accounting, inventory, CRM, HR, and manufacturing. Integrating SMS turns ERPNext into a customer communication hub — sales invoices trigger instant SMS confirmations, delivery notes send dispatch alerts, payment entries acknowledge receipts, and CRM leads get automated follow-ups.
ERPNext has a built-in SMS Settings module that makes gateway configuration straightforward. Configure the SpringEdge API URL and parameters once, and SMS is available across every transaction document in the system.
Invoice SMS
Auto-notify customers when a Sales Invoice is submitted with invoice number, amount, and due date
Delivery Alerts
SMS dispatch notifications when a Delivery Note is submitted with tracking details
Payment Receipts
Instant SMS acknowledgement when a Payment Entry is recorded against an invoice
CRM Lead Alerts
Notify sales reps via SMS when new leads are captured or opportunities change stage
Before You Begin
Make sure you have these ready:
- An ERPNext instance (self-hosted or ERPNext cloud — version 13 or higher recommended)
- Administrator access to ERPNext with permission to modify SMS Settings
- A SpringEdge SMS account with API access — sign up free
- Your SpringEdge API key from the dashboard
- A DLT-approved sender ID (e.g.
SEDEMO) - A DLT-approved SMS template for each event (invoice, delivery, payment)
Step-by-Step ERPNext SMS Setup with SpringEdge
Complete configuration walkthrough using ERPNext's built-in SMS Settings.
Step 1: Open SMS Settings in ERPNext
Navigate to Home → Settings → SMS Settings in your ERPNext instance. You can also search for "SMS Settings" in the search bar (Ctrl+K / Cmd+K).
Step 2: Configure the SMS Gateway URL
In the SMS Gateway URL field, enter the SpringEdge API endpoint up to the ? character:
https://web.springedge.com/web/api/send/?
Important: Include the trailing ? at the end. ERPNext appends the parameters after this character automatically.
Step 3: Set Message and Receiver Parameters
Configure the two dynamic parameter names that ERPNext will populate automatically:
| ERPNext Field | Value to Enter | What It Does |
|---|---|---|
| Message Parameter | message | ERPNext passes the SMS text in this parameter |
| Receiver Parameter | to | ERPNext passes the recipient's mobile number in this parameter |
Step 4: Add Static Parameters
In the Static Parameters table, add your SpringEdge authentication and sender details. Click Add Row for each parameter:
| Parameter | Value | Notes |
|---|---|---|
apikey | Your SpringEdge API key | e.g. ahgkd5fhk6ahdkrd5yfbhck6 |
sender | Your DLT-approved sender ID | e.g. SEDEMO (6 characters) |
Step 5: Save and Test via SMS Center
Click Save to store your SMS Settings. Then navigate to SMS Center (search for it in the search bar) to send a test SMS:
- Enter a test mobile number
- Type a test message (must match a DLT-approved template)
- Click Send
- Verify delivery in your SpringEdge dashboard under SMS Logs
Complete ERPNext SMS Settings Summary
Here's the full configuration at a glance — copy these values into your ERPNext SMS Settings page:
| Field | Value |
|---|---|
| SMS Gateway URL | https://web.springedge.com/web/api/send/? |
| Message Parameter | message |
| Receiver Parameter | to |
| Static Parameter 1 | apikey = YOUR_API_KEY |
| Static Parameter 2 | sender = YOUR_SENDER_ID |
The resulting API call ERPNext makes looks like:
GET https://web.springedge.com/web/api/send/
?apikey=ahgkd5fhk6ahdkrd5yfbhck6
&sender=SEDEMO
&to=919876543210
&message=Dear+Customer%2C+your+invoice+SINV-2026-00142+for+Rs.25%2C000+has+been+generated.+-+SEDEMO
How to Send SMS from ERPNext Transactions
Once SMS Settings are configured, you can send SMS from any transaction document in ERPNext. There are two ways:
Manual: Send from Any Document
Open any submitted document (Sales Invoice, Delivery Note, Payment Entry, Quotation, etc.), click Menu (…) → Send SMS. ERPNext will pre-fill the customer's mobile number and let you type or select a message template. Click Send.
Automatic: Use Notification Rules
For automated SMS on every transaction, set up Notification rules:
- Go to Home → Settings → Notification
- Click New
- Channel: SMS
- Document Type: Sales Invoice (or Delivery Note, Payment Entry, etc.)
- Event: Submit (triggers when the document is submitted)
- Condition: optional filter (e.g.
doc.grand_total > 1000) - Recipients: select the mobile number field (e.g.
contact_mobile) - Message: use Jinja template with ERPNext fields, e.g.:
Dear {{ doc.customer_name }}, invoice {{ doc.name }} for Rs.{{ doc.grand_total }} has been generated. Due: {{ doc.due_date }}. - SEDEMO - Save and enable the notification
DLT compliance: Make sure the final rendered message (after Jinja substitution) matches your DLT-approved template exactly — including punctuation, spacing, and variable positions. Mismatched templates are blocked by Indian telecom operators.
What You Can Automate from ERPNext
Popular SMS workflows businesses run from ERPNext modules.
Sales Invoice SMS
Auto-notify customers on invoice submission with invoice number, total, and payment due date.
Delivery Note SMS
Alert customers when goods are dispatched with delivery date, transporter, and tracking details.
Payment Entry SMS
Instant acknowledgement when customer payment is recorded. Includes amount and outstanding balance.
Quotation / Estimate
Notify customers when a quotation is submitted and alert sales team when it's approved or rejected.
Purchase Order SMS
Notify suppliers via SMS when a purchase order is confirmed and ready for fulfilment.
CRM Lead Alerts
SMS sales reps when new leads are captured, opportunities progress, or high-value deals close.
HR & Leave
Notify employees on leave approval, attendance alerts, and payroll processing from the HR module.
Stock Reorder SMS
Internal alerts when stock levels fall below reorder point — notifies purchase team to replenish.
Troubleshooting Common Issues
If SMS isn't going out from ERPNext, check these.
SMS Not Sending
Verify the Gateway URL ends with ? and that the static parameters (apikey, sender) have correct values with no extra spaces.
DLT Template Blocked
The final rendered message must match your DLT-approved template exactly. Check Jinja output for extra spaces, wrong variable order, or missing brand suffix.
Wrong Number Format
ERPNext may store mobile numbers with +91 prefix. SpringEdge accepts 919876543210 format. Check the Contact's mobile field.
Notification Not Triggering
If using Notification rules, ensure the channel is set to SMS (not Email), the event matches (Submit vs Save), and conditions are met.
No Mobile on Contact
SMS won't send if the customer's Contact record doesn't have a mobile number. Update the Contact linked to the Customer master.
Firewall / HTTPS Issue
ERPNext server needs outbound HTTPS access to web.springedge.com. Check server firewall if API calls are timing out.
Frequently Asked Questions
Common questions about ERPNext SMS integration.
-
How do I send SMS from ERPNext?
Go to Settings → SMS Settings in ERPNext. Enter the SpringEdge Gateway URL (
https://web.springedge.com/web/api/send/?), set the Message Parameter tomessageand Receiver Parameter toto. Add your SpringEdge API key and sender ID as Static Parameters. Save, then test via SMS Center. Once configured, you can send SMS from any document via Menu → Send SMS, or automate it using Notification rules. -
Do I need to write custom code for ERPNext SMS integration?
No. ERPNext has a built-in SMS Settings module that lets you configure any HTTP-based SMS gateway through the admin UI. You just paste the SpringEdge API URL, set parameter names, and add your credentials as static parameters. No Python code, no custom app, no Frappe bench commands needed. For automated SMS on transactions, use the built-in Notification rules (also no code).
-
Does this work on both ERPNext Cloud and self-hosted?
Yes. The SMS Settings module is available on both ERPNext Cloud (hosted by Frappe) and self-hosted ERPNext instances. The configuration process is identical. For self-hosted instances, make sure your server has outbound HTTPS access to web.springedge.com.
-
Can I automate SMS on every Sales Invoice in ERPNext?
Yes. Create a Notification rule: go to Settings → Notification → New. Set Channel to SMS, Document Type to Sales Invoice, Event to Submit, and write your message template using Jinja syntax (e.g.
{{ doc.customer_name }},{{ doc.grand_total }}). Every submitted Sales Invoice will trigger an SMS automatically. -
Which ERPNext documents support SMS sending?
Almost all ERPNext documents support SMS via the Menu → Send SMS action and through Notification rules. Common ones: Sales Invoice, Sales Order, Delivery Note, Payment Entry, Purchase Order, Quotation, Lead, Opportunity, Material Request, Stock Entry, Leave Application, Payroll Entry, and any custom DocType you create.
-
Is DLT compliance required for SMS from ERPNext?
Yes. Any SMS to Indian mobile numbers must use a DLT-approved sender ID and a DLT-approved message template. Make sure your ERPNext Notification message templates (after Jinja rendering) match the registered DLT template exactly — including punctuation, spacing, and variable positions.
-
Can I use Jinja templates for dynamic SMS content?
Yes. ERPNext's Notification system supports full Jinja2 templating. You can reference any field on the document using
{{ doc.field_name }}syntax — for example{{ doc.customer_name }},{{ doc.grand_total }},{{ doc.due_date }}. The rendered output is what gets sent via the SpringEdge API, so make sure it matches your DLT template. -
How much does it cost to send SMS from ERPNext using SpringEdge?
SpringEdge uses pay-as-you-go pricing starting at ₹0.14–₹0.16 per SMS depending on volume. No monthly subscription, no setup fees, no minimum commitments. You only pay for the messages sent from ERPNext. Visit our pricing page for detailed rates and volume discounts.
