There are two real ways to get your LinkedIn contacts into HubSpot: LinkedIn’s own data export plus a CSV import, which is free and manual, or a direct push from a tool that tracks your connections. Both work. They differ in what arrives, whether it stays current, and whether you end up cleaning duplicates afterwards. This guide covers both, honestly, including the part of the CSV method that surprises everyone.
Method 1: the free CSV import
- Request your data from LinkedIn. Settings and Privacy, then Data privacy, then Get a copy of your data. Tick Connections and request the archive. LinkedIn emails you a download link, usually within minutes for the connections file.
- Open the CSV and check it. You get first name, last name, company, position, connected date, profile URL, and an email column that is mostly empty (see below). Delete the notes rows at the top of the file if present.
- Import into HubSpot. Contacts, then Import, then Start an import, File from computer, One file, One object, Contacts. Upload the file.
- Map the columns. Match each CSV column to a HubSpot property. Map the profile URL to HubSpot's native LinkedIn URL property rather than a text field, so you have a matching key later.
The surprise:the email column is mostly blank. LinkedIn includes a connection’s email only if that person chose to share it with connections, and most have not. Since HubSpot deduplicates contact imports on email address, a blank email column also means your matching key is missing, which is how people end up with duplicates after the second import.
Method 2: push directly from Outscore
Outscore tracks your connection requests as you use LinkedIn, so it already holds the list with statuses attached. Connecting HubSpot lets you send the people you choose across as contacts.
- Connect HubSpot. Click Connect HubSpot in the Outscore dashboard and authorize. Official OAuth, no API key to paste, no admin permissions needed, and it works on HubSpot's free tier.
- Filter to the people you actually want. By status, company, date range or outcome. Most people want the recent accepts or one segment, not their entire network.
- Click Push to HubSpot. Each person is created or updated as a contact with first and last name, job title from their headline, company plus an associated company record, LinkedIn URL, connection status, connected date, a timeline note, and you as owner.
Contacts are deduped on the LinkedIn profile URL and written fill-only, so re-pushing updates the same person and never overwrites data already in your CRM. The push runs from your browser directly to HubSpot; your LinkedIn data does not pass through our servers.
Which method to use
| CSV import | Outscore push | |
|---|---|---|
| Cost | Free | Free to track, then $10/mo or $39 once |
| Emails included | Rarely, only if shared | When the contact lists one on their profile |
| Connection status | No | Accepted, pending, declined, with dates |
| Dedupe key | Email, often missing | LinkedIn URL, always present |
| Stays current | No, a snapshot | Yes, and can push new accepts automatically |
| Select a subset | Edit the spreadsheet by hand | Filter in the dashboard |
| Best for | A one-time load | An ongoing pipeline in the CRM |
If you need a list in HubSpot once and never again, the CSV method is genuinely fine and costs nothing. If the LinkedIn connections you make are pipeline you will work over time, the snapshot problem becomes the whole problem: a file with no status, no updates and no matching key is out of date the day after you import it.
Frequently asked questions
How do I import LinkedIn contacts into HubSpot?
Two methods. Free and manual: request your data archive from LinkedIn (Settings and Privacy, Data privacy, Get a copy of your data, tick Connections), wait for the email, then in HubSpot go to Contacts, Import, File from computer, and map the columns. Automatic: connect Outscore to HubSpot and push the connections you select as contacts in one click, deduped by LinkedIn URL, with company, job title, status and connected date set.
Why does my LinkedIn export have no email addresses?
Because LinkedIn only includes a connection's email address if that person has chosen to share it with their connections, and most people have not. This is the single most common surprise in the CSV method: you get names and companies but a mostly empty email column, which makes the import far less useful for a CRM. Outscore reads a contact's own listed email when they have shared it on their profile, and pushes it to HubSpot's native email property.
Do I need a paid HubSpot plan to import LinkedIn contacts?
No. Importing contacts and companies works on HubSpot's free CRM, and Outscore's push is built to work with the free tier. The native LinkedIn Sales Navigator integration is the part that requires paid HubSpot tiers plus a Sales Navigator Advanced seat, but neither the CSV method nor Outscore does.
How do I avoid duplicate contacts when importing from LinkedIn?
You need a stable matching key. HubSpot deduplicates imports on email address, so if the email is missing (which is common in LinkedIn exports) or if a person uses a different address, repeat imports create duplicates. Outscore dedupes on the LinkedIn profile URL, written to HubSpot's native LinkedIn URL property, which exists for everyone and never changes, so re-syncing updates the same contact instead of creating a second one.
Can I import only some of my LinkedIn connections?
With the CSV method you would filter the spreadsheet by hand before importing. With Outscore you filter inside the dashboard, by status, company, date range or connection outcome, and push only that selection. That matters because most people do not want their entire network in the CRM, only the people who accepted recently or who fit a segment.
How often does the import need to be repeated?
The CSV is a snapshot, so it goes stale the moment you download it, and there is no status attached to say who accepted since. Outscore keeps tracking after the first push, and Scheduled updates (part of Pro) can push newly accepted connections to HubSpot automatically after each background sync, so the CRM stays current without you repeating anything.