Overview
Your reps send sequences from Outreach. Your marketing team runs campaigns from HubSpot. And somewhere between the two platforms, context evaporates. A prospect who replied to an SDR's sequence yesterday gets a cold nurture email from marketing this morning. An AE prepares for a discovery call without seeing the six Outreach touches that already happened. A manager builds a pipeline report from HubSpot data that is missing half the actual sales activity.
The Outreach-HubSpot integration exists to solve this, but connecting the two platforms is not the same as getting them to work together properly. The native integration has real capabilities and real limitations, and the gap between the two is where most teams get stuck. Sync direction, field mapping, activity logging configuration, and duplicate handling all require deliberate decisions that affect whether your integration actually improves workflows or just creates a new category of data problems.
This guide covers the complete Outreach-HubSpot integration: what it does, how to set it up correctly, what breaks at scale, and practical workarounds for the limitations you will inevitably encounter. Whether you are setting up the integration for the first time or troubleshooting a sync that stopped working, this is the technical reference for making these two platforms cooperate.
What the Outreach-HubSpot Integration Actually Does
Before configuring anything, understand the scope of what you are working with. The native Outreach-HubSpot integration handles three core functions, and understanding exactly what each one does (and does not do) saves hours of troubleshooting later.
Contact and Company Sync
The integration links Outreach prospects to HubSpot contacts and Outreach accounts to HubSpot companies. When configured for bi-directional sync, changes to contact data in either system propagate to the other. When a rep updates a phone number in Outreach, it appears in HubSpot. When marketing enriches a contact with new firmographic data in HubSpot, that data flows to Outreach.
Company sync follows the same pattern. Outreach accounts map to HubSpot companies, keeping basic firmographic data consistent. For teams running structured HubSpot field mapping, this sync ensures that the property architecture you built in your CRM actually reaches the reps using Outreach daily.
Activity Logging
Every email sent, call made, and meeting booked through Outreach logs as an engagement on the corresponding HubSpot contact timeline. This is one-directional by design: activities originate in Outreach and flow to HubSpot. HubSpot activities do not sync back to Outreach.
For most teams, this is the single most valuable part of the integration. It eliminates manual activity logging and gives the entire organization visibility into sales engagement without requiring reps to leave Outreach.
Deal Association
Outreach activities can associate with HubSpot deals, connecting engagement data to pipeline. This lets managers see which outreach activities are tied to specific opportunities and enables meaningful sales performance analytics that span both platforms.
The integration does not support custom object sync. It does not trigger HubSpot workflows based on Outreach sequence events natively. It does not provide real-time sync (expect 5-15 minute delays). And it does not handle complex conditional logic for field mapping. Understanding these boundaries upfront prevents architecture decisions based on capabilities that do not exist.
One-Way vs. Two-Way Sync: Choosing the Right Direction
The sync direction decision is the most consequential configuration choice you will make. Get it wrong and you spend months chasing data quality issues that trace back to this single setting.
One-Way Sync (HubSpot to Outreach)
In this configuration, HubSpot is the authoritative source. Contact and company data flows from HubSpot to Outreach, but changes made in Outreach do not write back. This is the safest option for teams with strict data governance requirements or complex enrichment workflows feeding into HubSpot.
Use one-way HubSpot-to-Outreach sync when:
- Your CRM is the single source of truth and you do not want reps overwriting enriched data
- You have automated enrichment pipelines (Clay, Clearbit, ZoomInfo) that write to HubSpot
- Multiple teams share HubSpot and you need to control what data enters the CRM
- Your compliance or security requirements mandate centralized data governance
One-Way Sync (Outreach to HubSpot)
Less common but relevant for specific use cases. Outreach serves as the data entry point, and changes flow to HubSpot. This works when SDRs are the primary data creators and your CRM is more of a reporting and marketing layer than a data management hub.
Two-Way (Bi-Directional) Sync
Both systems can update each other. This provides maximum flexibility but introduces the highest risk of data conflicts. Bi-directional sync makes sense when different teams legitimately own different data fields and both platforms need to stay current.
The key to making bi-directional sync work is treating it as field-level, not record-level. You do not want every field syncing in both directions. Instead, define which fields HubSpot owns and which Outreach owns, then configure sync direction per field. This prevents the flip-flopping problem where two systems continuously overwrite each other's changes.
| Sync Type | Best For | Risk Level | Maintenance Effort |
|---|---|---|---|
| HubSpot to Outreach (one-way) | CRM-centric teams with enrichment pipelines | Low | Low |
| Outreach to HubSpot (one-way) | SDR-led organizations, Outreach as data entry | Low | Low |
| Bi-directional | Teams with clear field-level ownership rules | Medium-High | Medium |
If you are unsure, start with one-way sync from HubSpot to Outreach. You can always open up bi-directional sync later for specific fields once you understand your data flow patterns. Going the other direction, from bi-directional to one-way, often requires data cleanup first.
Setting Up the Integration Step by Step
The initial connection takes about 20 minutes. The configuration decisions embedded in that process take much longer to get right.
Prerequisites and Permissions
You need admin access to both Outreach and HubSpot. In HubSpot, the connecting account needs scopes for contacts, companies, deals, and engagements. In Outreach, you need the Admin or Super Admin role. Verify both accounts are on plans that support the integration. HubSpot requires Sales Hub Professional or Enterprise. Outreach requires the Professional plan or higher.
Connect the Platforms
In Outreach, navigate to Settings > Integrations > CRM. Select HubSpot and authenticate with your HubSpot account. The OAuth flow will request the necessary permissions. Once connected, Outreach will display the sync configuration panel.
Configure Sync Direction and Frequency
Choose your sync direction based on the framework above. Set the sync frequency. Most teams use the default interval (typically every 10 minutes), but be aware that high-volume operations may hit rate limits if too many records change between sync cycles.
Map Standard and Custom Fields
Review the default field mappings. The integration provides automatic mappings for name, email, phone, company, and title. For custom fields, you will need to map them manually. This is where most of the setup time goes. See the field mapping strategy section below for detailed guidance.
Configure Activity Logging
Select which Outreach activity types should log to HubSpot. Options typically include emails (sent, received, bounced), calls (connected, voicemail, no answer), and meetings. Consider whether you want internal test activities or team communications to log as well. Most teams exclude test activities to keep HubSpot timelines clean.
Set Duplicate Handling Rules
Configure how the integration handles records that exist in one system but not the other, and how it resolves conflicts when matching records have different data. Options include creating new records, skipping unmatched records, or merging with existing records. Teams dealing with duplicate prevention across their GTM stack should set this up carefully.
Test with a Small Cohort
Before enabling full sync, test with a small set of contacts. Create test records in both systems, trigger sync, and verify that data flows correctly in the expected direction. Check that activities log to the right contacts and that field mappings produce the expected results.
Activity Logging Configuration
Activity logging is where the integration delivers the most immediate value, but only if configured deliberately. The default settings log everything, which sounds good in theory but creates noise in practice.
What Gets Logged
The integration can log the following Outreach activities to HubSpot:
- Emails sent: The full email body, subject line, and send timestamp appear as email engagements on the HubSpot contact timeline
- Email replies: Inbound replies log with the reply content
- Calls: Call disposition, duration, and notes appear as call engagements
- Meetings: Booked meetings sync with attendees and scheduling details
- Tasks completed: Manual tasks completed in Outreach can log as notes or tasks in HubSpot
What to Log vs. What to Skip
Logging every activity creates complete visibility but also clutters contact timelines. A prospect who went through a 10-step sequence with 6 emails, 3 calls, and a LinkedIn touch has 10 timeline entries before a single meaningful conversation happens. For AEs inheriting these contacts, the signal-to-noise ratio becomes a problem.
Consider a tiered approach:
| Activity Type | Recommendation | Rationale |
|---|---|---|
| Emails sent (first touch) | Always log | Essential context for anyone picking up the relationship |
| Email replies | Always log | Replies signal engagement and contain valuable context |
| Connected calls | Always log | Real conversations need to be visible to the whole team |
| Voicemails | Log selectively | Useful for tracking touch cadence but creates noise |
| Automated follow-ups | Consider skipping | Template-based follow-ups add limited context to the timeline |
| Test sends | Never log | Internal testing should not pollute CRM data |
If you plan to trigger HubSpot workflows based on Outreach activities, you need those activities logged. For example, if you want a HubSpot workflow to notify an AE when a prospect replies to a sequence, the reply activity must be logging to HubSpot. Plan your workflow triggers before deciding what to skip.
Contact and Company Sync in Practice
Contact sync is the most visible part of the integration, and the area most likely to cause problems if not configured carefully.
Matching Logic
The integration matches records primarily by email address. When Outreach syncs a prospect to HubSpot, it looks for an existing contact with the same email. If found, it updates that record. If not found, it either creates a new contact or skips, depending on your configuration.
Company matching works similarly, typically using the domain name. An Outreach account with the domain "acme.com" matches to a HubSpot company with the same domain property.
Common Matching Problems
Email-based matching breaks in predictable ways:
- Multiple email addresses: A contact with a personal and work email may exist as two records. The integration only matches on primary email.
- Email format variations: "john@acme.com" in one system and "j.smith@acme.com" in the other creates a duplicate instead of a match.
- Domain mismatches: Companies with multiple domains (acquisitions, regional variants) may not match correctly. "acme.com" and "acme.co.uk" appear as separate companies.
For teams managing complex data across multiple systems, running a deduplication process before enabling sync prevents these issues from compounding.
Association Maintenance
When a contact syncs from Outreach to HubSpot, the integration should associate them with the correct company. This depends on the Outreach prospect having an account association. If a prospect in Outreach is not linked to an account, the contact in HubSpot may not be associated with a company, breaking your account-based reporting and workflows.
Audit your Outreach account associations before enabling company sync. Orphaned prospects (contacts not linked to accounts) create orphaned HubSpot contacts that sit outside your company hierarchy.
Field Mapping Strategies
Field mapping is where the integration moves from basic plumbing to strategic infrastructure. The right mapping strategy ensures your teams have the data they need, where they need it, without creating conflicts.
The Source of Truth Framework
For every field, designate one system as authoritative. This prevents the most common integration headache: two systems overwriting each other in a never-ending loop.
| Field Category | Source of Truth | Sync Direction | Notes |
|---|---|---|---|
| Name, email, phone | HubSpot | HubSpot to Outreach | CRM is the canonical contact record |
| Company, title, industry | HubSpot | HubSpot to Outreach | Enrichment data typically enters via CRM |
| Engagement status | Outreach | Outreach to HubSpot | Sequence state, last touch date, call dispositions |
| Lead score, ICP fit | HubSpot or external | To Outreach | Scoring models usually run in or feed into CRM |
| Custom research/snippets | Varies | To Outreach | Enrichment data for personalization should reach reps |
| Opt-out/compliance status | HubSpot | HubSpot to Outreach | Compliance data must be authoritative from CRM |
Custom Field Mapping for Personalization
If your team uses enrichment data for outreach personalization, custom field mapping becomes essential. The pattern looks like this: enrichment data enters HubSpot (from Clay, Clearbit, or manual research), gets stored in custom properties, and syncs to corresponding custom fields in Outreach where reps use it in sequences.
Common custom fields to map include:
- Personalization snippets: Pre-researched talking points or relevant company news
- ICP score: Fit score from your lead scoring model
- Trigger event: The specific event that prompted outreach (funding round, job change, tech adoption)
- Sequence reason: Why this contact was added to this specific sequence
- Account tier: Strategic priority level for routing and prioritization
For teams building sophisticated enrichment-to-outreach pipelines, understanding field mapping across CRM, sequencer, and analytics is foundational to making these custom mappings reliable.
Field Type Compatibility
Not all field types map cleanly between systems. HubSpot multi-select properties do not translate directly to Outreach custom fields. Date formats may differ. Numeric fields in one system may be text fields in the other. Test your custom mappings with real data before enabling them for your full database.
Known Limitations
Every integration has gaps. Here are the ones that matter most for GTM teams, along with the practical impact of each.
Sync Delay
The integration does not sync in real time. Standard intervals range from 5 to 15 minutes, and during high-volume periods (like a large sequence launch), delays can extend further. This means a rep who updates a contact's phone number in Outreach will not see that change reflected in HubSpot immediately. For time-sensitive workflows, this delay is a real constraint.
No Custom Object Support
The native integration syncs contacts, companies, deals, and activities. HubSpot custom objects are not supported. If your data model relies on custom objects (common in product-led growth setups or complex B2B environments), you will need the API or middleware to bridge this gap.
Limited Sequence-Level Data in HubSpot
Individual activities sync, but sequence-level metadata does not. HubSpot does not natively receive data like "which sequence is this contact in," "what step are they on," or "why were they added to this sequence." You see the individual emails and calls, but not the orchestration context that ties them together. This makes sequence performance analysis from HubSpot difficult without additional custom development.
One HubSpot Portal per Outreach Instance
Outreach connects to one HubSpot portal at a time. Organizations with multiple HubSpot portals (common in holding company structures, post-acquisition environments, or teams running separate portals for different business units) cannot sync a single Outreach instance to multiple portals natively.
No Workflow Triggers from Outreach Events
HubSpot workflows cannot be directly triggered by Outreach sequence events. You can build workarounds (using activity logging plus HubSpot workflow filters), but there is no native "when a prospect enters an Outreach sequence, do X in HubSpot" trigger. Teams doing trigger-based outreach need to architect around this limitation.
Field Mapping Limitations
The number of custom fields you can map is capped (the exact limit depends on your plan tier). Complex field transformations (concatenation, conditional logic, format conversion) are not supported natively. If you need field A from HubSpot to map to field B in Outreach only when field C has a specific value, you need middleware.
Workarounds for Common Issues
The limitations above are real, but most have practical workarounds that GTM engineers use daily.
Workaround: Sequence Data in HubSpot
Since sequence-level metadata does not sync natively, use a custom HubSpot property updated via the Outreach API or webhook. When a contact is added to a sequence, fire a webhook to a middleware layer (Make, Zapier, or a custom endpoint) that updates a "Current Outreach Sequence" property on the HubSpot contact. The same approach works for sequence step number and sequence outcome.
This gives you HubSpot workflow capability based on sequence state without waiting for native support that may never come.
Workaround: Real-Time Sync for Critical Events
For events that cannot wait 5-15 minutes (like email replies or meeting bookings), use Outreach webhooks to push data to HubSpot via the HubSpot API in near-real-time. Build a lightweight middleware layer that receives Outreach webhook events and writes them to HubSpot immediately. This runs parallel to the native integration, not as a replacement.
Teams already comfortable with webhook-driven outbound workflows will find this pattern familiar.
Workaround: Multi-Portal Sync
For organizations needing one Outreach instance connected to multiple HubSpot portals, use a middleware platform (Make or Tray.io) as a routing layer. Outreach data flows to the middleware, which determines the correct HubSpot portal based on business rules (team, region, business unit) and routes accordingly.
Workaround: Complex Field Transformations
When you need conditional logic, data formatting, or calculated fields in your sync, add a middleware step between the two platforms. Make scenarios or n8n workflows can intercept sync data, apply transformations, and push the result to the target system. For example, you might concatenate first name and last name fields, convert date formats, or map Outreach disposition codes to HubSpot-specific status values.
Workaround: Activity Deduplication
If the same activity appears multiple times in HubSpot (a known issue during sync retries or reconnection events), build a HubSpot workflow that checks for duplicate engagements based on timestamp and type, then removes or flags duplicates. Alternatively, implement deduplication logic in your reporting layer rather than trying to prevent duplicates at the sync level.
If you find yourself maintaining more than three or four middleware workflows to patch integration gaps, reconsider your architecture. At some point, the maintenance overhead of multiple workarounds exceeds the cost of a purpose-built integration layer. Tracking which workaround handles which data flow becomes its own operational burden.
Troubleshooting Common Sync Issues
Integrations break. Here are the issues you will encounter most frequently and how to diagnose them.
Activities Not Appearing in HubSpot
Check these causes in order:
- Contact does not exist in HubSpot: Activities only log to existing contacts. If the Outreach prospect has no matching HubSpot contact, the activity has nowhere to go.
- Email mismatch: The primary email in Outreach does not match any email in HubSpot. Check for typos, format differences, or secondary email addresses.
- Activity type not enabled: Verify the specific activity type is configured for logging in your integration settings.
- Rate limits: During high-volume periods, the integration may throttle. Check the Outreach sync log for rate limit errors.
Contact Data Not Syncing
If contact updates are not propagating:
- Verify the field is mapped in your integration configuration
- Check sync direction. If you set one-way sync, changes in the non-authoritative system will not propagate
- Look for field-level permissions. Some HubSpot properties may be locked to specific users or workflows
- Check for empty field handling. Some configurations skip blank values rather than overwriting existing data with empty fields
Duplicate Records After Enabling Sync
If sync creates duplicates, you likely have records in both systems with non-matching primary identifiers. Run a deduplication audit on both platforms. Standardize email formats and company domain values before re-enabling sync. Consider pausing sync, cleaning the data, and re-establishing the connection with stricter matching rules.
The Context Problem at Scale
Running the Outreach-HubSpot integration for a 10-person SDR team is manageable. You configure it once, fix the occasional sync issue, and move on. At 50 reps, 500 reps, or across multiple business units with different workflows and different data requirements, the picture changes fundamentally.
The core issue is not the integration itself. It is that a point-to-point connection between two platforms cannot carry the contextual weight that modern GTM operations demand. Your enrichment data lives in Clay. Your engagement history lives in Outreach. Your pipeline data lives in HubSpot. Your product usage data lives in your analytics platform. Your intent signals live in a third-party tool. The Outreach-HubSpot integration syncs some of this, some of the time, with a 10-minute delay and a limited set of fields.
At scale, you do not just need data to move between Outreach and HubSpot. You need every system in your stack to operate with complete, current, unified context. A rep opening an Outreach prospect should see not just the HubSpot contact data, but the Clay enrichment, the product usage signals, the marketing engagement, and the support ticket history, all synthesized into something actionable.
This is the infrastructure gap that context platforms like Octave are designed to fill. Instead of building and maintaining individual integrations between every pair of tools in your stack, Octave maintains a unified context graph that keeps data consistent everywhere. When a contact's data changes in any system, every other system has the update. When a rep needs the full picture on a prospect, it is already assembled. For teams whose Outreach-HubSpot integration is just one of a dozen sync relationships they are managing, this kind of unified orchestration is the difference between operational fragility and genuine scalability.
FAQ
Yes. You need HubSpot Sales Hub Professional or Enterprise. The integration depends on features like custom properties, workflows, and engagement APIs that are not available on Free or Starter plans. On the Outreach side, you need the Professional plan or higher.
Not natively. Individual activities (emails, calls) sync as engagements, but sequence-level metadata like sequence name, step number, and sequence outcome does not transfer. The workaround is using Outreach webhooks or API calls to update custom HubSpot properties with this data through middleware.
Use one-way sync for enrichment fields, flowing from HubSpot (where enrichment data enters) to Outreach. For fields where enrichment data should never be overwritten, do not include them in the Outreach-to-HubSpot sync direction. Per-field sync direction settings are the key to protecting your enriched data.
Activities and data changes that occur during a disconnection are not retroactively synced when you reconnect. You will have a gap in your HubSpot timeline for the disconnection period. Set up monitoring to alert your team immediately if the connection drops, and have a process for manual backfill if needed.
Outreach supports only one CRM integration at a time. If you are currently connected to Salesforce and want to switch to HubSpot, you must disconnect Salesforce first. Organizations migrating between CRMs should plan the integration cutover carefully to minimize data gaps.
Configure the integration to create new HubSpot contacts when no match is found, or run a bulk import of Outreach contacts into HubSpot before enabling sync. The second approach is cleaner because it lets you set default property values and proper company associations during import.
Conclusion
The Outreach-HubSpot integration is a foundational piece of infrastructure for sales teams running both platforms. When configured correctly, it eliminates manual activity logging, keeps contact data consistent, and gives your entire organization visibility into sales engagement. When configured carelessly, it creates data quality problems that compound over time.
The key decisions come down to sync direction, field ownership, and activity logging scope. Start with clear rules about which system owns which data. Map fields deliberately rather than syncing everything by default. Test with a small cohort before enabling full sync. And build monitoring so you know when something breaks before your reps notice.
Understand the limitations upfront. The integration does not sync custom objects, does not provide real-time updates, and does not transfer sequence-level metadata. These are not deal-breakers, but they require workarounds that add complexity to your stack. Plan for that complexity from the beginning rather than discovering it mid-implementation.
For teams whose Outreach-HubSpot integration is one connection in a larger GTM data architecture, the real challenge is not configuring any single integration. It is maintaining consistency across all of them. Getting that right is what separates teams that scale their outbound operations from teams that rebuild their data infrastructure every quarter.
