HubSpot
Extract your HubSpot CRM data and load it directly into your data warehouse with Renta. Centralize contacts, companies, deals, tickets, engagements, and owners for sales funnel reporting, attribution, and advanced analytics — without writing a single line of code.
Authentication
Renta uses OAuth to authenticate with HubSpot. This ensures secure access without sharing your password directly. You will be redirected to HubSpot to grant Renta limited access to your account.
Your credentials are encrypted in transit and at rest, and kept in a dedicated secrets store isolated from your data. Renta refreshes access automatically, so the connection keeps running without re-authentication. You stay in control and can revoke access from HubSpot at any time.
Connect HubSpot source
Follow these steps to add HubSpot as a source in Renta using OAuth authentication.
- Navigate to the Connections > Sources section in the left sidebar.
- Click + Add source in the top-right corner.

Open the CRM category and click the HubSpot card to open the connection form.

Click Log in to your HubSpot account. You will be redirected to HubSpot to authorize the connection.

On the HubSpot authorization screen, select the account you want to connect and click Choose Account. After you approve access, you are redirected back to Renta.

Finish the setup:
- Source name.
Specify a name for this data source. This is used exclusively in the Renta interface. - Access granted.
Verify that the account is connected successfully.
Click Save to finish. Your new source will now appear in the sources list.

Create a pipeline
Once the source is connected, create a pipeline to sync HubSpot data into your destination.
Create a HubSpot pipeline
Link your HubSpot source to a destination and configure the pipeline.
In the left sidebar, click New pipeline.

On the Source step, select HubSpot under Already connected and click Next step.

Choose the HubSpot connection you created earlier and click Next step.

On the Destination step, select your destination (for example, Google BigQuery) and click Next step.

Choose the destination connection you want to load data into and click Next step.

Pipeline configuration
On the final step, configure how Renta extracts and loads your HubSpot data.
Integration type
Choose how you want to configure your data pipeline.

| Type | Description |
|---|---|
| Custom report | Manually configure your dataset. Recommended for advanced users who need full control over the report type and fields. |
| Pre-built templates | Use predefined data models to set up your integration with minimal configuration. |
The HubSpot — all objects template creates one integration per report type, with every available field selected — a quick way to replicate your full CRM in a single step.
Report types
Select the HubSpot object you want to export. Each report type maps to one destination table.
| Report type | HubSpot object | Description |
|---|---|---|
| Contacts | contacts | People in your CRM, with lifecycle stage, owner, and contact details. |
| Companies | companies | Company records, with industry, revenue, owner, and domain. |
| Deals | deals | Sales deals, with amount, stage, pipeline, and close date. |
| Tickets | tickets | Support tickets, with pipeline, stage, priority, and category. |
| Calls | calls | Call engagements, with direction, duration, outcome, and owner. |
| Meetings | meetings | Meeting engagements, with title, start and end time, and outcome. |
| Notes | notes | Note engagements logged against CRM records. |
| Tasks | tasks | Task engagements, with subject, status, priority, and type. |
| Owners | owners | HubSpot users — used to join with the hubspot_owner_id field on other objects. |
| Deal pipelines | deal_pipelines | Deal pipeline and stage definitions, including the nested stages array. |
Parameters
Select the specific fields to include in your destination table. Your dataset schema is defined by the parameters you choose here — unselected fields will not appear in the output.
The record id and the last-modified field are always included, even if you do not select them, because Renta needs them for incremental loading. Custom properties are added automatically — see Custom properties.
Date range
Specify the historical period for which you want to retrieve data from HubSpot.
Renta filters records by their modification date, so a sync covers everything created or updated within the selected window. Leave the end date as Today to keep syncing the latest changes.
Schedule
Choose how often the pipeline runs.

| Schedule type | Description |
|---|---|
| Manual | The pipeline runs only when triggered manually through the interface or via API. |
| Daily | The pipeline runs once a day at the specified update time. |
| Interval | The pipeline runs at specified time intervals. |
| Cron Expression | The pipeline runs on a schedule defined by a cron expression. |
For Daily schedules, set the Update time — the exact time each run starts — then click Create pipeline.

Renta also supports API triggers and integration with external orchestrators such as Apache Airflow, Dagster, and Prefect. See the full scheduling documentation for details.
Sync strategy
The table below describes how Renta synchronizes each HubSpot report type.
| Strategy | Supported report types | Description |
|---|---|---|
| Incremental (merge) | Contacts, Companies, Deals, Tickets, Calls, Meetings, Notes, Tasks, Owners | Renta fetches only records modified since the last run, filtering by the object's last-modified date (hs_lastmodifieddate, or lastmodifieddate for contacts and updated_at for owners). Records are upserted into the destination by their unique id, and tables are partitioned by the day of record creation. |
| Full reload | Deal pipelines | Pipeline and stage definitions have no modification-date field, so Renta reloads the entire dataset on every run. The table is small, so the performance impact is negligible. |
Incremental upsert requires a merge-capable destination such as Google BigQuery or ClickHouse. On other destinations, Renta falls back to a full overwrite of the selected date range.
Custom properties
HubSpot lets administrators add custom properties to contacts, companies, deals, tickets, and engagements. Renta captures all custom properties automatically — no manual schema configuration is required.
Custom property values are stored in the custom_fields_values column as a structured array. Each entry in the array contains:
| Subfield | Description |
|---|---|
| field_name | The internal HubSpot property name, such as lead_source_detail. |
| field_label | The human-readable label configured in HubSpot, such as "Lead source detail". |
| field_type | The property data type as defined in HubSpot: string, number, enumeration, datetime, etc. |
| field_value | The property value for this record, stored as a text string. |
To query custom properties in BigQuery, unnest the array and filter by property name:
SELECT
id,
dealname,
cf.field_label AS custom_label,
cf.field_value AS custom_value
FROM `project.dataset.deals` d,
UNNEST(custom_fields_values) AS cf
WHERE cf.field_name = 'lead_source_detail';Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.