Validated paths include HubSpot → PostgreSQL and HubSpot → Airtable.
HubSpot cannot be selected as a destination.
Authentication
The connector supports a HubSpot private app access token. OAuth is not currently supported.- In HubSpot, open Settings → Integrations → Private Apps.
- Create or open a read-only private app.
- Add only the read scopes required by the streams you plan to sync.
- Copy the access token.
- In Arcyria, open Connections, choose Source, and select HubSpot.
- Enter a connection name and the private app access token.
- Test the connection, then save it.
Supported streams
HubSpot exposes 18 supported streams:
Discovery checks each stream against the connected account. A stream can appear
as available, missing a scope, unavailable for the account, or temporarily
unknown. This lets one valid token expose only the streams it can read without
returning CRM records during the connection test.
Configure a HubSpot pipeline
- Create or choose a PostgreSQL or Airtable destination connection.
- Create a pipeline using the saved HubSpot source.
- Open Source and click Discover catalog.
- Select one or more available streams.
- Configure the extraction window and custom-property option.
- Preview the selected stream. HubSpot previews mask email local parts, phone numbers, and sensitive free-text fields.
- Open Destinations, add the delivery target, and save it.
- Open Transformations, select that destination, and create destination-owned SQL models for the selected streams. Save, validate, preview, and publish each revision.
- Return to the destination editor and assign final tables and Upsert keys. Airtable also requires writable field mappings and merge fields.
- Validate from Overview, click Run all, and inspect Runs.
UTC extraction window
Incremental object streams support:- a required or previously saved UTC start time;
- an optional UTC end time, captured at run start when omitted; and
- a lookback from
0through2592000seconds (30 days), with a default of3600seconds. A lookback of0is honored. You can also set a lookback on an individual stream in its sync settings; a stream setting of0uses the source-level value.
Custom properties
Custom properties are supported for contacts, companies, deals, tickets, products, line items, and quotes. Keep Include custom properties enabled to request permitted custom fields, or disable it to use the stable default field set. Sensitive HubSpot properties are excluded from discovery. Each custom property adds to the size of every request. When the selected properties are too many to read safely, the run stops before reading data and asks you to select fewer properties or turn custom properties off for the pipeline. The rawproperties value preserves the returned property
payload, while your SQL model promotes the fields you want into destination
columns.
Archived records
By default, records archived or deleted in HubSpot are not updated in your destination. Turn on Flag archived records in the pipeline’s Source settings to read archived records for contacts, companies, deals, tickets, products, line items, and quotes. They are written witharchived set to true through the
normal Upsert; rows are never removed. HubSpot cannot filter archived records by
time, so each run reads the whole archived list. Merged contacts are not
detected.
Rate limits
HubSpot limits private apps per 10 seconds and per day, and the daily limit is shared by every private app on the account. Search is limited to 5 requests per second. Runs pace their requests and retry when HubSpot asks them to wait. When the daily limit is reached, the run stops with a clear message and can run again after the limit resets at midnight in the HubSpot account time zone. Avoid schedules more frequent than every 5 minutes.Destination requirements
Create or explicitly reconcile PostgreSQL destination schemas and tables before delivery. For Airtable, create the table and fields first, then refresh and map them in the destination editor. The pipeline runner does not create target tables during a run.- Use a primary key or stable merge key for each table.
- Keep model output columns aligned with destination column names and types.
- Use Upsert delivery for repeatable incremental runs.
- Keep the legacy
_mantrixflow_run_idfield if you need row-level run lineage, andextracted_atif you need extraction-time auditing. The legacy field name remains part of the current runtime contract until a separately versioned data-schema migration is available. - Do not include internal
_dlt_*staging columns in destination models.
Current limitations
- OAuth, webhooks, write-back, standalone association streams, and property history are not supported. Engagement records may contain association JSON.
- Calls, meetings, notes, tasks, lists, memberships, engagements, and custom objects currently use Full Table only; deleted records are not propagated.
- Contact list memberships depend on readable contact lists. Custom object access depends on account features and the private app permissions.
- Quotes depend on the HubSpot products enabled for the connected account.
- Calculated-property-only changes may not advance the HubSpot update timestamp and may require a later full reconciliation.
- Line-item associations are not included.

