How do I sync intent data to my CRM?
Quick Answer: Set up a bidirectional CRM integration that reads account ownership from your CRM while pushing behavioral and intent signals back.
Map fields strategically using "fill if empty" for enrichment data (job titles, company size) and "always update" for dynamic signals (website visits, engagement scores).
Filter syncs to ICP-qualified visitors only to prevent CRM bloat.
Quick Answer: Best CRM Sync Strategy by Use Case
Best for HubSpot marketing teams: Native HubSpot integration with auto-created properties and hourly batch sync for visit data. See Warmly's HubSpot integration.
Best for Salesforce enterprise teams: Managed package installation for activity timeline tracking and custom object support. Requires 2-3 days setup but provides deeper visibility.
Best for real-time sales alerts: Continuous sync with Slack/Teams notifications triggered when ICP visitors hit high-intent pages like pricing or demo requests. Learn about real-time alerts.
Best for preventing data conflicts: Pull territory and ownership FROM your CRM, never push TO it. Let your CRM routing rules remain the source of truth.
Best for enrichment without overwrites: Use "fill if empty" sync logic for firmographic data so validated rep corrections don't get overwritten by automated enrichment.
Best for multi-system setups: Hub-and-spoke model where Warmly syncs to HubSpot, then HubSpot syncs to Salesforce. Prevents circular syncing and duplicate creation.
Introduction
One of the most common questions B2B revenue teams ask is: "How do I get intent data into my CRM without creating a data mess?"
After analyzing 141+ customer implementation calls, the answer comes down to three things: thoughtful field mapping, smart sync logic, and aggressive filtering. Teams across SaaS, security, and enterprise tech have figured this out. They're syncing thousands of contacts monthly without overwriting validated data or overwhelming sales with noise.
This guide breaks down the exact strategies that work, pulled directly from real implementation conversations.
1. One-Time Sync vs. Continuous Sync: When to Use Each
The Core Question
During a recent implementation with a B2B technology company, their Senior Manager of Growth Marketing Operations asked: "Should I set this up to sync to HubSpot once, or have it continuously running?"
Every RevOps team faces this question. The answer depends on your use case.
One-Time Sync: Best For
Use one-time sync when you're:
- Testing new segments before automating. One customer tested their ICP segmentation by syncing visitors who viewed pricing pages, validated the data quality, then enabled continuous sync.
- Backfilling historical data. Initial setup and data migration scenarios.
- Running specific campaigns. Syncing a webinar attendee list or event follow-up segment.
- Exporting to sales engagement tools. Pushing lists to Outreach or Salesloft for specific cadences.
Continuous Sync: Best For
Use continuous sync when you need:
- Real-time lead routing. High-intent visitors who should hit a rep's queue immediately.
- Behavioral score updates. Page views, time on site, and session counts that change constantly.
- Job change alerts. When someone joins a target account, update their contact record right away.
- Multi-touch intent aggregation. Building a complete picture of engagement over time.
Real Example: One mid-market SaaS company's Director of Marketing Operations configured continuous sync specifically for accounts in tiers 1-3 who visited high-value pages. SDRs received Slack alerts within minutes of qualification.
The Hybrid Approach (What Most Teams Do)
Start with a one-time sync to validate data quality. Enable continuous sync for ICP segments only. Use filters to prevent CRM bloat.
One VP of Revenue Operations put it this way:
"Once it's synced, it's synced. You might have triggers that say 'after a period of time, or if this record changes, sync it again.' But you're not just blindly syncing everything."
2. Field Mapping Strategies for HubSpot and Salesforce
The Most Common Mistake
Mapping every available field "just in case."
During one legal tech company's implementation, their team initially tried to map 30+ fields. After experiencing sync delays and CRM clutter, they narrowed it down to 8 essential fields. Sync performance improved by 300%.
Essential Field Categories
Behavioral Signals (Always Update)
| Field | Purpose | Sync Logic |
|---|
| Last Visit Date | Regency Signal | Always Update |
| Total Time on Site | Engagement Depth | Always Update |
| Session Count (30d) | Visit frequency | Always Update |
| High-Intent Page Views | Pricing, demo, case studies | Always Update |
| UTM Parameters | Campaign attribution | Always Update |
Enrichment Data (Fill If Empty)
| Field | Purpose | Sync Logic |
|---|
| Job Title | Contact identification | Fill If Empty |
| Company Size | Firmographic qualification | Fill If Empty |
| Industry | Segmentation | Fill If Empty |
| LinkedIn Profile URL | Sales research | Fill If Empty |
Intent Signals (Always Update)
| Field | Purpose | Fill If Empty |
|---|
| Bombora Topic Surge Scores | Third-party intent | Always Update |
| Buying Committee Members | Account intelligence | Always Update |
| Persona Classification | Lead routing | Always Update |
Learn more about intent signals
HubSpot-Specific Field Mapping
Recommended Custom Properties:
Contact Properties
- warmly_persona (dropdown)
- warmly_engagement_score (number)
- warmly_last_visit_date (date)
- warmly_high_intent_pages (text)
- warmly_session_count_30d (number)
Company Properties
- warmly_audience (text)
- warmly_bombora_topics (text)
- warmly_company_visits_30d (number)
- warmly_total_identified_visitors (number)
- warmly_intent_score (number)
Real Implementation Example: One device management company's Head of GTM Operations mapped only 6 custom properties:
- Warmly Audience - Triggered lifecycle stage changes
- Persona - Routed leads to specialized SDRs
- Active Time on Site - Minimum 30 seconds to qualify
- Last Seen Date - Recency scoring
- Confidence Score - Only synced contacts >70% confidence
- ICP Fit - Prevented non-ICP from entering CRM
Result: 47% reduction in junk leads entering their CRM, 2.3x increase in SDR qualification rates.
Salesforce-Specific Field Mapping
Minimum Required Fields for Lead Creation:
Based on enterprise implementations, Salesforce requires:
- First Name
- Last Name
- Email
- Company Name
- State/Region
- Country
- Industry
Custom Fields Pattern:
Lead/Contact Fields
- Warmly_Engagement_Score__c (Number)
- Warmly_Last_Visit__c (DateTime)
- Warmly_Intent_Topics__c (Long Text Area)
- Warmly_ICP_Tier__c (Picklist: Tier 1, Tier 2, Tier 3, Not ICP)
Account Fields
- Warmly_Total_Visitors__c (Number)
- Warmly_Buying_Committee_Count__c (Number)
- Warmly_Account_Intent_Score__c (Number)
Managed Package vs. API Integration
| Factor | Managed Package | API Integration |
|---|
| Setup Time | 2-3 days | 1-2 hours |
| Activity Timeline | Full tracking | Limited |
| Custom Objects | Supported | Not supported |
| Best For | Enterprise teams | (<50 reps) |
| Complexity | Higher | Lower |
Enterprise Requirement "The Salesforce managed package is non-negotiable for us because we need object-level tracking, not just field updates."
3. Fill If Empty vs. Always Update: The Critical Decision
Why This Matters
One RevOps team voiced a common fear: "We've spent months manually correcting firmographic data in Salesforce. Will Warmly overwrite our validated data with lower-quality enrichment?"
The answer lies in sync logic configuration.
Fill If Empty: Use for Static Enrichment
Definition: Only populate the field if it's currently null/empty in your CRM.
Best For: - Job titles (unless tracking job changes) - Company size/employee count - Industry classification - Company headquarters location
Why: If a sales rep manually corrects a contact's title from "Engineer" to "VP of Engineering" based on a discovery call, you don't want automated enrichment overwriting that validated data.
Always Update: Use for Dynamic Behavioral Data
Definition: Update the field every time new data is available.
Best For: - Last visit date/time - Total page views - Engagement scores - Session counts - Intent topic surge scores
Why: Behavioral data is time-sensitive. Yesterday's pricing page visit should override "Last Visit: 30 days ago" in your CRM.
The Decision Matrix
| Field Type | Sync Logic | Why |
|---|
| Job Title | Fill If Empty | Reps manually correct during discovery |
| Company Size | Fill If Empty | Static unless tracking growth |
| Last Visit Date | Always Update | Time-sensitive behavioral signal |
| Engagement Score | Always Update | Changes with each visit |
| Intent Topics | Always Update | Bombora scores change weekly |
| Territory/Owner | Read Only | CRM routing rules should control |
| Lifecycle Stage | Conditional | Only progress forward, never backward |
| Lead Source | Fill If Empty | First-touch attribution should be immutable |
Territory Assignment Exception
Multi-Product Routing Complexity: Some companies route leads by product line across multiple business units.
Their Sync Rule: "Pull territory assignment FROM Salesforce, never push TO Salesforce. Let Salesforce routing rules handle assignment."
This prevented accidental overwriting of carefully configured territory logic.
4. Managing Custom Properties and Objects
Do I Create the Field First?
Common Question: "Do I create the field first, then map it? Or does Warmly auto-create it?"
Answer: It depends on your CRM.
HubSpot: Auto-Creation Supported
For HubSpot, properties can be auto-created during initial sync if they don't exist. But best practice is to pre-create them with specific formats:
- Property name (e.g., warmly_engagement_score)
- Field type (Single-line text, Number, Date, Dropdown)
- Group assignment (e.g., "Warmly Data")
- Description for sales team visibility
Salesforce: Manual Creation Required
Salesforce requires custom fields to exist before mapping.
Recommended Process:
- Create custom fields in Salesforce sandbox
- Test sync with 10 records
- Validate data quality and formatting
- Create fields in production
- Map in Warmly settings
- Enable sync for qualified segments
Multi-System Architecture
Common Challenge: "We use both HubSpot and Salesforce. Anything that goes into HubSpot also goes into Salesforce."
Recommended: Hub-and-Spoke Model
Warmly → HubSpot (marketing automation)
↓
HubSpot → Salesforce (qualified leads only)
This maintains a single source of truth and prevents duplicate syncing.
Not Recommended: Parallel sync to both systems (risk of circular syncing and conflicts).
5. Avoiding Data Conflicts and Duplicates
The Duplicate Prevention Strategy
Key Lesson: "To minimize duplicate companies, we limited our Change-Jobs play to existing CRM companies only. We don't create net-new accounts from job change alerts."
Common Conflict Scenarios
Email Mismatch Duplicates
Problem: Warmly identified [email protected], Salesforce had [email protected]. Result: Duplicate created.
Solution:
- Enable fuzzy matching by domain + first/last name
- Set minimum confidence threshold (70%+)
- Use LinkedIn profile URL as secondary deduplication key
Territory Routing Conflicts
Problem: Multiple reps claimed the same account. Warmly synced to the first matched owner.
Solution:
- Pull territory assignment FROM CRM, don't push TO CRM
- Use account-level routing rules in Salesforce
- Let CRM be the source of truth for ownership
Lifecycle Stage Conflicts
Enterprise Workflow: "Leads enter HubSpot first, qualify there with lead scoring, then sync to Salesforce only after reaching MQL threshold."
Best Practice:
- Only sync leads that meet minimum qualification threshold
- Never push leads backward in lifecycle stage
- Use separate syncs for different lifecycle stages
The Confidence Score Filter
Best Practice from 30+ Implementations: Only sync contacts with confidence score >70%.
Testing Results:
- 50% threshold: 40% false positives
- 70% threshold: 12% false positives
- 85% threshold: 3% false positives, but missed 30% of valid leads
Optimal: 70% for most B2B companies.
Segment Before Sync
Effective Filtering Strategy:
- Company size: 50-5,000 employees
- Industry: SaaS, Technology, Professional Services
- Exclude: Customers, closed-lost (last 6 months), competitors
- Include: Active in the last 30 days + viewed pricing/demo page
Result: 73% reduction in non-qualified leads syncing to CRM.
6. Bidirectional Sync Architecture Explained
What "Bidirectional" Actually Means
Common Confusion: "Is it a two-way sync?"
Clarification:
Read FROM CRM (Warmly pulls in):
- Account ownership - Lifecycle stages
- Custom fields (ICP tier, ABM list membership)
- Territory assignment
- Opportunity stage
Write TO CRM (Warmly pushes out):
- Website visit data
- Engagement scores
- Intent signals
- Chat transcripts
- Enriched contact/company data
Real-Time vs. Batch Sync
Common Question: "Is it real-time or batch?"
Real-Time (Push Immediately):
- Chat messages
- Form submissions
- High-intent page views (pricing, demo request)
- Qualified visitor alerts
Batch Sync (Every 60 minutes):
- Engagement score updates
- Session count aggregations
- Intent topic updates
- Firmographic enrichment
Why the Hybrid? Real-time for actionable signals needing immediate rep response. Batch for aggregate data that doesn't require instant updates.
Initial Sync Timeline
Typical Mid-Market Implementation:
- CRM size: 47,000 contacts, 12,000 accounts
- Initial sync time: 1 hour 15 minutes
- Ongoing sync: Every 60 minutes (incremental)
7. Intent Data Sync Specifics
Bombora Integration Strategy
Example Setup: Track up to 12 Bombora keywords: revenue operations, sales enablement, conversation intelligence, sales automation, lead routing, CRM optimization.
Field Structure:
bombora_topics_surging (text): "Revenue Operations (75), Sales Enablement (68)"
bombora_highest_topic (text): "CRM Optimization"
bombora_highest_score (number): 82
bomborasurgedate (date): 2025-01-15
Sync Strategy:
- Always Update (scores change weekly)
- Trigger alerts when score >70
- Create CRM workflow: Score >70 + pricing page visit = hot lead
Learn about Bombora integration
Website Behavioral Signals
Time-on-Site Thresholds (Based on 40+ Implementations):
| Duration | Intent Level |
|---|
| <30 seconds | Bounce (don't sync) |
| 30-120 seconds | Low intent |
| 2-5 minutes | Medium intent |
| 5+ minutes | High intent |
High-Intent Pages (Always Sync):
- /pricing
- /demo
- /contact-sales
- /vs/[competitor]
- /case-studies/[industry]
Effective Logic: "If CRM company equals accounts tier 1-3, first-party signals, and they visit high-value pages → sync immediately + Slack alert to account owner"
UTM Parameter Capture
Critical for Attribution:
crm_campaign_source: "linkedin"
crm_campaign_medium: "paid"
crm_campaign_name: "Q1_Product_Launch"
Sync Logic:
- First Touch: Fill If Empty (never overwrite)
- Last Touch: Always Update
- All Touches: Append to multi-touch field
Intent Score Aggregation
Multi-Signal Scoring Formula:
Intent Score = (Bombora Surge × 0.30)
+ (Website Visits × 0.25)
+ (High-Intent Pages × 0.25)
+ (Engagement Score × 0.15)
+ (LinkedIn Activity × 0.05)
Sync Strategy:
- Recalculate hourly
- Push to CRM when score changes >10 points
- Trigger workflows at thresholds (50, 70, 90)
8. Implementation Checklist
Phase 1: Pre-Integration Planning (Week 1)
Define Your Sync Strategy:
- [ ] Identify high-intent segments for continuous sync
- [ ] List one-time sync use cases
- [ ] Document ICP criteria for filtering
- [ ] Define confidence score threshold (recommend: 70%)
Audit Existing CRM Data:
- [ ] Review current field usage and naming conventions
- [ ] Identify fields with data quality issues
- [ ] Document territory routing logic |
- [ ] Map existing lead sources and attribution
Phase 2: Field Mapping Design (Week 1-2)
Standard Fields:
- [ ] Warmly Audience (ICP tier)
- [ ] Engagement Score
- [ ] Last Visit Date
- [ ] Session Count (30-day)
- [ ] High-Intent Page Views
- [ ] Confidence Score
Intent Signal Fields:
- [ ] Intent Topics (text list)
- [ ] Top Intent Topic
- [ ] Intent Score (number)
- [ ] Surge Date
Phase 3: Integration Setup (Week 2)
HubSpot:
- [ ] Install Warmly app from marketplace
- [ ] Authorize OAuth connection
- [ ] Create/configure custom properties
- [ ] Set sync schedule (hourly recommended)
Salesforce:
- [ ] Choose: Managed Package or API
- [ ] Create custom fields
- [ ] Install managed package (if applicable)
- [ ] Configure lead/contact creation rules
Phase 4: Testing & Validation (Week 2-3)
- [ ] Sync 10 test records
- [ ] Validate field mapping accuracy
- [ ] Check for duplicate creation
- [ ] Test territory routing logic
- [ ] Get sales team preview and feedback
Phase 5: Production Rollout (Week 3-4)
Phased Enablement:
- Week 1: Tier 1 accounts only
- Week 2: Expand to Tier 2
- Week 3: All ICP-fit visitors
- Week 4: Optimize based on data
FAQs
"How do I sync intent data to my CRM?"
Set up a bidirectional integration with your HubSpot or Salesforce instance. Map behavioral and intent fields to custom properties, configure orchestrations to sync qualified visitors based on ICP criteria, and use "fill if empty" for enrichment data and "always update" for behavioral signals.
See the full integration guide
"What's the difference between one-time sync and continuous sync?"
One-time sync pushes a specific list once, best for testing segments or campaign exports. Continuous sync updates automatically (usually hourly), best for real-time lead routing and behavioral tracking. Most teams use a hybrid: one-time to validate, then continuous for ICP segments only.
"Should I use fill if empty or always update for CRM fields?"
Use "fill if empty" for static enrichment data like job titles and company size (so rep corrections don't get overwritten). Use "always update" for dynamic behavioral signals like last visit date, engagement scores, and intent topics (since these change constantly and should always reflect the latest state).
"How do I prevent CRM duplicates when syncing intent data?"
Three strategies: (1) Set a 70%+ confidence score threshold to filter low-quality matches, (2) Enable fuzzy matching by domain + name for email variations, (3) Limit job-change syncs to existing CRM companies only rather than creating net-new accounts.
"Will syncing intent data overwrite my validated CRM data?"
Not if configured correctly. Use "fill if empty" sync logic for firmographic fields like job titles. This ensures automated enrichment only populates empty fields and never overwrites data that reps have manually corrected based on discovery calls.
"How long does the initial CRM sync take?"
Depends on CRM size. For a typical mid-market company (47,000 contacts, 12,000 accounts), initial sync takes about 1 hour 15 minutes. After that, incremental syncs run every 60 minutes and complete in minutes.
"Can I sync to both HubSpot and Salesforce at the same time?"
Yes, but use the hub-and-spoke model: Warmly syncs to HubSpot, then HubSpot syncs qualified leads to Salesforce. This maintains a single source of truth and prevents circular syncing that can cause duplicates and conflicts.
"What fields should I sync to my CRM from intent data?"
At minimum: Last Visit Date, Engagement Score, Session Count, High-Intent Page Views, and ICP Tier. For intent data specifically: Bombora Topics, Intent Score, and Surge Date. For enrichment: Job Title, Company Size, and LinkedIn URL (all using fill if empty).
Key Takeaways
- Start with one-time sync to validate data quality before enabling continuous sync
- Use "Fill If Empty" for enrichment (titles, firmographics) and "Always Update" for behavioral signals
- Set a 70% confidence threshold to balance coverage and accuracy
- Segment before syncing to prevent CRM bloat
- Let CRM handle territory routing by pulling ownership rather than pushing it
- Sync intent signals separately from enrichment for better workflow triggers
- Monitor duplicate creation rate weekly and adjust fuzzy matching logic
Further Reading
Warmly Product Pages: - CRM Integrations Overview - Website Intent & De-anonymization - Bombora Buyer Intent Integration - Social Signal Monitoring - AI Nurture Agent
Comparison Guides: - Warmly vs. 6sense - Warmly vs. Clearbit - Warmly vs. Leadfeeder - Warmly vs. Qualified
Related Blog Posts: - 6sense Review: Is It Worth It in 2026? - Top 10 Clearbit Alternatives & Competitors - AI Marketing Agents: Use Cases and Top Tools - Best Website Visitor Identification Software - AI GTM: Top Use Cases, Software & Examples
Resources: - Warmly Pricing - Book a Demo - Customer Reviews - Help Center - Playbooks Library
About This Research
This guide is based on analysis of 141+ customer implementation calls from 2025-2026, including technical reviews with revenue operations leaders across B2B SaaS, security, and enterprise technology companies. All examples reflect real customer implementations with identifying information removed.
Questions about CRM sync strategy? Book a technical review call with our solutions engineering team to map your specific architecture.