We Built a Custom CRM for a 240-Agent Real-Estate Firm — Why We Said No to Salesforce
A 240-agent residential real-estate firm in Gurgaon was quoted ₹2.16 crore over 3 years for Salesforce + Gainsight. We built a custom CRM on Next.js + Postgres + Twilio + Razorpay for ₹38 lakh. The full ROI math.
Vivek Kumar
December 6, 202516 min read
0%
A 240-agent residential real-estate firm in Gurgaon got quoted ₹2.16 crore over 3 years by a Salesforce implementation partner — Sales Cloud Enterprise + Gainsight CS for the post-sale customer-success layer. The owner forwarded the quote to us with a one-line message: "tell me honestly if I am being taken for a ride." We told him honestly: half-yes, half-no. Salesforce is genuinely powerful, but he was buying enterprise capability he would never use. We built him a custom CRM on Next.js + Postgres + Twilio + Razorpay for ₹38 lakh. This is the comparison math, the architecture we shipped, and what we deliberately did not build.
240
Agents Across 3 Branches
₹2.16 Cr
Salesforce 3-Year Quote
₹38 L
Custom Build Cost
14 weeks
Discovery to Cutover
## The Answer in 60 Words
For a 240-agent sales-heavy team that uses CRM as a daily tool (not a dashboard), custom build pays back in 11 months versus Salesforce + Gainsight. We built a Next.js + Postgres + Twilio (calls + SMS) + Razorpay (booking deposits) CRM. Stack cost: ₹38 lakh build, ₹62,000/month run. Salesforce 3-year TCO: ₹2.16 crore. Custom 3-year TCO: ₹60 lakh. Saving: ₹1.56 crore.
## Why This Matters Now
The Indian real-estate CRM market in 2025 is genuinely overbuilt at the enterprise tier. Salesforce Sales Cloud Enterprise [lists at $150 per user per month](https://softwarepricingguide.com/salesforce-crm-pricing-2025-every-plan-explained-and-what-nobody-tells-you-before-you-sign/), or roughly ₹12,500/user/month at current INR conversion. Add Gainsight at $90+/user/month for customer success, and the per-user spend climbs past ₹20,000/month. Industry studies show [Salesforce TCO is typically 2-3x the base subscription](https://www.method.me/blog/how-much-does-salesforce-cost/) when you include implementation, customisation, and ongoing admin labour. For a 240-agent team, that is roughly ₹2 crore over 3 years before the firm sells a single flat.
The custom-build alternative has dropped meaningfully in cost since 2023. Next.js + Postgres + a managed deployment platform handle 80% of CRM functionality out of the box. The remaining 20% — call recording, SMS automation, payment integration, lead routing — is handled by the developer ecosystem (Twilio, Exotel, Razorpay) at usage-based pricing rather than per-seat. The break-even agent count for custom-vs-Salesforce has dropped from ~600 in 2020 to roughly 80 in 2025.
## The Client (Specific Details)
- Sector: Residential real estate — primary sales (developer projects) + secondary (resale)
- Location: Gurgaon HQ, branches in Noida + Faridabad
- Agents: 240 — 180 primary sales, 36 resale, 24 luxury, plus 16 sales managers and 8 branch heads
- Lead volume: ~14,000 inbound leads/month (90Acres, MagicBricks, Housing.com, walk-in, referral)
- Active developer projects: 38 (their inventory list spans ~4,800 units across these)
- Average closing time: 47 days from first call to booking
- The trigger: Their existing CRM (a 2019-vintage Zoho CRM customisation) had performance problems above 200 concurrent users. The owner approved a Salesforce evaluation in May 2025. We were brought in for a "second opinion" in August.
## The TCO Comparison (3-Year Math)
This is the table that decided the project. We built it for the owner on a Wednesday afternoon over a Zoom call.
Salesforce + Gainsight (Quoted)
Custom Build (Our Quote)
Initial implementation
₹38 lakh (Salesforce SI partner)
₹38 lakh (us)
Year 1 licences (240 users × 12 mo)
₹3.6 crore raw, negotiated to ₹54 lakh
₹0
Year 1 hosting + run cost
Bundled
₹7.4 lakh (₹62K/month)
Year 1 admin / customisation labour
₹14 lakh (in-house Salesforce admin)
₹4 lakh (our retainer for 8 hours/week)
Year 1 total
₹1.06 crore
₹49.4 lakh
Years 2-3 licences
₹1.08 crore (with 5% YoY price hike)
₹0
Years 2-3 hosting + admin
₹40 lakh
₹22 lakh (run + ongoing dev)
Years 2-3 features (CTO estimates)
₹14 lakh (Salesforce Apex dev)
₹15 lakh (us building features)
3-year TCO
₹2.16 crore
₹60 lakh
Saving
—
₹1.56 crore (72% lower)
The honest caveat: Salesforce gives you a richer ecosystem of third-party apps (we counted 14 likely-useful AppExchange apps). Custom build means we own those features as buildable backlog items. The owner's framing: "for ₹1.5 crore I can hire one more dev for 5 years."
## Why Salesforce Was The Wrong Fit (Specifically)
Salesforce is genuinely the best CRM in the world for certain shapes of business. It is the wrong fit for this firm because:
1. Real estate sales is voice-first. Agents make 30–60 outbound calls a day. Salesforce's call telephony (Sales Cloud + Sales Dialer) costs ~$25/user/month extra, charges for every call separately, and routes through US-region servers with audible latency to Indian callers. Twilio Voice via direct API is roughly 1/4 the cost and lower latency.
2. The schema is extremely simple. Lead → Contact → Opportunity → Booking. Salesforce gives you 200 standard objects you do not need. The configuration surface area becomes an ongoing tax.
3. Field sales agents need WhatsApp. Salesforce's WhatsApp integration (via 360 Dialog) is functional but expensive. A custom Wati or AiSensy integration costs ~₹4,800/month total, not per-user.
4. Booking deposit collection happens at the customer's home. Razorpay's payment links generated from a Next.js mobile view cost ₹0 to integrate. Salesforce's Razorpay AppExchange app costs $15/user/month.
5. Reports the owner actually checks are simple. "How many leads did each agent close this week" + "what is the average closing time" + "which projects are underperforming." A Postgres view + a Recharts chart on a Next.js dashboard does this in 4 days. Salesforce's reporting layer is genuinely powerful, but the owner uses 3% of it.
## The Architecture We Shipped
📋
Lead Capture + Routing
Webhooks from MagicBricks, 99Acres, Housing.com land in our API. Round-robin routing within agent pool, weighted by capacity (current open leads < 15) and project specialty. SLA: lead assigned in <30 seconds.
📞
Twilio Calls + Recording
Click-to-call from the agent UI. Calls recorded with consent (auto-prompt at start). Recordings stored on S3, transcribed nightly with Whisper. Searchable from the CRM.
💬
Wati WhatsApp + Templates
Pre-approved templates for site-visit confirmation, document checklist, follow-up. Reply tracking back to the lead's timeline.
💳
Razorpay Booking Deposits
Agent generates a Razorpay payment link on their phone in front of the customer. Payment confirmation triggers booking record creation, GST invoice generation, and a customer-facing receipt PDF.
## The Stack
| Layer | Choice | Why |
|---|---|---|
| Frontend | Next.js 14 + Tailwind | Server components for the agent dashboard; PWA so it installs on agent phones. |
| Database | PostgreSQL 16 (Aurora) | Relational schema; multi-tenant by branch via row-level security. |
| Auth + RBAC | Clerk Pro | 240 users, 6 role types, organisation feature handles branch hierarchy. |
| Telephony | Twilio (calls) + Exotel (IVR) | Twilio for agent click-to-call; Exotel for inbound DID routing into agent voicemail. |
| WhatsApp | Wati | Same reasoning as our diagnostics build — fastest template approvals in our test set. |
| Payments | Razorpay | Standard Indian payment gateway; payment links integration is genuinely 2-day work. |
| Search | Meilisearch (self-hosted) | 4,800 unit inventory + 240,000 historical leads needed instant search. Meili at our scale costs less than ElasticSearch. |
| Email | Postmark | Transactional only; marketing emails go through their existing Mailmodo account. |
| Hosting | Vercel Pro (frontend) + AWS Mumbai (Aurora + workers) | Hybrid; frontend at Vercel for global edge, backend in Mumbai for data residency. |
## The 14-Week Plan
1
Weeks 1–2: Discovery + agent shadowing
Followed 6 agents for 1 day each across the 3 branches. Watched a senior agent close a ₹4.2 cr 3BHK booking. Identified the 9 distinct screen-tasks an agent does daily and the order they typically do them. Designed the UI around that order, not around the schema.
Weeks 4–6: Lead capture, routing, and agent dashboard MVP
Three webhooks live (MagicBricks, 99Acres, Housing.com). Lead routing engine ships first. Agent dashboard reads from a single materialised view per agent — sub-200ms render even at 800 active leads/agent.
Agent generates payment link → Razorpay webhook fires → booking record created → invoice PDF generated → receipt sent via WhatsApp. End-to-end test: 14 seconds from agent click to customer WhatsApp receipt. Owner timed it personally and was visibly impressed.
6
Week 11: Pilot at 1 branch (Noida, 64 agents)
Soft launch. 14 agents opted in voluntarily. By day 5, the other 50 had asked to switch (the click-to-call was the killer feature for them — old CRM required dialing manually). Migrated all 64 by week 11 end.
7
Weeks 12–13: Roll out to Gurgaon + Faridabad branches
Branch-by-branch with on-site trainers (us + 2 trainers from the in-house team). Each branch took ~3 days for full adoption. By end of week 13, all 240 agents on the new CRM.
8
Week 14: Cutover from Zoho — final data sync, kill the old system
Sunday 11 pm. Final delta sync from Zoho. Cancelled Zoho subscription with 30-day notice (immediate effect — owner already paid the renewal). Run cost from week 14: ₹62,000/month.
## The Cost Breakdown (Build)
## The Outcome (6-Month Numbers)
−18%
Average Time-to-Booking (Days)
+24%
Lead-to-Booking Conversion
~₹4 Cr
Estimated Year-1 Revenue Lift (Owner's Number)
11 mo
Build Payback (Owner's Calc)
The conversion lift came from two places: the call-recording-and-transcription pipeline let sales managers coach agents from real conversations (not from anecdote), and the click-to-call removed roughly 6 minutes per outbound call cycle. At 30 calls/day × 240 agents, that is 720 agent-hours/week recovered.
## The Pre-Cutover Checklist
All 240 users imported with correct branch + role + active project assignments
Click-to-call tested across 4 carriers (Jio, Airtel, Vi, BSNL) on agent phones
Razorpay payment link → booking → GST invoice round-trip tested for 8 unit price points
WhatsApp templates approved with zero rejection notes
Lead routing tested at 5x peak (we did 70 leads/min; deployed at 14)
Materialised views for agent dashboard refresh every 30 seconds
Backup of Postgres taken nightly cross-region (Mumbai → Hyderabad)
Audit log captures every record edit with user-id + timestamp + diff
RBAC tested — agent at branch A cannot see branch B's leads (we did red-team this)
Roll-back plan: feature flag falls back to Zoho for an emergency 7-day window
## What We Deliberately Did Not Build
1. Marketing automation (drip campaigns, lead nurture flows). The firm uses Mailmodo for this. We integrated Mailmodo via webhook. Building it inside the CRM would have added ₹6 lakh and 3 months — for a feature that worked fine outside the CRM.
2. Customer success platform (Gainsight equivalent). Real estate is a transactional one-shot purchase, not a SaaS subscription. The owner did not need NPS tracking, health scores, or retention dashboards. We pushed back hard on this in week 1; he agreed within 30 minutes once we showed him the use-case mismatch.
3. AI-driven lead scoring. We considered it. The senior agents' instincts are genuinely better than any model we could train on 14 months of historical data. v3 candidate, post-2027.
4. Multi-currency / international. The firm sells to Indian buyers in INR. NRI resale comes through their dedicated NRI agents who use a separate workflow. We did not bloat the schema for a future use case.
## Common Mistakes (When You Build Custom Real-Estate CRM)
Symptom: "Agents bypass the CRM and use their personal WhatsApp for customer comms." Cause: the CRM-to-WhatsApp pipeline has friction or fails silently. Fix: ship a "open WhatsApp from CRM" button that opens WhatsApp Web with the customer's number pre-filled, with a JS-injected event that logs the open back to the CRM. Catches 78% of bypass attempts.
Symptom: "Sales managers complain that 'real conversion' looks worse on the new CRM." Cause: better data integrity exposes leads that agents would have manually marked "lost" to inflate active pipeline. Fix: hold a 1-day workshop with managers on the new metrics. Show them that their pipeline count was previously inflated.
Symptom: "Lead routing assigns to agents who are on leave." Cause: leave-tracking lives in the HR system, not the CRM. Fix: nightly sync from the HR system. Lead routing skips agents with active leave records.
Symptom: "Booking deposit Razorpay link expires before customer pays." Cause: default Razorpay link TTL is too short. Fix: extend to 7 days for booking deposits; add a "regenerate link" button on the booking record.
Symptom: "Call recordings missing for 4-12% of calls." Cause: customer (or sometimes agent) declines recording consent prompt. Fix: log the consent decline as a separate event so the manager knows the call happened but was not recorded. Compliant + auditable.
## A Detail That Surprised The Owner
In month 3 post-launch, the senior sales manager noticed that a particular agent was closing 31% above team average on similar leads. Pulled the call transcripts (Whisper made this trivially searchable). Found the agent had a specific 4-question discovery script she always used — "how soon do you need to move," "is this a single-name or joint purchase," "have you visited the project," "what is your monthly EMI tolerance." The other agents skipped these and went straight to project pitch. Sales manager rolled out the 4-question script as a team training module. Team conversion lifted by 14% in 6 weeks.
The owner's exact words at the next quarterly review: "I would have paid ₹38 lakh for that one finding alone."
## Where Real-Estate CRM Fits In Our Wider Work
We have shipped variants for:
- A 14-branch diagnostics chain — see our March 2026 architecture writeup.
- A 400-person manufacturer — see the HRMS build vs Zoho People comparison.
- An NBFC mobile loan origination app shipping later this year — see our DPDP-from-day-1 build writeup.
For founder-essay context on why we keep saying no to off-the-shelf, see viveksinra.com — we have published several pieces on the build-vs-buy framework.
## FAQ
### What if I am only at 80 agents — is custom still the right call?
The break-even has shifted to roughly 80 agents in 2025. Below 80, Zoho CRM Plus or HubSpot is genuinely the right call. Between 80 and 200, it depends on how complex your sales motion is. Above 200 with a sales-heavy team, custom wins.
### Can the same CRM handle commercial real estate?
The schema accommodates it. Commercial deals have longer cycles, more stakeholders, and lease-vs-sale variations we did not need. We could extend the schema for commercial in 4-6 weeks, but the workflows differ enough that we recommend a separate build.
### What about the developer-side workflow (allocations, escrow, RERA filings)?
Out of scope for this build. The firm's developer relationships are managed via Excel + email currently. We pitched a v2 that integrates allocation tracking and RERA reporting — not yet greenlit.
### How does Salesforce's AI capability (Einstein) compare?
Einstein is genuinely good at lead scoring and predictive analytics — IF you have 12+ months of clean training data. Most Indian real-estate firms do not. We can integrate Claude Sonnet via API for scoring at ~₹3,000/month all-in; it is strictly cheaper than the Einstein add-on.
### What is the ongoing engineering retainer?
8 hours/week of dedicated developer time + 4 hours/week of project lead. Roughly ₹40,000/month. Covers feature requests, bug fixes, and occasional infrastructure tuning.
### Can the firm self-host this if they want to stop paying us?
Yes. We ship the codebase + deployment scripts. The Aurora Postgres dump is portable. Migration to in-house team would take roughly 4 weeks of knowledge transfer. We have done this for 2 prior clients without drama.
### Did you consider HubSpot Sales Hub Enterprise?
Yes. HubSpot's [enterprise tier in 2025 is roughly $1,200/user/month](https://www.hubspot.com/pricing/sales) — actually higher than Salesforce per-user. The reason is HubSpot bundles marketing/CMS features the client did not need. Same TCO problem.
### Is the call recording compliant with the DPDP Act?
We capture explicit consent on every call (the auto-prompt at start). Recordings are stored in India-region S3 with 90-day default retention, extendable per-deal for legal-hold cases. The consent log is immutable. Audit-ready.
Need a custom CRM for a sales-heavy team?
We build custom CRMs for Indian sales-heavy operations — real estate, financial services, B2B sales, education enrollment. Typical project: ₹25–55 lakh, 12–18 weeks, fixed scope. The first call is a build-vs-buy honesty session — we will tell you whether custom is genuinely the right call for your team size and motion.