---
title: HubSpot
description: Connect HubSpot, understand its sync behavior, and query every table and column it writes.
species: reference
---
# HubSpot

Connect HubSpot with HubSpot OAuth. The source writes 10 base objects plus custom objects, histories, and associations under `titan.hubspot`.
## Connect HubSpot

1. Open **Apps**, choose **Connect app**, and select **HubSpot**.
2. Enter HubSpot OAuth.
3. Review the tables, then save the source.
4. Watch **Sync history** until the first run completes.

Credentials are stored as secrets. They never become lake columns or appear in query results.

## Sync behavior

Properties are discovered from your portal. Lake column names use property_ prefixes. HubSpot companies and contacts can also receive sends.

A new source syncs when you connect it and then follows its schedule. The default recurring interval is 4 hours. An interrupted run keeps its completed progress and retries safely.

Every lake table also has the [system columns](/v2/docs/concepts/your-lake#the-system-columns) `_synced_at` and `_deleted`; the column reference below lists source columns only.

## Table reference

Supernova discovers this reference from the connected account. The Properties API supplies columns for standard and custom objects. Supernova also creates property-history and association tables whose shapes follow the discovered objects.

Open **Apps → HubSpot → Tables** after the first discovery run to see every exact table name, column name, type, and sync selection. Dynamic fields cannot be listed truthfully before an account is connected.

## Deletes and history

Rows are merged by their source key. When the source can prove that a row was deleted, Supernova keeps the row and sets `_deleted` so queries can choose whether to include history. Filter current-state queries with `where not _deleted`.
