Mule · big job

CRM Data Cleanup (CSV)

Paste your messy contact export and get back a clean, deduplicated, import-ready CSV with a full change log.

What you get: A Markdown report with (1) a cleanup summary, (2) the deduplication rules applied, shown for your approval, plus a list of possible duplicates held for your review, (3) the full cleaned CSV in a copy-ready block, (4) a change log of every substantive edit, and (5) a list of records needing human att Price: $49 flat. Time: usually ready in minutes. Done by AI; you review it, with one free change.

We're not taking orders yet. Join the waitlist and we'll email you once when we open.

Real example

This is an actual result our AI made in a test run, from sample details. Yours is made from your details.

Show the example

CRM Data Cleanup: Contacts Export (HubSpot)

Summary

  • Input: 11 data rows, comma-delimited, with a header row. Every row had the expected 11 fields, and nothing appears cut off.
  • Output: 9 rows. Two pairs were merged because they shared the same email. No rows were deleted.
  • Form answers: The lines after the CSV (CRM, default country, cleanup rules) were read as your preferences, not as contact data.
  • Your rules applied:
    • Merged on exact email only, after trimming and lowercasing.
    • Conflicts resolved in favor of the record with the newest last_contacted.
    • Dates converted to YYYY-MM-DD.
    • Notes left exactly as written.
    • Test data flagged.
  • Date assumption: Every unambiguous date in the column is month-first (02/15, 5/20, 3/18, 2/28, 4/30), and your default country is the US. So I read all dates as MM/DD/YYYY. Row 11 is still flagged, because it's a UK contact and could be day-first.
  • Notes and merging: Keeping the newest values and leaving notes unchanged means one merge would drop a note. I kept the newest note verbatim and listed the other one below, so nothing is lost (see Merges).
  • Test data: Row 9 is kept but flagged. I left its values untouched (except the date) so it's easy to spot. I recommend deleting it before import.
  • Merged row placement: Each merged row sits at the position of its earliest original row.

Cleaned CSV (import-ready)

first_name,last_name,email,phone,company,title,city,state,country,last_contacted,notes
John,Smith,john.smith@acme.com,+14155550134,Acme Inc,VP of Sales,San Francisco,CA,United States,2024-05-20,Asked for pricing
Maria,de la Cruz,maria.delacruz@brightpath.io,+14155550199,BrightPath,Head of Operations,Oakland,CA,United States,2024-04-30,Renewal in Q3
Priya,Patel,priya.patel@gmail.com,+14155550172,Freelance,Consultant,San Jose,CA,United States,2024-01-09,
Kevin,O'Brien,kevin@northwind,+12125550101,Northwind Traders,Buyer,New York,NY,United States,2024-04-02,email bounced?
Sarah,Lee,,+16465550144,Northwind Traders,Procurement Manager,New York,NY,United States,2023-12-01,
Sarah,Lee,slee@northwindtraders.com,,Northwind Traders,Procurement Mgr,NYC,NY,United States,2024-03-18,
Tom,Nguyen,tom.nguyen@greenleaf.co,+15035550110 ext 22,GreenLeaf Co.,Owner,Portland,OR,United States,2024-02-28,"Wants demo, call after 3pm"
test,test,test@test.com,555,test,test,test,test,test,2020-01-01,
DeShawn,Williams,deshawn.w@ironclad-hq.com,+442079460958,Ironclad HQ,CTO,London,,United Kingdom,2024-03-04,

Merges (Tier 1: same email, auto-merged)

Merge A: Rows 1 + 3, john.smith@acme.com

  • Base record: Row 1, the most complete (11 of 11 fields filled).
  • Newest record: Row 3 (2024-05-20), which wins all conflicts.
Field Row 1 (normalized) Row 3 (normalized) Kept
phone +14155550134 (blank) +14155550134 (Row 1; no conflict)
title VP Sales VP of Sales VP of Sales (newer)
last_contacted 2024-03-04 2024-05-20 2024-05-20 (newer)
notes Met at SaaStr Asked for pricing Asked for pricing (newer)

⚠️ Dropped note (verbatim): Met at SaaStr (from Row 1). You may want to add it back as a HubSpot note. You can also use your free change request to have both notes kept, for example Asked for pricing | Met at SaaStr.

All other fields matched once normalized (name, company, city, state, country).

Merge B: Rows 2 + 10, maria.delacruz@brightpath.io

  • Base record: Row 10, the most complete and also the newest (2024-04-30).
Field Row 2 (normalized) Row 10 (normalized) Kept
title Head of Ops Head of Operations Head of Operations (newer)
country (blank) United States United States
last_contacted 2024-02-15 2024-04-30 2024-04-30 (newer)
notes (blank) Renewal in Q3 Renewal in Q3

Both phone numbers normalized to the same value, +14155550199. No notes were lost.

Possible duplicates (Tier 2: not merged, needs your decision)

Rows Why they look related Why not merged
6 and 7 (Sarah Lee) Same name, company, city area, and similar title (Procurement Manager / Procurement Mgr) Row 6 has no email, so they don't share an email (your rule).

If these are the same person, merging would give one record with both the phone (Row 6) and the email (Row 7). Use your free change request to confirm and I'll merge them.

Flags for review

Row Issue What I did
5 Email kevin@northwind is invalid (no domain ending like .com). The notes also say "email bounced?" Kept as-is and flagged. I didn't guess the domain. HubSpot may reject this email on import.
6 Email was N/A (placeholder) Blanked. HubSpot can't deduplicate this contact by email.
7 City NYC is an abbreviation Left unchanged (casing-only rule). Change to "New York" if you prefer.
9 Looks like test data: "test" in every field, test@test.com, phone 555 (too few digits) Kept, untouched except the date. Recommend deleting before import.
11 Date 03/04/2024 is ambiguous, and this is a UK contact Converted as month-first: 2024-03-04. If it's day-first, it should be 2024-04-03.
11 No state/region Left blank (not needed for the UK).
8 Phone extension Formatted as +15035550110 ext 22. Check how HubSpot displays it after import.

Change log (row by row)

Row Field Before After Rule
1 first_name john John Proper case
1 last_name SMITH Smith Trim, proper case
1 email John.Smith@Acme.com john.smith@acme.com Lowercase
1 phone (415) 555-0134 +14155550134 E.164 (US default)
1 company ACME INC Acme Inc Casing (suffix kept)
1 title vp sales VP Sales Casing
1 city san francisco San Francisco Proper case
1 state California CA 2-letter code
1

Questions

How does the crm data cleanup (csv) work?

You answer a few questions, pay $49, and an AI worker does the job. The result appears on your private page, usually within minutes.

Can I get changes?

Yes. Every job includes one free change request: tell the donkey what to fix and it redoes the job with your notes.

Is it really done by AI?

Yes, fully. No human writes it. AI can make mistakes, so please review the result before you rely on it.

What happens to my information?

It is used only to do your job, is never used to train AI models, and is deleted after 30 days.

What if it fails?

Failed jobs are retried once, then refunded automatically.

Need something different?

Can't find it? Describe anything.

Our AI checks it's something we can do safely, then shows you exactly what you'll get and a flat price. Nothing is charged until you order.

More in Sales