Organization-level identity lifted from a small minority to roughly half

The company runs a hybrid self-serve and sales-led motion, and a single customer existed simultaneously as an organization in the product database, a company in the CRM, and a customer in each of two billing systems. Nothing joined reliably.
The first deliverable was a coverage audit across the foundational systems expressed as blunt percentages, not as a maturity opinion. Person-level identity, product user to CRM contact, was effectively solved.
A tiered match ladder: exact ID match, exact email match, normalized or fuzzy email, company domain plus name heuristic, and a manual review queue as the terminal tier. Phase one shipped only the deterministic tiers, so every match in production could be explained to a sceptical finance stakeholder in one sentence.
Deriving the email domain from billing invoices and matching it against product user email domains recovered a large slice of the unmatched population. The exclusion list is what makes this safe rather than catastrophic: free and consumer mail providers and the company's own internal domains are stripped up front.
Where a domain maps to exactly one organization, the match is unambiguous and auto-accepted. Where it maps to more than one, it goes into an ambiguous bucket for human confirmation rather than being resolved by a tiebreak rule.
The same stitch had to be rebuilt against a second billing system, which would have orphaned the work if the method had been built around one vendor's schema. Because it was not, the rebuild took days.
Billing data landed first as a bulk snapshot load to unblock analysis, then moved to a change-data-capture pipeline for incremental ingestion. The warehouse model was kept in star schema so the new source slotted into the existing semantic layer rather than forking it, the migration added a source, not a second data model.
The most important intervention on this project was commercial rather than technical. Nobody had agreed what error rate was acceptable, which means 'improve the matching' has no finish line and the person consuming the number can reject it at any accuracy.
Organization-level identity lifted from a small minority to roughly half
Direct-ID linkage on the billing side started as a small minority of customers; the domain-match pass took it to roughly half on unambiguous matches alone, with ambiguous and unmatchable populations separated so the confidence of every row is visible rather than averaged away.



7 steps
An AI-generated, unbranded executive brief the buyer's champion can circulate internally
Built and in rollout
CPQ


7 steps
Auditing a Salesforce CPQ Nobody Enjoyed Using, Then Rebuilding the Quote Page Role by Role
A ~300-hour remediation plan with real prerequisites
Contract management

7 steps
Closing the loop between the CRM and the contract lifecycle system: auto-created contracts and standing custom-agreement flagging
The integration taken from idea to deployable spec