Why are my campaign stats showing zero accepts when I have replies?

Replies imply acceptance — a prospect can't reply to your message unless they accepted the invite first. If your campaign shows replies but the accept counter is 0, you're hitting one of two issues.

Issue 1 — fast-reply race (already fixed Apr 27, 2026 in LL#204). When a prospect accepted and replied very quickly, the old code path stamped linkedin_replied_at but skipped the linkedin_accepted_at stamp because the row had already advanced past 'invited'. The dashboard tile counted accepts via linkedin_accepted_at IS NOT NULL, so the counter under-reported. The fix split the timestamp stamp from the status flip so even a fast-reply row gets its acceptance recorded forensically.

Issue 2 — invite_accepted event mirror gap (fixed Apr 30, 2026 in Layer F5 / LL#262). Some analytics surfaces (the 24h freshness banner on LinkedIn → Accounts, the per-account analytics roll-up) read the legacy linkedin_events table for event_type='invite_accepted'. After the Apr 27 helper consolidation, unified-engine campaigns wrote acceptance events to a different table (campaign_events) but never mirrored to linkedin_events. So the 24h freshness banner showed 'no accepts in 24h' even when accepts were flowing. The fix adds a paired insert into linkedin_events from the canonical helper, idempotent on duplicate webhook+polling signals.

What the dashboard counters actually mean now:

If you still see the issue:

No Unipile API calls are involved in the counter — every fix is a DB-state hygiene fix on signals we already received.

Back to all documentation | Contact support