# HubSpot

The **HubSpot Node** allows you to sync your records or newly discovered data from your workflow directly into your HubSpot CRM.

It supports both **Contact** and **Company** objects — so whether you’re generating net-new records or updating existing ones, this node helps keep your HubSpot instance fresh and aligned with your data.

***

### When to Use It

Use the HubSpot node when you want to:

* Automatically push enriched/discovered contact or account data into HubSpot
* Add leads or companies discovered by AI
* Keep CRM records up-to-date with external data

***

### Configuration Overview

Here's what each field and option does:

**Account**

Select the connected HubSpot account you want to sync data into. You’ll need to have an integration set up before this step.

**Action Event**

Currently, the supported action is:

* **Objects to Sync** – Select if you're interested in syncing companies or contacts.

## Sync Options

You can toggle each of these depending on what you want the workflow to do:

* **Create Companies**\
  Adds a new company to HubSpot if it doesn't already exist.
* **Update Companies**\
  Updates existing companies in HubSpot using the matched record.
* **Create Contacts**\
  Adds a new contact to HubSpot if it doesn’t already exist.
* **Update Contacts**\
  Updates existing contacts in HubSpot with enriched or discovered data.

> You can enable one, several, or all options depending on your sync goals.

### Custom Fields

#### 1. Custom **Fields Selection**

This is where you select which CRM field you want to write to. You can either create or search to find an existing HubSpot field (e.g., `Account Type`, `Billing Country`, or your custom fields like `HockeyStack Score`).

#### 2. **Selected Field Summary**

Once you select a field, you’ll see detailed information:

* **Field Label**: The human-readable name (e.g., *HockeyStack Score*).
* **Field Name**: The internal API name used by HubSpot (e.g., `HS_hockeystack_score`).
* **Field Type**: The data type of the field in HubSpot (e.g., `string`, `boolean`, etc).
* **Value Type**:
  * `Static`: You define a fixed value that is always sent (e.g., always "Marketing Qualified").
  * `Dynamic`: The value comes from a property in HockeyStack (e.g., the actual intent score or account stage at the time of sync).

#### **3.1 Value (When Static is Selected)**

* When **Static** is chosen, this input lets you write anything that will be synced into the selected CRM field.
* For example, you might map value `true` to a property like `Is Marketing Qualified`.

#### **3.2. Property (When Dynamic is Selected)**

* When **Dynamic** is chosen, this dropdown lets you select a HockeyStack property to sync into the selected CRM field.
* For example, you might map `HockeyStack Score` to a property like `Intent Score`.
