1. Prepare connections
- Create a HubSpot private app with the scopes listed in the HubSpot source guide.
- Create, test, and save the HubSpot source connection.
- Create, test, and save a PostgreSQL destination connection.
2. Configure the Source tab
Open the pipeline, select Source, and choose the saved HubSpot connection. Click Discover catalog, then select:contacts, companies, deals, tickets, owners, deal_pipelines,
ticket_pipelines, products, line_items, and quotes.
For each stream:
- Choose Incremental for changing CRM objects or Full table for small reference data such as owners and pipeline definitions.
- Select the discovered cursor when Incremental mode is available.
- Review fields and use Preview to inspect source records.
- Click Save stream settings.
3. Add the PostgreSQL destination
Open Destinations, click Add destination, choose the saved PostgreSQL connection, and save it. The destination now appears in both Destinations and the destination navigator in Transformations.4. Create and publish transformations
Open Transformations, select the PostgreSQL destination, and create one transformation for every selected stream. Use explicit columns for stable tables:- Save draft.
- Validate draft.
- Preview output.
- Publish revision.
5. Configure published output targets
Open the PostgreSQL destination from Destinations. Under Published output targets, assign a destination table and Upsert key to each published transformation:
Pipeline-definition streams do not expose a synthetic
id; use the composite
pipeline/stage key. Use Create or verify destination table, then click
Save destination after all output targets are ready.
6. Validate, run, and monitor
- Open Overview and click Validate pipeline.
- Resolve any readiness issue for a stream, transformation, output target, or destination table.
- Click Run all in the pipeline header.
- Open Runs to review status, destination, row counts, duration, published revisions, and errors.
line_items, quotes, or other valid streams can complete with zero
rows. Zero rows alone do not indicate a connector failure.
After the first run succeeds, keep stable Upsert keys and use the discovered
update cursor for incremental CRM objects. A lookback window can capture late
updates while Upsert prevents duplicates.