A Coimbatore pump manufacturer with 7 branches across Tamil Nadu and Karnataka — 240 daily CRM users, ₹420 cr revenue — was paying Zoho annually on the Enterprise plan and adding 18 modules of customisation that broke on every Zoho release. Their CFO did the math one Saturday in July 2025 and called us. We migrated them to a Next.js + PostgreSQL custom CRM in 16 weeks. The first-year cost gap was in their favour, and the four features that pushed them over the line had nothing to do with cost. Here is the math, the architecture, and the four features.
TL;DR (60 Words)
At 240 users on Zoho Enterprise India pricing — per user, per month — annual licensing alone is list price less their negotiated India SMB discount and annual billing. Custom build: fixed-price + yearly infra. The cost math is real, but the four sticky features (below) were the actual reason.
Why This Matters Now
Zoho CRM is not a bad product. For under 50 users with stock workflows, it is excellent. The break-even where "buy" tips into "build" depends on three things: the user count (licence per user), the customisation depth (Zoho Functions billed per execution), and the integration count (each Zoho Marketplace add-on adds licence + maintenance). At 240 users with deep customisation, the numbers turn. The framing in Method's 2026 Zoho cost breakdown matches what we have seen across 4 client audits this year.
The Client (Specific Details)
The Cost Math (Year 1, Year 3, Year 5)
This is the slide that changed the CFO's mind.
| Cost line | Zoho (continue) | Custom build |
|---|---|---|
| Year 1 licence / build | Negotiated annual | Fixed-price |
| Year 1 infra + ops | Included | Hetzner + monitoring |
| Year 1 customisation maintenance | In-house Deluge dev, 0.5 FTE | Retainer with us, 12 hrs/mo |
| Year 2 + 3 (per year) | Licence inflation 5%/yr | Infra + retainer |
The build never breaks even on Zoho if you only count licence. Re-read that. If your CFO is choosing on year-3 licence cost alone, stay on Zoho. The decision tipped because of the four features below — each one was either impossible or eye-wateringly expensive on Zoho.
The 4 Features That Justified Building (Not Cost)
The Architecture
The stack is deliberately boring. Next.js for the frontend so the team can ship features in TypeScript. Postgres because the data is relational (dealers, products, orders, tickets, payments). tRPC because at 240 users the type-safe RPC saves more dev time than it costs in cleverness. The whole thing runs on 3 Hetzner CCX23 boxes plus a managed Postgres and a managed Redis. We expected to drop one of the app boxes after 6 months of right-sizing.
The 16-Week Migration Plan
The Per-User Cost Math (Where The Tipping Point Sits)
The tipping point for this client was ~180 users. They were already at 240, growing at 25/year, and the four sticky features made the decision irreversible. For an Indian SMB, our rough rule from doing 11 of these audits: under 80 users and stock workflows, Zoho wins on cost forever. 80–180, depends on customisation depth. Above 180 with deep customisation, build wins on year-3 cumulative.
Pre-Migration Decision Checklist
- Counted actual daily-active CRM users (not licences purchased — Zoho bills on licences)
- Mapped every active Deluge customisation and its business owner
- Listed every Zoho Marketplace add-on and its renewal date
- Modelled licence cost at 3, 5, 7-year horizons with realistic team-growth assumption
- Identified the 4–6 features that genuinely cannot be solved on Zoho (be brutal here)
- Estimated in-house Deluge dev FTE actually spent on Zoho customisations
- Got CFO + CTO + IT manager signoff on the cost model independently
- Modelled the painful row in the spreadsheet: "what if we are wrong about adoption"
- Identified the 14-day parallel-run window in the calendar (not festival, not month-end)
- Set the 6-month "hold the Zoho admin licence" budget for archive access
Common Mistakes (Each One Hurts)
Symptom: "We built a Zoho clone and it shipped 4x slower than promised." Cause: re-implementing every Zoho feature instead of dropping the unused ones. Fix: in discovery, find the modules with under 30% adoption. Drop them. We dropped 4 modules out of 22 on this client.
Symptom: "Tally sync drifts out by ₹2 lakh by end-of-week." Cause: bidirectional sync without a clear ownership model per field. Fix: write down which side owns which field. Customer name in CRM. Stock count in Tally. Always.
Symptom: "Field staff stop using the new CRM after 3 weeks." Cause: the workflow is technically better but feels alien. Fix: replicate the Zoho lead-form muscle-memory exactly for the first 2 months. Cosmetic familiarity > functional improvement during cutover.
Symptom: "RBAC is too restrictive for the regional sales heads." Cause: row-level RBAC modelled on Zoho's "territory" feature without the override. Fix: add an explicit "elevated read" permission for regional heads. Audit-log every elevated read.
Symptom: "Custom CRM costs more in year 1 than Zoho ever did." Cause: not modelling the build cost honestly. Fix: every CFO conversation starts with the chart above. The build cost is real money. The decision is on year-3 cumulative.
When NOT To Migrate Off Zoho
Stay on Zoho if (a) your team is under 80 users with mostly-stock workflows, (b) you do not have a CTO or IT manager who can hold custom infra accountable, or (c) your customisations are under 5 and shallow. Migration off Zoho is a multi-month engineering project. If the four sticky features above do not apply to you, the cost math alone never justifies the build. We have walked away from 3 audits for exactly this reason. Honest call.
A Detail That Saved Us On Day 1 of Cutover
The CFO came in on the Sunday of cutover and asked us to prove that the per-dealer pricing engine output matched Zoho's outputs for the entire dealer master. We had a 14-day parallel test on file showing 0 mismatches across 8.4 million pricing lookups. He wanted to see it run live on his terminal. We ran a smoke test of 200 random dealer + product combinations against both systems in real time. 197 matched exactly. 3 had a ₹0.50 rounding-mode difference (Zoho banker's-rounding vs our half-up). We patched in 9 minutes. The CFO signed off at 9:14 am. Without the parallel-run evidence, that conversation goes very differently.
FAQ
Why not just stay on Zoho and hire a Deluge dev?
We modelled this. The customisation maintenance burden was 0.6 FTE before our project, projected to grow to 1.0 FTE by 2027. The total cost of "Zoho + in-house Deluge dev" beat custom on year 3 cumulative but lost on year 5 — and crucially, the four sticky features were still impossible.
What about Salesforce?
We considered it for the audit. Salesforce India pricing for 240 users on Sales Cloud Enterprise is roughly 4x Zoho's. The four sticky features are easier on Salesforce than Zoho but still expensive (Service Cloud + Field Service + Experience Cloud add-ons). Custom won by a wider margin against Salesforce than against Zoho. We have the same comparison post in draft for our 240-agent real-estate CRM build.
How did you handle the data migration from Zoho?
Zoho has a REST API with bulk-export endpoints. We wrote a one-shot Node script that pulled every record by module, normalised it to our Postgres schema, and idempotently inserted with a Zoho-ID mapping table. Nightly delta sync ran for the 14-day parallel window. Final cutover was a single-line config change.
What about uptime?
Zoho's published SLA is 99.9% (about 8.7 hours of allowed downtime/year). Our self-hosted setup hit 99.94% in the first 9 months — better than published Zoho. Caveat: you need an IT manager who is on-call. If you do not have one, Zoho's "someone else's problem" model is genuinely cheaper.
Is this build a Salesforce-style platform we can resell?
No. We deliberately built it for one company's workflows. The dealer-pricing engine, the truck routing, the Tally bridge — all are wired to their specific schemas. A separate engagement would rebuild for a different client. We do not sell licences.
What was the team for the build?
Three engineers full-time (one senior backend + Tally bridge specialist, one full-stack, one frontend), one designer at 0.3 FTE for the vernacular UI, our QA lead Manvi at 0.5 FTE through the 14-day parallel run, and our CTO Hrishikesh at 0.2 FTE for architecture review.
Did you mention any in-house product comparisons?
For voice + vernacular workflows we benchmarked against patterns from our own TalkDrill stack — same i18n approach for the form labels.
Want To Run This Audit For Your Team?
Need a Custom CRM Scoping Call (With Cost Math)?
We run a free 60-minute audit on your Zoho, Salesforce, or HubSpot setup. You leave with a 3-page cost model (year 1, 3, 5), a list of features that can vs cannot be built on the platform, and an honest "stay or build" recommendation. We have walked away from 3 of the last 11 audits — we do not push every team to build.
Book a 60-min CRM AuditFor more first-person on the build-vs-buy decision, our founder Vivek Kumar wrote on the same beat from the buyer's perspective. Other reading: our 120-person CA firm HRMS build vs Zoho People, our Radiant Finance lead pipeline case study, and the CRM development service.
Email us at contact@softechinfra.com to get the cost-model spreadsheet template before the call.
