Home · Solutions · Sales & marketing
Solution · Sales & marketingThe CRM is cleaned every night, so Monday's pipeline is worth reviewing
CRM data hygiene: duplicates, stale deals, missing fields
Nightly robots merge duplicate accounts, complete company data from official registers and flag deals nobody has touched, with each owner nudged in Teams.
Executive summary
The pipeline review starts with an argument about the data, not about the deals.
We build a nightly hygiene run on the UiPath Platform.
Reps get back the part of each week spent correcting records a rule could have corrected overnight.
the CRM itself, holding merged, completed and flagged records; the Power BI semantic model behind the hygiene score; a SharePoint change log
Business problem
Pipeline reliability
A CRM decays by design. Every account added in a hurry, every trade-show list imported without a check, every company that renames itself after a restructuring leaves a record that is almost right. Nothing breaks on the day. It accumulates, and after two or three years the database holds several versions of the same customer, deals nobody has touched since spring, and companies with no tax id and no next step.
Salespeople feel it first and work around it: two records checked before a call, an address retyped from a signature block, an opportunity re-dated because a review is coming. None of that time is recorded, which is why it survives every cost-cutting exercise. Finance feels it next, when a contract goes out under a legal name that exists in no register.
Management feels it last and worst. A forecast is a claim about the future built on records describing the past, and when those records cannot be trusted it is an opinion with decimal places. The usual answer is a cleanup project, after which the database drifts back within two quarters, because nothing changed about how the data is produced.
How it works today
The pattern below is what we find in sales teams running the same CRM for a few years.
- PersonBefore a call a rep opens the account and finds two or three records for the same customer, each with a different owner
- WaitingA missing tax id or the correct legal name waits until somebody checks a register or asks the customer again
- SystemDeals move to the next stage with no next step and no close date, because the CRM asks for neither
- PersonOn Friday the sales director exports the pipeline to Excel, strips out what looks stale and rebuilds a forecast by hand
- Risk of errorOpportunities untouched for ninety days stay in the quarter's number until someone notices, and two reps call the same group in one week
- PersonMarketing sends a campaign twice to a duplicated contact and the account manager hears about it from the customer
- WaitingA cleanup project runs once a year, and the database drifts back within two quarters
Why the current process costs more than it appears
The cost grows where nobody is looking.
- Bad data is paid for twice: once when a rep works around it, again when finance finds an invoice carrying a company name that exists in no register.
- Forecast credibility is the larger loss and never reaches a budget line. A pipeline number that cannot be defended moves the discussion off the market and onto the spreadsheet.
- Duplicate accounts split the customer view: two owners, two histories, two pricing conversations, and a customer who asks why your company does not seem to know itself.
- Annual cleanups are the most expensive way to run data quality, because what is corrected in March has drifted by September and is bought again at full price.
- Nobody records the time. Ten minutes here and half an hour there never reaches a cost line, so the expense stays invisible to the people who could fund fixing it.
Cost of inaction
The rep time is the part that can be counted, and it is not the expensive part. The expensive part is a revenue plan built on a pipeline nobody can qualify, discovered in the quarter when the gap has to be explained rather than in the quarter when it could still be closed.
There is also a structural cost. Each year the CRM drifts further from the registers, from the ERP customer master and from what the sales team believes, so every new system needing customer data starts by paying for a migration cleanup. Postponing that only raises the bill when a CRM replacement or a credit-risk project forces the question.
A plausible organisation with realistic proportions. The figures are there to be recalculated on your data; they are not a client result.
A B2B distributor of technical components, 45 salespeople in four countries, Microsoft Dynamics 365 Sales on a Microsoft 365 tenant, orders in an ERP the CRM does not talk to.
9,000 accounts and 1,300 open deals; under a strict matching rule about one account in twelve is a duplicate, under a loose one closer to one in seven; roughly a quarter of open deals carry no next step.
Data quality is a project, run once a year with an export and a spreadsheet. Between projects each rep fixes whatever blocks their own call.
Around forty minutes a week per rep on record fixing, plus the hour the sales director spends each Friday rebuilding a pipeline they are willing to present.
A nightly robot deduplicates accounts, completes company data from official registers and scores every deal against agreed rules; owners get their own short list in Microsoft Teams, and a hygiene score per team makes the data a managed number.
In the modelled case weekly fixing time falls to a few minutes of confirmations, and the board sees a pipeline built from records that pass a stated test. Illustrative figures, not a client result.
Proposed solution
We build a nightly hygiene run on the UiPath Platform. It reads yesterday's new and changed records through the CRM API, applies a rule set your sales organisation owns, and writes back only what those rules allow. An identical tax id, or an exact legal-name and address match, merges automatically; anything softer becomes a task showing both records. Every write is stored with its previous value.
Company data comes from official sources rather than a signature block. VAT numbers are checked against VIES; for Polish counterparties the robot reads legal name, address and status from KRS or CEIDG, raising material differences for a person instead of overwriting them. Deals are scored on rules that already exist informally: no activity in ninety days, no next step, no close date, too long in one stage.
The interface is Microsoft Teams, where the sales team already works. Each owner gets one message listing their own records, and uncertain merges arrive as UiPath Action Center tasks completed inside Teams. Before the Monday review, the digest and hygiene score per team land in the sales channel and refresh in Power BI. No AI is involved and none is needed: every rule is a comparison a person could check by hand.
UiPath Orchestrator time triggers, queues and audit; UiPath Integration Service connectors for Microsoft Dynamics 365 CRM, Salesforce and Microsoft Teams, plus Connector Builder; UiPath Action Center tasks completed in Microsoft Teams; Power BI reports pinned as a Teams tab
The match and merge rules and their thresholds, the enrichment mapping and overwrite policy, staleness and mandatory-field rules per stage, the nightly job and its change log, the owner nudge and escalation, the hygiene score and Monday digest
Register lookups against VIES, KRS and CEIDG through Connector Builder; Pipedrive through its REST API where that is the CRM
How the automated process works
- AutomationOvernight the robot reads new and changed accounts, contacts and deals through the Integration Service connector
- AutomationMatch rules compare tax id, legal name, domain, address and phone; certain duplicates merge, likely ones queue for a decision
- SystemMissing company data is completed from registers: VAT status from VIES, legal name and status from KRS or CEIDG
- AutomationEvery open deal is scored on activity age, next step, close date and time in stage
- PersonUncertain merges and register mismatches arrive as Action Center tasks and are resolved inside Microsoft Teams
- AutomationEach owner receives one Teams message listing only their own records, with a date by which each should be cleared
- AutomationOn Monday the pipeline digest and the hygiene score per team are posted to the sales channel and refreshed in Power BI
Human-in-the-loop model
Automation handles
- Nightly duplicate detection across accounts, contacts and open deals, merging only on evidence agreed in advance
- Completion of company data from official registers, under a policy stating which fields may be overwritten and which only proposed
- Staleness and mandatory-field checks, the owner nudge in Teams and escalation to the manager after a second miss
- The weekly hygiene score per team and owner, and the Monday pipeline digest
People decide
- Merges the rules cannot settle: one group under two legal entities, or a customer that genuinely changed its name
- Whether a quiet deal is closed, re-dated or defended; the robot asks, the owner answers
- The rules themselves: what a duplicate is, when a deal is stale, which fields are mandatory at which stage
- Anything that changes account ownership, territory or credit terms on a live customer
Before and after
Systems and integrations
We do not add technology to make an architecture look serious. Every element below has a specific job in this process.
Inputs
- Microsoft Dynamics 365 Sales accounts, contacts and open deals
- the nightly change feed from the CRM API
- the VIES, KRS and CEIDG registers
- the stage model and field rules owned by sales operations
Automation layer
- UiPath Orchestrator
- UiPath Robots
- UiPath Integration Service
- UiPath Action Center
Target systems
- the CRM itself, holding merged, completed and flagged records
- the Power BI semantic model behind the hygiene score
- a SharePoint change log
Human touchpoints: Action Center tasks in Microsoft Teams; the owner nudge in a Teams chat; the Monday digest in the sales channel; the hygiene report as a Power BI tab
Technologies used
run the nightly job on a time trigger, queue each record, retry, and log every change with its previous value
Aread and write accounts, contacts and deals through the CRM API, not its screens
Athe register lookups and any CRM without a ready connector, Pipedrive among them
Auncertain merges and register mismatches resolved without leaving Teams
Aowner nudges and the Monday pipeline digest in the sales channel
Athe hygiene score per team and owner, pinned as a tab in the sales channel
AVAT status, legal name and registry status for enrichment
BIllustrative economic model
What it is worth, with the arithmetic shown.
The unit is a rep-week, and it is a modelled one: 45 salespeople across roughly 4.33 weeks give 195 rep-weeks a month, and we assume 40 minutes in each goes on correcting records, chasing a tax id or reconciling two versions of one customer. Nothing in that came from a measurement at a client. €38 is a fully loaded hourly cost for a B2B sales role in Central Europe. The model shows selling time released, not headcount removed.
Run the numbers on your data
An illustrative estimate from your own inputs. It models released capacity; it is not a promise of savings.
Business benefits
- Reps get back the part of each week spent correcting records a rule could have corrected overnight
- The pipeline review starts from the deals, because the argument about the data was settled before anyone joined
- Duplicate accounts stop producing duplicate outreach, double-counted pipeline and split commission credit
- Company data is verified against the register instead of retyped, so contracts carry a legal name that exists
- Deals going quiet surface while they can still be rescued, not at the end of the quarter
- A new salesperson inherits a clean territory instead of a two-month personal cleanup project
The management view
- Forecasts rest on records that pass a written test, so the number can be defended without an anecdote
- Coverage and win-rate ratios stop moving because somebody deleted rows in a spreadsheet before a meeting
- Territory and account ownership stay clean, which cuts commission disputes and two reps calling the same group
- Data quality becomes a managed number per team rather than a recurring complaint with no owner
Board-level KPIs
Security and governance
The automation holds exactly the rights it needs, and not one more.
- The robot writes through a dedicated CRM service account whose permissions cover only the objects and fields in scope; no salesperson's login is borrowed
- Every automated change is stored with its previous value, the rule that produced it and a timestamp, so a merge can be explained to an auditor or unwound
- Merging is destructive in most CRMs, so automatic merges are limited to evidence classes signed off by sales operations; everything below the threshold goes to a person
- Register lookups send a company identifier and nothing else; no contact-level personal data leaves your tenant, and results are written to structured fields
- The automation tenant is provisioned in UiPath Automation Cloud's EU region; the API keys and the service-account secret it uses are held in the Orchestrator credential store, backed by Azure Key Vault where one already runs
Why now
A pipeline that cannot be qualified is usually discovered in the quarter it matters, when the options are expensive; the modelled €4,940 a month of sales time is the smaller half of the cost
Checking counterparties against public registers has become routine in Poland as e‑invoicing moves through KSeF, so a CRM that disagrees with the register now creates work in finance, not just untidiness in sales
Register APIs and CRM connectors are ordinary infrastructure today, so this needs an agreed rule set and a named owner rather than a data science project
Relevant executive roles
The pipeline behind the revenue plan rests on records that pass a written test, and the customer data used for invoicing matches the register
Reviews are about deals rather than data, and the hygiene score turns data quality into a per-team number that can be managed
CRM writes go through the API under a service account with a complete change log, replacing imports and macros built by whoever was available
Common questions and objections
This one lists only that person's records and links straight to each, so it is cleared in minutes rather than postponed. It escalates to the manager after a second miss, and the hygiene score makes each team's backlog visible, which is what changes behaviour.
It is, which is why the robot merges only on evidence you approve in advance, such as an identical tax id or an exact legal-name and address match. Everything softer becomes a task showing both records, and previous values are kept so a merge can be reversed.
Then this is the right order. Migrating duplicates and blank tax ids into a new system doubles the cleanup bill, and the matching rules move with you because they live outside the CRM.
When this is not the right solution
- A team of fewer than about fifteen sellers, where a focused afternoon each quarter is cheaper than building and owning a rule set
- The CRM is not really used: if deals live in personal spreadsheets and the CRM is filled in afterwards, cleaning it cleans the wrong thing
- Nobody owns the definitions. If the company cannot agree what a duplicate is or when a deal is stale, we start with a workshop rather than a robot
A question for the next management meeting
Is there a written data test our CRM records must pass, and how much of our open pipeline sits today on records that would fail it?
Implementation approach
What we deliver, and what we need from you to start.
We deliver
- A data audit on a CRM export: duplicates under each candidate rule, stale deals, and where fields are missing
- The match and merge rules with their certainty thresholds, agreed with sales operations and tested on your records first
- The enrichment step against VIES, KRS and CEIDG, with field mapping and a policy on what may be overwritten
- Staleness and mandatory-field rules per sales stage, with the owner nudge and manager escalation in Microsoft Teams
- The Power BI hygiene score per team and owner, and the Monday digest in the sales channel
- A pilot on one country, then rollout, with the rule set handed over in writing to its owner
We need from you
- An export of accounts, contacts and open deals, or read access to a CRM sandbox
- A named owner for the definitions of duplicate, stale, and mandatory per stage
- A service account in the CRM with write permission limited to the objects in scope
- Your sales stage model and any data rules already written down
Stages
Audit
Measure duplicates, stale deals and field gaps in your data and put a number on each
Rules
Agree matching, merging, enrichment and staleness rules with sales operations, in writing
Build
The nightly job, register lookups, Teams nudges, Action Center tasks and the Power BI score
Dry run
Every change is proposed for a period without being written, and the proposals are reviewed
Go-live
Writes enabled one rule class at a time, starting with the safest, change log watched daily
Handover
The score enters the sales cadence, rules are tuned, ownership sits with sales operations
Quick win. Effort depends on how many CRM objects are in scope, how far match rules must reach beyond the tax id, and whether duplicate and stale are already defined.
Count the spellings of your largest customer before Monday's pipeline review.
Send us an anonymised export of your accounts and open deals. You get back a duplicate count under two matching rules, the share of deals missing a next step, and a first estimate of what the fixing costs each week.
Put your account list to the testThe neighbouring process usually has the same problem
Enquiries wait for someone's Monday sort while a competitor calls the buyer on Tuesday.
View solution Legal & complianceOne customer across three brands, one consent recordA reminder goes to someone who opted out, because the objection lives in another brand's system.
View solution Sales & marketingWon deal to a running project in an hourDeals close in the CRM, then wait a week for someone to set up the customer, the project and the billing.
View solutionIndustries we deliver this in most oftenManufacturing & industryRetail & e‑commerceServices & IT