> ## Documentation Index
> Fetch the complete documentation index at: https://docs.custral.com/llms.txt
> Use this file to discover all available pages before exploring further.

# HubSpot

> Bidirectional sync of Contacts, Companies, Deals, and custom objects.

## What it does

HubSpot is a **bidirectional sync** integration. Records flow both ways: edits in HubSpot land in Custral automatically, and edits in Custral are pushed back to HubSpot.

## Connect

<Steps>
  <Step title="Authorize in Custral">
    Open **Settings → Integrations → HubSpot** and start the OAuth flow.
  </Step>

  <Step title="Pick objects to sync">
    Choose which HubSpot objects (Contacts, Companies, Deals, custom objects) to sync. Each becomes a Custral object.
  </Step>

  <Step title="Map properties">
    Use the field mapping UI to declare which HubSpot fields map onto which Custral properties. Unmapped fields are not synced.
  </Step>

  <Step title="Choose sync direction">
    Per-object: HubSpot → Custral, Custral → HubSpot, or both. "Both" uses last-write-wins on conflict.
  </Step>
</Steps>

## Configure

Each HubSpot connection has:

* A list of synced objects.
* A property mapping per object.
* A sync direction per object.
* An optional initial backfill that imports existing HubSpot records when you first connect.

## Resources synced

| HubSpot object | Custral object | Notes                                                                   |
| -------------- | -------------- | ----------------------------------------------------------------------- |
| Contact        | Contacts       | Email is the natural key; conflicts resolve by last-modified timestamp. |
| Company        | Companies      | Domain is the natural key.                                              |
| Deal           | Deals          | Sync direction commonly Custral → HubSpot for pipeline ownership.       |
| Custom object  | Custom object  | Both sides need an object created with matching fields.                 |

## Limitations

* Pipeline stages must be mapped manually. Custral does not auto-create HubSpot stages.
* Files / attachments do not sync.
* Workflows defined in HubSpot are not copied. Custral runs its own workflows on synced records.

## Troubleshooting

| Symptom                           | Cause                                          | Fix                                                                                      |
| --------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------- |
| Sync is backed up                 | Burst of edits exceeds HubSpot's rate limit.   | Custral backs off and retries automatically. Check the integration page for sync status. |
| Custral edit didn't reach HubSpot | The mapped HubSpot field is read-only.         | Pick a different mapping.                                                                |
| Duplicate records                 | Two HubSpot records with the same natural key. | Merge in HubSpot; Custral re-syncs.                                                      |

## Disconnect

Disconnecting halts the sync and revokes the OAuth token. Synced records remain in Custral but stop receiving updates. Re-connecting and re-mapping the same objects resumes sync; existing records are matched on the natural key.

## See also

* [Object Mapping property type](/data/properties/complex/object-mapping)
* [Integrations overview](/integrations/overview)


## Related topics

- [Change Log](/product/updates.md)
- [Object Mapping](/data/properties/complex/object-mapping.md)
- [Integrations](/integrations/overview.md)
- [Learn the Product](/start/onboarding/learn.md)
- [Quick Actions](/blocks/embedded/object/quick-actions.md)
