Comment tracking is a records problem before it is a prospecting problem. One person can appear in four threads in a week, so the unit you store has to be the person, with each comment as an event against them. Get that wrong and you contact the same buyer four times.
Disclosure: Signl is ours. This article is about the workflow, not about which tool to buy; if you want the comparison, including the cheaper per-engager options, that is LinkedIn engagement tracking tools. Product behaviours named below were checked against our code on 24 October 2026.
Key facts
- Key records on the normalised LinkedIn profile URL, not on name or email.
- Store the comment text. Everything downstream, from qualification to the opening line, depends on it.
- A second engagement from the same person is worth more than a first, and most setups cannot see it.
- Suppression has to be global, not per campaign, or an objection leaks back in through another source.
- Measure per source, over 30 days, on qualified people and replies. Never on engagement volume.
Why exports stop working in week three
The common starting point is an export: open a post, run an extension or a scraper, get a CSV of commenters. It is a reasonable first step and it fails in a specific, predictable way.
An export is keyed to a post. It answers "who commented here". The question you need answered by week three is "who are the people my sources keep surfacing, which of them have I already written to, and what did they actually say", and that question cannot be answered by a folder of CSVs. Nothing in the export knows that row 14 of post A and row 3 of post C are the same person, and nothing records that you emailed her on the 9th.
So the useful artefact is not an export. It is a small database with one row per person.
The identity model
Key on the normalised LinkedIn profile URL. Strip the query string, strip the trailing slash, lowercase the slug. It is the only identifier present on every single engagement, it survives a job change, and unlike a name it does not collide.
Do not key on email. It arrives later, it is sometimes missing entirely, it changes when someone moves company, and on some engagements you will never have one. Store it, and treat it as an attribute of the person rather than the thing that identifies them.
Three cases the model has to handle, and they come up immediately.
The same person commented and reacted on one post. Keep the comment. It carries words, which the reaction does not. Signl collapses the pair to one person and keeps the comment.
The same person engaged with two of your sources. One person, two events, and the second event is the interesting one. See the next section.
A person with no LinkedIn URL at all. On X, you have a handle and no LinkedIn profile. That is a legitimately separate identity space, and pretending otherwise creates false merges. Signl keeps X people as their own records and does not run them through the LinkedIn work-email path, which means they reach you through the agent, a CSV or a webhook rather than an email sequence.
What to store per engagement
| Field | Why it matters | What breaks without it |
|---|---|---|
| Comment text, verbatim | It is the whole asset: the problem, the stage, the vocabulary | Every opening line becomes a template |
| Which source found them | Decides what your message may reference | Competitor-sourced people get messaged with the competitor's name in the line |
| Source relationship | Own, competitor, creator or topic. This is the permission model | The same mistake, systematically |
| Engagement type | Comment, reaction, repost, reply | Reactions get treated as strong signals |
| Timestamp | Freshness, and ordering within an account | Stale signals look live |
| Qualification verdict and its reason, in words | Lets you audit a wrong call and fix the cause | You cannot tell a bad filter from a bad source |
| Contacted and replied state | Stops double contact and measures the source | Both of those, immediately |
The second and third rows are the ones people leave out, and they are the ones that cause the embarrassing failure. In Signl the relationship is set when the source is added and cannot be edited afterwards, because it governs what a drafted opener is allowed to say. Changing it means removing the source and adding it again.
The second signal
A person who engages twice in a month has told you something a single comment cannot: that this is a theme for them, not a passing scroll.
Most setups cannot see it. A CSV-per-post workflow has no way to notice, and plenty of tools treat each collection as a fresh list. If your records are keyed on the person, it is a query.
Two things to do with it. First, raise the priority rather than the volume: one better-informed message, not two. Second, look sideways at the company. Several people from one account engaging with one topic inside a month reads as an internal conversation, and the right recipient may be the person who said nothing. Signl can group the inbox by company, with each company's engaged people, their roles, and the roles your ICP sells to that nobody there holds yet.
Suppression, objections and the rules that must be global
Three states have to live on the person, not on a campaign, or they leak.
Contacted. Per campaign is fine for sequencing, but you also need a person-level view, or two autopilot rules will both find the same good match. Signl never sends the same person to the same campaign twice, and a sensible setup keeps the number of rules small for exactly this reason: an account can have at most 10 rules and 500 autopilot sends a day.
Dismissed. When you set someone aside, record why. Signl takes an optional reason on dismissal and feeds it back into ranking, which only works because the reason is attached to the person.
Objected. This one is absolute. The UK ICO describes an objection to direct marketing as an absolute right with no exemptions (read 24 October 2026). A per-campaign suppression list does not satisfy that, because the person reappears the next time a different source surfaces them. Signl suppresses and erases an objector globally and permanently, across every customer, and never collects anything of theirs again.
Retention is a design decision
Signl deletes collected engagement 90 days after first collection. That is deliberate, and we think any tracking setup should pick a horizon on purpose.
The sales argument for a horizon is that a comment from five months ago is not a reason to contact anyone, so keeping it adds noise to every query you run. The data protection argument is that you are holding personal data you have no current use for. Both point the same way.
What is worth keeping past the horizon is the aggregate: which sources produced qualified people, and which produced replies. That is a count, not a person.
What to measure
Three numbers per source, over 30 days. Nothing else.
| Measure | What it tells you | How to read it |
|---|---|---|
| People collected | Source volume | High with low qualified means the source is wrong |
| People who passed the ICP check | Source precision | Low with recognisable names in the rejected pile means the ICP is wrong |
| Replies | Whether any of it worked | The only one that matters |
Signl reports what each source led to, including replies, meetings and deals where your connected tool sends outcomes back; HubSpot deals and meetings are polled back daily, and the email sequencers report replies by webhook.
Do not measure engagement volume. It rewards adding big noisy sources, which is the opposite of what makes this channel work.
And read the rejections. Every person Signl filters out keeps a reason in words in the Filtered out tab, because an invisible rejection teaches you nothing and a visible wrong one tells you your ICP needs ten minutes.
Limits
- Share-style post URLs cannot be read for comments. Links containing
-share-do not expose a thread; watch the author's profile instead. - Large threads are sampled. Signl reads up to 500 people per post per check.
- Edited and deleted comments. A comment you collected can be changed or removed afterwards, and your copy will not know. Quote carefully.
- Automated collection is contractually contested. LinkedIn's User Agreement section 8.2 prohibits scraping and bot access (read 24 October 2026), which is separate from the data protection question of whether you may contact someone; that one is in GDPR and B2B prospecting. This is not legal advice.
Next: where the records should go once you have them, or LinkedIn buying signals for deciding which events are worth storing in the first place. Once the records exist, measuring social listening ROI turns them into the per-source scorecard that decides what to keep watching.