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

# HubSpot

> Install the Doris HubSpot app from Sources and sync companies, contacts, deals, owners, and products.

Connect HubSpot so Doris can sync companies, contacts, deals, owners, pipelines, and the CRM context behind your sales conversations.

<Note>
  HubSpot is an organization-wide CRM integration. A Doris admin connects it from **Sources > CRM > HubSpot**.
</Note>

## Before you start

You do **not** need to create a HubSpot app. Doris uses a Doris-managed HubSpot OAuth app.

You need:

* A **Doris admin** account for your workspace
* A HubSpot user who can install and authorize connected apps for the portal
* HubSpot permissions for the CRM objects Doris should sync

Use a HubSpot super admin or an integration user with access to:

* Companies
* Contacts
* Deals
* Owners
* Products
* Contact, company, and deal schemas

<Tip>
  If your HubSpot portal has strict app approval or marketplace controls, have a HubSpot super admin complete the first connection.
</Tip>

## Required HubSpot scopes

During OAuth, HubSpot asks the admin to approve these Doris scopes:

| Scope                         | Why Doris needs it                                           |
| ----------------------------- | ------------------------------------------------------------ |
| `oauth`                       | Complete the HubSpot OAuth installation                      |
| `crm.objects.companies.read`  | Sync company records                                         |
| `crm.objects.companies.write` | Write selected company updates when enabled                  |
| `crm.objects.contacts.read`   | Sync contact records                                         |
| `crm.objects.contacts.write`  | Write selected contact updates when enabled                  |
| `crm.objects.deals.read`      | Sync deal records                                            |
| `crm.objects.deals.write`     | Write selected deal updates when enabled                     |
| `crm.objects.owners.read`     | Map HubSpot owners to tracked reps                           |
| `crm.objects.products.read`   | Read product records for product-source setup                |
| `crm.schemas.contacts.read`   | Read contact property metadata                               |
| `crm.schemas.contacts.write`  | Maintain Doris-managed contact property metadata when needed |
| `crm.schemas.deals.read`      | Read deal property metadata                                  |

HubSpot may also show `crm.schemas.companies.read` as an optional scope. Approve it if prompted so Doris can read company property metadata.

## 1. Connect from Doris

<Steps>
  <Step title="Open Sources">
    Log in to Doris as an admin and go to **Sources** in the sidebar.
  </Step>

  <Step title="Choose HubSpot">
    Open the **CRM** card, choose **HubSpot**, and click **Connect**.
  </Step>

  <Step title="Pick the HubSpot portal">
    HubSpot opens an authorization flow. Sign in with the HubSpot admin or integration user and choose the correct HubSpot portal.
  </Step>

  <Step title="Approve scopes">
    Review the requested CRM scopes and approve the Doris app.
  </Step>

  <Step title="Return to Doris">
    After approval, HubSpot redirects back to Doris. The HubSpot source should show as connected.
  </Step>
</Steps>

## 2. Select reps and import

The HubSpot source has three setup sections in Doris:

| Section          | What to do                                                                   |
| ---------------- | ---------------------------------------------------------------------------- |
| **Connection**   | Authorize the Doris HubSpot app                                              |
| **Tracked Reps** | Choose which HubSpot owners Doris should track; leave empty to sync all reps |
| **Import**       | Click **Import Data** to bring HubSpot records into Doris                    |

Initial import can take a few minutes depending on the size of your HubSpot portal.

## 3. Enable webhooks

HubSpot webhooks let Doris receive CRM changes quickly after they happen.

After HubSpot is connected, open **Sources > CRM > HubSpot** and enable **Webhooks** if the toggle is available. If webhooks are not configured for your workspace, Doris still reconciles HubSpot data through scheduled syncs.

## What syncs

| HubSpot              | Doris                              |
| -------------------- | ---------------------------------- |
| Companies            | Companies                          |
| Contacts             | People                             |
| Deals                | Deals                              |
| Owners               | Rep ownership and filtering        |
| Pipelines and stages | Deal stages and pipeline structure |
| Products             | Product source records             |

Doris reads HubSpot as the source of truth for your CRM records. When CRM writeback or automation is enabled, Doris can also write selected field updates and notes back to HubSpot.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The HubSpot app cannot be installed">
    Use a HubSpot super admin or a user with permission to install connected apps. Some portals require admin approval before new apps can be installed.
  </Accordion>

  <Accordion title="The wrong HubSpot portal was selected">
    Disconnect HubSpot in Doris and reconnect, then choose the correct HubSpot portal during the OAuth flow.
  </Accordion>

  <Accordion title="Records are missing after import">
    Check the HubSpot user's CRM permissions. Doris can only sync objects and properties visible to the user who authorized the integration.
  </Accordion>

  <Accordion title="Webhooks will not turn on">
    HubSpot webhook setup depends on Doris workspace configuration. If the toggle fails, scheduled sync still runs; contact Doris support if you need real-time updates enabled.
  </Accordion>

  <Accordion title="Another CRM is already connected">
    Doris supports one primary CRM connection at a time. Disconnect the existing CRM source before connecting HubSpot.
  </Accordion>
</AccordionGroup>
