Sales Navigator imports no longer create duplicate contacts
When you import a lead from Sales Navigator with LinkedIn enrichment on, lemlist now enriches the lead before deciding whether it's a new contact or an existing one. Previously, the dedup check ran on the Sales Nav URL alone, before enrichment revealed the person's public LinkedIn URL — so the same person could end up as two contacts.
How it works now:
The incoming lead is held in a draft while enrichment runs, instead of being written straight to Contacts.
If the Sales Nav URL already matches a contact, the lead is recognized immediately and no re-enrichment or extra credit is used.
Once enrichment finishes, the lead is matched using the resolved public LinkedIn URL: it updates the existing contact (and adds the Sales Nav URL to it) or creates a new one if there's no match.
While processing, the lead appears in the "enrichments in progress" counter in Contacts and the campaign loader. In a campaign, it only enters the sequence once its identity is confirmed.
Imports without enrichment, or LinkedIn (non-Sales Nav) imports, work as before.
To help you clean up duplicates already in your base, you can now filter contacts in Contacts & Companies by "field rejection" to find any contact whose LinkedIn URL was refused because another contact already holds it. The same information is available via the API: a fieldRejectionReason filter on GET /contacts, the conflicting record's id in the response, and a DELETE /contacts endpoint.
This reduces duplicates significantly but doesn't guarantee zero: if the LinkedIn scrape fails or the profile is private, lemlist falls back to email or the Sales Nav URL, and a duplicate can still occur. It also prevents new duplicates going forward — it doesn't merge duplicates that already exist in your base.