What was stuck
More than 220,000 contacts sat across three systems and offline lists, with 553 custom fields and CRM fees that kept rising.
What we built
Cut the schema from 553 fields to between 50 and 60.
Cleaned the live contacts and mapped the offline records into one database.
Sorted every contact by the role they play in the client's events.
Built a reusable enrichment pipeline and dashboard the team still runs.