⟨ BLOGPLAYBOOKSCRM OPS

Lead sync hygiene: dedupe, enrich, upsert with approvals

Thirty days of LinkedIn leads reconciled against your CRM: duplicates staged as an approval list, thin records enriched, the clean set upserted with source preserved.

PlaybookLinkedIn LeadsHubSpotEnrichmentRUN BY THE PIPELINE AGENT →

The problem this solves

Every lead source degrades a CRM in its own way, and LinkedIn forms have a signature: the same person submitting twice from different campaigns, personal emails beside their work address, records created thin because the form asked four questions. Left alone, the duplicates split activity history across rows, the thin records rot unworked, and within a quarter nobody fully trusts a LinkedIn-sourced record.

The repair work is unglamorous and judgment-laden in equal measure. Merging records destroys information if done wrong - which is why sensible teams never let automation merge silently, and why the cleanup keeps not happening: it is too tedious for people and too destructive to hand to a script.

This mission splits the difference the platform's way. It reconciles the month's LinkedIn leads against the CRM, enriches what is thin, upserts what is safe - and stages every merge as an approval with the evidence attached, so the destructive decisions stay human while the tedium stops being.

How the mission runs

  1. Reconcile leads against the CRM. Thirty days of LinkedIn submissions are matched against the existing records - by email first, then by name-plus-company for the near-misses that different addresses hide - sorting every single lead into one of three buckets: clean-new, exact-match, or possible-duplicate, each with its own handling downstream.
  2. Enrich the thin. Records missing company data get enriched with firmographics - industry, headcount, the frame a rep needs - so every row that lands or updates carries enough context to actually be worked rather than skimmed past and skipped.
  3. Upsert the safe set. Clean-new leads are created and exact matches updated in place - source campaign and form preserved on every row, because provenance is what makes attribution possible later.
  4. Stage merges for approval. Possible duplicates become a staged merge list: each pair shown with its evidence and a recommended survivor, parked in the Approvals queue. Nothing merges until a human agrees, pair by pair or in bulk.
  5. Report the reconciliation. The run closes with the ledger: created, updated, enriched, merges staged, and anything unresolvable - the CRM's LinkedIn lane left visibly accounted for.

The prompt

This is the exact objective the agent receives. Swap the obvious placeholders for your own domain, segment or channel and run it as-is from the console, Slack, or the API.

⟨ THE MISSION PROMPT · PASTE AND RUN ⟩

Sync the last 30 days of LinkedIn leads against my CRM: flag duplicates as a staged merge list for approval, enrich records missing company data, and upsert the clean set with the lead source preserved.

What comes back

A reconciled LinkedIn lead lane: clean records upserted with provenance, thin records enriched, and every duplicate staged as an evidence-backed merge approval rather than an automatic action - hygiene at machine speed with destruction kept behind a human decision.

Make it yours

  • Run it monthly as a standing schedule so the lane never drifts more than thirty days from clean.
  • Widen the duplicate detection to the whole CRM once the LinkedIn lane is settled - the same staged-merge pattern generalizes.
  • Chain the enriched clean set into the scoring playbook so hygiene and prioritization happen in one pass.

Frequently asked questions

Why are merges approval-gated when upserts are not?

Because their failure modes differ in kind. A wrong update is correctable; a wrong merge collapses two histories into one and cannot be cleanly undone. Reversible operations run; irreversible ones stage with evidence and wait for a human.

What evidence does a staged merge show?

The pair side by side: matching fields, conflicting fields, each record's activity recency, and which survivor the mission recommends with its reasoning. The approval is a ten-second read, and Slack approvals work when the queue lives there.

Does this touch records that did not come from LinkedIn?

Only as merge counterparts - when a LinkedIn lead duplicates an existing record from another source, that pair is staged like any other. The mission's write scope is the LinkedIn lane; the wider-CRM sweep is its own deliberate variation.

Go deeper

⟨ RUN IT INSTEAD OF READING IT ⟩

This mission runs minutes after signup.

Open a workspace, paste the prompt, and the Pipeline Agent carries it end to end on your plan's monthly credits - evidence attached.

⟨ RELATED PLAYBOOKS ⟩