HubSpot
Keeping RealGreen and HubSpot in agreement: duplicates, conflicts, and drift
By Marketing 180 Team · March 25, 2025 · 6 min read
How do you keep RealGreen and HubSpot from disagreeing about the same customers? You decide three things up front: how duplicates get matched, which system wins each field, and who reviews the conflicts. That is the whole answer, and the rest of this post is the working detail. We maintain RealGreen HubSpot integrations for a living, so we can tell you exactly where drift comes from and what it costs when nobody owns it: an office that stops trusting the CRM and goes back to spreadsheets. What follows is the operating agreement we set up between the two systems: the dedupe rules, the field ownership table, the shared-household problem, and a quarterly audit that takes an hour.
Why do two clean systems still drift apart?
Because they disagree about what a customer is. RealGreen thinks in properties and billing accounts: an address, a program, a balance. HubSpot thinks in people: an email address with behavior attached. The same household is one record in one system and potentially two in the other, and every day both systems take writes the other doesn't see immediately: the office edits a phone number in RealGreen, a customer fills a form with a new email in HubSpot. A nightly sync moves data faithfully, but it cannot invent the rules for whose version wins. That is a decision, and if you never make it explicitly, each system wins sometimes, which is drift. Worth saying: syncing a dirty RealGreen database just gives you two dirty databases, so run the RealGreen cleanup before or alongside any of this.
How do you dedupe when email and address disagree?
HubSpot deduplicates contacts by email address natively. That solves half your problem. The classic lawn-care duplicate is the other half: RealGreen has the account under one spouse, and the other spouse fills your aeration form with a different email. HubSpot correctly sees a new person; your marketing now knows two "prospects," one of whom has been a customer for six years, and one of them is about to receive a new-customer offer.
The fix is a stable key. The sync should write the RealGreen customer number onto every synced contact as a custom property, making matches unambiguous regardless of email. For form-fills that arrive keyless, add a weekly review of new contacts whose service address matches an existing account; address-normalized matching catches most spouse duplicates before they cause harm. Merge duplicates in HubSpot rather than deleting, so history survives, and always keep the record carrying the customer number as the primary.
Which system wins each field?
Write an ownership table and make the sync enforce it. The principle: the system where the fact is created owns the fact.
- RealGreen wins: customer status, programs and services, balances and invoice aging, service address, source code. HubSpot displays these read-only; nobody edits a balance in a CRM. The one discipline the office owes this arrangement is entering the source code the HubSpot record hands them at account creation, since attribution dies at that keyboard; the whole chain is in the lead source tracking post.
- HubSpot wins: email engagement, lifecycle stage, lead and deal activity, and marketing consent for email.
- Flows both ways with care: opt-outs. An unsubscribe in either system must suppress in both, and this is the one field where a sync bug creates legal exposure rather than mere annoyance.
- Leads live in HubSpot until sold, then RealGreen takes over as the record of the account. The full property-by-property mapping is in the field mapping post.
The rule that prevents most fights: no field has two writers. If both systems can edit a field, one of them is wrong and you don't know which.
What do you do with shared households?
One lawn, one bill, two adults with separate emails and phones. RealGreen bills the household; marketing talks to people. Keep both people as contacts, associated with the same account, and mark one as billing-primary. Then apply one rule with no exceptions: money messages go only to the billing-primary. Sending a past-due notice to the spouse who has never seen an invoice is how you turn an oversight into an angry phone call. Marketing messages can go to both, deduplicated by household so nobody's kitchen gets two identical postcards' worth of email in one morning.
What does the quarterly drift audit look like?
An hour, four times a year, ideally in the slow season:
- Compare counts by status: actives in RealGreen versus contacts marked active in HubSpot. More than 2 percent apart means something is broken; find it.
- Pull 25 random synced records and check them field by field against RealGreen.
- Run HubSpot's duplicate report and merge what it finds, keeping customer-number records primary.
- Verify suppression: every RealGreen do-not-contact and every HubSpot unsubscribe is honored on the other side.
- Spot-check ten recent form-fill contacts for the spouse-duplicate pattern.
What does a sloppy sync actually cost?
Illustrative numbers, plug in your own. A 4,600-contact database with a 4 percent duplicate rate has 184 doubled records: 184 chances to send an upsell to someone in collections because the suppression only caught one twin. If you are on Marketing Hub, junk and duplicate records also count against your marketing-contact allowance, so dead weight is not just untidy, it crowds the plan you are on. But the expensive failure is quieter: the third time the office catches the CRM contradicting RealGreen, they stop checking the CRM, and every automation built on it starts running unsupervised. Trust, once lost, costs far more to rebuild than the hour a quarter it takes to keep. The sync architecture matters here too, and it is our home turf: we can connect RealGreen to pretty much any platform with an API, a Zapier connection, or a native connection, and most of that job is exactly this discipline, keeping two systems telling one story. The design details are in the integration overview and on our RealGreen API page.
The takeaway: sync is not a product you buy once, it is an agreement you enforce: one key, one writer per field, one primary per household, and one hour a quarter checking that both systems still tell the same story about the same customers.
Run the first audit
- Confirm every synced contact carries the RealGreen customer number as a property; if not, that is fix number one.
- Write the field ownership table for your top 15 synced fields and post it where the office can see it.
- Run the duplicate report once and work through the merges, worst first.
- Pick billing-primary contacts for shared households and restrict money messages to them.
- Calendar the quarterly hour, and treat a failed count-comparison as a support ticket, not a shrug.
Keep reading
Ready to turn it around?
Get a free marketing snapshot. We'll show you exactly where you stand and what it would take to win.