Lead Routing for Inbound LinkedIn Replies in Close: SLA, Round-Robin, Dedup
By Marcus Webb, Tools & Automation. Last updated: 2026-05-30
- Replies are arriving in Close with no owner, no clock, and a growing pile of duplicates.
- Generic lead-routing rules assign cold scraped imports, not inbound reply events that may already exist.
- A warm reply sitting unassigned for two days is the most expensive bug in the funnel.
- Routing rules are only safe to automate when the inbound source is attributable.
Why do you route reply events differently from new scraped leads?
A reply is an intent signal with a clock attached, while a scraped lead is a cold record with neither. Treating them the same is where most Close setups break. Reachium's data shows that of all connection requests sent on the verified API, about 8.1% turn into a reply, so a reply represents a prospect who already raised their hand. That makes it the highest-value event in the pipeline and the worst one to leave unassigned.
There are two structural differences. First, a reply event very often matches a contact who already exists in Close, because you sent the original outreach from a record you already created. Create-blind logic that fires on every inbound event spawns a duplicate every time. Second, ownership has to follow the existing relationship. If a rep already owns the conversation, a fresh round-robin assignment hands the reply to someone who has no context, and the prospect notices. Reply routing inverts the default: check for what exists before you create or assign anything.
How do you assign reply owners by territory and round-robin in Close?
Assign owners with a tiered rule that checks ownership before it checks anything else. The order matters, because each tier exists to stop the tier below it from making a mistake.
- Tier 1, existing owner wins. If the contact already has an owner in Close, the owner keeps the reply. No territory logic, no round-robin. The relationship is the assignment.
- Tier 2, territory match. For a net-new contact, route by a region or segment custom field (for example
territoryorsegment). This is a Smart View filter plus an assignment workflow, one per pod. - Tier 3, round-robin within the matched pod. When territory matches a pod but no individual owner is implied, distribute round-robin among that pod's reps so load stays even.
- Fallback owner. Every rule chain ends in a catch-all owner (often a team lead) so a reply can never land ownerless because a field was blank.
The fallback is the part teams skip and the part that saves them. A reply with a missing territory field should still get answered today, not sit in an unfiltered bucket until someone notices. The same tiered thinking applies whatever CRM you run, and it is the backbone of how to track LinkedIn outreach in a CRM without leaks.
Want to put this into practice?
Reachium automates LinkedIn outreach, content publishing, and inbox management in one platform.
Start Free →How do you set a first-touch SLA timer on a LinkedIn reply?
Start the SLA clock on reply receipt, not on lead creation, because the prospect's patience starts the moment they hit send. Tying the timer to record creation hides the real wait whenever dedup or routing adds a delay.
Speed-to-lead research consistently finds that response time within the first hour separates contacted prospects from lost ones, and the gap widens fast after that. Build the SLA in two visible layers in Close:
- The visible clock. Create a task with a due date (or a Smart View sorted by reply timestamp) so every rep can see which replies are aging. A Smart View titled something like "Replies awaiting first touch" sorted ascending by reply time is the single most useful board an SDR pod can keep open.
- The escalation rule. When a reply crosses a threshold (for example unanswered past a set number of business hours), escalate it to a manager pod or reassign via the fallback owner. The escalation is what makes the SLA real instead of aspirational.
Tier the thresholds to your team's hours rather than promising a flat number you cannot staff. The point is a deadline that someone is accountable for, paired with an automatic consequence when it slips. Reply rates have been drifting down through 2025 into 2026, which makes protecting the replies you do earn matter more, not less.
How do you dedup against existing Close records before creating one?
Run a match check before any create, in a strict key order, and append to the existing record when a key hits. The order is email first, then LinkedIn profile URL, then name plus company, because that runs from most-unique to least-unique identifier.
| Match key (checked in order) | If it matches | If nothing matches |
|---|---|---|
| Email address | Append the reply as an activity on the existing record | Continue to next key |
| LinkedIn profile URL | Append the reply as an activity on the existing record | Continue to next key |
| Name + company | Append the reply, flag for human review (weakest key) | Create a new lead |
Only create a new lead when all three keys miss. On a match, append the reply as an activity or note on the existing record rather than spawning a parallel lead. This is the single gate that keeps a Close instance clean over time. Without it, every inbound reply that maps to outreach you already logged becomes a duplicate, and duplicates corrupt every report, every SLA view, and every owner-assignment rule downstream. The same failure mode shows up when a Notion or Airtable LinkedIn CRM breaks: create-blind imports outrun the dedup logic.
What does the full routing decision table look like?
The full table maps each condition to one action so you can translate every row directly into a Close Smart View, custom field, or workflow. Read it top to bottom and stop at the first matching row.
| Condition (evaluated in order) | Owner action | SLA action | Dedup outcome |
|---|---|---|---|
| Contact exists, has an owner | Existing owner keeps it | Start clock, notify current owner | Append reply to existing record |
| Contact exists, no owner | Territory match, else fallback | Start clock on receipt | Append reply to existing record |
| New contact, territory matches a pod | Round-robin within pod | Start clock on receipt | Create after all match keys miss |
| New contact, no territory match | Fallback owner | Start clock, flag for review | Create after all match keys miss |
| Any reply past SLA threshold | Escalate to manager pod | Trigger escalation rule | No change |
Each row is one Close artifact. The "contact exists" rows are Smart View filters on your LinkedIn-profile-URL or email field. The territory and round-robin rows are assignment workflows keyed off a segment field. The SLA rows are due-date tasks plus an escalation workflow. Build them in this order and the system enforces itself.
Want to put this into practice?
Reachium automates LinkedIn outreach, content publishing, and inbox management in one platform.
Start Free →How do you make the inbound source trustworthy enough to route on?
Routing rules are only as reliable as the source field they read, so attribution is the prerequisite, not a nice-to-have. If a reply arrives with no campaign tag and no clean source, your territory logic is guessing and your SLA is timing an event you cannot trace. Scraped activity tends to land exactly this way: an event with no provenance.
An attributable inbound source fixes this. A comment-keyword auto-DM (the Lead Magnet campaign type on the verified API) tags every reply with the campaign that produced it, so the source field in Close is a known value instead of a guess. Reachium's data shows that lead-magnet posts drew roughly 20x the impressions and 10x the engagement of regular posts (9,558 versus 463 average impressions), so the volume is real and the attribution is built in. That is the difference between a routing rule that fires on trustworthy data and one that fires on noise. The same attribution principle governs a co-sell partner message sequence, where you have to know which partner produced which reply before you can route it.
FAQ
How do you assign reply owners by territory and round-robin in Close?
Use a tiered rule. If the contact already has an owner, that owner keeps the reply. For net-new contacts, match a territory or segment custom field to a pod, then round-robin within that pod, and end every chain in a fallback owner so no reply is ever left unassigned.
How do you set a first-touch SLA timer on a LinkedIn reply in Close?
Start the clock on reply receipt rather than lead creation. Make it visible with a task due date or a Smart View sorted by reply time, and add an escalation workflow that reassigns or alerts a manager pod when a reply crosses your threshold.
How do you stop duplicate Close records when a LinkedIn reply comes in?
Run a dedup check before any create, in the order email, then LinkedIn profile URL, then name plus company. On a match, append the reply as an activity on the existing record. Only create a new lead when all three keys miss.
Why route reply events differently from new scraped leads?
A reply is a warm intent signal with a clock, and it usually matches a record you already created when you sent the original outreach. Cold-import logic both assigns it without context and spawns a duplicate, which corrupts ownership and reporting downstream.
