Preferências de cookies

Escolha o que podemos usar. Cookies estritamente necessários mantêm você conectado e não podem ser desativados; todo o resto é decisão sua e não muda nada no funcionamento do site. Você pode mudar de ideia a qualquer momento pelo rodapé.

For HubSpot

Which channels produced the deals HubSpot marked closed-won?

Export closed-won deals and reconcile them against your ad and call exports, including the offline sources HubSpot never receives.

No API key Nothing to install in HubSpot No card required

The gap

HubSpot's attribution reports what HubSpot observed. Anything that reached you by phone, by referral or through a partner is invisible to it — and that is usually the half that closes.

HubSpot sees

What was sold, to whom, and for how much.

no shared row
Your ad account sees

The click, the keyword, the call, and what each one cost.

The file

What the export needs in it.

Three things carry the match: who, how much, and when. Anything else is optional and only changes how the report can be sliced.

  1. Needed

    Contact email or phone

    The primary contact on the deal, or the associated company's contact. Email is usually the stronger key in a HubSpot book.

  2. Needed

    Deal amount

    The closed-won amount. If you recognise revenue differently from bookings, export the figure your finance team uses.

  3. Needed

    Close date

    The deal's close date. Consistent beats correct here — pick one and keep it.

  4. Optional

    Pipeline or deal type

    New business and expansion have different economics and should not be blended into one cost per deal.

Step by step

Getting the file out of HubSpot.

Written for somebody with HubSpot open in the next tab. Report names vary by edition, so each step says what to look for.

  1. Build a deals export filtered to closed-won

    Include the deal amount, the close date and the associated contact's email or phone. HubSpot's export builder handles this directly.

  2. Extend the date range past your sales cycle

    If deals take four months, a three-month export matches nothing and will look like the tool does not work.

  3. Include contact properties, not just deal properties

    The contact's email or phone is the join key. A deal export with company names and no contact detail is not matchable.

  4. Export CSV and upload

    Confirm the suggested column mapping, or map by hand. Nothing is inferred without you seeing it.

  5. Add the sources HubSpot cannot see

    Your ad platform exports, your call tracking export, and any partner or referral list. Each becomes a source file ranked on the same axis.

What comes back

The page HubSpot cannot show you.

Revenue by channel, the count of sales behind each figure, and an honest bucket for the ones nobody could trace. Sample figures, from the worked example on the B2B SaaS page — not from a HubSpot account.

Traced to a channel$2,070,00069% of $3,000,000
Sales matched51 of 75high confidence only
Average sale$40,000per paid sale
ChannelShareSalesRevenue
Google Ads18$720,000
LinkedIn Ads21$930,000
Email marketing12$420,000
Direct / Unknown24$930,000

Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.

The argument

What changes when the deal and the ad share a row.

HubSpot attribution is good at what it can observe, and blind to the rest

HubSpot's multi-touch attribution is genuinely useful and it works on the interactions HubSpot recorded: page views, form submissions, email engagement, tracked sessions. Where a deal's whole history sits inside HubSpot, it gives a reasonable answer.

The problem is the deals whose history does not. A prospect who heard you on a podcast and called the office; a referral from an existing customer; a lead your agency generated in an account HubSpot never sees; a conversation started at a trade show and continued by email. HubSpot can hold a source property somebody typed, but it cannot observe the interaction, so the attribution model has nothing to weight.

Reconciling a closed-won export against the source files directly is a different mechanism with a different failure mode. It does not try to weight touchpoints; it asks whether this specific person appears in this specific source list. Where they do, that is a match. Where they do not, the deal goes to an unattributed bucket that stays unattributed.

Offline and partner sources rank on the same axis as paid

Most B2B teams have a channel they cannot price. Referrals, partner introductions, an events programme, an outbound list, a podcast sponsorship. They are usually excluded from the attribution report entirely, which makes the measurable channels look more important than they are.

Upload any of them as a source file — a CSV of names and contact details is enough — and they are ranked by closed-won revenue beside Google and LinkedIn. Being able to say what the events programme produced in revenue, next to what paid search produced, is frequently the first time that comparison has ever been made.

New business and expansion are not the same acquisition

A HubSpot pipeline usually carries both new logos and expansion, and blending them flatters whichever channel serves existing customers. Expansion revenue is real, but it did not come from an advertisement — it came from the account team.

A pipeline or deal-type column separates them so new business can be judged on acquisition cost while expansion is credited to the original acquiring channel rather than to whatever campaign happened to be running.

Long cycles are the normal case, not an edge case

Enterprise deals in HubSpot routinely run two to four quarters. Cookie-based attribution cannot survive that, and even HubSpot's own attribution depends on the contact being cookied and re-identified across the whole period.

Because the join here is on the person rather than on a session identifier, a four-quarter gap costs nothing. The contact who filled in a form in January and signed in October is one match, and the January spend is credited with the October revenue.

Where the model and the reconciliation disagree is the interesting part

Running both is more useful than picking one. HubSpot's attribution distributes credit across the touches it observed; this reconciliation asks whether a closed-won contact appears in a given source list. They answer different questions and they will not agree.

The disagreements are diagnostic. A channel that HubSpot credits heavily and the reconciliation barely sees is usually a channel doing late-stage assist work on deals that started elsewhere. A channel the reconciliation ranks first and HubSpot scores low is usually one whose early touch happened off-site, before the contact was ever cookied.

Neither is wrong. But a marketing team that can explain both numbers is in a much stronger position than one defending a single figure it cannot decompose.

Fair questions

“HubSpot already does that.” Not quite.

They say

“We already pay for HubSpot Marketing Hub attribution.”

We say

Keep it. It answers a different question, on the touchpoints HubSpot saw. This one adds the sources it never saw and produces a revenue figure that reconciles to your deal export rather than to a weighting model.

They say

“Our data in HubSpot is messy.”

We say

The match needs one clean-ish contact detail, an amount and a date. Messy company names and half-filled custom properties do not affect it.

They say

“We use Salesforce as the system of record.”

We say

Then export from Salesforce instead — there is a page for that, and the method is identical.

Questions

HubSpot, specifically.

Something else? Ask us and a person answers.

Closed-won deals with the associated contact's email or phone, the amount, and the close date.

HubSpot and the other product names and logos on this page belong to their owners and are shown to identify the software a file comes from. CloseRev is not affiliated with or endorsed by them, and connects to none of them: it reads a file you export.

Start today

Two exports, and you will know.

Nothing to install in HubSpot, no API key, and no need to have been tracking anything until now. Last year works as well as this month.