Analytics

Attributing pipeline to LinkedIn organic posts without an attribution tool

The two CRM fields, the exact UTM scheme, the question wording that stops returning Google, and the rule for when the buyer and the tracking disagree.

Supersonify editorial 10 min read
On this page
  1. You do not need an attribution platform to do this
  2. Add two source fields to the CRM, never one
  3. The UTM scheme, written out, and the parameter people get wrong
  4. Write the self-reported question so it stops returning Google
  5. The arbitration table for when the two fields disagree
  6. Why branded search is a symptom rather than a source
  7. The monthly reconciliation, six steps and about an hour
  8. Four things this method cannot tell you
The short answer

Add two source fields to your CRM instead of one. A human writes what the buyer said, a machine writes what the tracking saw, and neither is ever allowed to overwrite the other. Stamp a fixed UTM scheme on every link you post, ask the origin question separately from the trigger question, then run an arbitration table monthly to decide which channel gets the credit. That takes about an hour and costs nothing.

You do not need an attribution platform to do this

A five person consultancy can run credible LinkedIn attribution on three CRM fields, a fixed UTM scheme and one hour a month. What you cannot do without software is multi-touch modelling across dozens of touchpoints, and most teams asking this question do not have dozens of touchpoints. They have a post, a profile visit, a website session and a form.

Almost every page that ranks for this question ends at a demo request, because the companies publishing on the topic sell attribution platforms. That is not dishonest, it is simply a different problem. A platform earns its cost when you run paid media across four channels with a six month cycle and a marketing team of nine. Below that threshold, the platform mostly automates a judgement call you still have to make yourself, and the judgement call is the actual work.

62%

of B2B marketers say LinkedIn produces leads for them. Belief is not a field in your CRM, and the gap between the number of teams who believe this and the number who can name a single deal it produced is the entire reason this article exists.

LinkedIn, 2026

Set expectations before you start. This method produces a credited channel, a traced floor and a stated unattributed rate. It does not produce proof of causation. If the credited number is going in front of a board, read how to prove LinkedIn ROI to a board first, because presenting an arbitrated number as a measured one is how the whole method loses its credibility in a single meeting.

Add two source fields to the CRM, never one

One source field is the root cause of every attribution argument in a small company. It forces a single answer to a question that has two true answers, and whoever fills it in last wins. Split it into a human field and a machine field, and the argument disappears because the two answers now live in different columns and can both be right.

The Supersonify Two Field Rule
Three fields, three owners, and a strict rule about who writes into which. The whole method rests on nobody ever overwriting anybody else.
Field A, Source ClaimedFree text, written by a human, containing what the buyer actually said in their own words. Never a picklist, because a picklist rounds a sentence into a category and the sentence was the useful part. If your CRM forces a picklist, add a second free text field next to it and treat the picklist as decoration.
Field B, Source TracedWritten only by the machine, holding the first identifier that touched the record. Populated from the UTM parameters on the form submission and never edited afterwards. A sales rep who corrects this field has destroyed the only unbiased column in the system.
Field C, Source CreditedDerived, written once a month by the reconciliation, and used for reporting only. This is where the arbitration table writes its verdict. Everyone must understand that field C is a decision you made rather than an observation you recorded, and labelling it as such in the field description keeps it honest.
The rule itselfHumans write A, machines write B, the monthly reconciliation writes C. Nobody writes into another field, ever. Corrections go into a dated note, so the original answer stays visible and you can audit how the credit was assigned six months later.

The reason this survives contact with a sales team is that it takes work away from them rather than adding it. A rep filling in field A is typing what the buyer said, which is easier than choosing a category. Field B is not their problem. Field C is not their problem either, and the monthly report stops being a thing they get challenged on in a pipeline review.

The UTM scheme, written out, and the parameter people get wrong

Use a fixed four parameter scheme and change it never. The parameter that decides whether the whole system works is utm_medium, because analytics tools build their channel groupings from the medium value, and a medium of social used for both posts and ads makes organic and paid permanently inseparable in every report you will ever run.

ParameterValueWhy this value
utm_sourcelinkedinAlways lowercase. Most analytics tools treat these values as case sensitive, so LinkedIn and linkedin become two separate rows and your traffic splits in half for no reason.
utm_mediumorganic-social for posts, paid-social for adsThe medium drives the channel grouping. Using social for both is the single most common mistake and it cannot be fixed retroactively.
utm_campaignpost-2026-08-14Organic posts are not campaigns, so use the publish date. It gives you a join key back to the specific post without maintaining a naming scheme nobody follows.
utm_contentpostbody-pricing-myth or comment1-pricing-mythPlacement first, then a short slug of the hook. This is how you find out whether the link in the first comment outperforms the link in the post for your account.
utm_termleave it emptyReserve it for paid search. Filling it on organic social creates rows in reports that mean nothing and confuse whoever inherits this.

Fix this scheme once, document it, and stamp it on every link you post from a company page or a personal profile.

Two mechanical facts change what you should expect from the traced field. LinkedIn wraps outbound links, and the in-app browser plus the ordinary habit of copying a URL into a new tab both drop the referrer, so a real share of genuine LinkedIn clicks arrive in your analytics as direct traffic. That is not a tracking bug you can fix, it is how the traffic behaves, and it is why field B is a floor rather than a total.

Shorten links on your own domain rather than a public shortener. A public shortener hides the destination, which suppresses clicks from an audience trained to distrust unknown links, and it adds a redirect hop where the parameters can be lost. If your analytics and LinkedIn report different click counts for the same post, the size of a normal gap and its causes are covered in the LinkedIn and analytics reporting gap.

Write the self-reported question so it stops returning Google

Ask two questions instead of one, because a single question about how someone heard about you reliably returns the last step of their journey rather than the first. People answer honestly and still say Google, since typing your name into a search box is genuinely the last thing they did before arriving. The fix is not better wording of one question, it is separating origin from trigger.

VersionWordingWhat you get back
Version one, the picklistHow did you hear about us, with optionsMostly the last click. Categories flatten a sentence into a label and the label is usually Search or Other.
Version two, required free textHow did you hear about us, open fieldBetter, and still the last step. You now have the buyer's own words, which is worth having on its own.
Version three, two questionsWhere did you first come across us, plus what made you get in touch todayOrigin and trigger, separately. LinkedIn appears in the first far more often than it ever appeared in version one.

Three versions of the same question and what each one actually collects.

Ask the same two questions verbally on the discovery call and record the answer verbatim in field A. A form answer is typed under time pressure by someone who wants to reach the next screen. A spoken answer arrives with detail attached, and the detail is what lets you tell a post from a profile from a comment thread. Two sentences of verbatim buyer language is also the most useful raw material your content team will get all month.

If the form is high intent and short, move both questions to the thank you page rather than putting them in front of the submit button. You collect fewer answers and you lose no enquiries, which is the right trade on a page whose job is booking meetings.

What to take away
  • A single Lead Source picklist forces your team to lie the moment two things are true at once, which is why the same deal shows up as LinkedIn in a sales conversation and organic search in the analytics report.
  • Keep three fields: what the buyer claimed, what the tracking traced, and a third derived field written only by the monthly reconciliation, which is a reporting artefact rather than a truth claim.
  • A branded search query is a downstream symptom of awareness, so a self-reported LinkedIn claim outranks a traced branded search every time, and writing that rule down ends the argument permanently.
  • Two questions beat one: where did you first come across us separates the origin from what made you get in touch today, which captures the trigger.
  • Report the unattributed rate as a headline number every month, because a method that pretends to explain every deal is a method nobody in the sales team believes.

The arbitration table for when the two fields disagree

Decide the rules once, in writing, before you have a specific deal to argue about. The arbitration table below resolves every combination of what the buyer claimed and what the tracking traced, and its value is not that it is correct in some absolute sense. Its value is that it is fixed, so the credit assigned to a deal does not depend on who happened to run the report.

Field A, claimedField B, tracedCredit toReasoning
LinkedInLinkedInLinkedIn, high confidenceBoth readings agree. This is the strongest evidence available without an experiment.
LinkedInOrganic search, branded queryLinkedInA branded search is a symptom of awareness. The search engine delivered the visit, it did not create the demand for your name.
LinkedInOrganic search, non-branded querySearch, LinkedIn assistThe buyer was solving a problem and found you. LinkedIn may have shortlisted you, so record both rather than picking.
LinkedInDirect, no prior sessionLinkedInDirect with no history is usually a stripped referrer or a name typed from memory. Both point back at the claim.
LinkedInLinkedIn adsPaid, with an organic assistNever credit the same deal to both budgets. Paid takes the credit because it carries the cost you are being asked to justify.
A named personLinkedInReferralA human recommendation outranks a channel touch. The channel may have primed the recommender, which is a separate question.
BlankLinkedInLinkedIn, low confidenceOne reading only. Report it, label it, and never build a budget request on this row alone.
BlankDirect or blankUnattributedSay so. The unattributed rate is a number you publish rather than a gap you quietly redistribute.

The arbitration table. Copy it, argue about it once, then stop arguing about it.

The row that does the most work is the second one. Most teams see a branded search in analytics and credit search, which quietly transfers the entire result of a year of posting to a channel that did nothing but respond to a name someone already knew. Fixing that single rule changes the shape of the report more than any tool would.

Why branded search is a symptom rather than a source

Split your organic search traffic into branded and non-branded queries and treat the branded half as an output of your awareness work rather than an input to it. Nobody types your company name into a search engine unless something already put the name in their head, so branded query volume is a lagging measure of everything else you do, including LinkedIn.

The practical test takes ten minutes. Plot monthly branded query impressions from Search Console against monthly LinkedIn posting volume for the last twelve months. You are not looking for a tidy correlation and you should not claim one if you find it, because both series can be driven by a third factor such as a launch or a conference season. You are looking for whether branded demand exists at all and whether it moves.

Two consequences follow. Branded search is not a channel to grow directly, it is a dial that other work moves. And a report that puts branded search at the top of the acquisition table is describing the last step of a journey rather than the reason the journey started, which is exactly the error the arbitration table exists to prevent.

How to define branded

Any query containing your company name, a recognisable misspelling of it, your product names, or a founder name if the founder is the public face of the business. Write the list down and keep it in the same document as the arbitration table, because a definition that lives in one person's head produces a different report every quarter.

The monthly reconciliation, six steps and about an hour

Run this once a month on opportunities created in the previous month, not on every record in the database. It takes roughly an hour at fewer than sixty new opportunities a month, and the output is a filled field C, an unattributed rate and a short list of posts that carried traceable clicks.

Export last month's opportunities with fields A and B

Include the created date, the amount and both source fields. Do not include field C in the export, because seeing last month's verdict biases this month's.

Bucket them into four groups

Both fields agree, the fields disagree, claimed only, and traced only. The size of each bucket is itself a diagnostic, and a large traced only bucket usually means nobody is asking the question on calls.

Run the arbitration table over the disagree bucket

Only that bucket needs judgement. The other three resolve mechanically, which is why you sorted first rather than working through the list in order.

Write the verdict into field C and nowhere else

Fields A and B stay untouched permanently. If you later change a rule in the arbitration table, you can rerun the whole history, which is impossible once someone has edited the raw fields.

Count the blanks and publish the unattributed rate

Put it in the report as a headline figure next to the credited numbers. A method that explains one hundred percent of pipeline is a method that is quietly guessing, and the sales team knows it.

Join the traced records back to posts by campaign date

The utm_campaign date gives you the specific post. List the three posts that produced records and read them side by side, because that is the only content feedback in this entire process.

Here is the arithmetic on why the two field method is worth the hour, using assumptions you should replace with your own. Assume one hundred opportunities in a year. Thirty four carry a claimed LinkedIn answer, nineteen carry a traced LinkedIn identifier, and twelve carry both. The union is thirty four plus nineteen minus twelve, which is forty one. Tracking alone would have reported nineteen. The same year, measured two ways, produces a number more than twice the size, and the larger number is the more accurate one.

Four things this method cannot tell you

State the limits in the report itself, in the same document as the numbers. Every honest attribution method has holes, and the difference between a credible analyst and a hopeful one is that the credible one names the holes before someone else finds them.

  • It cannot tell you which post created demand. It tells you which post carried the click, and those are frequently different posts published months apart.
  • It cannot see the buyer who read you for nine months, never clicked, never commented, and then typed your name into a browser. That person exists in volume and appears in your data as direct traffic with a blank field A if nobody asks them.
  • It cannot survive one person adding a picklist. The first time a well meaning operations hire converts field A into a dropdown, the free text history stops and the method degrades into the thing it replaced.
  • It cannot split a deal with five touches into honest percentages. Multi-touch weighting is a modelling choice, not an observation, and a small company gains nothing from pretending otherwise.
Do not run this before checking the simpler explanation

If enquiry volume fell and you are building attribution to find out why, check distribution first, using the method for normalising an impressions drop. A decline that matches a platform-wide decline is not an attribution problem and no amount of tracking will make it one. If your ads are also underperforming, the fault is usually further down the funnel than the tracking, which is covered in the LinkedIn ads conversion diagnostic.

Questions people ask next

Does this work if the sales team barely touches the CRM?
Partially, and you should design for that. Field B fills itself from the UTM parameters regardless of what anyone does, so the traced floor survives a disengaged team. Field A depends on someone typing what the buyer said, so put that question on the form and on the thank you page rather than relying entirely on call notes.
What exactly counts as a branded search query?
Any query containing your company name, a common misspelling, a product name, or a founder name where the founder is the public face of the business. Write the list down once and store it with the arbitration table. A definition that lives in somebody's head produces a different report every quarter and nobody notices until the numbers are challenged.
Should the tracked link go in the post or the first comment?
Test it on your own account rather than trusting a rule of thumb, which is what the utm_content placement prefix is for. Tag one version postbody and the other comment1, run at least eight posts of each, and compare recorded sessions rather than reported clicks. The answer varies enough by account that a general rule is not worth much.
How many months of data before this is worth reporting?
Three months for the unattributed rate and the bucket sizes, which are useful immediately as a diagnostic of your own process. Six months before the credited channel split is stable enough to argue with, because a single large deal in a small sample moves the percentages far more than any real change in performance would.
Is dark social just an excuse for weak measurement?
No, it is a description of a real mechanism with a specific cause. Links copied into private messages, in-app browsers that drop the referrer, and screenshots of posts all produce genuine visits with no traceable origin. The correct response is measuring it deliberately through the self-reported field rather than either ignoring it or treating it as unknowable.

Want this run for you?

Tell us your company and what growth is stuck. A scoped plan with a number in it comes back within 48 hours.

Email the experts →