CRM

HubSpot revenue attribution for LinkedIn, Google and Meta ads, in both directions

Most attribution tools treat HubSpot as a place to dump a lead. Attribi treats it as the record of truth in both directions: the campaign, source, and journey that produced a contact are written onto the contact itself where your salespeople already look, and when the deal closes the amount comes back out to Attribi and goes on to every ad platform you have connected. Nothing is exported, re-keyed, or reconciled by hand at month end.

No credit card required · 5-minute setup

What Attribi does with HubSpot

Attribution properties on the contact

Sends

Attribi creates 16 properties in their own MTA Attribution group on your Contact object, covering first touch, last touch, the full journey, the landing page, and the click ID. Your reps see where a contact came from without leaving HubSpot.

Lead and attribution push

Sends

When someone converts on your site, the contact is matched by email and the attribution properties are written. You choose the behaviour at connect time: create the contact if it is new, or only enrich contacts HubSpot already holds and never create one.

Closed deal revenue pull

Imports

Attribi reads your deals on a schedule and uses HubSpot’s own closed-won flag rather than a stage name, so renaming a stage or running several pipelines does not break it. The deal amount comes across as HubSpot recorded it, in the deal’s currency, or in your account’s company currency when the deal has none.

Revenue fan-out to your ad platforms

Sends

A deal that closes in HubSpot becomes an offline conversion on every ad platform you have connected, carrying its value and currency. This is the step that lets Google, Meta, LinkedIn, TikTok, Microsoft, and Snapchat report on revenue instead of form fills.

Click ID recovery without a tracker

Imports

A HubSpot form can drop the ad click ID into the MTA Click ID property with a hidden field. Attribi reads it back off the contact when the deal closes, so the upload can be matched on the click even when no script ever ran on your site.

Setting up HubSpot

  1. 1

    Connect HubSpot

    Authorize HubSpot from the Connections page and pick how Attribi should behave: full, where a converting visitor becomes a contact if HubSpot does not have one, or attribution only, where Attribi never creates a contact and only enriches records you already own.

  2. 2

    Create the attribution properties

    One button creates all 16 properties and their property group inside your portal. It is safe to click again after fixing a permission problem, because properties that already exist are left alone rather than duplicated.

  3. 3

    Tell Attribi which deal stages mean qualified

    Paste the deal stage IDs you treat as qualified, which you copy from HubSpot Settings under Pipelines. Closed-won detection needs no setup and runs either way. Leave the qualified list empty and Attribi reports on closed deals only.

Step-by-step walkthrough: HubSpot Tells Google Ads a Contact Became a Customer. It Does Not Say for How Much. · HubSpot LinkedIn Attribution: Connect Ad Leads to Closed-Won Revenue · HubSpot Attribution Reporting: Revenue Attribution Reports by Tier, Model and Setup · CRM Offline Conversion Tracking QA Checklist: Prove Each Step Before You Change Bidding · Offline Conversion Tracking Without a Website Pixel · HubSpot Lifecycle Stage vs Deal Stage: Diagnose Missing Ad Revenue · CRM Email Changes and Attribution: Audit Identity Before Replaying Conversions

HubSpot revenue attribution for LinkedIn Ads and offline deals: how it works

Key points

  • LinkedIn sees the form fill and HubSpot holds the deal. Revenue attribution is the join between the two.
  • Attribi writes the source, campaign and journey onto the HubSpot contact, and uploads the closed deal with its amount to LinkedIn, Google, Meta and the other ad platforms you connect.
  • Closed-won is read from HubSpot's own flag on the deal, so renamed stages and multiple pipelines keep working.
  • A hidden field on a HubSpot form can capture the LinkedIn click ID, so click-level matching works with no script on your site.
  • A won deal needs an amount on it. A deal with a blank amount uploads no revenue.

How do I attribute HubSpot revenue to LinkedIn Ads?

Connect HubSpot and LinkedIn Ads to Attribi. Attribi stores the LinkedIn click identifier against the visitor, writes the campaign and source onto the HubSpot contact, and when the deal closes it uploads a conversion to the LinkedIn Conversions API with the deal amount and currency. LinkedIn campaign reporting can then show closed revenue, not only leads.

The upload goes against the LinkedIn conversion rule you mapped to the closed-won stage. Qualified leads get their own rule, and so do form fills when the Attribi script is on your site, so Campaign Manager can count each stage separately.

The same closed deal is also sent to every other ad platform you have connected, so one HubSpot connection answers the revenue question for LinkedIn, Google Ads and Meta Ads together.

How the LinkedIn Conversions API upload works

What is offline attribution in HubSpot?

Offline attribution in HubSpot means crediting revenue that closes away from the website, on a call, in a demo or by signed contract, back to the ad and campaign that first produced the contact. The deal lives in HubSpot. The click lives in the ad platform. Offline attribution is the join between the two.

It has two halves and most setups only do one. The first half is getting marketing data into HubSpot, so a rep or a report can see which campaign a contact came from. The second half is getting the sales outcome out of HubSpot, so ad platform reporting can include which leads became revenue.

Attribi does both from one connection, which is why this page describes it as running in both directions.

Where does attribution show up inside HubSpot?

On the contact record, in a property group called MTA Attribution. Attribi creates 16 contact properties, including first touch source, medium and campaign, last touch source, medium and campaign, the attribution path, the number of touchpoints, the first landing page, the first referrer, and a click ID with its type.

Because these are ordinary contact properties, they can be used in the HubSpot views, lists and reports your plan includes. A rep opening a contact sees that it came from a specific LinkedIn campaign without leaving HubSpot or asking marketing.

Attribi fills these when someone converts on your site, with one exception: the click ID and its type are filled by your own HubSpot form, not by Attribi. You decide at connect time whether Attribi may create a contact that HubSpot does not have yet, or should only enrich contacts that already exist.

How does closed revenue get from HubSpot back to LinkedIn, Google and Meta?

Attribi reads your HubSpot deals once a day. When a deal carries HubSpot's closed-won flag and has an amount, Attribi uploads an offline conversion to each connected ad platform with that amount. A deal in a stage you nominated as qualified uploads as a separate qualified conversion.

Nothing is keyed on a stage name, so a pipeline with a stage called Signed or Contract Received works the same as one called Closed Won. Qualified is different: you tell Attribi which deal stage IDs count, and if you leave that empty only closed deals are reported.

Each platform receives the event in its own format. LinkedIn gets a conversion against your mapped rule, Meta gets a Purchase event, and Google Ads gets an upload to the conversion action you mapped to closed won.

How to measure ROI on paid leads in your CRM

Can LinkedIn attribution work in HubSpot without a tracking script?

Yes for the outcomes. Add a hidden field to your HubSpot form that stores the LinkedIn click ID in the MTA Click ID property, with its type in the companion property. Attribi reads both off the contact when it first imports that person from a deal, so qualified and closed-won conversions can upload to LinkedIn with click ID matching and no script on your site.

Both properties have to be filled for the click ID to be used. If either is missing, or if Attribi already holds a lead with that email from an earlier conversion, the conversion still uploads on hashed email and phone, at a lower match rate.

What a script-free setup gives up is the journey. Without the Attribi script there are no page views and no multi-touch path, only the single click the form captured.

Set up click ID capture on your existing forms

Does Attribi report first touch or last touch for HubSpot deals?

Both are written to the contact, alongside the full path between them. Inside Attribi the same closed deal can be read under first touch, last touch, linear and position-based models, so you can see which channel opened the deal as well as which one closed it.

This is the practical answer to the LinkedIn question in B2B. LinkedIn often opens a deal that a branded search click closes months later. A last touch view gives search the whole deal. Reading the same deal under first touch or a position-based model shows what LinkedIn contributed.

What are the limits I should know before connecting?

Five. A free HubSpot portal may refuse to create custom properties. Qualified reporting needs you to supply deal stage IDs. A won deal with no amount uploads no revenue. Each contact is reported once per stage, so a second won deal for the same contact is not uploaded today. And creating LinkedIn conversion rules from Attribi is conditional.

LinkedIn rule creation needs your connection to carry LinkedIn's conversions permission and your LinkedIn user to hold a Campaign Manager or Account Manager role on the ad account. When either is missing, map a rule you already have. Uploads behave identically either way.

None of these block the integration. Attribi names the property it was blocked on so you can add it by hand, and closed-won reporting works with no stage setup at all.

Uploads to ad platforms and CRM revenue connections are paid plan features. The pricing page lists what each plan includes.

Funnel stages

Stages Attribi supports for HubSpot.

  • Lead
  • Qualified
  • Closed Won

Works with

Frequently asked questions

Do I have to create the HubSpot properties myself?

No. One button on the Connections page creates all 16 attribution properties, grouped together as MTA Attribution so they are easy to find on the contact record. Nothing has to be typed into HubSpot settings by hand, and clicking it twice is safe because existing properties are skipped rather than duplicated. On a free portal HubSpot may refuse to create custom properties at all; Attribi tells you which one it was blocked on so you can add it manually or upgrade.

Will Attribi create contacts in my HubSpot?

Only if you ask it to. Full mode matches by email and creates the contact when HubSpot does not have one. Attribution only mode never creates anything: it looks the contact up by email, enriches the attribution properties if it finds one, and does nothing at all if it does not. Pick the second if your database hygiene rules do not allow an outside tool to create records.

How does Attribi know a HubSpot deal is closed won?

It uses the closed-won flag HubSpot itself keeps on the deal, not a stage called Closed Won, so custom pipelines and renamed stages are handled without configuration. The value uploaded is the deal amount in the deal’s own currency, or your account’s company currency when the deal has none. If neither can be read, that upload is held back and retried rather than sent in a guessed currency. A deal that is won but has no amount on it is recorded without firing a revenue conversion, because there is no figure to send.

Does this work if I have no tracking script on my site?

Yes for the outcomes. A HubSpot form can capture the ad click ID into a hidden field, and Attribi reads it back off the contact, so qualified and closed-won conversions upload with click-ID matching and no script anywhere on your site. What you give up is the visit history: without the script there are no page views or multi-touch path, only what HubSpot holds.

Which HubSpot deal stages count as qualified?

The ones you nominate. Attribi asks for deal stage IDs rather than names, because names get renamed and IDs do not, and you copy them from your pipeline settings. If you leave the list empty, qualified detection is simply off and Attribi still reports and uploads closed-won deals.

How often does Attribi read deals from HubSpot?

Once a day. Attribi picks up deals that changed since the previous run, so a deal marked won today is uploaded to your ad platforms on the next daily run and not at the moment the stage changes. Attribution written onto the contact is different: that happens when the person converts on your site.

Updated

Connect HubSpot to Attribi.

Sign up and connect it from the Connections page.

Start Free

No credit card · Free up to 500 visitors a month