Revenue architecture

From $10M to $18M ARR: how HeyReach rebuilt revenue attribution from the ground up

HeyReachcase study

Oriol SerraFounder & CEO
41% to 14%of contacts without a company
5,878contacts with a permanent ad touch
6,528duplicate deals out of every report
$10M to $18MARR during the engagement

HeyReach is a LinkedIn outreach platform used by agencies, sales teams and GTM operators to run outbound at scale, connecting unlimited LinkedIn accounts and rotating sends under one flat fee.

“You can grow past a certain bar, but from that point on everything becomes a mess. I can do based on hunch to an extent, but I cannot scale this.”

Ilija Stojkovski, CRO, HeyReach

Ilija Stojkovski on the HeyReach attribution build
Ilija Stojkovski CRO, HeyReach

Overview

HeyReach grew fast on a self-serve, trial-led motion. Past a certain size, that growth stopped being readable. HubSpot held every contact, every touch and every deal, and still could not answer the questions revenue reporting depends on. The work was not a cleanup. It was rebuilding attribution so that every channel’s contribution could be measured, kept and trusted.

The organisation

HeyReach sells a self-serve, trial-led product through two outbound agencies, inbound and four marketing channels, on a base of 220,000 contacts. Ilija Stojkovski, the company’s CRO, took it from zero to eight figures. As the team grew to around ten people running channels and spending budget, the question changed from “is it working” to “what is each part of this actually returning”.

The situation

HubSpot held all of it but could not answer three things: did outbound reach this person before they converted, which channel touched them first, and who owns the deal. Decisions about where to spend money and time were being made on instinct, and instinct does not scale past a team of one.

The real problem

Most teams in this position reach for more enrichment and more outbound tooling. For HeyReach, HubSpot is the source of truth, so the problem had to be solved inside it. The data was not wrong in one place. It was built so that the record of what happened kept being overwritten by what happened next.

What was broken

A data integrity gap. 51,819 contacts, roughly 41% of the database, had no company record attached, breaking every account-level report built on top of it.

Marketing touches disappeared on arrival. HubSpot’s native traffic source field overwrites itself on every session, so a Monday ad click was gone by Friday.

Deal credit went to the wrong team. Ownership defaulted to whoever booked the last meeting, including post-close success calls, miscrediting closed revenue.

Revenue was not reportable. MRR and spend arrived as text, Stripe identity was split across two IDs, and 6,528 duplicate deals sat inside every pipeline report and forecast.

The architectural decisions

No channel wins. Every outbound and marketing touch writes its own independent fact, permanently. Nothing is overwritten because another channel is judged more important.

Facts and snapshots are separate layers. Rolling fields always show the latest touch. A frozen snapshot is written the moment a contact starts a trial and again when it pays, so history stays answerable a year later.

Time limits live in reports, not in the build. Whether a touch counts as influence is a filter applied at report time. Ninety days becomes thirty with a filter edit, never a rebuild.

New records earn their way into the CRM. Contact and company creation run through an explicit multi-condition gate, and the two outbound agencies work under the same rules.

Deal ownership follows hard rules. Post-close meetings are explicitly blocked from reassigning deal credit, so success activity can never take sales’ numbers.

What we built

Roughly 50 governed HubSpot properties, over 30 HubSpot and n8n workflows, four Clay enrichment tables, two Supabase stores, lifecycle and scoring automation, five dashboards, operating rules for both outbound agencies, and a documented handover.

What changed

Contacts with no company attached fell from 41% to 14% of the database, and new records no longer depend on how they entered. Ad touches persist as facts rather than a field that resets: 5,878 contacts carry one, and 573 purchasers were reached by ads before buying. The 6,528 duplicate deals stay out of every pipeline report.

HeyReach grew from roughly $10M to $18M ARR over the engagement, and the calls behind that, which channels to fund and which to cut, were made on measured touches rather than on opinion.

“That gave us a clear visibility in terms of where we should spend money, where we should spend time. And that’s the best benefit of us working with you guys.”

Ilija Stojkovski, CRO, HeyReach

Why this matters

There is no quick win in attribution. The baseline has to be built, tested and validated before any dashboard is worth reading, and that takes weeks, not days. What HeyReach has now is a system where every channel’s contribution is recorded once and kept, so the same question asked in a year gets the same honest answer.

“You did not just wait on me to give advice on how to build things out. You actually built things out because you understood our business.”

Ilija Stojkovski, CRO, HeyReach

Who this is for

Revenue leaders who have grown past the point where they can see everything themselves. Companies running several outbound and marketing channels into one CRM, where every channel claims the same customers and nobody can prove which one earned them. Teams where HubSpot is the source of truth, but the truth keeps getting overwritten.

The problem is rarely the number of channels. It is that nothing records what each one actually did.

DurationFebruary to September 2026, seven months
TeamOriol Serra, lead · Joel Ajayi · Francesca Terziani
SystemsHubSpot, Clay, Supabase, n8n, Instantly, HeyReach, Stripe
Oriol Serra

Growing past the point where you can see everything? Build attribution before you add another channel.

30 minutes, and you leave knowing which of your channels you can actually measure today and which you are funding on instinct.

Request a Strategy Call

Beyond the growth. Build the system that makes it work.