The LinkedIn Conversions API lets you send stages from your CRM, such as sales-qualified leads, opportunities and closed-won deals, back to Campaign Manager so LinkedIn can report the pipeline its ads touched. For a B2B SaaS company, it's worth wiring once LinkedIn is a real budget line and your deals take longer than the 30-day default attribution window. LinkedIn will only bid toward one of those stages: the qualified lead.

This is a decision guide for growth and demand gen leaders: when it pays, what it costs, what breaks and how to check it worked. For click-by-click setup I link to LinkedIn's and HubSpot's own documentation, because those screens change faster than any blog post. If you're still not sure LinkedIn moves pipeline at all, run the tests in my guide to incrementality testing for B2B SaaS first, and use my LinkedIn ad benchmarks to sanity-check the top of the funnel.

Key takeaways

  • LinkedIn's documentation tells advertisers to create separate conversion rules for the CRM stages that represent pipeline and closed-won deals, and to pass deal value from the CRM to calculate return on ad spend.
  • Only a QUALIFIED_LEAD rule can feed LinkedIn's qualified leads optimization goal, so opportunities and closed-won deals are measurement rules, not bid targets.
  • A conversion's timestamp must be within the past 90 days when you send it, and the default attribution window is 30 days after a click and 7 days after a view.
  • HubSpot's native sync sends contact lifecycle stages, not deal stages, and only counts stage changes made after you create the event.
  • Advertisers can generate a Conversions API token in Campaign Manager without a developer app, and LinkedIn set November 16, 2026 as the sunset date for Marketing API version 202511.

What is the LinkedIn Conversions API?

The LinkedIn Conversions API is a server-to-server connection that sends conversion events from your own systems to LinkedIn, instead of relying on the Insight Tag firing in a visitor's browser. Each event names a conversion rule, a timestamp, an optional value and the identifiers LinkedIn uses to match it to a member.

LinkedIn supports three ways to send conversions: the Insight Tag, the Conversions API and CSV uploads. Its Conversions API use-case page recommends running the Insight Tag and the API together. When both send the same event with the same event ID, LinkedIn counts it once and keeps the Insight Tag version.

B2B marketers care because of the gap between a form fill and revenue. AJ Wilcox, founder and CEO of the LinkedIn ads agency B2Linked, put the appeal plainly on Agorapulse's Social Pulse Podcast in July 2025: "what's cool about this is you can report back to LinkedIn when someone converted, and it does not require a cookie."

LinkedIn's own pitch is about efficiency. In a February 2025 AdExchanger interview, Jae Oh, head of ads measurement at LinkedIn, said direct server connections to a brand's first-party data let marketers "more accurately measure and reduce that cost per action." LinkedIn reported early results of a 20% decrease in cost per action, a 39% decrease in cost per qualified lead and a 31% increase in conversions attributable to LinkedIn. Those are LinkedIn's figures about its own product, so I treat them as a ceiling to test against, not a forecast.

When is the LinkedIn Conversions API worth wiring?

The LinkedIn Conversions API is worth wiring when four things are true: your CRM stages mean the same thing every week, the stages you care about happen inside LinkedIn's time limits, you can match the people involved to LinkedIn members, and you have enough volume for the numbers to settle. I call this the Pipeline Signal Test. It takes about an hour with your CRM admin, and it keeps you from building a feed that reports noise.

The pressure to answer is real. According to LinkedIn research cited in the same AdExchanger piece, 87% of B2B brands say it's getting harder to measure the long-term impact of their campaigns.

Vertical Tonalism oil painting of four misty tiers: a lit doorway, an hourglass, two matching keys and a cluster of small lights, standing for the four Pipeline Signal Test questions
  1. Do your stages mean something? A sales-qualified lead sent to LinkedIn is only as good as the rule that created it. If reps skip stages or update them in batches at quarter end, LinkedIn learns your data entry habits. That's why the CRM comes first, as in a HubSpot CRM build for a B2B sales team, with deal stages that match the real sales process.
  2. Do your stages happen in time? Compare the median days from first LinkedIn ad click to each stage against the attribution windows covered below.
  3. Can you match the person? Buyers often fill in your demo form with a work email that isn't the email on their LinkedIn account. If most of your records carry only that work email, plan a capture fix before launch.
  4. Is there enough volume? LinkedIn recommends sharing five or more qualified leads within two weeks for its optimization learning phase. Below that, use the feed for measurement and optimize toward a higher-volume stage.

If you fail the first question, fix the CRM before you touch LinkedIn. If you fail only the fourth, the feed is still worth building for reporting.

Which CRM stages should you send back to LinkedIn?

Send the stages that mark real progress toward revenue, with one conversion rule per stage. LinkedIn's use-case page says to "create multiple conversion rules to attribute the impact of ad campaigns on your different sales stages in CRM that represent both pipeline and closed won deals," and to pass conversion value from the CRM so you can calculate return on ad spend as total conversion value divided by spend.

The conversion type you pick matters more than most guides admit. It sets both the counting rule and the longest attribution window. Per LinkedIn's Conversions API schema, most types count only the first conversion per member within the lookback window, while PURCHASE and ADD_TO_CART count every one. The 180-day and 365-day windows are only available for SUBMIT_APPLICATION, PURCHASE, ADD_TO_CART, QUALIFIED_LEAD, LEAD, MARKETING_QUALIFIED_LEAD and SALES_QUALIFIED_LEAD. The last two arrived with API version 202608.

Here's the mapping I'd recommend for a B2B SaaS funnel. It's my reading of the docs, not a LinkedIn rule.

CRM stageConversion type I'd useLongest post-click windowJob
Demo requestLEAD, sent by both the Insight Tag and the API365 daysMeasure and dedupe with the tag
Marketing-qualified leadMARKETING_QUALIFIED_LEAD365 daysMeasure
Sales-qualified leadQUALIFIED_LEAD365 daysBid target and measure
OpportunityOTHER90 daysMeasure
Closed-wonPURCHASE, with the deal amount as the value365 daysMeasure revenue, count every deal

The SQL row uses QUALIFIED_LEAD rather than the newer SALES_QUALIFIED_LEAD type because LinkedIn's use-case page names QUALIFIED_LEAD as the type a rule needs to count toward the qualified leads goal. Opportunity is the awkward row. No type fits it, and OTHER caps the window at 90 days, so opportunities that open more than 90 days after the click won't be credited. A product-led motion would send START_TRIAL instead of LEAD, and that type also caps at 90 days.

Ashby, the recruiting software company, built a version of this with three automated workflows that send deal created, deal qualified and deal closed-won events from HubSpot to LinkedIn, according to a June 2025 Zapier customer story. Antonio Vidal, Senior Growth Manager at Ashby, described the manual alternative: "You can go from HubSpot to LinkedIn with a CSV of all your qualified deals or revenue. But if you're doing that every week... that's a lot of work you can automate."

Will LinkedIn bid toward pipeline or revenue?

No. LinkedIn can optimize delivery toward qualified leads, and nothing further down the funnel. Its use-case page describes the setup: a lead generation objective, the qualified leads optimization goal and a conversion rule of type QUALIFIED_LEAD. Qualified lead data "must be shared with LinkedIn within 30 days" to count for optimization, and LinkedIn recommends five or more within two weeks to get through the two-week learning phase.

There's no opportunity or closed-won optimization goal. Those rules feed reporting, return on ad spend and audiences, not the bid. That's still useful. LinkedIn lets you build retargeting audiences from Conversions API matches once they reach 300 members, and use them as source data for predictive audiences.

So pick the bid-target stage by volume, not prestige. If an ad set produces 20 SQLs every two weeks, make the SQL your QUALIFIED_LEAD rule. If it produces three, move the QUALIFIED_LEAD rule to the MQL and keep the SQL as a measurement rule until volume grows. Jae Oh told AdExchanger that LinkedIn's research found B2B marketers rate qualified leads as a more important measure of campaign success than return on investment, which explains why the product stops where it does.

How far back can you send conversions to LinkedIn?

You can send a conversion up to 90 days after it happened, and LinkedIn credits it to an ad only if it falls inside the rule's attribution window. Those are two different clocks, and confusing them is the most common way a pipeline feed quietly loses deals.

Tonalism oil painting of two antique clocks on a lamplit mantel with a stack of tied sales records between them, standing for the two LinkedIn time limits

The first clock is event age. The schema page says the conversionHappenedAt timestamp "must be within the past 90 days" when you send it. A stage change logged 100 days ago can't be sent at all, no matter how long your attribution window is. There's no backfilling last year's pipeline.

The second clock is the attribution window, measured from the ad click or view to the conversion. The default is 30 days post-click and 7 days post-view. Allowed values are 1, 7, 30 and 90 days, plus 180 and 365 for the limited types above. Jae Oh told AdExchanger that sales cycles for brands advertising on LinkedIn take at least six months to a year on average, and LinkedIn extended its revenue attribution report lookback to 365 days, up from 180, in the same announcement.

Here's how that plays out in an illustrative Series B SaaS funnel. These are made-up round numbers to show the math, not a client result. Counting from the first LinkedIn ad click, the median demo request happens on day 3, the SQL on day 10, the opportunity on day 35 and the closed-won deal on day 130.

  • On the 30-day default, the demo request and the SQL are credited, and the opportunity and the deal are not.
  • Setting the opportunity rule to 90 days catches the opportunity, and 90 days is that type's ceiling.
  • The deal needs the PURCHASE type with a 180-day or 365-day window.
  • All of it only works if each stage is sent soon after it happens. A nightly or weekly sync is fine, but a quarterly CSV catch-up drops anything older than 90 days.

HubSpot, Salesforce or the direct API: which route fits?

The right route is usually the CRM you already run. HubSpot has a native sync, Salesforce routes through Data 360 or a connector, and the direct API works with anything if someone owns the code.

RouteWhat it sendsWhat you needWatch for
HubSpot native syncContact lifecycle stagesMarketing Hub Starter, Professional or Enterprise (5, 50 or 100 ad conversion events)No deal stages, no backfill, one fixed value per event
Salesforce Data 360 connectorConversion events from Data 360Data 360 with the Ad Audiences add-on licenseSales Cloud alone has no native sync
Zapier or another connectorWhatever the trigger watches, including deal stagesA connector plan and an owner for the workflowsSilent failures when a field or stage name changes
Direct APIAnything you can queryA token from Campaign Manager and engineering timeAPI version migrations

HubSpot's documentation is specific about the limits. The sync fires on contact lifecycle stage changes, not deal stages, and only changes made after you create the event count. HubSpot sends a hashed email, first and last name, title, company, country, click ID and lead ID. You set one monetary value per event, so return on ad spend from this route uses the value you picked, not the deal amount. HubSpot's default attribution lookback is 90 days. The 365-day option is set in Campaign Manager after the event exists.

Salesforce documents a LinkedIn Conversions API connector for Data 360, listed with the Ad Audiences add-on license. If you run Sales Cloud without Data 360, your options are a connector like Zapier or the direct API. The capture discipline from my Salesforce to Google Ads offline conversion guide carries over: a custom click ID field on the lead that follows the record to the opportunity. Google Tag Manager is also a supported integration, according to AdExchanger's 2025 report. It sends website events, though, so it can't see a stage change in your CRM.

For the direct route, LinkedIn's access documentation lets an advertiser generate a token in Campaign Manager under Data, Signals Manager, Direct API, without creating a developer app or applying for access. The tokens don't expire, and Campaign Manager doesn't store them, so keep yours in a secrets manager. The same page carries a notice setting November 16, 2026 as the sunset date for Marketing API version 202511, so a custom integration pinned to that version needs migrating.

What does it cost to run the LinkedIn Conversions API?

The license is rarely the big cost. If you already pay for Marketing Hub Starter or above, the HubSpot route needs no new software, and the direct API needs engineering time rather than a new license. What costs money is the work around the feed: locking stage definitions, capturing a click ID, naming an owner and checking it every month.

I'd budget for three things.

  1. A one-time CRM pass to lock stage definitions and entry rules before the first event goes out.
  2. Identifier capture on your forms, usually a hidden field and a small script, so later stages can still match.
  3. A monthly reconciliation of LinkedIn's counts against the CRM, owned by one named person.

Where I see budgets go wrong is buying a separate attribution platform before the CRM can pass the Pipeline Signal Test. A connector can't fix stage definitions. The upside of doing it in this order is that the same clean stage data is what a marketing mix model for B2B SaaS needs later.

What breaks after the Conversions API goes live?

Most failures are matching failures. LinkedIn matches each event to a member using the identifiers you send: a SHA-256 hashed email, LinkedIn's first-party click ID (li_fat_id), an Acxiom ID, an IPv4 address or a Google advertising ID, plus optional first name, last name, company, title and country. When matching is weak, Campaign Manager shows Low Match Rate under the rule's Active status.

Tonalism oil painting of lantern-lit rowboats in a foggy harbor meeting their matching mooring posts, with a few drifting unmatched
  • Work email versus LinkedIn email: Many members sign in with a personal address, so a hashed work email alone may not match. My recommendation, not LinkedIn's, is to store the li_fat_id in a hidden field when the demo form is submitted, so an SQL created weeks later can still carry the click ID. The click ID only appears once you turn on enhanced conversion tracking for the Insight Tag in Campaign Manager.
  • Names sent alone: The schema requires first and last name together in userInfo. From API version 202609 they can be sent hashed.
  • Consent: HubSpot's setup lets you pick a consent property. If you send it, only contacts with consent are used for measurement and optimization, so your counts drop by your non-consent rate.
  • Contact scope in HubSpot: The setup asks whether to send every contact that reaches a stage or only those who interacted with your ads. HubSpot strongly recommends sending all of them.
  • Stage drift: Someone renames a stage or adds a new one, and the connector keeps watching the old name. Nothing errors. The counts just stop.

How do you check the Conversions API is working?

Check three things in the first two weeks: the rule's status, its match quality and its counts against the CRM. HubSpot notes that a new LinkedIn event shows as Unverified until data syncs, then Active. If Low Match Rate appears under Active, fix the identifiers before you read any results.

  1. Confirm each rule reads Active in Campaign Manager, with no Low Match Rate warning.
  2. Open the Conversions & Leads column set and break down by conversion, so each stage shows on its own.
  3. Read counts per campaign, not per campaign group. Under the default each-campaign attribution model, one conversion can be credited to several campaigns, so group totals overcount.
  4. Reconcile against your CRM. Pull the contacts who reached the stage and arrived from a LinkedIn ad by UTM or click ID. LinkedIn's count will be lower because unmatched members never show, and HubSpot itself says LinkedIn's totals aren't expected to match HubSpot's.
  5. Watch the gap's trend, not its size. A stable gap is workable. A gap that widens after a form or CRM change means something broke.

Frequently asked questions

Do I need LinkedIn's approval to use the Conversions API?

Not if you're the advertiser. You can generate an access token in Campaign Manager under Data, Signals Manager, Direct API, with no developer app. Partners building an integration for other advertisers apply through LinkedIn's developer portal.

Should I keep the Insight Tag once the API is running?

Yes. LinkedIn recommends sending conversions through both for reliability. Give each event the same event ID in both places, and LinkedIn counts it once and keeps the Insight Tag version.

Can I upload last quarter's pipeline?

Only the part that happened in the past 90 days. Older stage changes can't be sent, and HubSpot's native sync only counts changes made after you create the event.

Can HubSpot send deal stages to LinkedIn?

Not natively. HubSpot's sync watches contact lifecycle stages such as MQL, SQL, opportunity and customer. To send deal stages or the real deal amount, use a connector or the direct API.

Will the Conversions API lower my LinkedIn costs?

It can, if it gives LinkedIn a better signal to optimize toward. LinkedIn's early figures in 2025 were a 20% lower cost per action and a 39% lower cost per qualified lead, but those are LinkedIn's own numbers. Test it on your account with the methods in my incrementality guide before you plan around them.

What I'd do this quarter

If LinkedIn is a real line in your budget, run the Pipeline Signal Test with your CRM admin this month. Then send the SQL as a QUALIFIED_LEAD rule and the closed-won deal as PURCHASE with its amount, keep the Insight Tag running, and reconcile in week two. If you want a second set of hands on the measurement side, that's the work I do in measurement and attribution and paid media programs.