A commercial real estate brokerage had built a database of 4,000+ properties but lacked contact information for property owners. Sales reps faced hours of manual research per property. The existing data was incorrect, outdated, and riddled with duplicates - wrong phone numbers, mismatched owner names, and records of owners who had sold years prior. Every new lead added to the problem, creating research rabbit holes that consumed selling time. They needed better data that stayed clean without becoming a full-time job. Most businesses don't realize CRM data quickly deteriorates when properties have high owner turnover.
The Problem: A Database That Cost More Time Than It Created
Sales reps had addresses of thousands of properties that would make great deals. But addresses don't answer the phone.
For every property address, there was no contact information for owners. Reps spent mornings researching owners to gather contact details for sales calls. They'd get to sell in the afternoon if they were lucky.
The database was problematic. Duplicate properties and poor-quality contact information plagued the system. The team attempted updates, but bad records stuck around longer than current information. In many cases the database contained records of previous owners who had sold the property two years prior.
Reps would research contacts, add them to the CRM, call to set up a meeting, and discover the contact was unavailable. Emails would bounce due to incorrect addresses. Sometimes they'd add an owner only to find out years later the owner had sold the property. Bad data multiplied faster than good.
The operational overhead was too high. As properties increased, time spent researching and adding data ate into selling time. As contacts increased, duplicates grew exponentially. More outreach meant more noise from wrong numbers and invalid addresses.
The solution required two things: 1) Automatically enrich existing data so missing pieces get filled in by computer without human intervention. 2) Quality checks to ensure bad data doesn't enter the system and gets flagged before causing damage.
Either let sales people gather information when they could be selling, or build a system that automatically brings them the right information. The question is how long teams will let their sales people be stuck in spreadsheet archaeology.
Why Manual Enrichment Doesn't Scale
Most teams approach data enrichment as a one-off project - hire a VA to scrape publicly available data, purchase a data append from a vendor to complete missing information. For a couple months the database looks great. Then things rot. People change jobs. Phones disconnect. Email addresses expire. Enrichment work done in January is stale by March and nearly useless by June.
On average people hold a job for 18 months. Phone numbers and email addresses of purchased and internally created contact records change within six months to a year.
The brokerage had been down this path before. Every manual enrichment process initially looked great but descended into disarray after a few weeks.
Manual processes also have problems maintaining deduplication rules. A rep adds a contact with a mobile phone number; three months later another rep adds the same contact with a work email address. Both records are stored and neither gives a complete view. The result is a junk drawer of poor-quality data.
For every new property the brokerage researched, it created a massive new research project. Growth needed to scale headcount faster than was possible when already at the margin.
The brokerage needed a system that could ongoing enrich and maintain data quality. Flagging bad email addresses before they bounce, disconnected numbers so reps don't waste time dialing, removing incorrect owner contacts when call dispositions show mistakes, and preventing duplicates at the point of data entry rather than after they pollute the database.
Enrichment isn't a project. It's infrastructure. And infrastructure needs to run itself.
What Was Built: A Self-Healing Enrichment Engine
The service monitors the database for property updates and performs a skip-trace to the updated property address to determine the owner. Then it validates contact information retrieved in the skip-trace - email addresses and phone numbers - before adding new information to the CRM.
It filters out garbage.
The matching logic is significantly smarter than many enrichment services. Enrichment is done before CRM data is updated and the system checks for existing duplicate contacts and companies with duplicate email and phone numbers prior to writing new records.
When the primary source doesn't contain enough information about an owner (a name but no phone number), the system automatically uses secondary enrichment data providers to populate the record. All of this is done automatically and transparently.
Each invalid email and phone number is stored as a custom object of type "Invalid Email" or "Invalid Phone" as a property of the corresponding contact. When enriching that contact, the system skips any already determined invalid and uses validation results ("deliverable," "invalid," "unverified," "unknown owner," "Line Type - Mobile") as contact properties.
When a rep marks a number as disconnected or wrong owner during a call, the system removes it from the contact record and flags the property for re-enrichment. No manual intervention needed. The bad data disappears, and the system knows to try again.
A weekly job goes through all owner records with missing phone numbers. It enriches them and updates contact information if required. Data for such enrichment is updated monthly by data providers.
Webhook endpoints allow the CRM to trigger enrichment. Flip a boolean property and enrichment fires - no imports and no exports. Data just gets clean.
The Result: A Database That Maintains Itself
The property record is filled with information for the sales rep. All they have to do is pick up the phone and send an email.
Automated quality control for invalidation is a huge win. No more discovering weeks later that sales reps had been working with bad data. The system automatically checks phone numbers for disconnection and verifies email addresses for validity before they become problems. The system removes duplicate records during the initial data pull. Disconnected numbers marked "wrong owner" by reps in call notes are automatically removed from circulation by the cleanup job.
The system learns.
The workflow was built with custom objects to track: Invalid Email address - tracks emails that fail validation or bounce during a send. Phone field - tracks validation status. Call dispositions - tracks why a call was disconnected (wrong owner) and rep notes. These are used by the cleanup job to remove the contact from circulation.
By having audit trails embedded throughout the workflow for the Invalid Email object, the phone field, and call dispositions, the system created a database that grows without decay. New properties added to the system go through enrichment automatically and all contacts for the new property are attached. Then weekly all existing records go through validation and database scrub.
The sales team can connect with property owners instead of expending time trying to identify a decision maker for a lead that's gone stale. They no longer have conversations about numbers disconnected for six months. They avoid email addresses that bounce and negatively impact deliverability.
New properties get added and the enrichment process automatically handles new data for all sales professionals at the brokerage who can then build relationships with decision makers. All people at the brokerage can continue being great at prospecting and closing deals instead of being researchers trying to find building owners.
The Value: Prospecting That Scales Without the Overhead
Return on investment increased because the team connected with real people as opposed to hitting disconnected phone numbers or sending emails to non-existing addresses. Sales people spend quality time having quality sales conversations instead of chasing leads that never existed.
Quality control processes converted a rapidly decaying database into a highly valued sales asset. Duplicates are caught during enrichment. Bad phone numbers are flagged during call dispositions and removed in weekly cleanup. Invalid email addresses are never added to campaigns. The audit trail of validation status and invalid records means known bad data isn't reintroduced in future enrichment runs.
Team members can safely add properties to existing contacts - whether a few thousand at a time or a handful one by one - without negatively impacting sales reps. Enrichment runs automatically, validation runs automatically to flag bad data, and cleanup jobs run on schedule to keep bad data out of outreach lists.
By removing manual research for sales reps and taking away hours of research per week per rep for hundreds of properties, the added properties enable them to focus on building relationships and closing deals.
No manual enrichment equals direct productivity gain. No wasted time on research and outreach to bad contacts. No scaling ops in proportion to database size. Brokerage prospecting volume goes up while the database is high quality and growing.
And sales keeps moving.
Gable Innovation are technology specialists helping growing businesses choose and properly implement the best CRM, AI & automation software. Organizations can have their current database of customers and potential customers assessed, discuss options for data enrichment of that CRM, and evaluate automation for their specific sales process. A 30 minute no cost / no obligation meeting to discuss further is available at gableinnovation.com.
We help growing businesses implement CRM, build custom software, and deploy AI tools that actually work.