Attio CRM Data Cleanup

Find and fix duplicate records before they wreck your reporting. Scan, compare, and clean up with confidence.

Data hygieneDeduplicationCRM maintenanceOperations automation

The Challenge

Your Attio CRM has been accumulating duplicates for months. The same contact exists three times with slight name variations. Companies are listed under different formats. Pipeline reports are inflated because duplicate records create phantom deals. Cleaning it up manually means scrolling through hundreds of records, comparing fields one by one, and hoping you do not delete the wrong one.

What This Prompt Does

Duplicate Detection

Scan records and group by matching email, domain, or name

Smart Comparison

Compare field completeness and activity to pick the primary record

Safe Deletion

Only delete after presenting evidence and getting explicit confirmation

Audit Trail

Create notes documenting every cleanup decision for accountability

The Prompt

The Prompt

Task

Clean up duplicate and stale records in Attio CRM. Use @Attio/List RecordsName it "Attio/List Records" and call it with @Attio/List Records to pull all records from a given object, @Attio/Search RecordsName it "Attio/Search Records" and call it with @Attio/Search Records to find potential duplicates by email domain or company name, compare matched records to confirm duplicates, log findings using @Attio/Create NoteName it "Attio/Create Note" and call it with @Attio/Create Note, and flag or delete confirmed duplicates using @Attio/Delete Record (only with user confirmation).

Example: Scan my Attio contacts for duplicates by email domain and show me what you find before deleting anything.

Input

The user will provide:

  1. The object type to clean up (e.g., "People", "Companies", "Deals")
  2. The matching criteria (e.g., "same email domain", "same company name", "similar names")
  3. Optional: action preference (report only, flag, or delete with confirmation)
  4. Optional: scope filter (e.g., "only contacts added in the last 6 months")

Example: "Find duplicate companies in Attio by domain name" or "Clean up contacts with the same email address"

Context

What to Look For

Exact Duplicates:

  • Same email address on multiple contact records
  • Same domain on multiple company records
  • Identical names with different capitalization or spacing

Near Duplicates:

  • Same person with slightly different names (e.g., "Bob Smith" vs "Robert Smith")
  • Same company with different formats (e.g., "Acme Inc" vs "Acme, Inc." vs "Acme")
  • Contacts at the same company with overlapping roles

Data Quality Issues:

  • Records with no email or phone number
  • Companies with no contacts linked
  • Records with placeholder or test data
  • Stale records with no activity in 6+ months

Cleanup Strategy

  1. List all records of the target object type
  2. Group records by matching criteria (domain, email, name)
  3. For each group, compare field completeness and last activity
  4. Identify the "primary" record (most complete, most recent activity)
  5. Log findings as a note on the primary record
  6. Present duplicates to the user for confirmation before deletion
  7. Delete confirmed duplicates only after explicit approval

Safety Rules

  • NEVER delete records without explicit user confirmation
  • Always present the full comparison before proposing deletion
  • Preserve the most complete record as the primary
  • Log every deletion decision as a note for audit purposes
  • Flag uncertain matches for manual review instead of auto-deleting
  • Count and report how many records were reviewed vs. flagged vs. deleted

Output

CRM Cleanup Report:

Object Scanned: [People / Companies / Deals] Total Records Reviewed: [count] Duplicate Groups Found: [count] Records Flagged for Deletion: [count]


Confirmed Duplicates:

| Group | Primary Record | Duplicate(s) | Match Type | Confidence | |-------|---------------|-------------|------------|------------| | 1 | Jane Smith (jane@acmeName it "acme" and call it with @acme.com) | J. Smith (jane@acmeName it "acme" and call it with @acme.com) | Exact email | High | | 2 | Acme Inc (acme.com) | Acme, Inc. (acme.com) | Same domain | High | | 3 | Bob Johnson | Robert Johnson | Similar name | Medium |


Comparison Detail (Group 1):

| Field | Primary Record | Duplicate Record | |-------|---------------|-----------------| | Name | Jane Smith | J. Smith | | Email | jane@acmeName it "acme" and call it with @acme.com | jane@acmeName it "acme" and call it with @acme.com | | Phone | +1-555-0123 | (empty) | | Last Activity | 2 days ago | 3 months ago | | Notes | 5 notes | 0 notes | | Recommendation | Keep | Delete (less complete) |


Uncertain Matches (Manual Review Needed):

| Record 1 | Record 2 | Reason for Uncertainty | |----------|----------|----------------------| | [Name] | [Name] | Different emails, similar names |


Actions Taken:

  • [X] records deleted (after user confirmation)
  • [Y] notes created documenting cleanup decisions
  • [Z] records flagged for manual review

Data Quality Summary:

  • Records with no email: [count]
  • Records with no activity in 6+ months: [count]
  • Companies with no linked contacts: [count]

Next Steps:

  1. Review [X] uncertain matches manually
  2. Merge notes from deleted records if needed
  3. Schedule monthly cleanup to prevent re-accumulation

Example Usage

Try asking:

  • "Find duplicate contacts in Attio with the same email and show me before deleting"
  • "Scan for duplicate companies by domain name and flag the ones with less data"
  • "How many stale records with no activity in 6 months do I have in Attio?"