Customer data hygiene
Customer data rots in predictable ways. This is the list of what goes wrong, how to find each one, and what to do about it.
The five things that rot
| Symptom | Consequence |
|---|---|
| Duplicate companies | Split order history, two credit limits, wrong metrics |
| Contacts who left | Live logins for people at other companies |
| Organizations with no people | Nobody to address at checkout |
| Blocks nobody lifted | A customer who has quietly stopped ordering |
| Stale metrics and segments | Pricing and campaigns targeting the wrong companies |
Duplicate companies
The classic case: a customer of fifteen years registers through the shop as if they were new. You now have two records, two customer numbers, two halves of the order history, and only one of them has the contract price.
Prevent it. The Refuse duplicates on setting checks fields before a
record is created: vat_id, name or customer_number for companies, email
or phone for contacts. A hit is refused and names the record that already
exists. Configure it; the default checks email and VAT ID.
Find them. Sort the organizations list by name and read for near-matches:
GmbH versus GmbH & Co. KG, with and without the Umlaut. Then filter for
companies with no customer number: a company that has ordered but has no ERP
number is very often the second file for one that has.
Fix them. Decide which record survives, normally the one with the order history and the customer number. Move the contacts to it, set the terms and price list on it, and block the loser rather than deleting it.
Contacts who left the company
People change jobs and nobody tells you. A live login for somebody who now works for your customer's competitor is a security problem.
Find them. The Contacts list has a Last activity column that flags a record as stale after 90 days. Sort by it. Cross-check against the company's order history: a contact who has never ordered and has not been touched in a year is a candidate.
Fix them. Block, do not delete. Blocking keeps the orders they placed attributed and the timeline intact. Deleting removes them from the platform identity service too. See Block a customer.
Organizations with nobody at them
A company with no contacts cannot order and has nobody for checkout to address. Usually it arrived through a customer-master import that brought companies and not people.
Find them. Open a company: the People tab shows a count. Across the base, the practical test is companies with orders but no primary contact.
Fix them. Add the people, or mark the company churned if the relationship
is genuinely over. Consider switching on the An organization must keep a
primary contact setting so the last primary cannot be removed by accident.
Blocks nobody lifted
A delivery block set during a payment dispute in March and never removed is a customer who has quietly stopped buying. Nobody complains, because they assume the shop is broken and go back to phoning your competitor.
Find them. The organizations list has a Delivery blocked counter and a filter. Anything blocked for more than a few weeks needs a decision.
Fix them. Lift it, or escalate it to a proper status change. Either way, log what you decided; see Log customer activity.
Do the same for contacts sitting in Rejected and companies sitting in
blocked. A block is a temporary state; a permanent one should be churned with
a note saying why.
Metrics and segments that stopped moving
Revenue-based rules read a local projection of what the Orders app knows rather than the orders themselves. If the projection stops refreshing, every revenue segment keeps evaluating the numbers of the day it stopped, and nothing anywhere reports an error.
Find it. Open CRM › Segments and look at Last recomputed. On a
company, the metric tiles go stale after a day. Both are also visible in the
schedule settings: Refresh customer metrics and Recompute rule segments
each have off, hourly and daily.
Fix it. Set both schedules to daily at minimum. The order matters: metrics
refresh first, segments recompute afterwards, so a revenue rule sees the numbers
of the same night. off on either one is a decision to compute by hand, and it
is almost never what somebody meant to choose.
A quarterly pass
- Filter organizations by Delivery block — decide on every one.
- Filter organizations by status
blocked— is the relationship actually over? - Sort contacts by Last activity — block the ones who have left.
- Check the Rejected contact queue — anything that should be reinstated?
- Sort organizations by name and read for duplicates.
- Check Last recomputed on every rule segment.
- Check the companies with no customer number.
- Spot-check five companies with orders: do their terms and price list still match what was agreed?
Next
- When a customer cannot order — the troubleshooting path.
- Metrics that matter — what to watch beyond hygiene.