Skip to main content
PageTech Solutions Limited logo Turning Complex Problems Into Confident Technology
  • Services
  • About
  • Testimonials
  • Portfolio
  • FAQ
  • Pricing
  • Availability
  • Contact
  1. Home
  2. Portfolio
  3. Contact Identity Resolution & Enrichment

Case study

Contact Identity Resolution & Enrichment

Duplicate enquiries resolved into one canonical contact — matched, enriched, and synced to Microsoft 365.

C#Jaro-WinklerAzure SQLMicrosoft Graph

Read this case study on its own page

Challenge

The same prospect gets in touch twice — from a different device, a different email address, a slightly different company name — and appears as two unrelated contacts. Manual de-duplication doesn't scale, attribution is lost, and follow-up either duplicates itself or misses the earlier conversation.

Approach

A five-stage pipeline. Ingest: enquiry and booking submissions are captured as a fire-and-forget step, so resolution never slows down the visitor's response. Match: exact identifiers first, then name blocking to discard implausible candidates, then a string-similarity score — a high score merges automatically, a middle band is queued for a human decision, and nothing ambiguous is ever merged or discarded silently. Write: confirmed matches merge into one canonical record with field-level audit on every change. Enrich: unresolved contacts are sent overnight to a people-enrichment provider, with retry and back-off. Sync: merged and enriched contacts flow both ways with Microsoft 365 contacts, with last-writer-wins conflict resolution. A dedicated database with versioned migrations holds contacts, identifiers, source links, events, enrichment jobs and the full merge history.

Outcome

  • Duplicate submissions resolved into one record automatically, across devices, addresses and company-name variants
  • Ambiguous matches surfaced for review rather than guessed
  • Every merge and field change traceable
  • Records enriched overnight and available in Outlook and Teams without manual research
  • No latency added to the contact form

Where judgement mattered

  • A human-review band instead of a single threshold — precision matters more than automation rate for customer records
  • Resolve identity before anything downstream acts on a contact
  • Keep the user-facing path fast; do the clever work asynchronously

Technology stack

C# / .NET 10 · Azure Functions · Azure SQL with versioned migrations · Jaro-Winkler similarity · people-enrichment API with retry policies · Microsoft Graph (Exchange contacts)

Book a free 20-minute consultation Back to the portfolio

© 2026 PageTech Solutions Limited. All rights reserved.

Company no. 17014904

VAT no. 514295790

Registered office: Belmont Suite, Paragon Business Park, Chorley New Road, Bolton, Lancashire, BL6 6HG

ICO registration no. ZC179729

I use Microsoft Clarity to improve this site's usability, operated on the basis of legitimate interest. See my privacy policy for details.

Visa Mastercard American Express PayPal

Contact Hours

Monday 09:00–12:00, 13:00–17:00
Tuesday 09:00–12:00, 13:00–17:00
Wednesday 09:00–12:00, 13:00–17:00
Thursday 09:00–12:00, 13:00–17:00
Friday 09:00–12:00, 13:00–17:00
Saturday Closed
Sunday Closed
UK time (GMT/BST)

Phone: 01264 354354

ContactTestimonialsPortfolioAvailabilityPrivacyTermsAccessibilitySite mapBook a free 20-minute consultationLinkedInX (Twitter)Bluesky