Smartlead has a native HubSpot integration: connect it under Integrations → native integrations → HubSpot, pick the lead category that should create a HubSpot deal, and turn on activity tracking. The decision that matters is what happens to cold leads. On a CSV campaign, Smartlead only syncs when you enable "Create Leads in HubSpot" at import, and that creates or updates a HubSpot record for every lead added to the campaign, not only the people who reply. If HubSpot should receive interested replies only, leave that toggle off and use an email-keyed upsert triggered by Smartlead's Lead Category Update event, through a SmartAgent or a webhook into Make or Zapier.
This guide is based on Smartlead's native HubSpot guide, HubSpot sync FAQ, campaign setup guide and SmartAgents HubSpot guide, plus HubSpot's deduplication and contacts API documentation, all checked October 16, 2026. We did not connect a private Smartlead or HubSpot account, so treat each step as documented behavior to confirm with one test lead. Smartlead's older and newer articles use slightly different labels; the screen in your account wins.
Choose the route before you connect anything
| Route | What reaches HubSpot | Who becomes a HubSpot record | Main limit |
|---|---|---|---|
| Native, leads imported from a HubSpot list or view | Sent and replied emails as email activities; opens, clicks, bounces and unsubscribes as notes; a deal when a lead gets your chosen category | Nobody new: the leads already exist in HubSpot | Deals are created in one stage and never moved |
| Native, CSV upload with Create Leads in HubSpot | Same as above | Every lead added to the campaign | HubSpot fills with people who never replied |
| SmartAgent with HubSpot Upsert Contact | Email, first name, last name, company name | Only leads matching your trigger, such as Interested | Basic fields; the workflow is AI-generated, so review every step |
| Webhook to Make, Zapier or your own code | Whatever you map | Only events you let through | You own retries, deduplication and maintenance |
Smartlead's overview promises bringing warm leads into HubSpot "based on interactions" such as replies or clicks. The setup steps it documents push records at import, though, and we found no documented native setting that creates the HubSpot contact only after a positive reply. That gap is why the interested-only routes exist. Paid sync apps such as OutboundSync are a fifth option; we haven't tested them.
Prerequisites
- A Smartlead plan with CRM access. Smartlead's pricing page marks CRM access and API & webhooks as not included on Base ($39/month billed monthly) and included from Pro ($94/month) upward. The row doesn't name HubSpot, so confirm the option appears in your Integrations tab. The SmartAgent route also needs SmartAgents access.
- A HubSpot user who can authorize OAuth apps and create properties. Involve your HubSpot admin; this writes into your sales team's system of record.
- Written decisions: the category that creates a deal (start with Interested), its pipeline stage, its owner, the HubSpot fields Smartlead may write, and how opt-outs flow each way.
- Agencies: Smartlead doesn't document a separate HubSpot portal per client, so confirm which portal the connection writes to before enabling it on a client campaign. Our Smartlead client access guide explains how clients and campaigns are separated.
Set up the native integration
1. Create HubSpot properties for custom fields
Name, email and company need no preparation. For custom fields such as a personalized first line, go to Settings → Data Management → Properties in HubSpot, create a property group called Smartlead, and add the properties there. Smartlead recommends prefixing each label with "Smartlead" so the sync never writes into an existing property. Smartlead also lets you pre-map HubSpot fields to Smartlead fields so they fill in whenever HubSpot is the lead source.
2. Connect the HubSpot portal
In Smartlead, open the Integrations tab, go to the native integrations sub-tab and select HubSpot. If your login sees several HubSpot accounts, choose carefully. Smartlead's guide says an "unverified" message will appear and you can continue; have your HubSpot admin confirm the app and requested access first.
3. Configure deal creation and activity tracking
Smartlead then shows three settings: the lead category that creates a deal, the activity tracking toggle, and the HubSpot stage for new deals. Smartlead says all three are needed for deal creation plus activity tracking. Its note on tracking activity without deals is ambiguous about which setting to keep, so test that combination with one lead.
| Smartlead event | Logged in HubSpot as |
|---|---|
| Sent email, replied email | Email activity |
| Email open, link click, lead unsubscribed, email bounced | Note |
Notes are visible on the timeline but harder to filter and report on. Smartlead also says it does not move deals to another stage; it only creates them in the stage you select.
4. Enable HubSpot on each campaign
The connection doesn't apply to every campaign. Smartlead's sync FAQ says you enable it per campaign when adding leads, and it can't be added midway through an active campaign.
- HubSpot as the source: choose Import from a CRM, then the HubSpot list or view and the property group.
- CSV upload: under CRM Sync, enable Create Leads in HubSpot, choose the HubSpot list and group, and map fields. Smartlead's newer campaign guide says this creates or updates leads in HubSpot when they're added to the campaign. The older FAQ labels it "Create the lead in Hubspot if they don't exist in Hubspot already" and says campaign data only syncs when it's on.
Then check the campaign's Import leads section: the HubSpot integrated column should show Yes.
How HubSpot decides what is a duplicate
HubSpot deduplicates contacts on the Email property for manual entry, forms and imports, and its contacts API treats email as the primary unique identifier with upserts keyed on email. Smartlead says its CSV push won't create duplicates, and its SmartAgent upsert searches by email first. Duplicates still appear in four places:
- Another address for the same person. A reply from a personal address, alias or secondary email won't match the imported work address. Route those to a person instead of creating a second contact.
- Companies. HubSpot says companies created through the API or third-party sync apps aren't deduplicated by domain. Smartlead's guides don't mention companies, so don't add automation that creates them from email domains.
- Deals. Smartlead doesn't document what happens when a lead is recategorized or reaches Interested again in another campaign. Test it.
- Two routes on one event. Native auto-deal, a SmartAgent and a Zap all reacting to Interested will compete. Give one route ownership of deal creation.
Two more HubSpot rules matter if you push every lead. HubSpot says any integration or API sets new contacts as non-marketing by default; a Marketing Hub admin can change that per app under Integrations → Marketing Contacts, so check it before thousands of cold leads arrive. And through the API, Lifecycle stage only moves forward unless cleared first. Smartlead's guides don't mention lifecycle stage or contact owner, so manage both with HubSpot rules.
Interested-only routes that keep cold leads out
SmartAgent upsert
Smartlead's SmartAgents HubSpot guide documents a separate connection:
- Go to SmartAgents → Integrations, find HubSpot, click Connect and authorize through HubSpot's OAuth page until the status reads Connected.
- From SmartAgents → Home, start from the Inbox Reply Sync with Upsert template, a daily batch, or prompt it: when a reply is categorized Interested, search HubSpot by email, create the contact if missing, update it if found.
- For a real-time handoff, choose an Event-Based Trigger, scope it Account-Level, Client-Level or Campaign-Level, and select Lead Category Update. Event triggers can't be edited after the agent is created.
- Review the generated workflow node by node, click Test Run, and confirm HubSpot: Upsert Contact returns a created or updated contact. Then Deploy and watch the run logs.
The documented fields are email, first name, last name and company name, and empty Smartlead fields don't overwrite HubSpot values. You get a clean contact, not a deal or owner.
Webhook into Make or Zapier
In Smartlead, go to Settings → Webhooks → Add Webhook, select the campaign and the Lead Category Updated event, and paste a Make or Zapier webhook URL. Continue only when the new category is Interested, search HubSpot contacts by email, then create or update one contact. Smartlead's retry guide says slow or failed responses trigger retries and recommends checking the event ID so nothing is processed twice; its troubleshooting article adds that a user-level webhook overrides client- and campaign-level hooks. Our Smartlead and Make guide covers the full build with a dedupe ledger and failure recovery; swap its Pipedrive modules for HubSpot's.
Give every interested reply an owner
A deal with no owner is a lost reply in another database. Assign ownership in HubSpot: a workflow on the Smartlead deal stage if your subscription includes workflows, or a saved view of that stage that a named rep works daily. Keep existing contact owners; a cold campaign shouldn't reassign a managed account.
Jan recommended this kind of handoff in a March 2024 video on his agency's sales process: the setter creates a deal when someone replies positively and follows up, then switches the deal owner to the person taking the call once it's booked. His team ran that in Pipedrive, not HubSpot, so it isn't a test of this integration. It maps onto Smartlead's limit, though: Smartlead creates the deal in its first stage, and the booked-meeting stage and owner change are yours to run in HubSpot.
Start with manual categorization. Smartlead's campaign setup offers SmartLead AI auto-categorization or Manual Only; if AI labels decide which replies become deals, sample its Interested calls first.
Keep opt-outs suppressed in both directions
Smartlead to HubSpot. The native tracker logs Lead unsubscribed as a note, which is a timeline entry rather than a change to the contact's subscription status. If anyone emails these people from HubSpot, route opt-outs into an agreed HubSpot property or list as well, for example through a separate Lead Unsubscribed webhook. Never send opt-outs through the interested route. Our Smartlead unsubscribe guide covers the Smartlead side.
HubSpot to Smartlead. Smartlead's native guide doesn't document syncing HubSpot customers, open deals or opt-outs back as a block list. The documented manual path is the Global Block List: Settings → Global Block List, then Add Block List or Import CSV File. An unassigned entry only blocks campaigns with no client, so agencies need one entry per client. Keep the Global Block List and Unsubscribe List exclusions on at every import.
In a May 2023 CRM walkthrough, Jan said his team only added people to Pipedrive after a positive reply or an unsubscribe, and exported the CRM's domains every Friday into the sending tool's block list so nobody already in the CRM got cold email again. That's a dated manual process, not current Smartlead behavior. If you copy it, note that a domain entry stops outreach to everyone at that company.
Test with one lead before real campaigns
Use a pilot campaign and an address you control:
- Add the lead through your chosen route. On the native route, confirm HubSpot integrated: Yes.
- In HubSpot, confirm exactly one record, which object it landed in (the native guide says "leads", the SmartAgents guide says contacts), its mapped properties and its marketing status.
- Send a step and reply; confirm both email activities appear.
- Mark the reply Interested; confirm one deal in your stage, associated with the contact and owned by your rule.
- Change the category away and back, or repeat in a second campaign; record whether a second deal appears.
- Repeat with an existing HubSpot contact that has an owner and lifecycle stage; confirm neither was overwritten.
- Unsubscribe the test lead; confirm the HubSpot note and the Smartlead suppression.
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| Connected, but nothing reaches HubSpot | HubSpot wasn't enabled when leads were added | It can't be added to an active campaign; use a new campaign or import with the toggle on |
| Activities sync, no deal | No category or stage selected, or the lead got another category | Recheck the three deal settings with a test lead |
| HubSpot fills with prospects who never replied | Create Leads in HubSpot on a CSV campaign | Turn it off for future campaigns, use an upsert route, and review existing records with your admin before any cleanup |
| Duplicate contacts | Different addresses, or two routes on one event | Merge in HubSpot and give one route ownership |
| SmartAgent ran, contact missing | No valid email, or OAuth disconnected | Check run logs and SmartAgents → Integrations |
| Webhook never fires | A user-level or newer same-level webhook takes priority | Keep one webhook per level that handles several events |
OutboundXYZ has an affiliate relationship with Smartlead. It did not decide these steps or recommendations, which come from current public documentation rather than a private account test. Our Smartlead review covers the sender itself, the RevOps outbound stack covers routing and ownership across tools, and the HubSpot integrations hub compares other outbound tools that connect to HubSpot. Instantly users can follow our Instantly-to-HubSpot interested replies guide.
Frequently asked questions
Does Smartlead have a native HubSpot integration?
Yes. Smartlead documents a native connection under its Integrations tab that imports leads from HubSpot lists or views, logs email activities and notes, and creates a deal when a lead receives your chosen category. You enable it per campaign when adding leads.
How do I stop Smartlead from creating a HubSpot contact for every lead?
Leave Create Leads in HubSpot off on CSV campaigns and upsert contacts by email only when a lead's category changes to Interested, using a SmartAgent or webhook. Leads imported from HubSpot already exist there, so that native pattern adds nobody new.
Will Smartlead update HubSpot deal stages?
No. Smartlead says it creates deals in the stage you select and doesn't move them. Stage changes, owners and lifecycle stage belong in HubSpot.
Which Smartlead plan includes the HubSpot integration?
Smartlead's pricing page lists CRM access and API & webhooks from Pro upward, not on Base. It doesn't name HubSpot in that row, so confirm the option in your account.

