Skip to main content
Integration

Expandi + HubSpot Integration Guide: Setup, Use Cases

July 2, 20268 min read

Connect Expandi and HubSpot in 6 steps. Real setup tips, field mapping pitfalls, and sync troubleshooting for LinkedIn outreach teams in 2026.

Expandi costs $99/month. HubSpot Sales Hub Professional runs $450/month for 5 seats. If those two tools aren't talking to each other, you're paying for two systems and getting one workflow. Your reps run LinkedIn sequences in Expandi and then open HubSpot to log the same interaction by hand. Bridge Group's 2024 SDR Metrics report puts manual data entry at 3-4 hours per rep per week.

By Rishabh Ambasta, Founder, Modern Inbound.

This guide covers the Expandi-HubSpot integration: how the sync works, a 6-step setup walkthrough, what fields map cleanly, and the three failure modes teams hit in the first 30 days.

How the Expandi-HubSpot Integration Works

Expandi pushes contact data and LinkedIn activity events into HubSpot on event trigger, not on a polling schedule. When a connection accepts your request or replies to a message, a record hits HubSpot within minutes. The default data flow is one-directional: Expandi to HubSpot. Pulling HubSpot lists back into Expandi campaigns requires either a Zapier layer or direct API work.

The connection runs through a HubSpot Private App token. Expandi doesn't use OAuth, which means you'll need Super Admin or Integration Manager permissions in HubSpot to generate the token. Once connected, the integration persists without re-authentication unless you rotate your HubSpot API token.

Four trigger events drive the sync: Connection Accepted, Message Sent, Reply Received, and Campaign Completed. Each event maps to a different HubSpot lifecycle stage or creates a note on an existing contact record. Most teams ignore Campaign Completed. That's a mistake. It's the only native trigger that attributes a closed-won deal back to a specific Expandi campaign without custom attribution logic.

6-Step Setup Guide

The full Expandi-HubSpot setup takes under 20 minutes if your HubSpot Private App token is ready. The native integration handles contact creation and basic property sync. For campaign-stage-to-deal-stage mapping, you'll need a Zapier zap on top of the native connection.

  1. Generate a HubSpot Private App token. Go to HubSpot Settings > Integrations > Private Apps > Create a private app. Under Scopes, enable: crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.deals.read, and timeline. Copy the token before closing the modal.
  2. Connect in Expandi. Open Expandi Settings > Integrations > HubSpot. Paste the Private App token and click Connect. A green checkmark confirms the connection. A 401 error means your token is missing crm.objects.contacts.write scope.
  3. Map contact fields. Link Expandi's profile fields to HubSpot contact properties: First Name, Last Name, Email, LinkedIn URL, Company Name, Job Title. LinkedIn URL is the deduplication key. When HubSpot already has a contact with that LinkedIn URL, Expandi updates rather than creates a second record.
  4. Configure trigger events. For each Expandi campaign, set which HubSpot action fires on Connection Accepted, Message Sent, and Reply Received. Most teams set Connection Accepted to create a contact at the Lead stage, and Reply Received to add a note and move to Marketing Qualified Lead.
  5. Set a default Contact Owner. Without this, all synced contacts land as unowned in HubSpot and drop out of round-robin assignment. Set the owner at the campaign level, not globally, so multi-rep setups stay clean.
  6. Run a test sync. Send a connection request from a live campaign to a dummy LinkedIn profile you control. Accept it and verify the contact appears in HubSpot within 5 minutes with all mapped fields populated. If fields are blank, the field mapping in step 3 didn't save.

What Syncs Between Expandi and HubSpot

Expandi natively syncs six contact properties: name, email, LinkedIn URL, company, job title, and campaign name. That covers basic lead qualification. It doesn't sync LinkedIn profile photos, mutual connections, or Sales Navigator data. You'll need a separate enrichment step with Clay or Surfe if those fields matter in your HubSpot records.

Data TypeSyncs NativelyRequires ZapierNot Supported
Contact properties (name, email, title)Yes
LinkedIn URLYes
Activity notes (messages sent/received)Yes
Lifecycle stage updatesYes
Deal creation from campaign completionYes
HubSpot list to Expandi campaign importYes
LinkedIn profile photoYes
Sales Navigator insightsYes

The honest take: Expandi's native integration covers what most outbound teams actually need. If you want bidirectional list sync or deal creation on campaign completion, build the Zapier layer now. Don't wait for native support that may never ship.

Common Pitfalls and How to Fix Them

Duplicate contact records are the most painful failure mode in this integration. They happen when HubSpot already has a contact without a LinkedIn URL, Expandi tries to match on email, and the LinkedIn profile doesn't expose an email address. Expandi creates a second record. Fix this before campaigns go live: enrich your HubSpot contacts with LinkedIn URLs using Surfe or PhantomBuster, then sync.

Three more failure modes teams hit in the first 30 days:

  • Rate limits. HubSpot's API caps at 100 requests per 10 seconds on Free and Starter plans. Expandi campaigns pushing 500+ contacts per day will hit this ceiling and silently drop records. No error notification fires. Upgrade to HubSpot Sales Hub Professional or throttle Expandi campaign sending below 200 connections per day per account.
  • Field mapping drift. When someone renames a HubSpot contact property, the Expandi mapping breaks with no notification. You find out when a month of campaign data shows blank job title fields. Set a monthly reminder to verify every Expandi field mapping still points to an active HubSpot property.
  • Deliverability impact from enrichment automations. Some teams trigger HubSpot workflows on "Contact Created" that auto-enrich new records with Clearbit. If those enrichment tools fire email sends from your HubSpot sending domain, it can affect reputation for campaigns running on separate infrastructure like Instantly or Smartlead. Keep HubSpot enrichment workflows isolated from email-sending automations when contacts originate from Expandi.

Use Cases That Move Pipeline

The Expandi-HubSpot integration earns its keep in three specific workflows. Teams that try to build all three at once usually get none of them right. Pick one, prove it, then expand.

LinkedIn-to-email handoff. When a connection accepts in Expandi, HubSpot creates the contact and immediately enrolls them in an email sequence via Smartlead. LinkedIn opens the relationship, email carries it forward without manual handoff. Teams running this through Modern Inbound see 20-30% higher reply rates compared with email-only sequences, per our internal data across 3,000+ outbound campaigns.

Pipeline attribution. Tag every Expandi campaign with a source field in HubSpot. When a deal closes, the Lead Source field shows which campaign generated the original LinkedIn connection. That's the data your finance team needs to justify the $99/month Expandi seat cost against pipeline influenced.

Re-engaging dormant CRM contacts. Export HubSpot contacts with last activity older than 90 days, upload to Expandi, and run a LinkedIn re-engagement campaign. Because these contacts already exist in your CRM, Expandi adds notes to existing records instead of creating duplicates. Filter out contacts with open deals first, or your AEs will receive LinkedIn messages to their active prospects.

Scale Outreach Without Hiring SDRs

Most B2B teams underestimate the work before sending: buyer-language research, list logic, DNS, warm-up, deliverability, copy testing, and reply handling. Modern Inbound runs the operating layer so founders can stay focused on sales calls.

Frequently Asked Questions

Does Expandi have a native HubSpot integration?

Yes. Expandi connects to HubSpot via a Private App token. The native integration syncs contact properties and LinkedIn activity events. For deal creation and bidirectional list sync, you'll need a Zapier layer on top of the native connection.

Will Expandi create duplicate contacts in HubSpot?

It can. Duplicates happen when the LinkedIn profile doesn't expose an email and HubSpot already has a contact without a LinkedIn URL field populated. Map LinkedIn URL as your deduplication key in Expandi's field settings and pre-enrich HubSpot contacts with LinkedIn URLs before running any campaigns.

Which HubSpot plan do I need for the Expandi integration?

HubSpot Free works for basic contact sync, but the API rate limit (100 requests per 10 seconds) throttles high-volume Expandi campaigns. HubSpot Sales Hub Professional removes most practical rate limits and adds deal pipeline features that make the full integration worth building.

Can I import HubSpot lists directly into Expandi campaigns?

Not natively. Expandi doesn't pull from HubSpot lists out of the box. Export the HubSpot list as a CSV and upload to Expandi, or build a Zapier zap that adds new HubSpot list members to an Expandi campaign automatically. The Zapier path is cleaner for recurring workflows.

If you'd rather skip building this stack yourself, Modern Inbound runs done-for-you LinkedIn outbound and cold email, including full CRM sync setup. No SDR to hire. No tools to stitch together manually.

Rishabh Ambasta

Rishabh Ambasta

Founder of Modern Inbound

I've worked across SaaS outbound teams from $1M to $50M ARR and now run a boutique cold outreach agency. I've generated millions in pipeline through creative, low-conflict outbound systems.

Get the outbound breakdown.

Real campaigns we ran this month. Numbers, copy, what worked, what didn't. Drop your work email.

Any email works.

Ready to fill your pipeline?

We build cold outbound systems that book 20-30 qualified meetings per month. No long-term contracts.

Book a Strategy Call