Our data is a mess. Is it too messy to use AI?
Almost certainly not. Missing fields, inconsistent naming and duplicate records are normal and largely workable — AI is unusually good at reading unstructured mess. What genuinely blocks projects is unreliable identity: no consistent way to tell that a call, a lead and a job belong to the same customer. Fix the keys, tolerate the rest, and measure your match rate honestly rather than hiding it.
Two different kinds of mess
Field-level mess is cosmetic from an integration standpoint: technicians typing service descriptions inconsistently, blank fields, five spellings of the same brand of equipment. Language models handle this well, and normalizing it is a solvable, bounded task.
Key-level mess is structural. If your phone system records a call and your operational system records a job, and there is no reliable identifier tying them together, then no model can join them. It is not an intelligence problem; the information required simply is not present.
The diagnostic to run before anything else
Take last month. Pull one hundred calls that resulted in booked work. For each, try to find the corresponding job record using only data that exists in both systems — phone number, name, address, timestamp. Count how many you can match with confidence.
The resulting rate tells you what any integration can deliver. A high rate means you are ready. A low rate points directly at the fix — usually a missing tracked number, a booking process that skips source capture, or customers being created fresh each visit instead of matched. Those are process fixes worth making regardless of AI.
Things worth cleaning up first
- Duplicate customer records. Deduplicate on phone plus service address before building reports on top, or every metric will be split across twins.
- Unrecorded lead source. If the booking screen lets staff skip the source field, it will be skipped. Make it required or derive it from a tracked number instead of asking.
- Untracked phone numbers. Any published number without call tracking is a permanent blind spot in marketing reporting.
- Statuses used inconsistently. If "complete" means three different things by branch, revenue comparisons across branches will be wrong in ways nobody notices.
Report the gaps rather than filling them silently
The temptation with unmatched records is to distribute them proportionally so the numbers look tidy. Resist it. A report that says a portion of revenue could not be attributed is trustworthy; one that quietly assigns it is not, and the first time someone catches it the whole system loses credibility.
Good revenue reporting shows its own match rate as a standing metric. Watching that number improve is often the clearest early evidence that the integration is working.
Topics: data quality · identity resolution · prerequisites · matching
Have a version of this question about your own business?
The useful answer usually depends on which systems you run and how they're connected. That's a conversation, not a blog post.