Skip to main content

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
NameSpringEdge SMS
URL to notifyhttps://web.springedge.com/web/api/send/
MethodPOST
Authorization TypeNone (auth is via URL parameter)
ModuleInvoice (or Payment / Estimate based on trigger)
Body TypeForm Data (application/x-www-form-urlencoded)

Step 4: Map Parameters

In the URL Parameters / Body Parameters section, add the following:

Parameter Value Notes
apikeyYour SpringEdge API keyStatic value, e.g. ahgkd5fhk6ahdkrd5yfbhck6
senderYour DLT sender IDStatic value, e.g. SEDEMO
toCustomer mobile (merge field)Pick from Zoho Books fields, e.g. ${Customer.Phone}
messageSMS 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.

  • 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.

  • 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.

  • 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.).

  • Use Zoho Books merge fields. In the webhook's message parameter, 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.

  • 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.

  • 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.