Why Integrate SMS with Zoho Books?
Zoho Books is a popular accounting platform used by Indian SMBs for invoicing, expense tracking, and GST-compliant accounting. Adding SMS turns it into a full customer communication hub — the moment an invoice is created, customers get a notification SMS with invoice number, amount, and due date. When a payment is received, an instant acknowledgement SMS goes out.
Setting up SMS for Zoho Books is straightforward through Zoho's webhooks and Deluge custom functions. This guide walks through both methods using SpringEdge's SMS API.
Invoice SMS
Auto-SMS customers with invoice number, amount, and due date the moment an invoice is created
Payment Receipts
Send instant payment receipt SMS when a customer payment is recorded in Zoho Books
Payment Reminders
Automated overdue invoice reminder SMS to reduce DSO (Days Sales Outstanding)
Estimate Approvals
Notify customers when a quote/estimate is sent and SMS internal teams when it's approved
Before You Begin
Make sure you have these ready:
- An active Zoho Books account (Standard plan or higher — webhooks require paid tier)
- A SpringEdge SMS account with API access — sign up free
- Your SpringEdge API key from your dashboard
- A DLT-approved sender ID (e.g.
SEDEMO) - A DLT-approved SMS template for each event you want to automate (invoice, payment, reminder)
Method 1: Send SMS Using Zoho Books Webhooks (Recommended)
The easiest way to integrate — configure entirely from Zoho Books admin, no coding required.
Step 1: Open Workflow Rules in Zoho Books
Log in to Zoho Books and go to Settings (gear icon) → Automation → Workflow Rules. Click + New Rule to create a new automation.
Step 2: Configure the Trigger Event
Set up the rule details:
- Module: Choose the module — Invoice, Payment, or Estimate
- Rule Name: Something descriptive, e.g. "Send SMS on Invoice Creation"
- When: Choose the trigger — Created, Edited, Status changed, etc.
- Filter (optional): Add criteria, e.g. invoice amount > ₹1,000, or only for specific customers
Step 3: Add Webhook Action
In the workflow's Actions section, click + Add Webhook. Configure with these values:
| Field | Value |
|---|---|
| Name | SpringEdge SMS |
| URL to notify | https://web.springedge.com/web/api/send/ |
| Method | POST |
| Authorization Type | None (auth is via URL parameter) |
| Module | Invoice (or Payment / Estimate based on trigger) |
| Body Type | Form Data (application/x-www-form-urlencoded) |
Step 4: Map Parameters
In the URL Parameters / Body Parameters section, add the following:
| Parameter | Value | Notes |
|---|---|---|
apikey | Your SpringEdge API key | Static value, e.g. ahgkd5fhk6ahdkrd5yfbhck6 |
sender | Your DLT sender ID | Static value, e.g. SEDEMO |
to | Customer mobile (merge field) | Pick from Zoho Books fields, e.g. ${Customer.Phone} |
message | SMS text (merge fields) | e.g. Hi ${Customer.Display Name}, invoice ${Invoice Number} for Rs.${Total} is generated. Due: ${Due Date}. |
Step 5: Save and Test
Save the workflow rule. Create a test invoice for a contact with a valid Indian mobile number. Within 3-5 seconds, the customer should receive the SMS. Verify delivery in your SpringEdge dashboard.
Important: Make sure the message text after merge field substitution exactly matches your DLT-approved template — including punctuation, spacing, and variable positions. Mismatched templates are blocked by telecom operators.
Method 2: Send SMS Using Zoho Books Custom Functions (Deluge)
For more complex logic — conditional sending, multiple SMS, or integrating with external data — use Zoho's Deluge scripting.
Custom functions in Zoho Books let you write Deluge scripts triggered by workflow rules. Use this method when:
- You need conditional SMS sending logic
- You need to send multiple SMS from a single trigger (e.g. customer + sales rep)
- You need to look up data from other Zoho apps before sending
- You want to log SMS sends to a custom database
Add a custom function via Settings → Automation → Workflow Rules → New Rule → Actions → Custom Function.
// Zoho Books Deluge function
// Triggered by Workflow Rule
apikey = "YOUR_SPRINGEDGE_API_KEY";
sender = "SEDEMO";
// Pull data from triggering invoice
phone = invoice.get("customer_mobile");
name = invoice.get("customer_name");
invNum = invoice.get("invoice_number");
total = invoice.get("total");
dueDate = invoice.get("due_date");
// Build SMS text (must match DLT template)
message = "Hi " + name + ", invoice "
+ invNum + " for Rs." + total
+ " is generated. Due: " + dueDate
+ ". - SEDEMO";
// Build URL-encoded payload
url = "https://web.springedge.com"
+ "/web/api/send/"
+ "?apikey=" + apikey
+ "&sender=" + sender
+ "&to=" + phone
+ "&message="
+ encodeUrl(message);
// Call SpringEdge API
response = invokeurl
[
url: url
type: GET
];
info response;
What You Can Automate from Zoho Books
Popular SMS workflows businesses run from Zoho Books.
Invoice Sent
Auto-SMS customer when a new invoice is created or marked as sent. Includes invoice number, amount, and due date.
Payment Received
Instant acknowledgement SMS when a customer payment is recorded. Includes amount and outstanding balance.
Overdue Reminders
Scheduled reminders for invoices past due date. Significantly reduces DSO and follow-up calls.
Estimate / Quote Sent
Notify customer when a new estimate is sent. Internal SMS to sales team when estimate is approved or declined.
Recurring Invoice
SMS customers when a recurring monthly/quarterly invoice is auto-generated.
Credit Note Issued
SMS customer when a credit note is created. Includes credit amount and reason.
Subscription Renewal
Auto-SMS for subscription renewal reminders, payment confirmations, and failed payment alerts.
Internal Alerts
SMS the finance team for high-value invoices, large customer payments, or invoices crossing approval thresholds.
Troubleshooting Common Issues
If SMS isn't going out from Zoho Books, check these.
Webhook Not Firing
Check workflow rule is "Active". Webhooks need Zoho Books Standard plan or higher. Free plan does not support webhooks.
SMS Blocked by Operator
Compare your Zoho merged message exactly with your DLT-approved template. Even one extra space or character causes blocking.
Phone Number Format
Zoho Books may store phones with country code prefix or hyphens. Use Deluge to clean the number to 919876543210 format.
Spaces in Message
If using webhook directly, make sure the URL parameter encoding is enabled. Spaces in URL parameters cause request failures.
Merge Field Empty
If a customer record is missing the mobile number field, the SMS won't send. Add a workflow filter to skip records with empty phone.
Sender ID Not Approved
The sender ID in your URL must be DLT-approved on your telecom DLT account. Unregistered headers are blocked instantly.
Frequently Asked Questions
Common questions about Zoho Books SMS integration.
-
How do I send SMS from Zoho Books?
The easiest way is to set up a Workflow Rule in Zoho Books that triggers a webhook to the SpringEdge SMS API. Configure the trigger event (invoice created, payment received, etc.), add a webhook action pointing to
https://web.springedge.com/web/api/send/, and map your Zoho Books fields to the API parameters (apikey, sender, to, message). The whole setup takes about 10 minutes. -
Does Zoho Books free plan support SMS integration?
Webhooks and Custom Functions in Zoho Books require a paid plan (Standard, Professional, or Premium). The free plan does not support these automation features. If you're on the free plan, you'll need to upgrade or send SMS manually using Zoho Books exports.
-
Can I send SMS to both the customer and my finance team?
Yes. Add multiple webhook actions to the same workflow rule — one with the customer's mobile number from the merge field, and another with your finance team's fixed mobile number. Both SMS go out simultaneously when the workflow triggers.
-
Is DLT registration mandatory for SMS from Zoho Books?
Yes. Any SMS sent to Indian mobile numbers requires DLT compliance — an approved sender ID and an approved message template. This applies regardless of how the SMS is sent (Zoho Books, API, custom code, etc.).
-
How do I include invoice details in the SMS message?
Use Zoho Books merge fields. In the webhook's
messageparameter, reference fields like${Invoice Number},${Total},${Due Date},${Customer Name}. Zoho replaces these with actual values when the workflow triggers. Make sure the final merged text matches your DLT-approved template exactly. -
Can I schedule SMS reminders for overdue invoices?
Yes. Use Zoho Books' Workflow Rules → Time-based trigger. Set the criteria as "Invoice status = Overdue AND Days overdue = 7" (or 14, 30 days). Add the SpringEdge webhook as the action. Zoho Books automatically runs this daily and sends reminders for invoices matching the criteria.
-
Does this also work with Zoho CRM, Zoho Inventory, and other Zoho apps?
Yes. The same webhook + Deluge approach works across the entire Zoho ecosystem. See our Zoho CRM SMS integration guide and Zoho Forms SMS integration guide for module-specific instructions.
