A brokerage owner sits down on a Tuesday morning, opens her CRM, and searches for buyers who are actively looking in a specific price range with a closing window inside 90 days. She gets back 8,000 results. The CRM has no idea who is serious and who filled out a form two years ago for a free market report and never responded again.
This is the most common CRM problem Real Estate AI Group audits: a database that is large but undifferentiated. The contacts are there. The history is there, buried in notes and call logs. But there is no structured way to ask the system a useful question.
Why default CRM fields are not enough
Most CRMs ship with a handful of lead-status options: new, active, under contract, closed, dead. Some add a simple hot/warm/cold tag. These buckets made sense when agents were working 200 contacts by hand. At 8,000, they break down.
Say a team gets 400 new leads per month from a mix of paid search, open houses, and referrals. The open-house leads tend to be much closer to a decision than a cold web form fill. But if both get tagged "active" and dropped into the same drip campaign, an agent calling the list has no idea who to prioritize. She ends up calling alphabetically or not at all.
The data to fix this already exists in most CRMs — lead source, days since last contact, number of listing views, whether the person attended a showing — it is just not surfaced in any actionable way.
Building the segmentation layer
The fix is a custom segmentation layer built on top of the existing CRM. For a brokerage running Follow Up Boss, that might mean a set of custom fields that capture: lead source category (paid, referral, open house, inbound call), last meaningful engagement date, estimated timeline to purchase or sale, and a calculated intent score based on activity signals.
The intent score is not magic. It is a simple rule set: a contact who has viewed more than five listings in the last 30 days and responded to at least one text scores higher than one who has not opened an email in six months. Those rules get built as automations inside the CRM or as a lightweight integration that writes the score back to a custom field on a nightly sync.
Once those fields exist, the filter that the brokerage owner wanted on Tuesday morning takes about ten seconds to run. Show me everyone with an intent score above a threshold, a timeline under 90 days, and no agent outreach in the last seven days. That is a calling list an agent can actually use.
What breaks without a data audit first
The temptation is to build the scoring system first and clean the data later. That approach fails reliably. If the lead source field has been populated inconsistently — sometimes "Zillow," sometimes "zillow.com," sometimes left blank — the segmentation logic produces garbage. A contact who came in from paid search gets filed under "unknown source" and drops off every filter.
An audit before building is the only way to know what you are working with. Typically that means pulling a data export, checking field completeness, identifying duplicate records, and standardizing the values that matter most. It takes a few days of focused work but it determines whether the whole system functions or quietly misfires for months.
For brokerages on kvCORE or Chime, the audit also catches another common problem: contacts who were imported during a platform migration and never properly tagged. They sit in the database with no source, no stage, and no assigned agent. A scoring system has nothing to work with on those records until someone decides what they actually represent.
Where to start
Pull a report of your CRM contacts sorted by last activity date. Look at the bottom of the list — the contacts with no activity in over 12 months. Decide whether they belong in an active database at all, or whether they should be moved to a suppression list so they stop diluting every filter and report you run. That single decision, applied consistently, often cuts a bloated database by 20 to 30 percent and makes everything downstream more reliable. Once you can see the real active population clearly, building segmentation on top of it becomes straightforward.