# HubSpot

Sync your team's LinkedIn activity to your HubSpot contacts.

## What it does

Needle writes your team's LinkedIn activity to the contacts in your HubSpot account: when an invite or message went out, when the person accepted a connection request or replied, and which account and teammate were behind it. Your team sees in HubSpot where each conversation stands. A conversation is synced from when the person became a lead, including messages written directly on LinkedIn. Chats with people who aren't leads stay out of HubSpot.

Needle writes to HubSpot. From HubSpot it only picks up merges, deletes, restores, and GDPR deletes of contacts it synced, so it keeps writing to the right contact.

## Connecting

In Settings > Integrations, select **Connect HubSpot** and approve the access in HubSpot. Approving needs a HubSpot user who may install apps in the account. Needle then adds its fields to your HubSpot contacts, in a group called "Needle", which takes a few seconds. HubSpot accounts in every region work.

Any member can connect HubSpot when it isn't connected yet. Only the member who connected it, or a workspace admin or owner, can change its settings or disconnect it. A HubSpot account can be connected to one Needle workspace at a time: connecting it from a second Needle workspace is refused until the first one disconnects.

HubSpot works on every plan, including the free trial. When the trial ends without a paid plan, syncing stops, and activity from that time isn't sent later.

## What is synced

Only activity from connected accounts shared with everyone in the workspace is synced; private accounts stay out of HubSpot. See [Who can do what](/docs/connected-accounts#who-can-do-what). All events below are ticked when you connect. Untick any under **Events sent to HubSpot** in the settings on the HubSpot page.

| Event | What it writes in HubSpot |
| --- | --- |
| Connection request sent | First LinkedIn contact at, last invite sent at, the account that sent it and the teammate behind it, connection status, and the invite note as a note |
| Connection request accepted | Last invite accepted at, Connected on LinkedIn with, connection status |
| Connection request withdrawn | Connection status |
| Message sent | First LinkedIn contact at, first and last message sent at, the account that sent it and the teammate behind it, Waiting on us, connection status, and the message as a note |
| Reply received | First and last reply at, the account that got it, Waiting on us, connection status, and the reply as a note |
| Lead added | Sequence, Campaign |
| Sequence finished | Sequence |
| Sequence stopped | Sequence |
| Lead suppressed | Do not contact |

## Fields

Needle adds these fields to your HubSpot contacts. Each label ends in "- Needle", and each has a description in HubSpot.

| Field | What it holds |
| --- | --- |
| Lead id - Needle | The Needle lead id, so a HubSpot workflow or agent can call the Needle API for this contact |
| LinkedIn connection status - Needle | "Invited", "Connected", "In conversation", or "Not connected" |
| First LinkedIn contact at - Needle | When your team first reached out by invite or message |
| Last LinkedIn invite sent at, sent by, actor - Needle | When the last invite went out, the LinkedIn account that sent it, and the teammate behind it |
| Last LinkedIn invite accepted at - Needle | When they last accepted an invite |
| Connected on LinkedIn with - Needle | Your LinkedIn accounts they are connected with |
| First and last LinkedIn message sent at, sent by, actor - Needle | When messages went out, the account that sent the last one, and the teammate behind it |
| First and last LinkedIn reply at, received by - Needle | When they replied, and the account that got the last reply |
| Waiting on us (LinkedIn) - Needle | Yes when their last message is newer than your team's last message |
| Sequence - Needle | Where they are in their latest campaign: "In progress", "Waiting", "Completed", "Stopped", or "Failed" |
| Campaign - Needle | The campaign they were last added to |
| Do not contact - Needle | Yes when they are on your suppression list |
| Activity - Needle | A link to their activity in Needle |

The "sent by" and "received by" fields hold the LinkedIn account, like `Ana Lopez (linkedin.com/in/ana-lopez)`. The "actor" fields hold the teammate in Needle, like `Ben Carter <ben@example.com>`: who sent the message by hand, approved it, or started the campaign that sent it. Under **Needle fields in HubSpot** you can sync a value to one of your own contact fields of the same type instead, or choose **Don't sync**.

Needle also links each contact it adds to a company, found or created by the lead's company domain. It adds one field to your HubSpot companies, "Company domain - Needle", so it never adds the same company twice.

## Notes

Each invite note, message, and reply becomes one note on the contact, dated when it was sent. Its first line says who wrote to whom, for example "LinkedIn: Message sent · Ana Lopez (by Ben Carter) → Sam Reed" or "LinkedIn: Reply received · Sam Reed → Ana Lopez". Turn off **Message notes** to keep message text out of HubSpot.

## When contacts appear in HubSpot

Needle adds a contact to HubSpot at the first real contact: a connection request sent or accepted, a message sent, or a reply. When a lead could be more than one HubSpot contact, it waits under **Needs review** on the HubSpot page until a member picks the right one.

Contacts Needle adds get "Legitimate interest – prospect/lead" in HubSpot's "Legal basis for processing contact's data" field, which HubSpot accounts with GDPR settings on require. Contacts that already exist keep their own legal basis. To use another one, change it in HubSpot.

## On the lead page

The HubSpot tile shows whether the lead is in HubSpot and links to their contact. **Add to HubSpot** adds a lead before their first contact, and **Add to HubSpot again** adds back someone deleted in HubSpot. Any member can use them.

## Activity

Open the HubSpot page with **View details** on the HubSpot card in Settings > Integrations. Its **Activity** list shows the last 25 leads synced, newest first, with a link to each contact in HubSpot.

## Import from HubSpot

Import HubSpot contacts as Needle leads, from the contact lists you pick or from all contacts. Only contacts with a LinkedIn profile in HubSpot are imported, and people already in Needle stay as they are. Contacts in the lists you pick under **Suppression** are imported too, and added to your [suppression list](/docs/suppressions). One import reads up to 100,000 contacts.

## Disconnecting

Disconnecting stops syncing, and activity not yet synced is dropped. What Needle already added stays in HubSpot: its fields and notes, and the contacts and companies it created. Delete them in HubSpot if you no longer want them. To remove the Needle app from your account, uninstall it in HubSpot.

## Tips

- To see everyone Needle has synced, make a contacts view in HubSpot filtered on "Lead id - Needle" is known.
- To see who is waiting for an answer, filter on "Waiting on us (LinkedIn) - Needle", then reply from the [Needle inbox](/inbox), or let your agent reply through the [Needle MCP](/docs/mcp/introduction).
- To follow up with people who went quiet, add a wait and a message step to the Needle campaign, so Needle sends the follow-up.
