Attio CRM Data Cleanup
Find and fix duplicate records before they wreck your reporting. Scan, compare, and clean up with confidence.
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:
- The object type to clean up (e.g., "People", "Companies", "Deals")
- The matching criteria (e.g., "same email domain", "same company name", "similar names")
- Optional: action preference (report only, flag, or delete with confirmation)
- 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
- List all records of the target object type
- Group records by matching criteria (domain, email, name)
- For each group, compare field completeness and last activity
- Identify the "primary" record (most complete, most recent activity)
- Log findings as a note on the primary record
- Present duplicates to the user for confirmation before deletion
- 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:
- Review [X] uncertain matches manually
- Merge notes from deleted records if needed
- 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?"