If you suspect a missed LinkedIn accept

If you accepted a prospect on LinkedIn but the WarmySender dashboard still shows them as Invited, this guide explains how accept-detection works behind the scenes and how to bring the dashboard back in line. Most of the time the dashboard catches up on its own within seconds. When it doesn't, three short steps will fix it.

Note: a separate situation that can look like 'missed accepts' is starting/resuming a campaign that has zero enrolled prospects with a usable LinkedIn URL — the dashboard will simply sit at zero with no progress. As of May 2 2026, Resume/Start now blocks that with a soft amber Alert and an 'Import contacts' CTA so you know the campaign needs prospects with LinkedIn URLs before it can send anything. See the dedicated guide 'Why can't I resume my campaign? (No prospects with LinkedIn URL)' for details.

The five acceptance detection paths
When a prospect accepts your invite on LinkedIn, our system can learn about it through any of five different signal paths — and as of May 2 2026 all five fire a Slack/n8n/Zapier notification consistently:

1. Real-time notification — the main path. Our LinkedIn provider notifies us the moment LinkedIn marks the invite accepted; we match the prospect and update your dashboard within about a second.
2. Direct prospect match — when the notification identifies a prospect you have enrolled, even if it can't be attributed to one specific campaign.
3. Sales Navigator match — when your prospect was imported from a Sales Navigator link, we decode the lead reference so it can be matched against the notification.
4. Polling — every 30 minutes we fetch a fresh view of your LinkedIn connections and reconcile it against any enrolled prospects not yet marked as accepted. This catches notifications that dropped or arrived late.
5. Already-connected detection — when a campaign tries to invite someone who is already a 1st-degree connection, LinkedIn declines the invite as unnecessary; we treat that as proof of acceptance and record it.

All five paths are safe to fire more than once and produce exactly one Slack notification per real acceptance.

Slack notifications for acceptances
If you've configured a Slack webhook (Settings → Integrations), every detected acceptance sends one notification per prospect, per acceptance. As of May 2 2026, all five detection paths notify Slack consistently: the real-time notification, direct prospect matches, Sales Navigator matches, the 30-minute polling fallback, and already-connected detection. Before the fix, only the first path notified Slack; the other four updated your dashboard but Slack stayed silent. If you saw fewer Slack messages than acceptances on your LinkedIn timeline before May 2, that's why — it's now resolved. Duplicate notifications are collapsed automatically when two paths detect the same acceptance.

How accept-detection works
WarmySender watches for accepts using three signals, in priority order. The first one to land wins, and the others quietly become no-ops thanks to idempotent stamping. You never get double-counted.

Signal 1 — the real-time notification (fastest, sub-second)
Our LinkedIn integration partner notifies us the moment LinkedIn marks the invite as accepted. On a healthy day that arrives in well under a second. We match it to your prospect, record the acceptance time, and flip the status to Connected — all in one step, so the two can never disagree. The next campaign step (a follow-up message, for example) is queued for the next valid sending slot in your campaign window. This is the path most accepts take.

Signal 2 — account-status polling (every 30 minutes)
If the notification drops or arrives late, polling catches it. Every 30 minutes we fetch a fresh view of your LinkedIn connections and reconcile the list against our records. Anything new is recorded as accepted, with the timestamp set to the actual accept time. The polling cadence is throttled to the documented per-account spacing — we never burst, never call faster than safe limits allow, even when there's a backlog.

Signal 3 — inferred from a reply (when the prospect writes back)
If a prospect replies before either of the first two signals lands, we infer the acceptance from the reply itself — you can't reply to a non-connection on LinkedIn, so a reply is proof of acceptance. We record the acceptance and the reply together, and the dashboard counts both correctly. This is the rare belt-and-braces path, but it exists so a fast reply never silently swallows the acceptance.

What you'll see on the dashboard
The dashboard's accept counter is computed live from your prospects — specifically, how many of them in that campaign have a recorded acceptance. There is no second cache to fall out of sync. If a prospect shows as Connected, their acceptance is recorded. If they show as Invited, it isn't yet.

'Connected' means the prospect accepted your invite and the system has recorded it. From this point forward, follow-up steps that depend on the acceptance (a 'wait for acceptance' step, or a message step) become eligible to fire on their next scheduled time, respecting your campaign's sending window and your LinkedIn account's per-day safety caps. The next campaign step does NOT fire instantly on accept — it queues for the next valid send time in your campaign's schedule plus a small random jitter so the action looks human. This is by design: account safety wins over speed.

If you suspect a missed accept (3 steps, in order)
1) Wait 30 minutes. If the webhook was dropped or delayed, the polling fallback will catch up on its next pass. Hard-refresh the dashboard after the half-hour mark — the prospect should now show as Connected.
2) Click 'Resync prospect' on the prospect detail page. If you don't want to wait 30 minutes (or you've already waited and the dashboard still shows Invited), open the prospect's detail view and click the Resync button. We re-check that one prospect's connection status and record the acceptance if it's there. Multiple clicks within the per-account spacing window collapse into a single check.
3) Contact support. If the prospect is still showing as Invited after a Resync click, email [email protected] with the prospect URL and the campaign name. We can record the acceptance from our end and confirm whether the issue is ours to fix or something to raise with our integration partner.

Account safety
We never make extra LinkedIn calls just to verify state. Every shortcut you can imagine — 'just poll on demand,' 'just re-fetch the relations list every minute,' 'just confirm before stamping' — risks tripping LinkedIn's automation detection and getting your account restricted. A banned LinkedIn account is unrecoverable. So our default is the opposite: poll at the documented per-account spacing, lean on webhooks for fast updates, and accept that some accepts arrive a few minutes late rather than risk an account flag.

The polling fallback is throttled to the documented per-account spacing our integration partner publishes. We do not exceed that pace, even when there is a backlog of prospects waiting on accept signals. If your dashboard takes 30 minutes longer than usual to reflect an accept, that's the safety envelope holding — not a bug.

Examples
Example 1 — the webhook path (most common):
'I accepted the prospect's invite on my phone at 3:14 PM. The dashboard updated 8 seconds later.' That's signal 1: our LinkedIn provider notified us the moment LinkedIn registered the acceptance, we matched it to the prospect in your campaign, and they flipped to Connected before you put your phone down. The next follow-up step is queued for your campaign's next valid sending slot.

Example 2 — the polling fallback (rare):
'A prospect accepted my invite yesterday afternoon. I checked the dashboard this morning and she's still showing as Invited.' That's a missed notification. Don't panic: open that prospect's detail page and click 'Resync prospect'. The resync fetches their latest connection status within the per-account spacing window, finds the acceptance, and records it. The prospect flips to Connected within a few seconds, and the follow-up step is queued for the next valid sending slot. No prospects are lost.

Back to all documentation | Contact support