CRM Duplicate Cleanup

Overview
Cleans up a CRM by merging duplicate contacts - the same person entered twice under name variants like Bob and Robert. Signs in, switches the contact list to its duplicates view, and merges the first remaining pair until none are left, keeping the primary record and folding each variant into it. Writes a before-and-after report. The "your CRM cleaned itself while you slept" demo.
CRM Duplicate Cleanup
Every CRM rots the same way: the same customer gets entered twice. Bob Smith and Robert Smith. One with a phone number, one with a company. Sales works off whichever they happened to open, deals get double-counted, and nobody has an afternoon spare to sit and merge them by hand.
This flow does the merging. It finds the duplicate pairs the CRM has already grouped, and merges each one into a single clean record — the tedious housekeeping that never makes it to the top of anyone's list.
It runs against Zapspot, a fictional CRM used for training. The data is entirely synthetic.
What it produces
crm-cleanup.csv in your home folder — the before-and-after: how many duplicate pairs were merged
and how many remain. On the seeded CRM that is 12 pairs merged, 0 left.
How it works
1. Open the duplicates view
Sign in and switch the contact list to its duplicates view. The CRM has already grouped the likely duplicate pairs — same person, name variants — so the robot doesn't have to guess who is who; it works through the pairs the CRM surfaces.
2. Merge every pair
Merging a pair removes it from the list, which would break a fixed loop counter. So instead the robot keeps merging the first remaining pair and re-checks, until there are none left. Each merge opens the side-by-side picker and confirms, keeping the primary record and folding the variant into it.
This loop-until-empty shape is worth remembering for any "work the list until it's clear" job where acting on an item removes it.
3. Report
The report is the proof: pairs merged, pairs remaining. Run it overnight and the CRM is clean by morning.
Running it
Ready to run as-is. It signs in with the published training credentials
(jonas.weber@globex.example), which are not secret. Real system credentials belong in the
Robomotion Vault, never in a flow.
More web automation templates
See all 16 →- Bank ReconciliationTakes the payments and receipts the ERP could not reconcile and confirms each one against the real bank statement. It pulls the ERP's flagged paid-bill exceptions and open invoices awaiting cash, then signs in to the bank, searches the operating account by reference and reads what actually settled - quantifying the four ways money and ledger drift apart: a missing payment, a transposed amount, a double payment and unapplied cash. Writes a reconciliation CSV. The story is evidence: the ledger raises the question, the bank statement answers it, and every discrepancy comes out with a number attached.
- Logistics Exception CenterBuilds one worklist of every active delivery exception from the carrier, then dedupes it against the systems that may already be handling it - the mailbox that was notified, and the help desk where a ticket may already exist. Joining the three on the tracking number tells the robot which exceptions were mailed, which already have a ticket, and which nobody has picked up yet. Writes a consolidated exception CSV. The story is consolidation: three systems each hold part of the picture, and the robot joins them so a stuck shipment is neither missed nor double-worked.
- Monday Morning BriefingOne robot, every system, the whole week's work on a single page. It signs in to the CRM, the mailbox, the ERP, the carrier and the help desk in turn, reads the one number that matters from each - duplicate contacts, invoices to post, ledger exceptions, stuck shipments and refund requests - and writes a consolidated briefing with a total across all five. The story is reach: the back-office queues a team would open one browser tab at a time, gathered into one report before anyone has had coffee.
- E-Invoice Portal HarvestDownloads every e-invoice for a tax period from a government portal and builds an index spreadsheet of what was collected. Signs in with a one-time code, walks the paged register until the portal says there are no more pages, then opens each document to read its government reference number and pull down both the XML and the PDF. Every download is gated behind a confirmation dialog and an "I am not a robot" checkbox.
- Friday Payment RunPrepares a weekly vendor payment run in the ERP. Signs in, proposes every bill due within seven days and confirms the run, then separately opens the bills list, filters to the blocked bills the run left out, and reports each one with the reason it is on hold - a pending goods receipt, a quantity or price mismatch against the purchase order, or a missing PO reference. Writes a CSV of what will be paid and what will not.
- Invoice Inbox to LedgerReads vendor-invoice e-mails out of the mailbox and posts each one as a bill in the ERP. It reads the vendor, reference, gross and purchase-order number from each message, derives the net, and keys a new bill - handling the two controls that fire mid-batch: a duplicate reference (cancelled rather than paid twice) and a failed 3-way match against the purchase order (posted but blocked). Writes a posting report. The story is straight-through processing with judgment: the clean invoices post themselves, and the two that should not go through are caught and reported.