PluginBench
Skill
Official
Pass
Audit score 90

crm-cleanup

anthropics/knowledge-work-plugins

Audit and clean HubSpot data: find stale deals, duplicate contacts, and missing fields, then apply owner-approved fixes.

What is crm-cleanup?

Scans HubSpot for data quality issues—stale deals (no activity in 14+ days), duplicate contacts, and missing required fields—then presents findings for owner approval before making any changes. Use this to maintain CRM hygiene and ensure accurate pipeline and contact data.

  • Identifies open deals with no activity in the last 14 days and proposes next steps
  • Detects duplicate contacts by email, name similarity, and company match
  • Flags missing required fields on open deals (close date, amount, stage, contact, next steps) and associated contacts (email, company, phone)
  • Shows side-by-side diffs of current vs. proposed values before any change
  • Applies only owner-approved fixes and reports each change with HubSpot links

How to install crm-cleanup

npx skills add https://github.com/anthropics/knowledge-work-plugins --skill crm-cleanup
Prerequisites
  • HubSpot connected in Cowork settings
  • Read access to deals and contacts in HubSpot
Claude Code
Cursor
Windsurf
Cline

How to use crm-cleanup

  1. 1.Run `/crm-cleanup` to scan all deals and contacts, or use `--scope deals` or `--scope contacts` to audit only one category
  2. 2.Review the presented list of stale deals, duplicate contact pairs, and missing fields
  3. 3.Approve or reject each proposed change individually—the skill will not auto-merge or auto-delete
  4. 4.Confirm field updates and deal stage changes explicitly before they are applied
  5. 5.Check the final summary with links to updated records in HubSpot

Use cases

Good for
  • Quarterly CRM health check to remove stale pipeline and consolidate duplicate records
  • Onboarding new team members by cleaning up inherited messy contact and deal data
  • Pre-forecast cleanup to ensure all open deals have required fields and recent activity
  • Merging duplicate contacts created during data imports or manual entry errors
  • Identifying deals stuck in early stages with no recent engagement
Who it's for
  • Sales operations managers
  • CRM administrators
  • Sales leaders managing pipeline quality
  • Teams with large or inherited HubSpot databases

crm-cleanup FAQ

Will this delete or merge records without my approval?

No. The skill never deletes records and never auto-merges duplicates. It shows side-by-side comparisons and waits for explicit approval on every change.

What counts as a 'stale' deal?

Any open deal with no activity (email, call, meeting, or note) in the last 14 days.

Can I audit only deals or only contacts?

Yes. Use `--scope deals` to check only stale deals and missing fields, or `--scope contacts` to check only duplicates and missing contact fields.

What happens if HubSpot isn't connected?

The skill will stop and ask you to connect HubSpot in Cowork settings, then rerun the command.

Can I change deal stages or close deals with this skill?

Only with explicit approval per deal. The skill will flag stage changes and closures, show the evidence, and wait for you to confirm before applying.

Full instructions (SKILL.md)

Source of truth, from anthropics/knowledge-work-plugins.


name: crm-cleanup description: Scans HubSpot for stale deals, duplicate contacts, and missing fields, then fixes what the owner approves. Accepts optional scope argument for deals, contacts, or all. allowed-tools: Read, WebFetch, Bash

Run a HubSpot hygiene pass using the crm-maintenance skill cleanup workflow. Act immediately — the user typed /crm-cleanup, so skip the intent-detection step.

Parse arguments:

  • --scope (default: all) — deals for deal audit only, contacts for contact dedup only, all for both

Step 1 — Scan for stale deals

If scope includes deals:

  1. Pull all open deals from HubSpot.
  2. Flag deals with no activity (email, call, meeting, note) in the last 14 days.
  3. For each stale deal: show deal name, stage, last activity date, associated contacts, and amount.
  4. Propose actions per deal: update next-step, change stage, add a note, or close-lost.

Present the full stale-deals list before making any changes.

Step 2 — Scan for duplicate contacts

If scope includes contacts:

  1. Search HubSpot contacts for likely duplicates (same email, similar names, same company + similar name).
  2. For each duplicate set: show both records side-by-side — name, email, company, deals, last activity.
  3. Propose which record to keep and which fields to merge.

Present all duplicate sets before merging anything.

Step 3 — Scan for missing required fields

  1. Check all open deals for missing fields: close date, amount, deal stage, associated contact, next-step/notes.
  2. Check contacts associated with open deals for missing fields: email, company, phone.
  3. Present a table of records with missing fields and what's missing.

Step 4 — Apply approved fixes

  1. Walk through each finding from Steps 1-3.
  2. Apply only the changes the owner explicitly approves.
  3. Report each change as it's made with a HubSpot link.

Connector failures

If HubSpot is unreachable, stop — this command requires HubSpot as the data source. Tell the owner: "HubSpot isn't connected. Connect it in Cowork settings, then rerun /crm-cleanup."

Approval gates

  • Never delete records. Not contacts, not deals, not activities. If the user asks, say the skill cannot and direct them to HubSpot.
  • Never change deal stage or close a deal without explicit approval. Even if evidence is strong. Flag and defer.
  • Never auto-merge duplicate contacts. Show side-by-side and wait for approval per pair.
  • Side-by-side diffs for all changes. Show current value and proposed value; wait for approval per item.

Output

End with a summary: X deals updated, Y contacts merged, Z fields filled. Include links to the affected records.