Most companies don't have just one CRM. They have Salesforce for sales, HubSpot for marketing, Intercom for support, and maybe a data warehouse for analytics. Or they've been through acquisitions that left them with multiple Salesforce orgs. Or regional offices chose different tools.
The result: the same customer exists in multiple systems, with different data in each. Sales updates the phone number in Salesforce, but marketing keeps emailing the old address in HubSpot. Support sees a different account status than sales does. Reports from different systems tell different stories.
This guide covers how to synchronize data across multiple CRMs and related systems—including architecture patterns, conflict resolution strategies, and the practical challenges that trip up most implementations.
Why Multi-System Sync Is Hard
Syncing data sounds simple: when something changes in System A, update System B. But real-world sync is complicated:
Different Data Models
Salesforce has Leads and Contacts. HubSpot just has Contacts. Salesforce has Accounts and Contacts separately. HubSpot has Companies and Contacts with associations. Mapping isn't 1:1.
Conflicting Updates
A rep updates a phone number in Salesforce at 10:01 AM. A marketing automation updates it in HubSpot at 10:02 AM. Which one wins? What if they're both wrong in different ways?
Timing and Latency
Real-time sync sounds ideal, but it's expensive and creates race conditions. Batch sync is simpler but creates windows where systems are out of sync. Neither is perfect.
Volume and Rate Limits
APIs have rate limits. A sync that works for 10,000 records might break at 1 million. Initial loads and catch-up syncs after outages need special handling.
Failure Modes
What happens when the sync fails? Retries can cause duplicates. Skipping failed records creates gaps. Stopping entirely blocks everything.
Common Multi-System Scenarios
Sales CRM + Marketing Automation
The most common scenario: Salesforce for sales, HubSpot/Marketo/Pardot for marketing. Typical sync needs:
- Contacts/Leads from marketing → CRM when they become sales-ready
- Contact updates bidirectionally (who has the latest phone number?)
- Activity data from CRM → marketing for lead scoring
- Campaign membership and engagement data both directions
Multiple Salesforce Orgs
Common after M&A or with regional instances. Challenges:
- Different customizations (fields, picklist values, objects)
- No built-in Salesforce-to-Salesforce sync for standard objects
- Shared accounts that exist in both orgs
- Roll-up reporting across orgs
CRM + Support System
Zendesk, Intercom, or ServiceNow alongside the CRM. Needs:
- Customer account info from CRM → support for context
- Support ticket data from support → CRM for account health visibility
- Contact creation and updates bidirectional
CRM + Data Warehouse
CRM data flowing to Snowflake, BigQuery, or Redshift for analytics. Usually one-way but with considerations:
- Which version of the record is "truth" for reporting?
- How to handle late-arriving updates?
- Matching CRM data to other data sources
Architecture Patterns
Point-to-Point Sync
Direct connections between systems. System A updates System B directly.
Pros:
- Simple for two systems
- Native integrations often available (HubSpot-Salesforce sync)
- Lower latency possible
Cons:
- Doesn't scale (N systems = N² connections)
- Each connection is a separate integration to maintain
- Hard to have consistent conflict resolution
Best for: Two-system scenarios with native integration available, simple use cases.
Hub-and-Spoke (Middleware)
All systems connect to a central integration platform. Changes flow through the hub.
Pros:
- Scales to many systems (N connections, not N²)
- Centralized transformation and conflict resolution
- Better monitoring and error handling
Cons:
- Additional system to maintain
- Single point of failure (if hub is down, nothing syncs)
- Can add latency
Best for: Three or more systems, complex transformations, need for centralized control.
Event-Driven Architecture
Systems publish events to a message queue. Subscribers consume events they care about.
Pros:
- Loose coupling between systems
- Easy to add new consumers
- Natural handling of async operations
Cons:
- More complex to implement
- Eventual consistency (not immediate)
- Requires message queue infrastructure
Best for: Large scale, microservices architecture, teams with engineering resources.
Master Data Management (MDM)
A dedicated system maintains the "golden record." Other systems sync to/from the MDM.
Pros:
- Clear single source of truth
- Built for data quality and matching
- Handles complex hierarchies
Cons:
- Expensive (MDM platforms aren't cheap)
- Significant implementation effort
- May be overkill for simpler needs
Best for: Enterprise scale, strict data governance requirements, complex matching needs.
Integration Platforms
| Platform | Best For | Pricing Model |
|---|---|---|
| Workato | Enterprise, complex workflows | Per-task pricing |
| Tray.io | Mid-market, visual builder | Per-task pricing |
| Zapier | Simple automations, SMB | Per-task pricing |
| MuleSoft | Enterprise, API management | Platform licensing |
| Boomi | Enterprise, M&A scenarios | Platform licensing |
| Fivetran/Airbyte | Data warehouse loading (ELT) | Per-row pricing |
Native Integrations
Don't overlook built-in integrations:
- HubSpot-Salesforce sync: Handles contacts, companies, deals bidirectionally
- Marketo-Salesforce sync: Native lead sync
- Salesforce Connect: External objects for cross-org data
Native integrations are limited but simpler. Use them for basic needs; layer middleware for complex requirements.
Conflict Resolution Strategies
When the same field is updated in multiple systems, you need rules for which value wins.
Last Write Wins
Most recent timestamp takes precedence.
- Pros: Simple, easy to implement
- Cons: Assumes clocks are synced, can lose intentional updates
- Best for: Low-conflict scenarios, when you trust all data sources equally
Source of Truth Wins
Designated master system always wins for specific fields.
- Pros: Predictable, clear governance
- Cons: Ignores potentially valid updates from other systems
- Best for: When you have clear data ownership by system
Example: Field-Level Source of Truth
- Contact name, email, phone: Salesforce is master (sales has most direct contact)
- Marketing preferences: HubSpot is master (marketing manages subscriptions)
- Support tier: Zendesk is master (support assigns tiers)
- Billing address: ERP is master (finance manages billing)
Field-Level Rules
Different rules for different fields.
- Pros: Nuanced, matches how data is actually used
- Cons: Complex to implement and maintain
- Best for: Organizations with clear data governance
Merge with Review
Flag conflicts for human review rather than auto-resolving.
- Pros: Catches edge cases, no data loss
- Cons: Creates queue of items needing attention
- Best for: High-value records, regulated industries
Coalesce (Fill Gaps)
Only update if the target field is empty. Never overwrite existing data.
- Pros: Safe, never loses data
- Cons: Stale data stays stale
- Best for: Initial enrichment, backfilling historical data
Preventing Duplicates Across Systems
One of the hardest problems: ensuring a customer doesn't become multiple records across systems.
Shared Identifiers
Use a common unique identifier across all systems:
- For contacts: Email address (most common)
- For companies: Domain or D-U-N-S number
- For custom: A generated UUID stored in all systems
Match Keys
Beyond the primary identifier, use match keys for fuzzy detection:
- Name + Company name
- Phone number (normalized)
- Address (normalized)
Cross-System Deduplication
Run periodic checks for duplicates that slipped through:
- Export records from all systems
- Run matching algorithm across combined dataset
- Identify cross-system duplicates
- Merge or flag for review
Handling Specific Sync Scenarios
Lead-to-Contact Conversion
Salesforce converts Leads to Contacts. HubSpot doesn't have this concept. How to handle:
- When Lead converts in Salesforce, update the HubSpot Contact with the new Contact ID
- Map Salesforce Lead fields to the corresponding Contact fields
- Maintain history: store "original Lead ID" on the Contact for reference
Deleted Records
What happens when a record is deleted in one system?
- Hard delete everywhere: Risky, can lose data if deleted by mistake
- Soft delete: Mark as deleted but retain record
- Flag for review: Don't auto-delete, alert someone
- Ignore: Don't sync deletes at all
Delete Sync Warning
Auto-deleting across systems is dangerous. A sync error that creates a "delete" event could cascade across your entire database. Most implementations either don't sync deletes or require manual approval for mass deletes.
New Record Creation
Which system can create new records that sync to others?
- Any system: Flexible but risk of duplicates
- Single source only: All new records start in one system
- Type-based: Leads created in marketing, Customers created in CRM
Picklist Value Mapping
Industry values in Salesforce don't match HubSpot. Create mapping tables:
Monitoring and Alerting
Sync failures happen. You need to know when they do.
Key Metrics to Track
- Sync lag: Time between update in source and update in target
- Error rate: % of records failing to sync
- Queue depth: Number of pending sync operations
- Duplicate creation rate: New duplicates appearing per day
- Coverage: % of records successfully synced across all systems
Alerting Thresholds
- Warning: Error rate > 1%, lag > 15 minutes
- Critical: Error rate > 5%, lag > 1 hour, queue growing continuously
- Emergency: Sync completely stopped, mass failures
Audit Logging
For every sync operation, log:
- Timestamp
- Source system and record ID
- Target system and record ID
- Fields changed
- Success/failure status
- Error details if failed
This audit trail is essential for troubleshooting and compliance.
Common Pitfalls
Sync Loops
System A updates System B. System B's change triggers an update back to System A. Repeat forever.
Prevention:
- Track "last synced" timestamp per record
- Don't sync back changes that originated from the sync
- Use sync-specific fields that don't trigger reverse sync
Rate Limit Exhaustion
Syncs that worked at low volume fail when data grows.
Prevention:
- Implement rate limiting in your sync
- Use bulk APIs where available
- Queue and throttle during peak times
Schema Drift
Someone adds a field in System A. The sync doesn't know about it. Data doesn't flow.
Prevention:
- Document all synced fields
- Review schema changes before deployment
- Alert on unmapped fields
Initial Load Problems
Ongoing sync works, but loading historical data is a different beast.
Prevention:
- Test initial load with subset first
- Run during off-hours
- Have rollback plan ready
- Monitor for duplicates after load
Implementation Checklist
Before You Build
- Document all systems and what data each needs
- Map fields between systems (including transformations)
- Define source of truth for each field
- Establish conflict resolution rules
- Identify shared unique identifiers
- Estimate data volumes and growth
During Implementation
- Start with a subset of records (pilot)
- Test bidirectional sync carefully
- Implement monitoring before going live
- Document all transformation logic
- Create runbooks for common issues
Ongoing Operations
- Review sync metrics weekly
- Investigate error spikes immediately
- Audit for drift quarterly
- Update documentation when things change
- Test recovery procedures periodically
Frequently Asked Questions
Why would a company use multiple CRMs?
Common reasons include: different teams have different needs (sales uses Salesforce, marketing uses HubSpot), M&A brought different systems together, regional offices chose their own tools, or specialized use cases require purpose-built systems. Many companies also run a CRM alongside marketing automation, support systems, and other platforms that all need synced data.
What happens when the same record is updated in two systems?
This is a conflict that requires resolution rules. Common approaches: last-write-wins (most recent update takes precedence), source-of-truth-wins (designated master system always wins), field-level rules (different systems are authoritative for different fields), or manual review (flag conflicts for human resolution). The right approach depends on your data governance model.
Should I use native integrations or a middleware platform?
Native integrations (like HubSpot-Salesforce sync) are simpler for basic use cases but limited in customization. Middleware platforms (Workato, Tray.io, custom code) offer more control and handle complex scenarios but require more setup and maintenance. For two-system syncs with standard fields, native often works. For multi-system or complex mapping, middleware is usually better.
How do I prevent duplicate records across systems?
Use a shared unique identifier (often email for contacts, domain for companies) across all systems. Before creating records in any system, check if the identifier exists elsewhere. Implement cross-system duplicate detection that runs regularly to catch any that slip through. Some middleware platforms have built-in deduplication capabilities.
Need help with your data?
Tell us about your data challenges and we'll show you what clean, enriched data looks like.
See What We'll FindAbout the Author
Rome Thorndike is the founder of Verum, where he helps B2B companies clean, enrich, and maintain their CRM data. With over 10 years of experience in data at Microsoft, Databricks, and Salesforce, Rome has seen firsthand how data quality impacts revenue operations.