Making HubSpot actually useful at a 20-person marketing agency
Contractor Growth Network was paying for a high tier of HubSpot and using it as a contact database. The Marketing Hub tools they were paying for (email, landing pages, SMS, lead scoring) sat mostly untouched.
The database itself was a complete mess: hundreds of duplicate contact and company records, tons of spam, and no permissions structure at all. Every user was a super admin. Years of everyone having total control had filled the portal with junk lists, random custom fields, orphaned pipelines, and automations nobody could explain. The CRM wasn’t even integrated with the website. The sales team had mostly stopped using it, and you couldn’t blame them, because none of the data in it could be trusted.
The real cost showed up at the leadership level. Nobody could answer the most basic revenue question: are we getting enough leads, or do we have a sales problem? Everyone who touched the business was labeled a “lead,” whether they were a newsletter subscriber, a webinar attendee, or someone who filled out a contact form. There was no way to judge lead warmth and no pipeline to manage any of it. Warm prospects were going uncontacted, not because anyone was lazy, but because nothing in the system told the team who was worth contacting.
I treated this as a rebuild in layers. Governance first, then lifecycle structure, then automation. Automating a broken system just produces broken outcomes faster.
Governance meant creating structured permission-based roles and getting people to accept them. That was as much a change management project as a technical one, since the team was used to total control. From there we cleaned up the duplicates, the junk lists, and the dead automations. We set standard record formats for contacts and companies, and put rules around how and when new records get created so the database would stay clean after I moved on. We also got sales properly using the system, tracking calls and putting in notes.
Next came lifecycle stages. Instead of everything being a “lead,” contacts were differentiated by what they actually did. Newsletter subscribers stayed subscribers. People who attended a webinar or an event, or who downloaded a lead magnet, became leads. A contact only became an MQL if they raised their hand (filled out a direct contact form or booked an appointment) or crossed the lead scoring threshold.
The scoring model tracked email engagement (opens, clicks), website engagement (page views), form submissions (webinars, lead mags, contact forms), and Meta ads engagement, all inside a 90-day window. Engaged contacts who hadn’t raised their hand went into a drip campaign that gave them more context on the brand. If they engaged with more than half of those emails, they got an automated email from one of our actual sales reps offering a 30-minute appointment slot. Contacts who crossed the threshold were promoted to MQL automatically, pushed into the deals pipeline, and assigned to a specific salesperson, who got a real-time notification. No more manual triaging, and no more warm leads sitting in the database with nobody assigned to them.
On top of that, we built custom dashboards for the sales and marketing metrics leadership actually cared about. We also set up automations (HubSpot native workflows plus Zapier) to keep CRM records in sync with the client folders housed in Google Drive.
All of it landed within about 6 months, with manual sales triaging eliminated and the Marketing Hub tools they had been paying for the whole time finally in daily use. Part of the lead volume jump was simply leads finally being captured and classified at all, since the CRM had not even been connected to the website before.
The thing the team noticed most wasn’t a number. With data both sides trusted, goal setting for sales and marketing stopped being guesswork. A shortfall could finally be traced to its actual cause instead of turning into a debate.
Is your CRM an expensive contact database?
Duplicates, junk fields, and leads nobody follows up on. That is the exact situation I fix.
Get in touch