Troubleshoot

Customer data hygiene

Duplicates, stale contacts, orphaned organizations and numbers that stopped moving.

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.

Before you start: put a recurring slot in the calendar; quarterly is enough for most catalogues of customers. Hygiene done as a project once a year is hygiene that is never done.

The five things that rot

SymptomConsequence
Duplicate companiesSplit order history, two credit limits, wrong metrics
Contacts who leftLive logins for people at other companies
Organizations with no peopleNobody to address at checkout
Blocks nobody liftedA customer who has quietly stopped ordering
Stale metrics and segmentsPricing 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.

Orders cannot be moved between organizations. Whichever record you keep, the other record's orders stay where they are. Merging is a decision about which history you are prepared to lose, which is exactly why duplicate detection is worth configuring before an import rather than after.

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

  1. Filter organizations by Delivery block — decide on every one.
  2. Filter organizations by status blocked — is the relationship actually over?
  3. Sort contacts by Last activity — block the ones who have left.
  4. Check the Rejected contact queue — anything that should be reinstated?
  5. Sort organizations by name and read for duplicates.
  6. Check Last recomputed on every rule segment.
  7. Check the companies with no customer number.
  8. Spot-check five companies with orders: do their terms and price list still match what was agreed?

Next