Clean up duplicate CRM records

CRM deduplication is an Agent Skill: a written method your AI applies on demand, in Zealos or in any client that reads SKILL.md.

Deduplication goes wrong when merging is treated as the goal: the safe operation is to propose a merge with the evidence for it, because an incorrect merge is materially harder to undo than a duplicate.

What is in this skill

namecrm-field-conventions
descriptionWhat belongs in each CRM field, and what to leave blank rather than guess. Use whenever writing to a contact, company or deal record, or logging activity after a call or email.
allowed-toolsnone — this skill adds judgement, not reach
compatibilityZealos, Claude Code, Cursor, Codex and any client that reads SKILL.md
licenseFree to use and edit

How it works

  1. 1Match on stable identifiers first — domain, LinkedIn URL, verified email — and treat name similarity as a weak signal rather than a match.
  2. 2Propose rather than merge. Every proposal carries the fields that conflict and which record each value came from.
  3. 3Preserve the earliest created date and the richest activity history, since those are what make a record worth keeping.
  4. 4Never merge across a conflict in a field that cannot be inferred. Two different owners is a question for a human.

The skill itself

---
name: crm-field-conventions
description: What belongs in each CRM field, and what to leave blank rather than guess. Use whenever writing to a contact, company or deal record, or logging activity after a call or email.
---

# CRM field conventions

## The rule that matters most

**Leave a field blank rather than infer it.** A blank field is a known unknown.
A guessed field is an unknown unknown, and it will be reported on, forecast
against, and used to route a lead. If a value was not stated by the customer or
recorded in a source you can cite, do not write it — say what is missing and why.

Never infer: budget, headcount, timeline, decision maker, competitor, industry
from a company name, seniority from a title alone.

## Fields

- **Next step** — one action, with an owner and a date. "Follow up" is not a
  next step. If there is no agreed next step, leave it empty; that emptiness is
  the most useful signal in the pipeline.
- **Close date** — what the buyer said, not what the quarter needs. If they have
  not said, leave it and note that it is unset.
- **Amount** — the discussed figure. If it is a range, take the low end and note
  the range in the deal notes.
- **Stage** — moved by evidence, not by optimism. Every stage has an exit
  criterion; if you cannot name the evidence, do not advance it.
- **Notes** — what was said, attributed. Quote where the wording matters.
  Separate observation from interpretation.
- **Contact role** — only from a stated org relationship, never from a title.

## After a call or email

Write the recap first, then extract fields from it. Extracting straight from
memory is where invented values come from.

Who uses it

RevOps

Dedup becomes a reviewable queue instead of a script somebody ran once and everybody is now afraid of.

Sales operations

Reporting stops double-counting the accounts that were entered twice with slightly different names.

Account executive

You stop discovering mid-call that a colleague has been working the same company under a different record.

Frequently asked questions

Should AI merge records automatically?

No. Propose with evidence and let a human confirm. A wrong merge destroys history in a way a duplicate never does.

What is the most reliable match key?

Email domain for companies and a verified email or LinkedIn URL for people. Company name similarity produces false positives constantly.

Does it work across HubSpot and Salesforce?

Within each system, yes. Reconciling across two systems is a different problem: without a shared identifier that both sides agree on, cross-system matching produces confident merges of records that were never the same company.

How often should deduplication run?

Continuously as a proposal queue rather than periodically as a sweep. A quarterly cleanup means a quarter of reporting was already wrong, and it batches the review into a job nobody wants.

Related skills

Summarize calls and update the CRM

Post-call automation turns a recorded conversation into the three things that outlive it: the commitments each side made, the fields that changed, and the follow-up that has to go out today.

MeetingsCRMZoom/call-recap-format

Run an AI SDR play on new leads

An AI SDR agent is only as good as the definition of a good customer it is working from, which is why the fit criteria belong in a written skill rather than buried in a prompt nobody can find.

ProspectingSDRCRM/our-icp

Log a call without inventing fields

CRM data hygiene survives AI only if one rule is written down first: a field left blank is a known unknown, while a field filled in by inference is an unknown unknown that will be reported on as fact.

CRMHubSpotSalesforce/crm-field-conventions

Qualify a lead against our ICP

Qualification is a claim about evidence, not a score: a deal is qualified when every criterion has a source you can quote, and unevidenced criteria are named rather than filled in optimistically.

DealsProspectingCRM/meddicc

Run a pipeline review

A pipeline review is useful in proportion to how uncomfortable it is: the job is to find the deals that are slipping quietly, not to narrate the ones everybody already knows about.

DealsCRMAccount executives/meddicc

Build an account plan from CRM data

An account plan is worth the hour only if it names the one unknown that would most change your approach — everything else in a plan template is decoration you will never re-read.

AccountsCRMAccount executives/our-icp

Skills, in your workspace

Write it once. Every agent follows it.

Twelve built-in skills ship with every workspace, and you can draft your own with AI or import any public SKILL.md from GitHub.

7-day free trial. Set up in minutes. Cancel anytime.