Most CRMs sit beside the work. They’re a separate system you remember to update, a separate login you remember to use, and a separate version of the truth from whatever’s happening on the operational side. This one doesn’t. It lives inside the tool the BD team already use every day — so when a quote is won, the opportunity closes itself.
The brief
A specialist UK fieldwork agency had a working quoting platform — an in-house PHP and MSSQL system the team used to scope, price, deliver, and invoice client research projects — and a generic CRM, a legacy SugarCRM-derived database that handled prospects and pipeline. The two systems didn’t talk to each other directly. A handful of PHP scripts pushed data back and forth, but the integration was best-effort. Win/loss data lived in two places or — more often — only one.
Activity logging was the weakest point. The old CRM had no quick-entry mechanism. Logging a call meant navigating a multi-screen workflow that BD staff simply didn’t complete. The result was a pipeline view that nobody really trusted, because everyone knew the underlying data was patchy.
Revenue targets sat on spreadsheets. League tables — if anyone wanted to see who was winning what — were manual exports. Following up on outstanding quotes required someone to remember. And a manager wanting to know whether their team were actually contacting their key accounts had no way to see it without asking each person individually.
What we built
A CRM module inside the quoting platform, not alongside it. The opportunity pipeline runs through seven stages — Lead, Qualifying, Proposal Pending, Quoted, Won, Lost, Dormant — with code-validated transitions so you can’t skip from Lead straight to Won. Every opportunity can link to a quote record; the quote editor knows about the opportunity; the opportunity closes itself when the quote status changes. The CRM doesn’t sync to the quoting system. It is the quoting system.
The quick-log bar is the next piece. A keyboard-shortcut form on every CRM page — client, activity type, summary — eight seconds end to end. On mobile it’s a floating action button that opens a bottom sheet with the same three fields. The activity types are deliberately short and opinionated. Friction is the enemy of accurate data; we removed it.
“Your Day” surfaces on first login each morning. Follow-ups due today, key accounts that haven’t been contacted in their threshold window, prospects going quiet. Zero clicks to see what needs doing. Dismissible, and configurable as a daily or weekly email digest if someone prefers that to the dashboard.
Revenue targets live in the system, not in a spreadsheet. Account managers see their own progress as donuts and trend charts; managers see everyone’s. The league table is honest — it shows new versus existing revenue split, so it can’t be gamed by harvesting recurring work.
The accountability dashboard is the management view. Five dimensions per account manager: activity volume, key account coverage, target progress, follow-up compliance, prospects needing attention. Real-time, AJAX-loaded, manager-gated, with a self-access exception so individuals can see their own data.
Email lives in the CRM too. Account managers configure personal SMTP accounts (credentials AES-encrypted), build reusable templates with merge fields, send to recipient lists drawn from client contacts, and see delivery status in the same surface. No separate email tool, no copy-paste of merge fields, no orphan send history.
AI features sit throughout. BD email drafts generated from opportunity context. Chase emails for outstanding quotes that haven’t moved. Meeting prep briefings that surface a client’s history before a call. Client intelligence narratives on the client profile page. A daily cron recalculates a client health score across all clients on five signals from twenty-four months of quote history.
How it lands
The build ran across seven phases between April and late May 2026. The team are using it. Adoption data will follow.
What changed structurally: BD activity is no longer recorded in a system separate from the work it generates. A call logged today shows up on the client tab when the same client’s next brief arrives. A won quote closes its opportunity automatically. A key account overdue on contact surfaces in the manager’s view without anyone running a report.
What it’s worth
Most CRM rollouts fail not because the software is wrong but because nobody updates it. The friction is too high, the benefit too distant, the data integrity too quickly degraded. This one starts with friction near zero and benefit in front of you every morning. Whether that’s enough to sustain the data quality the dashboards rely on is a question for the year ahead, but the foundations are right.