# Attio CRM Data Cleanup

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

Source: https://cotera.co/solutions/ops/attio-crm-data-cleanup

---

- **Team:** Operations
- **Tools:** Attio
- **Difficulty:** advanced
- **Setup time:** 15 min
- **Time saved:** 2 hrs/week

## How it works
1. **Duplicate Detection** — Scan records and group by matching email, domain, or name
2. **Smart Comparison** — Compare field completeness and activity to pick the primary record
3. **Safe Deletion** — Only delete after presenting evidence and getting explicit confirmation
4. **Audit Trail** — Create notes documenting every cleanup decision for accountability

## Example requests
- 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?

## Prompt

```markdown
## Task

Clean up duplicate and stale records in Attio CRM. Use @Attio/List Records to pull all records from a given object, @Attio/Search Records to find potential duplicates by email domain or company name, compare matched records to confirm duplicates, log findings using @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@acme.com) | J. Smith (jane@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@acme.com | jane@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
```

## Related reading
- [CRM Data Cleanup: How AI Finds the Duplicates You Missed](https://cotera.co/articles/crm-data-cleanup-ai.md)
- [Contact Enrichment Tools in 2026: What Works, What's Hype, and What We Actually Use](https://cotera.co/articles/contact-enrichment-tools-guide.md)

