Skip to main content
All articles

LinkedIn

Reply intent detection: what your LinkedIn replies actually mean

Most replies are neither a yes nor a no. How to read the seven intents and three signals hiding in a LinkedIn inbox — and why 'send me a deck instead' is not a refusal.

By Swimlane 8 min read

Ask any founder how their LinkedIn outreach is doing and you get a reply rate. Ask what those replies said and the answer gets vague, because a reply rate counts the wrong thing. Fifty replies that all read “thanks, not now” are worse than five that read “what does this cost for a team of three?” — and no dashboard tells them apart.

That is the gap reply intent detection fills. Not sentiment analysis, which grades a message positive or negative and tells you nothing you can act on. A reading of what the person actually meant, and what they are asking for next.

The problem with sorting replies into yes and no

Go through your own inbox and try to file every reply as interested or not interested. You will manage it for perhaps one in five. The rest sit in the middle, and the middle is where the deals are:

  • “Interesting — what does it cost?”
  • “Not the right moment, ask me again in the spring.”
  • “That’s more Julie’s area, she runs sales here.”
  • “Thanks for connecting! Love what you’re building.”
  • “We already use Lemlist for this.”
  • “No to the call, but send me a deck and I’ll look at it with my partner.”
  • “Funny you should write — we do something similar, want to swap notes?”

Seven replies, seven completely different next moves. A binary classifier turns four of them into a no. A sentiment model calls the last one positive and the referral neutral, which is exactly backwards: the referral is the most valuable message in the list.

Seven intents, because there are seven things people actually do

A reply, read properly, lands on one of a small closed set. These are the seven Swimlane reads, and each one exists because it demands a different move from you:

Interested. A yes, or as good as one. Rare, obvious, and the reason the other six matter.

Asking about the offer. Working out whether it fits: price, scope, “does this work for three people?”. This one also covers the person still making up their mind — “I’d need to run it past my co-founder” is not a separate state from questioning, it is the same person at the same stage.

Later. Open, but not now. The only correct action is to come back at the right time, which means the thread has to remember for you.

A referral. They point you at someone else. In social selling this is the single most actionable reply there is, and most tools file it as a refusal because it contains the word “not” — “that’s not me, talk to Julie”.

Networking. Warm but non-committal. Thanks you for connecting, compliments your work, wishes you luck. Courtesy is not buying intent, and reading it as interest is how a pipeline fills up with ghosts.

Pitching you back. They answer your offer by selling you theirs. Worth knowing, worth nothing to your pipeline.

Not interested. A no. Note it, respect it, stop.

Why that list needs an escape hatch

Here is a detail that matters more than it looks. Any classifier has to be given somewhere to put a reply that means nothing at all — “thanks, have a good day”. Without that option, the model still has to answer, so it picks the nearest thing.

Measured on the live model, that exact message reads as nothing in particular with about 98% confidence when the option exists, and as not interested with 94% confidence when it does not. A confident false refusal, on a message that is simply polite. If your tool stops a sequence on that, it stopped for no reason and you will never know why.

The same goes for an out-of-office auto-reply. Nobody branches a campaign on “I’m on holiday until the 12th”, but remove that option and absence replies get pushed into “later” or “not interested”.

The three signals, and why they are not intents

This is the part most tools get wrong, and it is worth being precise about.

Take the reply again: “No to the call, but send me a deck and I’ll look at it with my partner.”

Force that into a single choice and you get a refusal — there is a “no” in it and a rejected meeting. Measured, it read as not interested with 0.30 confidence, which is low but still the leading answer. Meanwhile “wants material” read 0.98. The person is asking to be sold to and the classifier filed them as a lost cause.

So asking for a document, proposing a meeting and raising an objection are read separately, as three independent signals that can accompany any intent:

  • Wants a meeting — proposes a call, asks for your calendar, names a slot.
  • Wants a document — asks for a deck, a case study, a price list. Very often while turning the call down.
  • Raises an objection — “we already use something else”. Worth an answer, not a closed door.

“We already use Lemlist” makes the point twice over: it reads as not interested at 0.58 — over the threshold most tools would use to stop a sequence — while raises an objection reads 0.98. One number says give up, the other says this is a conversation. They are both true, which is why you need both.

The rule that follows: the intent says where the person stands, the signals say what they want next. Never collapse the two.

Read the conversation, not the last message

The second mistake is subtler, and it will pass your testing because it only shows up on real threads.

A prospect writes “Sounds good, send me the details” on Tuesday. On Wednesday they add “Thanks!”. Classify their last message and you get a polite nothing — measured at 0.78 for nothing in particular. Classify their whole side of the conversation and you get interested, 0.83.

A closing pleasantry had erased everything said before it. Whatever you use, make sure it reads the person’s whole side of the thread, weighted toward the recent, rather than whatever arrived most recently.

Two things should be read from the last message, though, because they describe the state of the thread right now rather than what someone means: whether it is waiting on an answer, and how urgent that is. And once you have written last, both of those are facts, not readings — you had your turn. Asking a model to work that out is how you end up being told you left a question open that you answered two messages ago.

What to do with a reading once you have it

A reading is only worth having if it changes something. Three things it should change:

Your triage order. Open the questions and the referrals first, in that order. They are the two replies where a fast answer is worth the most and where the thread dies quickest if you are slow.

Your sequences. A branch on the reading is the difference between a sequence that keeps going and one that keeps going wrongly. Someone who asked for a document should get the document; someone who raised an objection should get an answer to it; someone who said later should get silence and a reminder. In Swimlane a campaign step can route on any of the seven intents or the three signals, and everything unmatched — including a contact nobody has read yet — takes the other branch. Never the reverse: an unread reply must not be treated as a no.

Your follow-up copy. “Just checking in” exists because the writer had forgotten what the last message said. A reading in front of you removes the need for it.

Two guardrails worth insisting on

A classification is a reading, not a fact, and a tool should say so. In Swimlane everything a model produced carries the same mark — a wave — from the inbox filter to the contact record to the campaign condition. A filter you know to distrust is worth more than one that quietly disagrees with you.

And the numbers stay out of your way. A reading is shown as a level, not as “73%”, because a percentage reads as a measurement it is not. You are being told roughly how sure a model is, and dressing that up as two significant figures is a small lie that costs trust the first time it is wrong.

Where this leaves the reply rate

It stops being the number you look at. What replaces it is a shape: how many of this week’s replies asked about the offer, how many asked for something, how many pointed you at the right person, how many told you to come back later. That shape tells you whether your message is landing, whether you are talking to the right level of seniority, and what to write next — none of which a reply rate has ever answered.

Read properly, an inbox of fifty middling replies turns out to contain nine real conversations. They were always there. Nobody had read them.

Do this with Swimlane

Everything in this article, minus the manual part.

Start my free trial

See how it works in Swimlane Reply intent detection

Keep reading

CRM 6 min read

Asking your CRM instead of clicking through it

An AI assistant with read access answers questions no dashboard was built for. One with write access needs a rule about when it stops. Here is what that looks like in practice.