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

# ETL: HubSpot Destination

> Configure the HubSpot destination component to write data flow output into HubSpot CRM objects in your Integrate.io ETL data pipeline.

<Frame>
  <img src="https://mintcdn.com/integrateio/OwEKdS5aIKsEcmhX/images/creating-packages/using-components-hubspot-destination/image-1.png?fit=max&auto=format&n=OwEKdS5aIKsEcmhX&q=85&s=6f275cbc1ebef7cb135fb788ebf735f7" alt="HubSpot destination component in the pipeline designer" width="1200" height="828" data-path="images/creating-packages/using-components-hubspot-destination/image-1.png" />
</Frame>

## Connection

Select an existing HubSpot connection or create a new one (for more information, see [Allowing Integrate.io ETL access to HubSpot](/etl/allowing-integrateio-etl-access-to-hubspot/).)

## Destination Properties

* **Target object** - select the name of the target object in your HubSpot.
  <Frame>
    <img src="https://mintcdn.com/integrateio/OwEKdS5aIKsEcmhX/images/creating-packages/using-components-hubspot-destination/image-2.png?fit=max&auto=format&n=OwEKdS5aIKsEcmhX&q=85&s=16b4c495d2d28395f059333e2dbf7daf" alt="Target object dropdown with HubSpot object types" width="1200" height="1416" data-path="images/creating-packages/using-components-hubspot-destination/image-2.png" />
  </Frame>

### Operation type

* **Create** - default behavior. Data will only be appended to the target object.
* **Update** - updates existing data according to key of selected HubSpot object.
* **Delete -** deletes existing data individually or in batches according to key of selected HubSpot object.
* **Upsert -** update or create data according to id property of selected Hubspot object.

  <Frame>
    <img src="https://mintcdn.com/integrateio/OwEKdS5aIKsEcmhX/images/creating-packages/using-components-hubspot-destination/image-3.png?fit=max&auto=format&n=OwEKdS5aIKsEcmhX&q=85&s=f63f2adbcf7dc9e2bedab8223a5a2992" alt="Operation type options: Create, Update, Delete, and Upsert" width="1200" height="1416" data-path="images/creating-packages/using-components-hubspot-destination/image-3.png" />
  </Frame>

### Advanced options

* **Batch size** - number of records that are inserted to HubSpot in each batch (default 100). HubSpot API has a limit of 100 records per call except for creating and updating contacts, which are limited to 10 records per call. More info [here](https://developers.hubspot.com/docs/api/crm/understanding-the-crm).
* **Maximum errors** - maximum number of errors to tolerate when inserting data into Hubspot. Note that the actual number of errors may be greater than the maximum due to the parallel nature of the process.

## Schema Mapping

1. Map the dataflow fields to the target object fields. When using the `update` or `delete` operation, it is mandatory to map `id` as destination field.

   <Frame>
     <img src="https://mintcdn.com/integrateio/OwEKdS5aIKsEcmhX/images/creating-packages/using-components-hubspot-destination/image-4.png?fit=max&auto=format&n=OwEKdS5aIKsEcmhX&q=85&s=232548c9c1ca3752ee73401d8e05aeac" alt="Schema mapping with field-to-HubSpot-property mapping" width="1200" height="1416" data-path="images/creating-packages/using-components-hubspot-destination/image-4.png" />
   </Frame>

## Custom Objects

Data can be loaded to both standard and custom objects using this HubSpot destination connector.

## Related

<CardGroup cols={2}>
  <Card title="Connecting to HubSpot" icon="arrow-right" href="/etl/allowing-integrateio-etl-access-to-hubspot" horizontal />
</CardGroup>
