Apollo.io + HubSpot Integration Guide: Full Setup 2026

An Apollo.io and HubSpot integration should save your sales team hours every week and make attribution trivially easy. In practice, most teams set it up in 20 minutes, discover three weeks later that contacts are duplicating, deal sources are wrong, and sequences are running on stale data. Then they spend two months untangling it. The integration is powerful, but the defaults are not sensible, and the documentation assumes you know exactly what to configure.
We set up and maintain this integration for dozens of B2B clients, and this guide walks through the full 2026 setup the way we actually do it. You will know which settings to change from the defaults, how to structure attribution, and what to monitor weekly to keep the data clean.
What This Integration Actually Does
Apollo.io is both a database and a sequencing platform. HubSpot is your CRM and marketing system of record. The integration can do several things, but you need to pick which:
- Sync Apollo contacts into HubSpot (prospects found in Apollo become HubSpot contacts) - Log Apollo activity (emails sent, replies received, calls logged) into HubSpot as engagements - Create HubSpot deals from Apollo meetings (automation you set up yourself) - Pull HubSpot contact lists into Apollo for sequencing (re-engagement of known contacts)
Not every team needs all four. Turning on everything creates the duplication mess that most teams run into.
Prerequisites
Before you start, confirm the following:
- Apollo.io account on a plan that includes the HubSpot integration (most paid plans do) - HubSpot Super Admin access, or at least integration permissions - A clear answer to this question: "When a contact exists in both Apollo and HubSpot, which system wins?"
That last question is the most important. Get it wrong and you will be deduplicating contacts for months.
Step 1: Decide Your Source of Truth
Before you connect anything, decide: HubSpot is the source of truth for your CRM data. Apollo is the source of truth for new prospect data. This means:
- New prospects created in Apollo flow INTO HubSpot - Contacts updated in HubSpot (lifecycle stage, deal stage, phone number corrections) do NOT flow back to Apollo unless explicitly configured - Activities from Apollo (emails, calls) flow INTO HubSpot as engagements - Duplicates are resolved in favor of HubSpot's record
Configuring the sync this way prevents Apollo from overwriting enriched HubSpot records with stale Apollo data.
Step 2: Connect Apollo to HubSpot
In Apollo, navigate to Integrations > HubSpot. Click Connect. You will be redirected to HubSpot to authorize.
In HubSpot, grant Apollo the permissions it requests, but review them. Apollo typically requests read/write access to contacts, companies, deals, and engagements. Read/write is fine for the first three. For engagements, read/write is required so Apollo can log activity.
Once authorized, you will return to Apollo's integration settings. Do NOT use the default sync settings. Change them in Step 3.
Step 3: Configure Sync Direction
This is where most teams mess up. The default sync is bidirectional, which means changes in either system propagate to the other. This causes duplicates and overwrites.
Set the sync direction as follows:
- Contacts: Apollo to HubSpot only. New Apollo contacts create HubSpot contacts. HubSpot updates do not flow to Apollo. - Companies: Apollo to HubSpot only. Same logic. - Engagements (emails, calls, tasks): Apollo to HubSpot only. Every Apollo activity creates a HubSpot engagement. - Contact lists: HubSpot to Apollo only, and only on-demand. Use this when you want to pull a HubSpot list into an Apollo sequence.
One-way sync prevents most of the duplication and overwrite issues.
Step 4: Set Up Field Mapping
Apollo's default field mapping is basic. Add these mappings explicitly:
| Apollo Field | HubSpot Field |
|---|---|
| Apollo Contact ID | Custom property: `apollo_contact_id` |
| Sequence Name | Custom property: `apollo_last_sequence` |
| Last Contacted Date | Custom property: `apollo_last_contacted` |
| Reply Status | Custom property: `apollo_reply_status` |
| Email Status | Custom property: `apollo_email_status` |
These custom properties give you reporting options later. Without them, you cannot segment HubSpot contacts by Apollo sequence performance.
Step 5: Configure Activity Logging
Apollo activities (sent emails, opened emails, clicks, replies, calls, tasks) should all log to HubSpot as engagements. In Apollo's integration settings:
- Enable "Log sent emails as HubSpot engagements" - Enable "Log replies as HubSpot engagements" - Enable "Log calls as HubSpot engagements" - Enable "Create HubSpot tasks for Apollo tasks"
Each engagement should include the email body, subject line, timestamp, and associated Apollo sequence. This gives your sales reps full context in HubSpot without switching tools.
Step 6: Set Up Attribution
Attribution is where outbound programs prove their value or fail to. Configure these HubSpot properties:
- Original Source Drill-Down 1: Contact's first touchpoint channel - Original Source Drill-Down 2: Specific Apollo sequence or campaign name - Custom property `outbound_source`: Set to "Apollo Sequence - [Name]" via workflow when an Apollo engagement fires
Then, create a HubSpot workflow: when a deal is created from a contact with `outbound_source` containing "Apollo," automatically set the deal's `Deal Source` to "Outbound - Apollo." This gives you clean closed-won attribution reports.
Step 7: Build the First Sequence
In Apollo, build a sequence for a defined ICP. Pull contacts from HubSpot (using a HubSpot list as a source) or from Apollo's database (for new prospects).
A good sequence structure for SaaS:
1. Day 0: Email 1 (personalized opener) 2. Day 4: Email 2 (same thread, follow-up) 3. Day 10: Email 3 (fresh angle, new subject) 4. Day 18: Email 4 (breakup)
For template inspiration, see our cold email template for SaaS article.
As the sequence runs, every activity logs to HubSpot automatically. Your AE sees the full history when a contact replies.
Step 8: Monitor the Sync Log
For the first 30 days, check the Apollo integration sync log every Friday. Look for:
- Duplicate contact errors - Field mapping failures - Rate limit issues - Missing HubSpot properties
Fix anything that appears. After 30 days of clean syncing, reduce the review to monthly.
Reporting That Proves ROI
Once the integration has been running for 60 days, build these HubSpot reports:
- Apollo Sequence -> Meeting Booked: Measures meeting conversion by sequence name - Apollo Sequence -> Closed Won: Dollar-weighted closed won by originating sequence - Reply Rate by Sequence: Benchmarking different copy approaches
These three reports are usually enough to justify Apollo's cost and identify which sequences to double down on.
Advanced: Combining with Other Tools
Apollo plus HubSpot is a foundation. Most teams add layers on top:
- Clay for enrichment beyond Apollo's data - Smartlead for high-volume cold sending separate from Apollo's sequencer - A LinkedIn tool like HeyReach for multi-channel sequencing
Each integration adds complexity. Only layer what delivers measurable pipeline impact. See our full B2B outbound tool stack breakdown for specifics.
Apollo plus HubSpot is the 80/20 stack for B2B SaaS. Get the integration right and you have every number you need to defend outbound in your next board meeting.
When to Hand This Off
Running Apollo plus HubSpot well requires ongoing attention: list hygiene, sync monitoring, sequence optimization, and attribution tuning. Most SaaS teams under $10M ARR do not have a dedicated sales ops person to own this.
If you would rather skip the setup and maintenance entirely, we run the stack for clients as part of our managed outbound service. Every configuration above is handled on our side, and every attribution lands in your HubSpot cleanly. See our services for detail.
Ready for Outbound With Clean Attribution?
The right tools configured correctly are half the outbound battle. The other half is the system that uses them. If you would rather see qualified meetings on your calendar than manage another integration, we run the full engine.
Frequently Asked Questions
Hiring an in-house SDR costs $5,500+/month in salary alone, before tools ($3K–5K/month), training, and management. Agencies typically charge $3,000–8,000/month. A managed outbound system like LeadHaste runs $2,500/month after a free pilot — with infrastructure the client owns and a performance guarantee.
With a properly built system, most clients see their first qualified replies within 2–3 days of campaign launch (after the 2–3 week warm-up period). The real power shows in month 2–3 as domain reputation strengthens, sequences optimize from real data, and targeting sharpens.
In-house works if you have a dedicated ops person, 6+ months of runway for ramping, and budget for 20+ tool subscriptions. Outsourcing makes sense when you want speed-to-pipeline, can't justify a full-time hire, or need multi-channel orchestration (email + LinkedIn + intent data) that requires specialized tooling.
Inbound attracts leads through content, SEO, and ads — prospects come to you. Outbound proactively reaches prospects through targeted email, LinkedIn, and calls. Inbound scales slowly but compounds over time. Outbound delivers faster results but requires ongoing execution. The best B2B companies run both.
A compound outbound system is an orchestrated set of 20–30 tools (enrichment, sending, warm-up, analytics) that improves automatically over time. Month 2 outperforms month 1 because domain reputation strengthens, AI sequences learn from engagement data, and targeting tightens from real conversion patterns. It's the opposite of starting fresh every month.

Dimitar Petkov
Co-Founder of LeadHaste. Builds outbound systems that compound. 4x founder, Smartlead Certified Partner, Clay Solutions Partner.


