Case Study 02 · Custom Software

A custom CRM built to handle 1,000 leads a day

Around a thousand leads a day arriving from the main website and from affiliate partners. The frontend work had solved the lead generation problem — and created a lead handling problem in its place.

🇬🇧 Client: Leading Home Improvement Company, UK Stack: PHP · MySQL · PWA · Sitecore (main site)
~1,000
leads processed per day
2
inbound sources — website and affiliate API
YoY
live dashboard, by day and by week
PWA
mobile management access

Situation

Success on the front end became a bottleneck at the back

This is the second engagement with the same UK home improvement company. The first — the Sitecore frontend retainer — took the website from tens of leads a day to approximately a thousand.

Which is a very good problem, right up until the moment you have it. A thousand records a day arriving from the main website and from affiliate partners is more than any spreadsheet, inbox or general-purpose contact database is going to survive. The client needed a robust admin and CRM system built for that volume.

Problem

Volume, sources, and the question nobody could answer

  1. Two very different inbound sources. The company's own website submits clean, controlled data. Affiliate partners submit whatever their own systems produce — different field names, different formats, duplicates, and the occasional record that is simply junk.
  2. No single view of the lead lifecycle. A lead is not an event, it is a story: contacted, quoted, sold, lost. Without follow-up status and an assigned sales value on the record, nobody can say what a lead was worth — only that it arrived.
  3. Performance had no reference point. "We had 950 leads today" means nothing on its own. It only becomes information when set against the same day last year, and the same week last year.
  4. The people who needed the numbers were rarely at a desk. Management wanted the picture on a phone, without a separate mobile product to build and maintain.

A thousand leads a day you cannot measure is a thousand chances a day to guess.

Implication

What an unmanaged lead pipeline quietly costs

Leads are perishable. A record that sits unassigned for two days is not the same asset it was when it arrived, and at a thousand a day even a small percentage slipping through unworked is a substantial number of paid-for opportunities going cold every week.

The second cost is subtler and larger. Without campaign tracking and assigned sales values on the lead record, marketing spend gets allocated by lead volume — and the channel producing the most leads is very often not the channel producing the most revenue. Every month that goes unmeasured is a month of budget pointed at the wrong place.

What we built

A backend built around the lifecycle, not around the record

  • Real-time dashboard comparing performance year on year, by day and by week
  • Full lead lifecycle handling — follow-up status, sales value assignment, campaign tracking on every record
  • Affiliate API with powerful data validation and sanitisation, so partner submissions are cleaned at the boundary rather than inside the database
  • Progressive Web App (PWA) giving management installable, app-like access from a phone
  • Management reporting with drill-down, so a number on the dashboard can be opened down to the records behind it

Validation at the boundary is the whole affiliate integration

An affiliate API that accepts whatever it is sent will fill your CRM with records your sales team learns to distrust — and once a team distrusts the data, the system stops being used regardless of how good the rest of it is. Sanitising and validating on the way in is not a defensive detail; it is what keeps the system credible.

Result

One system, still growing

The CRM handles the full daily volume from both sources, gives management a live year-on-year picture from any device, and lets the business trace a lead from the campaign that produced it through to the value it was assigned. The engagement is ongoing and the system continues to be upgraded.

What we would tell you before starting something similar

Build the lead lifecycle and the reporting question first, and the screens second. Almost every CRM that gets abandoned was built as a place to put records, by a team that had not yet agreed what question the records were supposed to answer.

Tech stack: PHP · MySQL · PWA · Sitecore (main site)

More leads than your current system can handle?

We build lead management and CRM backends for real volume — multiple sources, validated integrations, lifecycle tracking and reporting your management team will actually open.

Custom CRM & lead managementAPI integrationsPWA for mobilePilot project available

Keep reading

More case studies

🚀
Web Performance & CRO

Sitecore Frontend: Tens of Leads to ~1,000 a Day

🇬🇧 Leading Home Improvement Company, UK

An ongoing retainership managing the full frontend of a high-traffic Sitecore enterprise CMS — landing pages, lead forms, schema, CDN and continuous split testing.

Read the case study →
🏭
Custom Software

Operations Portal for a Multi-City Manufacturer

🇮🇳 Leading Plywood Manufacturer, India

One cloud platform unifying dealer ordering, dealer rewards, multi-centre production reporting, document management and the full HR workflow for a manufacturer spread across several Indian cities.

Read the case study →
🔌
Integrations

e-Procurement System with SAP Ariba Integration

🇮🇳 MRO Supplies Vendor, India

A punch-out catalogue and ordering system for an MRO supplier, reached from inside the buyer's SAP Ariba environment and posting purchase orders straight back to it.

Read the case study →

FAQ

Frequently Asked Questions

Because the requirement was not "store contacts". It was to absorb around a thousand leads a day from several sources, validate affiliate submissions on the way in, and report year-on-year by day and by week the way this business actually thinks about performance. Bending a generic CRM into that shape usually costs more than building the part you need.
Through a dedicated API with data validation and sanitisation on every submission. Affiliate traffic is the source most likely to send you malformed, duplicated or junk records, so the validation layer is the point of the integration rather than an afterthought.
Real-time performance compared year on year, both by day and by week, so the team can see whether today is genuinely good or just looks good in isolation. Management reporting sits behind it with drill-down into the underlying records.
Management needed the numbers on a phone, not a new product to maintain in two app stores. A Progressive Web App gives an installable, home-screen experience from the same codebase as the admin system, so every feature ships to mobile the day it ships to desktop.
Yes. Campaign tracking is part of the lead record, alongside follow-up status and assigned sales value, so the value of a campaign can be read from the money it produced rather than from the volume it produced.
No — it is under continuous upgrade as part of an ongoing engagement. A system that handles a thousand leads a day is never done, because the business keeps finding new questions to ask of the data.
💬
📞 Call Now 💬 WhatsApp