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

# HubSpot

> Native bi-directional sync — import contacts and companies from HubSpot, validate them, and export results back.

<Note>
  The Enrichley HubSpot integration is in beta. Setup steps and capabilities may evolve as we add features.
</Note>

The Enrichley HubSpot integration lets you move contacts and companies between Enrichley and HubSpot so you can validate, enrich, and clean data before it powers your campaigns.

<CardGroup cols={3}>
  <Card title="Import" icon="cloud-arrow-down">
    Pull contacts, companies, and lists from HubSpot into Enrichley for validation and enrichment.
  </Card>

  <Card title="Export" icon="cloud-arrow-up">
    Push validated and enriched data back to HubSpot — with field mapping, duplicate handling, and a guided wizard.
  </Card>

  <Card title="Custom properties" icon="tags">
    Create custom HubSpot properties on the fly during export to capture validation results and enrichment fields.
  </Card>
</CardGroup>

## Plan requirements

The HubSpot integration is available on **Professional, Scale, Advanced, Growth, and Ultimate** Enrichley plans. **Starter plans do not include HubSpot access** — [upgrade your plan](https://app.enrichley.io/plans) to enable the integration.

You also need permission inside HubSpot to authorize OAuth applications.

## Connect HubSpot

<Steps>
  <Step title="Open the HubSpot integration">
    In Enrichley, go to [Integrations → HubSpot](https://app.enrichley.io/integrations/hubspot) and click **Connect**.
  </Step>

  <Step title="Sign in to HubSpot">
    You'll be redirected to HubSpot's login page. Sign in with your HubSpot credentials.
  </Step>

  <Step title="Choose your HubSpot account">
    If you have access to multiple HubSpot accounts, select the one you want to connect and click **Choose Account**.
  </Step>

  <Step title="Review and approve permissions">
    Review the permissions Enrichley is requesting — read and write access to contacts, companies, and lists. Click **Connect app** to approve.
  </Step>

  <Step title="Acknowledge the unverified app warning">
    Type **"I accept the risk"** in the text field and click **Connect** to proceed past HubSpot's verification warning.
  </Step>

  <Step title="Confirm the connection">
    You'll see a success message and be redirected back to Enrichley. Your Hub Domain and granted scopes will appear on the [HubSpot integration page](https://app.enrichley.io/integrations/hubspot).
  </Step>
</Steps>

## Using the integration

All imports and exports are **manual** — there are no automated syncs. You control when data moves between Enrichley and HubSpot.

### Import from HubSpot

Pull HubSpot data into Enrichley to validate or enrich it. You can import:

* **Contacts** — contact records from your HubSpot CRM
* **Companies** — company records from your HubSpot CRM
* **Lists** — specific HubSpot contact lists

Imports are available from the Email Validation and [People Search](/discovery/people-search) workflows in Enrichley — for example, importing a HubSpot company list to target with People Search.

### Export to HubSpot

Push validated and enriched data back to HubSpot using the guided 8-step export wizard:

<Steps>
  <Step title="Select source">
    Pick a saved snapshot or completed validation job as the source data.
  </Step>

  <Step title="Map fields">
    Map your Enrichley columns to HubSpot contact or company properties. Save mappings to reuse them on future exports.
  </Step>

  <Step title="Preflight validation">
    Enrichley shows you matches, conflicts, and how many records will be created vs. updated.
  </Step>

  <Step title="Resolve duplicates">
    For ambiguous matches, choose how to handle each one (update, skip, or create new).
  </Step>

  <Step title="Review matches">
    Final review before execution.
  </Step>

  <Step title="Prepare">
    If you mapped fields to properties that don't exist yet, Enrichley creates the custom HubSpot properties for you.
  </Step>

  <Step title="Run">
    Execute the export job. Progress streams in real time on the Sync History page.
  </Step>

  <Step title="Done">
    Review the completion summary — records created, records updated, any failures.
  </Step>
</Steps>

### Push discovery results to HubSpot

[People Search](/discovery/people-search) and [Company Lookalike](/discovery/company-lookalike) results push to HubSpot through a lighter flow than the validation export wizard: select rows (or Select-All), review the field mapping, pick a destination list (**No list**, **Add to existing list**, or **Create new list**), and run the push as a background job.

* People Search rows create or update HubSpot **Contacts**, matched by email when present, otherwise by LinkedIn URL.
* Company Lookalike rows create or update HubSpot **Companies**, matched by domain first, then by company LinkedIn page, then by additional domains.

See [Exporting results](/discovery/exporting-results#push-to-hubspot) for the full field mappings and duplicate-handling details.

### Custom HubSpot properties

When you map an Enrichley field to a HubSpot property that doesn't exist, Enrichley can create it for you during the **Prepare** step (requires the `crm.schemas.*.write` scope, which is requested by default).

Custom properties you create through Enrichley follow HubSpot's naming conventions (lowercase, alphanumeric, underscores) and are typically grouped under an `enrichley_*` prefix so they're easy to find in HubSpot.

### Saved field mappings

Save your field mappings during the export wizard to reuse them on future exports without remapping every column.

### Sync history

Every export job appears on the **Sync History** page with status (queued, running, succeeded, failed), progress, and a link to the detailed job page where you can see per-record results.

## Limits

| Limit                           | Default |
| ------------------------------- | ------- |
| Records per import              | 50,000  |
| Records per filtered validation | 10,000  |

If you need higher limits, contact [support@enrichley.io](mailto:support@enrichley.io).

## Disconnect

You can disconnect HubSpot from Enrichley at any time.

<Steps>
  <Step title="Open the HubSpot integration page">
    Go to [Integrations → HubSpot](https://app.enrichley.io/integrations/hubspot) in Enrichley.
  </Step>

  <Step title="Click Disconnect">
    Confirm the disconnection when prompted.
  </Step>
</Steps>

Disconnecting removes the ability to import or export data between Enrichley and HubSpot. **Your HubSpot data is not affected** — Enrichley only loses access.

### Delete integration data

If you also want to remove all integration data Enrichley has stored (saved mappings, import/export history, job logs), use **Delete All Data** in the **Danger Zone** section of the HubSpot integration page.

<Warning>
  Deleting integration data does **not** alter your HubSpot account. It only removes data Enrichley has stored about your past imports, exports, and mappings.
</Warning>

## Uninstall from HubSpot

To remove Enrichley from your HubSpot account entirely:

<Steps>
  <Step title="Open HubSpot Settings">
    In HubSpot, go to **Settings**.
  </Step>

  <Step title="Open Connected Apps">
    Navigate to **Integrations → Connected Apps**.
  </Step>

  <Step title="Find Enrichley">
    Locate **Enrichley** in your list of connected apps.
  </Step>

  <Step title="Uninstall">
    Click the **Actions** dropdown and select **Uninstall**.
  </Step>
</Steps>

Uninstalling Enrichley does not affect your HubSpot data. You can reconnect anytime by following the setup steps above.

## Get help

If you run into trouble or have questions about the HubSpot integration, contact [support@enrichley.io](mailto:support@enrichley.io).
