Blog / Marketing

How to Track Conversions from LinkedIn DMs

Caius Hayes Caius Hayes
| | 11 min read

LinkedIn won't tell you which DM converted. Learn how to track conversions from LinkedIn DMs using UTMs, promo codes, landing pages, and tracked links.

How to Track Conversions from LinkedIn DMs
LinkedIn will tell you a message was sent. It will not tell you which DM turned into a visit, a signup, or a customer. To close that gap you have to attach attribution yourself, and per-conversation tracked links are the cleanest way to do it for DMs.

You send a thoughtful LinkedIn message to someone who might genuinely benefit from your product.

They reply. Maybe they click. Maybe they don’t.

A week later, a new signup shows up. Was it the message you sent on Tuesday, the one on Thursday, or the reply in a comment thread you forgot about?

LinkedIn will not tell you.

That is the gap this post is about. If you run any founder-led or SDR-led outreach through LinkedIn DMs, you eventually hit the same wall: the channel where the conversation happened is not the channel where the conversion happens, and nothing connects the two.

Here is how to track conversions from LinkedIn DMs in practice: the methods that exist, where each one breaks, and how tracked links close the conversation-to-conversion gap for DMs specifically.

The problem: LinkedIn DMs convert, but LinkedIn won’t tell you which one

LinkedIn is built around on-platform engagement. Its analytics surfaces tell you about impressions, post and profile views, and clicks. For paid formats like Sponsored Messaging and InMail, you get open and reply rates.

What you do not get is the downstream part: which specific direct message produced a visit to your site, a signup, a booked call, or a deal. That conversion happens somewhere else (on your website, in your product, in your CRM) and LinkedIn’s native analytics does not connect it back to the individual message.

So a team that does a lot of DM outreach ends up with a familiar problem. You can see that you sent forty messages. You can see that three customers showed up this month. You cannot see the line between them.

That matters because DM outreach is usually a conversation business, not a campaign business. Each message is a little different. The follow-up that worked on one prospect might be irrelevant to the next. If you cannot tell which message produced the result, you cannot do more of what works.

What “conversion” actually means here

Before the methods, one definition.

A conversion, for this post, is anything that happens after a DM that you actually care about: a visit to a specific page, a signup, a demo booked, a deal closed. The hard part is never noticing the conversion: your analytics and CRM already do that. The hard part is connecting it back to one message among many.

Every method below is just a different way of drawing that line. They differ in how much friction they add, how durable they are, and how far down to the individual conversation they reach.

Method 1: Manual CRM logging

The honest baseline is to log it by hand. When you send a DM, you note the prospect and the message in your CRM. When something happens later, you match it up.

It works at small volume. If you are one founder sending ten careful messages a day, a simple log is enough to remember what you said to whom and whether anything came of it.

The problem is that it does not scale, and it depends entirely on discipline. The moment outreach is shared across two people, or the moment volume goes up, manual logging decays. People forget. They log the send but not the reply. They record the prospect but not which variation of the message they used. Six weeks later, the log is half-empty and you are back to guessing.

Manual logging is a good safety net. It is not an attribution system.

Method 2: UTM parameters

The standard answer is to add UTM parameters to the link you drop in the DM. Google Analytics documents parameters like utm_source, utm_medium, utm_campaign, utm_content, and utm_term for tagging a destination URL so analytics can identify the referring campaign. When someone clicks, the values land in your GA4 Traffic acquisition report.

If you need a conventional campaign URL, HeyZinc has a UTM link builder for exactly that.

UTMs are useful. They give your analytics a structured vocabulary. But they have a specific limit for DMs: a UTM tag identifies a campaign, not which message to which prospect.

utm_source=linkedin&utm_medium=dm&utm_campaign=q3-outreach tells you the click came from your LinkedIn DM campaign. It does not tell you it came from the message you sent to the Head of Ops at Acme on Tuesday. To get that, you would need a unique utm_content value for every single DM, which means a naming convention, a spreadsheet, and the discipline to maintain both.

GA’s own guidance underscores the friction: UTM values are case-sensitive, they want a strict naming convention, and missing parameters show up as (not set) in your reports. The link has quietly become a tiny database record you are managing by hand.

There is a second wrinkle. Several browsers strip known tracking parameters from URLs: Firefox, Safari, and Brave all do this, and Safari’s Private Browsing specifically blocks known tracking query parameters in links. Extensions can add their own rules too. The well-known utm_* names are exactly the kind of parameter those rules target. UTMs are not universally blocked, and they still work when the destination receives them. But for a channel where every click matters, it is worth knowing they can be removed before your site ever sees them.

We wrote a longer comparison of tracked links vs. UTM parameters that goes deeper on this. The short version: UTMs solve campaign reporting. They do not, by themselves, solve conversation-level attribution for DMs.

Method 3: Promo codes

A more durable option is to give each LinkedIn outreach effort its own promo code. The prospect types it in at checkout or signup, and the conversion attributes itself.

The strength is that a promo code survives everything that breaks links. It does not care about parameter stripping, link wrapping, cross-device journeys, or a prospect pasting a URL into a different browser. The code is the attribution.

The weakness is that it only fits certain flows. It works when there is an offer and a checkout. It does not work for “come read this guide,” “let’s hop on a call,” or any message where the next step is not a purchase with a code field. And it adds friction: you have to generate codes, track which code went with which message, and get the prospect to actually use it.

Promo codes are a strong tool for offer-driven DM outreach. They are not a general answer for every message.

Method 4: Dedicated landing pages

Another classic method is to point your DMs at a dedicated landing page. Traffic to that page is, by definition, traffic from that channel or campaign.

This is clean. If /linkedin-q3 only exists to receive your LinkedIn DM clicks, then visits to that page are your attribution. No parameters to strip, no spreadsheet to maintain for the link itself.

The limit is maintenance. A dedicated page works for a campaign, not for a per-message conversation. You are not going to build a separate page for every DM. So you get channel-level or campaign-level attribution, “traffic from the LinkedIn push”, but not “traffic from the third follow-up to this specific prospect.” You are back to the same ceiling UTMs hit, just reached a different way.

Landing pages are a good fit when you have a distinct offer or segment to send DMs to. They do not get you down to the individual conversation.

The method built for this exact problem is a tracked link: one unique link per conversation, with the attribution context kept alongside the link record rather than crammed into the URL.

This is what HeyZinc tracked links do. The link carries a short first-party token (a tid query parameter) and the richer context, like the source page, the page title, and the platform, is kept server-side with the link record rather than depending only on well-known parameter names.

That design matters for DMs in two ways.

First, every DM can get its own link without you inventing a new spreadsheet code each time. The link is the record. When a visit shows up, it ties back to a specific tracked link and therefore to a specific conversation.

Second, the dashboard does the part a spreadsheet cannot. It surfaces visits, unique visitors, sessions, engagement, and an active-now state when a visitor is currently on your site, plus breakdowns by source, referrer, country, and device. So instead of discovering in next week’s report that a LinkedIn campaign sort of worked, you can see that the link from Tuesday’s DM was clicked and the visitor is on your pricing page right now.

There is an honest caveat to add here. A custom first-party token is less likely to be caught by rules aimed at well-known advertising and analytics parameters. That is a narrower, real advantage, not a guarantee. A determined privacy tool can still remove, rewrite, or block any parameter. The more accurate claim is that a first-party token sidesteps the rules specifically targeting the utm_* names, while the conversation context lives server-side where parameter stripping cannot reach it.

Limits every method shares

None of these methods is magic. It is worth being straight about what they all share.

Privacy tooling can affect any link-based method. Platform link behavior (previews, wrapping, redirects) can change how parameters arrive at the destination. Cross-device journeys break the cleanest trail: a prospect clicks your DM on their phone and signs up on their laptop. And DMs are often the start of a slow conversation, not a one-click conversion, so the gap between message and result can be days or weeks.

The practical move is to test your destination URL the way a prospect would actually click it, and not to assume parameters survived untouched. For most teams, the goal is not perfect attribution. It is attribution good enough to do more of what works and stop doing what does not.

Pulling it together for the LinkedIn DM case specifically, the workflow looks like this.

You write the message. A cold-DM generator can help with the first draft. Before you send it, you create a tracked link for the destination. Because the link is unique to that conversation, the attribution is built in. You paste it into the DM and send.

When the prospect clicks, the visit shows up under that link’s record in the dashboard, with the conversation context attached. If they are active right now, you see that too, which is where this connects back to proactive outreach: the whole point of seeing a live visit from a DM is that you can act on it while the prospect is still on your site, instead of finding out tomorrow.

That is the difference between a DM that worked and a DM that worked and you knew which one.

The LinkedIn outreach generator handles the message side; tracked links handle what happens after the message is sent. If you want to see how this fits into the broader attribution story, HeyZinc ties tracked links to live visitor visibility and conversation in one place.

When to use which method

A quick guide, because the honest answer is that these methods overlap.

  • Low volume, one founder: manual logging plus a tracked link per real conversation. Cheap, and the tracked link saves you from the spreadsheet.
  • Offer-driven outreach: promo codes, optionally paired with tracked links so you see the visit even if the code is never used.
  • Campaign-level reporting: UTMs or a dedicated landing page when you need broad channel numbers your analytics tools can read.
  • Per-DM conversation attribution: tracked links. This is the only method that gets you down to “which message, to which person, produced this visit” without a manual log for every send.

The bottom line

LinkedIn DMs are a real channel. They are just a channel LinkedIn does not attribute for you.

UTM parameters give your analytics a campaign vocabulary. Promo codes and landing pages work when the flow fits. Manual logging is a safety net at small volume. Each one solves part of the problem and breaks in a specific way.

For the part that actually matters in DM outreach, knowing which conversation produced the conversion, per-conversation tracked links are the cleanest answer. One link per message, the context kept with the record, and a dashboard that shows what happened after the click. That is how you turn a pile of LinkedIn messages into something you can actually learn from.

Share this post

Tags
LinkedIn DMs conversion tracking attribution