Advanced

Attio CRM Data Cleanup

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

Works with:AttioAttio

Free to start

1,000 credits included

No credit card required

Try this agent Book a demo

Setup in 15 min · Cancel anytime

Setup time

~15 min

Time saved

2 hrs/week

Difficulty

Advanced

Tools

1 connected

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

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?

View the agent prompt

See the full instructions this agent runs on — copy, edit, or customize it

Expand

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

WHAT ARE YOU WAITING FOR?

Ready to build?

Stop duct-taping tools.

Stop writing playbooks no one follows.

Start building agents that actually do the work—and do it well.

Cotera: For people who think busywork is boring.

"This is the best product ever when it comes to shipping. Ten on ten recommended. I just can't wait to see what happens with this product."

Rebecca Blount

Director, Customer Success