Pulse CRM
B2B company · $8M ARR · 12-person sales team
A 12-person outbound sales team had outgrown HubSpot. Not because HubSpot is bad — because HubSpot is built for marketing teams, and their workflow was pure outbound sales. The result was a tool nobody fully used, deal stages updated inconsistently, and a founder who couldn't get a reliable pipeline view without a 45-minute standup.
40%
Pipeline visibility increase
Measured against HubSpot baseline
6h
Saved per rep per week
Manual data entry eliminated
12
Users live on day one
No gradual rollout needed
10wk
Build to production
Including data migration from HubSpot
The real problem.
The founder framed the problem as “our team doesn't use HubSpot properly.” The actual problem was that HubSpot required too many clicks to log a call and too much configuration to match their deal stage workflow. When a tool creates friction for the primary action (logging an interaction), adoption degrades over time.
By the time of the engagement, roughly 40% of deal interactions were logged, meaning 60% of pipeline activity was invisible to leadership. Forecasting was guesswork. One-on-ones were spent reconstructing what had happened rather than deciding what to do next.
The decision to build custom was not obvious. The case for it: the team's workflow was specific enough that no off-the-shelf tool would fit without significant customisation — and HubSpot's customisation ceiling had already been reached.
The design decision.
Build for the lowest-friction primary action: logging a deal interaction. Everything else is secondary. If a rep can log a call or email in under 10 seconds, the data stays current. If it takes 30 seconds with 6 clicks, it doesn't.
Real-time pipeline board as the home screen — the view a rep sees on Monday morning is current pipeline state, not a static dashboard. WebSockets via Pusher mean a deal card dragged by one rep updates immediately on every other screen in the office.
Stack: Next.js 14, TypeScript, Clerk (RBAC), PlanetScale (MySQL), Drizzle ORM, Pusher (WebSockets), Resend (email send-and-log), Slack Webhooks (deal stage notifications).
Ten weeks, in order.
Week 1–2
Audit of the HubSpot workflow and failure modes
Interviewed all 12 salespeople about where HubSpot broke down for them. The pattern: manual deal stage updates (inconsistently done), no real-time visibility for leadership, and email/call logging that required too many clicks to be consistently maintained. The insight was that HubSpot was powerful but optimised for marketing teams, not a 12-person outbound sales team with a specific workflow.
Week 3–5
Data model and core pipeline
Custom schema designed around the team's actual deal stages (not HubSpot's defaults). Real-time pipeline board using Pusher WebSockets — deal card moves update for everyone in the room simultaneously. Role-based access control via Clerk: reps see their own pipeline, managers see all, founder sees aggregate view with revenue forecasting.
Week 6–8
Activity logging and integrations
One-click call logging from the deal card. Email send-and-log via Resend integration — compose the email inside Pulse, it sends from the rep's address and auto-attaches to the deal. Slack webhook integration: when a deal moves to a new stage, a Slack message fires to the team channel. Leadership gets pipeline visibility without attending standups.
Week 9–10
Data migration, training, and launch
Full HubSpot data export, cleaned and imported into the new schema. 2-hour training session with all 12 reps. The goal was for every rep to be self-sufficient within the session — no ongoing hand-holding. They were. Launched to the full team on day one, no phased rollout.
The result.
Two weeks post-launch: activity logging rate went from ~40% to 94%. Pipeline visibility increased 40% (measured by the percentage of deal interactions captured vs. estimated from call volume). The founder cancelled the weekly 45-minute pipeline standup — replaced by a 10-minute async Slack update using data from Pulse.
Each rep reported saving 6 hours per week on average — time previously spent on manual data entry, finding context before calls, and reconstructing deal history in standups.
The tool is still in use 18 months later with no modifications beyond one feature addition. That's the goal of good internal tooling.
“We went from guessing at pipeline to actually knowing. The Slack notifications alone changed how our leadership team operates — no more standups just to find out what happened.”
— Founder, B2B Company (name withheld on request)
What this engagement taught.
Off-the-shelf tools fail at the edges — which is exactly where your competitive advantage lives.
HubSpot is not a bad CRM. It's a CRM built for marketing teams. This team's competitive advantage was a specific outbound workflow that HubSpot was actively fighting. The decision to build custom was not about feature gaps — it was about friction in the primary action. Reduce friction in the primary action; everything else follows.
Adoption depends on reducing friction for the primary action, not adding features.
The previous tool had more features. The new tool had one-click call logging. Activity capture went from 40% to 94% in two weeks — not because the team was incentivised differently, but because the tool stopped making the right thing the hard thing. Adoption is a design problem, not a management problem.
Internal tools have disproportionate leverage when built right.
12 users × 6 hours saved = 72 hours per week recaptured for actual selling. The tool cost $80K and paid for itself in the first quarter through pipeline activity that would otherwise have been invisible or unmeasured. The best internal tooling multiplies the output of the people using it — and the ROI calculation is straightforward.
Internal tools that match the actual workflow — not a generic tool configured to approximate it — are one of the highest-leverage investments a $5M–$20M company can make.
Related: Marketing Systems insights →