Contact Management for Realtors: Best Practices, Deduplication, and Lifecycle Tracking
Every real estate business runs on relationships, and every relationship lives in your contact database. Yet most realtors treat their contacts like a junk drawer — names tossed in from open houses, Gmail, old spreadsheets, and referral lists with no structure, no deduplication, and no lifecycle tracking. The result is duplicate records, missed follow-ups, CASL violations, and a creeping sense that leads are slipping through the cracks. This guide covers how to build and maintain a contact database that actually works: clean imports, intelligent deduplication, lifecycle states, engagement scoring, and the compliance guardrails that keep you out of trouble.
Written by the Magnate360 Team · Updated May 2026
Why Contact Management Is the Foundation of Your Business
Ask any top-producing agent what their most valuable business asset is, and the answer is never their listing inventory or their brand. It is their database. A clean, well-maintained contact list is the engine that drives repeat business, referrals, and the kind of proactive outreach that separates top performers from everyone else.
Yet the reality for most agents is ugly. A typical agent's contact database after three years in the business contains somewhere between 500 and 2,000 records spread across Gmail contacts, phone contacts, an old CRM they stopped using, a spreadsheet from their brokerage, and a stack of open house sign-in sheets that never got entered. Within that messy pile are duplicate records, outdated phone numbers, contacts with no email, and dozens of past clients who have not heard from the agent since closing day.
The cost of this neglect is measurable. NAR data consistently shows that 64% of sellers use the same agent they used previously — but only if that agent stays in touch. Agents who lose track of past clients are handing referrals and repeat business to competitors who simply maintained the relationship. A messy database is not just an inconvenience. It is revenue left on the table.
The difference between a $100K agent and a $500K agent is rarely skill or market knowledge. It is almost always the quality of their database and the consistency of their follow-up. Contact management is not administrative overhead — it is the single highest-ROI activity in your business.
Importing Contacts: CSV, Gmail, and Other Sources
The first step in cleaning up your database is consolidating everything into one place. Most agents have contacts scattered across at least three or four sources, and the import process is where deduplication either happens proactively or becomes a problem you inherit.
CSV Import
CSV files are the universal export format — every CRM, every spreadsheet, and most brokerage systems can export contacts as CSV. The challenge is that CSV files from different sources have different column layouts. A spreadsheet from your brokerage might have columns labelled "First Name" and "Last Name," while your old CRM exports a single "Full Name" column. Your open house sign-in data might include "Phone" while your email list has "Mobile" and "Work Phone" in separate columns.
A good CRM handles this with a column mapping step during import. You upload the file, the system reads the headers, and you match each column to the corresponding field in your CRM. This takes 30 seconds and prevents data from landing in the wrong place. During this step, the system should also flag rows with missing required fields (no name, no email or phone) so you can decide whether to import them or set them aside for manual review.
Gmail Import
Gmail is the single largest source of contacts for most agents, and it is also the messiest. Your Gmail contacts include everyone you have ever emailed — clients, buyer's agents, lawyers, inspectors, your dentist, and the person who sold you a desk on Craigslist in 2019. Importing all of them into your CRM would create more noise than signal.
The best practice is to use Google OAuth to connect your Gmail account and then selectively import contacts by label or group. If you have been diligent about using Gmail labels (Clients, Leads, Buyer Agents), you can import specific groups rather than dumping everything in. If your Gmail contacts are unlabelled, consider spending 30 minutes organising them in Gmail before importing — it is faster to triage in Gmail's interface than to clean up in your CRM after the fact.
In Magnate360, Gmail import uses Google OAuth to pull contacts with their full metadata — name, email, phone, company, and notes. The import runs deduplication automatically, flagging any Gmail contacts that match existing CRM records by email, phone, or fuzzy name match before creating new records.
Other Sources
- Open house sign-in sheets: Digitise these the same day while the names and faces are fresh. Most agents lose 30-40% of open house leads simply because they wait too long to enter them.
- Brokerage CRM exports: If you are moving brokerages or upgrading CRMs, export everything as CSV and use column mapping during import.
- Phone contacts: Export from your phone as a vCard (.vcf) file and import into your CRM. Phone contacts are notoriously messy — expect a high duplicate rate.
- Social media leads: Facebook Lead Ads, Instagram DMs, and website inquiry forms should flow into your CRM automatically via webhook or API integration. Manual entry is a last resort.
Deduplication with Fuzzy Matching (Jaro-Winkler)
Duplicate contacts are the silent killer of real estate databases. They cause embarrassing double-sends (the same client receiving the same newsletter twice), fragmented communication histories (half the notes on one record, half on another), and inaccurate pipeline counts that make your business look bigger — or smaller — than it actually is.
The problem with simple exact-match deduplication is that real-world data is messy. The same person appears as "Robert Chen" on one record and "Bob Chen" on another. Their phone number is stored as "604-555-1234" in one place and "16045551234" in another. Their email is "bob@gmail.com" on the showing sign-in sheet and "robert.chen@work.com" on the listing inquiry. Exact matching catches none of these.
How Jaro-Winkler Fuzzy Matching Works
Jaro-Winkler is a string similarity algorithm designed specifically for matching person names. It calculates a score between 0 and 1 based on the number of matching characters and their relative positions. A score of 1.0 means the strings are identical. A score above 0.85 typically indicates a strong match. The "Winkler" modification gives extra weight to strings that share a common prefix — which is useful for names, since "Robert" and "Rob" share the same prefix.
In practice, a well-implemented deduplication system combines multiple matching signals:
- Name similarity (Jaro-Winkler score above 0.85)
- Phone number normalisation (strip formatting, compare digits only)
- Email domain matching (same domain + similar local part)
- Address proximity (same street address or postal code)
When two or more signals match above their respective thresholds, the system flags the pair as a potential duplicate and presents them for human review. The key word is "human review" — automated merging without confirmation is dangerous because false positives do exist. Two unrelated people named "John Smith" in Vancouver are not a duplicate, even though the name match score is 1.0.
Magnate360 runs Jaro-Winkler deduplication both during import and as a scheduled background scan. When potential duplicates are found, you see them in a side-by-side comparison view with all conflicting fields highlighted. You choose which values to keep, merge with one click, and the system creates a full audit trail of what was merged and when.
Stop sending duplicates to your clients
Magnate360 uses Jaro-Winkler fuzzy matching to catch duplicates that exact-match systems miss. Import from CSV, Gmail, or phone — duplicates are flagged before they enter your database.
Lifecycle States: Active, Dormant, Archived, and Deleted
Not every contact in your database deserves the same attention. A buyer who is actively viewing homes this week needs daily attention. A past client who closed two years ago needs a quarterly check-in and a home anniversary email. A lead who inquired once and never responded to follow-up is taking up mental space without contributing to your pipeline.
Lifecycle states solve this by giving every contact a status that reflects where they are in their relationship with you. This status determines what kind of communication they receive, how often you reach out, and whether they appear in your active views or are tucked away in the background.
| State | Who Belongs Here | Communication Cadence |
|---|---|---|
| Active | Current clients, hot leads, contacts in an active transaction | Daily to weekly, depending on transaction stage |
| Nurture | Past clients, warm leads, contacts who engaged recently but are not in a transaction | Monthly newsletters, quarterly personal check-ins, home anniversary emails |
| Dormant | Contacts with no engagement in 6+ months, leads who never responded | Quarterly at most, re-engagement campaigns |
| Archived | Contacts you want to keep for records but not actively market to | None (excluded from all campaigns and views) |
| Deleted (soft) | Contacts removed by the agent, held for 35 days before permanent deletion | None (recoverable during the 35-day window) |
The transitions between states should be partly automatic and partly manual. A contact who books a showing should automatically move from Nurture to Active. A contact who has not opened an email or clicked a link in six months should be flagged for potential demotion to Dormant. But the agent should always have the final say — automated systems cannot account for a past client who calls you once a year to chat but never interacts with emails.
Soft Delete with 35-Day Restore
Permanent deletion is terrifying in a regulated industry. If you accidentally delete a contact who was part of a transaction within the last seven years, you may have just destroyed records that BCFSA requires you to retain. Even outside of compliance, accidental deletions happen — you meant to archive a contact, not delete them, or you bulk-deleted a segment and did not realise a current client was included.
Soft delete solves this by treating deletion as a reversible action. When you delete a contact in Magnate360, the record is marked as deleted and removed from all active views, search results, and campaign targeting. But the data is retained in the database for 35 days. During that window, you can navigate to the deleted contacts view, find the record, and restore it with a single click. All associated data — communication history, showing records, journey enrolments, documents — comes back with it.
After 35 days, the record is permanently purged. This window is long enough to catch mistakes and short enough to respect privacy requests under PIPEDA, which requires organisations to delete personal information within a reasonable timeframe when requested.
Before soft delete existed, one common horror story among agents was accidentally deleting a contact spreadsheet or clearing their CRM during a migration, only to realise months later that they had lost the communication history for a deal that was now in dispute. Soft delete eliminates this category of risk entirely.
Contact Segmentation for Targeted Communication
Segmentation is the practice of grouping contacts by shared characteristics so you can send relevant messages to the right people. Without segmentation, every email you send goes to your entire list — and a newsletter about downtown Vancouver condos is irrelevant (and annoying) to a client who bought a house in Langley two years ago.
Effective real estate segmentation typically operates on these dimensions:
- Contact type: Buyer, seller, investor, renter, referral partner, buyer's agent
- Geographic interest: Neighbourhood, city, or region they are interested in or located in
- Property type: Detached, townhouse, condo, land, commercial
- Price range: Budget brackets based on stated preferences or past transactions
- Lifecycle stage: Active client, past client (0-2 years), past client (2+ years), lead, dormant
- Engagement level: High engagement (opens + clicks), moderate (opens only), low (no opens in 90 days)
- Consent status: Express CASL consent, implied consent, no consent
In Magnate360, segments are built with a visual query builder — you select conditions from dropdowns, combine them with AND/OR logic, and the system shows you a live count of matching contacts. Segments are dynamic, meaning contacts automatically enter or leave a segment as their data changes. When a lead books a showing, they automatically appear in your "Active Buyers" segment without any manual tagging.
The practical power of segmentation shows up in your email marketing. Instead of sending one generic monthly newsletter to 800 contacts, you send four targeted emails: a downtown condo market update to your urban buyers, a family-neighbourhood spotlight to your suburban buyers, a home value update to your past sellers, and a just-listed alert to contacts whose saved search criteria match a new listing. Open rates go from 15% to 40% because every recipient receives content that is relevant to them.
Engagement Scoring: Knowing Who Is Ready to Act
Not every contact in your database is equally likely to transact. Engagement scoring assigns a numerical score to each contact based on their interactions with you — email opens, link clicks, website visits, showing requests, replies, and inbound messages. The higher the score, the more engaged the contact is, and the more likely they are to be ready for a conversation about buying or selling.
A typical scoring model assigns points like this:
| Action | Points | Why It Matters |
|---|---|---|
| Opens an email | +1 | Baseline engagement — they are at least reading |
| Clicks a link in an email | +3 | Active interest — they want more detail |
| Visits a listing page | +5 | Property-level interest — high intent signal |
| Requests a showing | +15 | Active buyer behaviour — call them today |
| Replies to an email or SMS | +10 | Two-way engagement — they are ready to talk |
| No activity for 30 days | -5 | Decay prevents stale scores from misleading you |
The most important feature of engagement scoring is score decay. Without decay, a contact who was highly engaged six months ago but has gone silent still shows a high score, misleading you into thinking they are ready to act. A good scoring model subtracts points for inactivity, so scores naturally decline over time unless the contact continues engaging.
In Magnate360, engagement scores are calculated automatically from email events (via Resend webhooks), CRM activity (showing requests, form submissions), and message interactions. The dashboard surfaces your top-scoring contacts so you know exactly who to call first on Monday morning. AI recommendations can also use engagement scores as input — suggesting that you reach out to a past client whose score just spiked because they clicked three listing links in your latest newsletter.
Know which leads are ready to act
Magnate360 scores every contact based on email opens, clicks, showing requests, and replies. Your hottest leads surface automatically so you never miss a ready buyer.
Household Grouping and Relationship Mapping
Real estate transactions rarely involve a single person. A couple buying a home means two contacts with different email addresses and phone numbers who should be treated as a unit. A family selling a property might involve the homeowners, their adult children who are advising on the sale, and a family lawyer. Sending the same email to both partners in a couple — or worse, sending different information to each — is a fast way to look unprofessional.
Household grouping links related contacts so they are treated as a single unit for communication purposes. When you send a market update to a household, one email goes out — not two. When you log a phone call with one partner, the note is visible on both contact records. When you track a transaction, both partners are associated with the listing.
Beyond households, relationship mapping captures professional connections: a buyer and their mortgage broker, a seller and their lawyer, a referral partner and the clients they have sent you. These relationships inform your outreach — when a past client refers someone to you, seeing that referral connection in your CRM helps you personalise your first conversation and close the loop with a thank-you to the referrer.
CASL Consent Tracking and Compliance
Canada's Anti-Spam Legislation (CASL) is one of the strictest anti-spam laws in the world, and it applies directly to real estate marketing. Every commercial electronic message — newsletters, listing alerts, market updates, holiday greetings — requires either express or implied consent from the recipient before you can send it. Violations carry penalties of up to $10 million per occurrence for organisations, and individuals can be personally liable for up to $1 million.
For realtors, the practical implications are:
- Express consent is required for marketing emails to contacts who are not current or recent clients. This means they actively opted in — checked a box, signed a form, or explicitly asked to receive your emails.
- Implied consent exists when you have an existing business relationship (you completed a transaction with them within the past two years) or when they made an inquiry within the past six months.
- Implied consent expires. Two years after the last transaction or six months after the last inquiry, implied consent lapses. If you have not obtained express consent by then, you must stop sending marketing emails to that contact.
- Every email must include an unsubscribe mechanism that works within 10 business days, your physical business address, and clear identification of who is sending the message.
The most dangerous scenario for agents is the one where implied consent expires silently. You closed a deal with a client two years ago, and you have been sending them monthly newsletters ever since. On the two-year anniversary, your implied consent expires — but nothing in your workflow alerts you to this. You keep sending, and now every email is a potential CASL violation.
Magnate360 tracks consent status on every contact record with three fields: consent type (express, implied, or none), consent date, and consent expiry date. For implied consent, the system automatically calculates the expiry based on the last transaction or inquiry date. Thirty days before expiry, it triggers a re-consent campaign — an email asking the contact to confirm they want to keep receiving your communications. If they confirm, their consent upgrades to express (which never expires unless they unsubscribe). If they do not respond, their consent status changes to expired and they are automatically excluded from future campaigns.
CASL compliance is not optional, and "I didn't know" is not a defence. The safest approach is to seek express consent from every contact as early as possible in the relationship. Add a consent checkbox to your intake forms, your website contact form, and your open house sign-in sheets. The minor friction of asking for consent upfront is infinitely better than the risk of a CASL complaint.
Merge and Unmerge with Full Audit Trails
Even with the best deduplication system, there will be times when you need to manually merge two contact records — or undo a merge that turned out to be a mistake. The merge process itself is straightforward: you select two records, the system shows a side-by-side comparison of every field, you choose which value to keep for each conflicting field, and the records are combined into one.
What happens behind the scenes is what matters. A proper merge must:
- Consolidate all communication history from both records into a single timeline, preserving timestamps and order
- Reassign all related records — showings, documents, journey enrolments, listing associations — to the surviving contact
- Preserve the higher engagement score and combine engagement history from both records
- Retain CASL consent — if either record has express consent, the merged record inherits it
- Create an audit trail entry that records exactly what was merged, when, by whom, and what the original values were
The audit trail is essential for two reasons. First, it protects you in compliance reviews — if a managing broker or regulator asks why a contact's record looks different from what they have on file, you can show exactly what changed and when. Second, it enables unmerge. If you discover that you accidentally merged two different people who happen to share a name, you can reverse the operation and restore both original records with their data intact.
In Magnate360, every merge creates a timestamped audit entry stored as structured JSON. The unmerge operation reads this entry and reconstructs the original records, reassigning communications and related data back to their original owners. The system also flags recently merged records in your activity feed so you can spot mistakes quickly — within the first 24 hours when the merge is still fresh in your memory.
Putting It All Together: A Contact Management Checklist
Building a clean, well-structured contact database is not a one-time project. It is an ongoing discipline that pays compounding returns over the life of your career. Here is a practical checklist to assess where you stand:
- All contacts from all sources are consolidated in a single CRM
- Deduplication has been run and duplicate pairs have been reviewed and resolved
- Every contact has a lifecycle state (active, nurture, dormant, archived)
- CASL consent status is recorded for every contact, with expiry dates for implied consent
- Contacts are segmented by type, geography, property interest, and engagement level
- Engagement scores are active and decaying, with your hottest leads surfacing automatically
- Households and relationships are mapped so couples and families receive unified communication
- Deleted contacts land in a soft-delete holding area, not permanent oblivion
- Every merge creates an audit trail, and unmerge is available if mistakes happen
- New contacts from open houses, website forms, and referrals flow in automatically with deduplication at the point of entry
If you can check all ten boxes, your contact management is in excellent shape. If you are missing three or more, you are likely losing revenue to missed follow-ups, duplicate sends, and contacts that fell through the cracks. The good news is that modern CRMs handle most of this automatically — the hard part is not the technology, it is the commitment to doing it right from day one.
Frequently Asked Questions
How do I import contacts from multiple sources without creating duplicates?+
What is Jaro-Winkler matching and why does it matter for real estate contacts?+
What happens to contacts when I delete them — can I recover them?+
How should I handle CASL consent for contacts imported from a spreadsheet?+
What is the difference between contact segmentation and lifecycle tracking?+
Related Resources
CRM Migration Guide: Switching Without Losing Data
Step-by-step guide to migrating contacts, history, and workflows from your old CRM.
ComplianceCASL Consent Tracking for Canadian Realtors
Everything you need to know about express vs implied consent, expiry rules, and automated re-consent campaigns.
Client RelationsClient Communication Best Practices for Real Estate Agents
Channel selection, frequency by transaction stage, template messages, and AI-assisted communication.
ProductCompliance Features in Magnate360
FINTRAC identity verification, CASL consent management, BCFSA record retention, and audit trails.
ROIReal Estate CRM ROI: Is It Worth the Investment?
Data-backed analysis of how CRM usage impacts deal volume, client retention, and referral rates.
Your database is your business. Treat it that way.
Magnate360 handles import, deduplication, lifecycle tracking, CASL consent, engagement scoring, and merge/unmerge with full audit trails — so your contact database stays clean, compliant, and ready to drive your next deal.
Start Free Trial