HubSpot
Connect HubSpot to see each account's CRM status in Signals, read every HubSpot field in a TheirStack company list, define statuses such as Customer or Former customer, and send companies to HubSpot.
Connect HubSpot and TheirStack knows which companies are already in your CRM. Customers and open deals leave your Signals feed, a company you lost a deal with stays in it, and you can send the companies you find to HubSpot without creating duplicates.
Beta
The HubSpot integration is in beta. If something does not work as you expect, open a ticket: click ? in the app and choose Contact support.
What you can do
| With HubSpot connected, you can | Where | Who |
|---|---|---|
| See the CRM status of each account and hide the ones your team already works with | Signals | Everyone |
| Find companies by CRM status, such as the ones that are not in your CRM | Job and company search | Everyone |
| Read every HubSpot field, custom ones included | The HubSpot list | Everyone |
| Define your own statuses, such as Former customer or Lost deal | Settings | Workspace owners |
| Send companies to HubSpot, one at a time or up to 1,000 at once | Search, lists and Signals | Everyone |
| Choose what TheirStack writes in HubSpot | Settings | Workspace owners |
The integration is free. Connecting HubSpot, syncing it, the HubSpot list and sending companies use no credits. Revealing TheirStack data in search or enrichment costs the same credits as usual, and only companies you revealed can be sent.
The screenshots use a sample workspace, Acme, with invented companies.
Set it up with an AI agent or by hand
Every step below works in the app. All but connecting and disconnecting also work from an AI assistant connected to TheirStack's MCP server, such as Claude, ChatGPT or Cursor. Connect HubSpot once in the app, then paste a prompt like this one:
Set up our HubSpot integration in TheirStack. Check that HubSpot is connected
and up to date, and show me our CRM statuses with how many companies each one
has. Then propose rules for Former customer and Lost deal from the properties
our team fills in, and preview the change before you save it.The assistant uses the CRM tools. It asks you to confirm before it saves your statuses, changes what a send writes or sends companies to HubSpot.
| Step | With an AI agent | By hand |
|---|---|---|
| Connect HubSpot | Not available, because HubSpot asks you to approve the access in a browser | Connect HubSpot in the settings |
| Check the connection | "Is our HubSpot sync up to date?" | The Connection section of the settings |
| Define your statuses | "Make Former customer the companies with a deal won in the past" | Edit statuses in the settings |
| Sync again | "Sync our CRM now" | Sync now in the settings |
| Choose what TheirStack writes | "Send employees to Number of Employees, and keep HubSpot's value when it has one" | Edit settings in the settings |
| Send companies | "Send the companies in my Q3 targets list to HubSpot" | Send to HubSpot in a search, a list or Signals |
| See what was sent | "What did the last send to HubSpot do with each company?" | The Sending to HubSpot section of the settings |
| Disconnect | Not available | Disconnect HubSpot in the settings |
The same permissions apply in both. Only a workspace owner can save the statuses, start a sync or change what a send writes, and anyone in the workspace can send companies.
Connect HubSpot
To connect, you need to be:
- An owner of the workspace in TheirStack.
- A Super Admin in HubSpot, or a user with permission to view companies, company properties and owners. To let TheirStack send companies, that user also needs permission to edit companies and company properties.
Then:
Click Connect HubSpot
Go to Settings → Integrations → HubSpot and click Connect HubSpot.
Approve the access in HubSpot
The permission to create and update companies is optional, and without it the integration only reads.
Wait for the first import
It takes about 10 minutes for a CRM with 20,000 companies, and you can leave the page while it runs.
TheirStack reads your companies, every company property, custom ones included, and the owners. It never reads contacts, emails, notes or deals. It writes to HubSpot only if you gave it permission to.
The settings page has one section for each part of the integration: Connection, CRM statuses, Sending to HubSpot and Activity.

See your CRM status in TheirStack
Every company TheirStack matched to a HubSpot company has one CRM status, such as Customer, Open deal or In CRM. A company HubSpot does not hold is No CRM match.
In Signals
Each account in the feed shows its CRM status next to its name.

When you open an account HubSpot holds, View in HubSpot takes you to its record.

By default, the feed hides accounts with the statuses Customer and Open deal. You can change what you see in two ways.
For every signal, add the CRM status filter above the feed. It lists your own statuses too.

| To see | Set the filter to |
|---|---|
| Companies that are not in your CRM | is any of No CRM match |
| Customers you could sell more to | is any of Customer |
| Companies to win back | is any of Former customer and Lost deal |
| Everything except open deals | is none of Open deal |
For one signal, edit the signal and turn off Hide HubSpot accounts from this signal. It applies while the CRM status filter is off, and your signals' filters do not change.

If the HubSpot sync is behind, or HubSpot needs to be reconnected, the feed warns you that the CRM statuses may be out of date.
Only matched companies can be hidden
A customer TheirStack could not match to its HubSpot record still shows in the feed, as No CRM match. If you see one, fix its match.
In job and company search
Add the CRM status filter to a job or company search to choose companies by their status in HubSpot. It appears once HubSpot is connected and lists the same statuses as Signals, your own included.
| To find | Set the filter to |
|---|---|
| Companies in your CRM with no other status | is any of In CRM |
| Everything except customers and open deals | is none of Customer and Open deal |
| Companies that are not in your CRM | is any of No CRM match |
You can save a search that uses the filter and turn on its alert. Webhooks and signals can't use it yet, so remove the filter from a search before you add a webhook to it.
A search on a status you deleted finds no companies, and the filter keeps the status's name so you can remove it. Once you disconnect HubSpot no company has a status, so a search on one finds nothing.
In the HubSpot list
The HubSpot list is a company list that TheirStack keeps in sync. Open it with Open HubSpot list in the settings. It has one row per HubSpot company, with:
- The company's name, which links to its record in HubSpot.
- Its domain, CRM status and owner.
- Whether TheirStack matched it and, if it did not, why.
- Any HubSpot property, custom ones included. Pick them in Columns.

You can filter the list by CRM status or TheirStack match. It is read-only, so you change a company in HubSpot and TheirStack brings the change in. To edit a copy, duplicate the list.
You can also use it in your searches like any other list, for example to filter the job or company search by the companies in your CRM. A search that uses the list leaves out the companies that are not matched.
Companies that are not matched
A HubSpot company only gets a CRM status once TheirStack matches it to a company it knows. To see the ones left out, click See why in the Not added row of the settings, or add the TheirStack match filter to the list and leave out Matched. The list gives the reason for each one.

| Reason | What to change in HubSpot |
|---|---|
| No domain in HubSpot | Add the company domain or its LinkedIn company page. |
| The domain is not valid | Fix the domain, for example acme.com. |
| Shared domain (link page or URL shortener) | Use the company's own website as its domain, or add its LinkedIn company page. |
| Several companies use this domain | Add its LinkedIn company page, or its own website as its domain. |
| TheirStack does not know this domain yet | Add its LinkedIn company page. If the company changed domain, you can also add the old one as an additional domain. |
The change shows after the next sync.
How the matching works:
- TheirStack matches each HubSpot company by its domain and its additional domains.
- When the domain does not tell which company it is, TheirStack uses the page in the company's LinkedIn Company Page property, as long as it is a LinkedIn company or school page.
- A company the domain already identified keeps that match whatever its LinkedIn page says.
- When HubSpot has the same company twice, both records count as one company.
Define your CRM statuses
Every team tracks customers differently in HubSpot: a lifecycle stage, a count of active contracts, a custom field. In TheirStack you write the rule for each status on those same properties.
How the rules work
Each matched company gets one status. TheirStack checks the statuses from top to bottom, and the first one whose conditions hold gives the status. A company that meets none is In CRM, which always comes last. Every workspace starts with these:
| Status | Default rule | Signals feed |
|---|---|---|
| Customer | Lifecycle Stage is any of Customer, Evangelist | Hidden |
| Open deal | Number of open deals is greater than 0 | Hidden |
| Former customer | None until you add one | Shown |
| In CRM | Any other matched company | Shown |
A customer with an open deal is a Customer. A former customer with an open deal is an Open deal, because your team is already working on that deal. HubSpot has no standard property for customers who left, so Former customer marks no company until you give it a condition.
The CRM statuses section of the settings lists each status with its rule, whether the feed shows it and how many companies have it. Click a count to open those companies in the list.
Edit your statuses
Only workspace owners can edit statuses.
- Go to Settings → Integrations → HubSpot and click Edit statuses.
- Rename a status, change its color, or click Add status. Turn on Hide these accounts from the signals feed for the statuses you don't want in the feed.
- Click Add condition and pick a HubSpot property. The picker shows how many companies have a value in each property, so you can tell the ones your team fills in from the ones it doesn't.
- Move the statuses up or down to decide which one wins when a company meets several.
- Read the preview. It says how many companies each status would get and which ones change.
- Click Save rules. TheirStack reads every company again and gives each one its status.

Renaming a status keeps its companies. When you delete a status, its companies become In CRM unless they meet another one.
You can also edit the statuses from an AI assistant connected to TheirStack's MCP server, for example by asking it to "make Former customer the companies with a deal won in the past". With the CRM tools it can look up your HubSpot properties, preview the change and save it.
What a condition can check
| Condition | Use it on | Example |
|---|---|---|
| is any of, is none of | The values you pick | Lifecycle Stage is any of Customer, Evangelist |
| is greater than, is less than | A number | Number of open deals is greater than 0 |
| is yes | A yes/no property | Is Public is yes |
| has any value, is empty | Any property | Recent Deal Close Date has any value |
When a company has no value in a property, the condition does not hold, except for is none of and is empty. You can have up to 20 statuses, each with up to 10 conditions.
Example: customers, former customers and lost deals
Say your HubSpot has two calculated properties, Active contracts and Closed contracts, and your team fills in a Lost Reason when a deal falls through. These rules split your CRM into the companies to leave alone and the ones to call again:
| Order | Status | Mark it when | Signals feed |
|---|---|---|---|
| 1 | Customer | Active contracts is greater than 0 | Hidden |
| 2 | Open deal | Number of open deals is greater than 0 | Hidden |
| 3 | Former customer | Any of these holds: Closed contracts is greater than 0, Total Revenue is greater than 0, Recent Deal Close Date has any value | Shown |
| 4 | Lost deal | All of these hold: Lost Reason has any value, Lost Reason is none of Duplicate | Shown |
| Last | In CRM | Any other matched company | Shown |
Why it is written this way:
- Former customer only needs evidence of a past purchase, because a current customer or a company with an open deal already took its status higher up.
- Former customer uses any of these holds because any one of the three proves the company bought from you.
- Lost deal needs both conditions. A company with an empty property meets is none of, so without has any value every company with no Lost Reason would be a Lost deal.
- Former customer and Lost deal stay in the feed because a new signal on one of those companies is a reason to call again.
You can add the statuses your team needs, such as Partner or Competitor, and hide them so those companies leave the feed.
Send companies to HubSpot
A send creates the companies HubSpot does not have and fills in the empty properties of the ones it has. A company already in HubSpot is never created twice. Anyone in the workspace can send right after connecting, with the defaults below.
Sending needs the permission to create and update companies. If you connected without it, a workspace owner clicks Reconnect HubSpot in Settings → Integrations → HubSpot and approves it. Your HubSpot list and CRM statuses stay as they are.
Send one company
Click Send to HubSpot on the company's profile. TheirStack sends it right away and tells you whether it created or updated it, or why it can't send it.
The button changes with what HubSpot has:
| The button says | When |
|---|---|
| Send to HubSpot | HubSpot does not have the company |
| Update in HubSpot | HubSpot has it and TheirStack has something new to write. Hover over the button to see which fields. |
| View in HubSpot | HubSpot has it and there is nothing new |
A change in the number of job postings doesn't count as new on its own, but every send brings it up to date.
Send several companies
- Select companies in a company search or a company list.
- Open the HubSpot menu and click Send to HubSpot.
- Check how many companies TheirStack will create, how many it will update and which ones it can't send, then confirm.

You can send up to 1,000 companies at once. Two kinds of company can't be sent:
- Companies you have not revealed. Reveal them first.
- Companies without a domain, because TheirStack could not tell whether HubSpot already has them.
Right before creating a company, TheirStack checks HubSpot by domain, so a company someone added since the last sync is updated instead of duplicated.
Send companies from an AI assistant
Ask an assistant connected to TheirStack's MCP server to send the companies of a search or a list, for example "Send the companies in my Q3 targets list to HubSpot". It tells you how many companies the send would create, update or skip, and your client asks you to confirm before anything is written. The same rules apply as in the app. Only companies you revealed are sent, up to 1,000 at once, with the fields chosen in the settings.
Send the companies your signals find
A new account stays in the feed until someone sends it.
- To send one account, open it in the feed and click Send to HubSpot in the bar above it. If you have not revealed the company, click View company first. Opening a company you have not revealed uses 1 company credit.
- To send several, click Add to list on each account and open that list. Reveal the companies, select them, open the HubSpot menu and click Send to HubSpot.
Sending a company again brings its TheirStack properties up to date.
What TheirStack writes by default
| TheirStack field | HubSpot property | If the company is already in HubSpot |
|---|---|---|
| Company name and domain | Company name and Company Domain Name | Never changed |
| Website and LinkedIn URL | The matching HubSpot property | Filled in only when empty |
| Number of technologies, number of job postings, signals timeline and TheirStack profile | New properties in a TheirStack group | Always updated |
TheirStack also adds a TheirStack company ID property, which it uses to find the companies it created. A value TheirStack does not have never clears a HubSpot property.
These fields are not sent until an owner chooses a property for them in the settings:
- Employees, industry, country, city, postal code, founded year and description.
- Technologies, publicly traded, total funding, funding stage and last funding round.
- Annual revenue, because HubSpot keeps it in your portal's currency and TheirStack's is in USD.
Industries are translated to the options of your HubSpot industry property, and an industry with no matching option is not sent.
The signals timeline
When your signals have found a company, a send writes them to its TheirStack signals timeline property. It is a rich text property that reads like the account's timeline in Signals, with the signals by day, newest first, each with what TheirStack found and the job ads and technologies behind it.
| Link | What it opens |
|---|---|
| The title of a job ad | The job ad in TheirStack, with its whole description |
| Original ad | The page where the job ad was posted, with no TheirStack login |
| View company | The company in TheirStack |
| View signal | The signal in TheirStack |
| Open search | The signal's saved search |
A company with no signals doesn't get the property. The timeline shows the date you sent it and doesn't change on its own, so send the company again to bring it up to date. When a timeline is too long for HubSpot, its oldest signals are left out and a link at the end takes you to the company.
The field is sent by default. In the settings you can choose another rich text property for it, or Not sent. Settings saved without it leave it Not sent until you choose a property.
Change what TheirStack writes
A workspace owner can change the defaults. Go to Settings → Integrations → HubSpot and click Edit settings under Sending to HubSpot. The settings follow the steps of a HubSpot import:
- How to send. Create and update companies (the default), create new companies only, or update existing companies only. TheirStack finds the companies HubSpot already has by their domain and additional domains.
- Map fields. Each TheirStack field goes to a HubSpot property, and the common ones start with one chosen. Pick another property for a field, or Not sent to leave it out. For each field you send, choose what happens if HubSpot already has a value, Keep HubSpot's value or Replace with TheirStack's. An empty property gets TheirStack's value either way. With Keep HubSpot's value, a value stays as it is on later sends, even if TheirStack wrote it.
- New companies. The owner of the companies TheirStack creates is the person who sends them, matched by email to a HubSpot user, or nobody. You can also give them fixed values, such as a lifecycle stage or a lead source.
- Review. See what a few of your companies would get, property by property, before you save. Nothing is written to HubSpot until someone sends companies.
You can also change these settings from an AI assistant connected to TheirStack's MCP server. It shows you what a few of your companies would get before it saves.

See what was sent
The Sending to HubSpot section of the settings lists every send with who sent it and how many companies were created, updated or failed. Download the report of a send to see what HubSpot did with each company and why it rejected any of them. The companies TheirStack creates get their CRM status in TheirStack right away, without waiting for the next sync.
Keep HubSpot up to date when a signal finds something new
Beta
Automatic updates are in beta and turned off by default. To turn them on for your workspace, open a ticket: click ? in the app and choose Contact support.
When a signal finds a new match on a company HubSpot already has, TheirStack updates that company's properties in the TheirStack group, with no one sending it:
| HubSpot property | What it holds |
|---|---|
| TheirStack priority | High, Medium or Low, as in the accounts feed |
| TheirStack signals | The signals the company meets |
| TheirStack last signal | What TheirStack found most recently |
| TheirStack last signal date | When it found it |
| TheirStack technologies, job postings and profile | The same values a send writes |
TheirStack never creates a company on its own and never changes a property outside that group. You can use these properties in your HubSpot workflows, for example to create a task for the company's owner when TheirStack priority changes to High.
To create new companies in HubSpot with no clicks, build the same filters in a saved search, add a webhook and connect it to HubSpot with Make, n8n or Zapier. A webhook can't listen to a signal, so it finds its own matches, and its events use API credits. HubSpot does not deduplicate the companies created through its API, so look each company up by domain before you create it.
Syncing
TheirStack reads HubSpot on its own. A change in HubSpot can take up to an hour to show.
| When | What TheirStack reads |
|---|---|
| You connect | Every company |
| Every hour | The companies that changed, and any property you added |
| Every night | Every company again, which catches deleted and merged companies |
| You click Sync now | Every company |
| You save your status rules | Every company, and gives each one its status under the new rules |
Sync now imports your CRM again, and only workspace owners can use it. Click it when you don't want to wait, for example after a bulk update in HubSpot or after fixing the domains of companies that were not matched. You don't need it after changing your rules, and you don't need to disconnect, which would delete the HubSpot list.
The Connection section of the settings shows when the last sync finished and, if it failed, why. A failed sync leaves the list and the statuses as they were, and the next one retries on its own. Two cases need you:
- If you delete a HubSpot property that your rules use, syncs stop until you update the rules. Every company keeps its last status until then.
- If someone uninstalls the app in HubSpot, click Reconnect HubSpot. Until you do, the list and your signals keep working with the data of the last sync, and TheirStack marks the list as out of date.
Disconnecting
To disconnect, go to Settings → Integrations → HubSpot, open the ⋯ menu of the Connection section and click Disconnect HubSpot. The settings page lists the signals affected before you confirm. TheirStack then:
- Stops syncing.
- Deletes the imported companies and the HubSpot list right away.
- Revokes its access to HubSpot.
Companies TheirStack created or updated in HubSpot stay there. Signals stop hiding companies by their CRM status.
Known limits
- The accounts feed shows the CRM status and a link to the record. Owners and the rest of the fields are in the HubSpot list.
- A company that is not matched is not hidden from your signals, whatever its status in HubSpot.
- A company that changed domain may not be matched until you add its old domain or its LinkedIn page in HubSpot.
- Signals never create companies in HubSpot. Someone has to send them.
- Webhooks and signals can't use the CRM status filter yet.
- HubSpot duplicates show once in the list.
- Changes in HubSpot can take up to an hour to show.
- The integration is in beta, with one HubSpot account per workspace and HubSpot only for now.
How is this guide?
Last updated on
Databar
Learn how to use TheirStack job postings and technographic data inside Databar, the no-code GTM data platform, without a TheirStack account or API key.
LinkedIn Audiences
Export companies from TheirStack in LinkedIn company list format so you can build audiences from technographic data and hiring intent.
