# HubSpot Destination

> Source: https://docs.trailspark.ai/docs/hubspot-destination

## Overview

The HubSpot destination writes evaluation results to your HubSpot Contact and Company objects. TrailSpark maps scores, reasoning, and evaluation dates to custom properties you define in HubSpot.

## Prerequisites

- HubSpot integration connected (**Settings** > **CRM Integration** > **Connect** tab)
- Custom properties created in HubSpot for TrailSpark data
- **Admin** or **Owner** role in TrailSpark
- HubSpot admin access to create properties

## Custom Properties in HubSpot

Create these custom properties on the Contact object:

| Property Label | Suggested Internal Name | Field Type |
|----------------|------------------------|------------|
| TrailSpark Score | `trailspark_score` | Single-line text (values: hot, warm, cold) |
| TrailSpark Evaluation Date | `trailspark_evaluation_date` | Date picker |
| TrailSpark Reasoning | `trailspark_reasoning` | Multi-line text |

For company propensity, create on the Company object:

| Property Label | Suggested Internal Name | Field Type |
|----------------|------------------------|------------|
| TrailSpark Propensity | `trailspark_propensity` | Single-line text (values: high_propensity, medium_propensity, low_propensity) |

> [!TIP]
> Create a "TrailSpark" property group in HubSpot to keep all TrailSpark properties organized together.

## Configuration

Go to **Settings** > **CRM Integration** > **Destinations** tab.

### Destination Settings

- **Send Evaluations to HubSpot** -- Toggle to enable/disable the destination
- **HubSpot Integration** -- Select which connected HubSpot instance to use
- **Create Records if Not Found** -- When enabled, creates new Contact records if no match exists. Filter by score level (Hot, Warm, Cold)

### Contact Field Mapping

Map three fields to HubSpot Contact properties:

| TrailSpark Field | Description |
|------------------|-------------|
| Score Field | Where the evaluation score is stored |
| Evaluation Date Field | Where the evaluation timestamp is stored |
| Reasoning Field | Where the AI reasoning is stored |

TrailSpark loads your HubSpot property metadata automatically. Select properties from the dropdown. If a previously mapped property no longer exists in HubSpot, the field resets to blank.

### Company Propensity Score

The propensity score card configures where account-level propensity (high/medium/low) is written:

- **Company Propensity Field** (primary) -- Written to the Company object when a linked Company exists
- **Contact Propensity Field** (fallback) -- Written to the Contact object when no Company is linked

Both fields are optional.

## Troubleshooting

| Issue | Resolution |
|-------|------------|
| Property not in dropdown | Verify the property exists on the Contact object and the internal name is correct |
| Data not writing | Check that the destination is enabled and integration is still connected |
| Contact not found | TrailSpark matches by email address -- ensure the contact exists in HubSpot |

## Next Steps

- [Evaluation Rules](/docs/evaluation-rules) -- Filter which leads get scored
- [Salesforce Destination](/docs/salesforce-destination)