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

# HubSpot

> Connect HubSpot via OAuth — pull meeting transcripts and call recordings from your CRM.

HubSpot does double duty in Yuzu: it's both a **notetaker source** (call recordings and meeting transcripts logged on contacts) and a **CRM destination** (videos can be attached to deals and contacts as engagements). This page covers the connection itself.

**Auth method:** OAuth 2.0.

## Prerequisites

* A HubSpot account on a plan that exposes the API (Starter, Professional, or Enterprise).
* Permission to install third-party apps on your HubSpot portal.
* HubSpot Sales or HubSpot Service with call recording / meeting transcripts enabled if you want those imported.

## OAuth scopes

Yuzu requests these scopes during the OAuth flow:

* `oauth` — required for all OAuth flows.
* `crm.objects.contacts.read` — to look up contacts associated with calls.
* `crm.objects.owners.read` — to map HubSpot owners to Yuzu users.

Workspace admins can override this scope list via the `HUBSPOT_SCOPES` environment variable on the Yuzu deployment, but the defaults cover the standard sales recap workflow.

## Setup

<Steps>
  <Step title="Open Yuzu Settings → Integrations">
    Go to **Settings → Integrations**, click **Connect Notetaker**, and choose **HubSpot**.
  </Step>

  <Step title="Authorize Yuzu in HubSpot">
    HubSpot redirects you to a consent screen listing the scopes above. Pick the HubSpot account/portal you want to connect and click **Connect app**.

    <Frame />
  </Step>

  <Step title="Land back on Yuzu">
    HubSpot redirects you back to Yuzu's settings page. The HubSpot row now shows your **Hub ID** and a **Connected** badge.
  </Step>

  <Step title="Optionally sync recent meetings">
    Click **Sync Meetings** and pick **Last 7 days**, **Last 2 weeks**, or **Last 4 weeks** to backfill HubSpot calls and meetings into Yuzu. A 7-day sync also kicks off automatically right after you connect.
  </Step>
</Steps>

## What gets pulled

For each HubSpot call/meeting Yuzu has access to:

* The transcript (if HubSpot transcribed the call).
* The recording URL.
* Title, date, duration, organizer, and attendee emails.
* The associated HubSpot contacts and owner.

Sales calls are eligible to trigger a recap video based on your automation rules.

## Disconnecting

There are two layers to disconnect:

1. **In Yuzu** — click **Disconnect HubSpot** in the integrations row. This revokes the refresh token on HubSpot's side and stops Yuzu from pulling new data.
2. **In HubSpot** — to fully remove the Yuzu app, go to **HubSpot Settings → Integrations → Connected Apps** and uninstall it. This is a HubSpot limitation: revoking the refresh token does not uninstall the app.

<Warning>
  Until you uninstall the app in HubSpot, the Yuzu listing remains visible under Connected Apps even after you disconnect inside Yuzu.
</Warning>

## Token refresh

HubSpot access tokens expire every 30 minutes. Yuzu automatically refreshes them using the stored refresh token before each API call, so you should never need to re-authorize unless you explicitly disconnect.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The OAuth flow returns an error">
    The most common cause is your HubSpot user not having permission to install third-party apps. Ask a HubSpot super admin to install Yuzu, or have them grant you the **Account Access > Edit account integrations** permission.
  </Accordion>

  <Accordion title="Yuzu shows connected but no meetings appear">
    Open **Settings → Integrations → HubSpot** and click **Sync Meetings → Last 7 days**. If the sync completes with zero imports, your HubSpot account may not have any transcribed calls or logged meetings in that window.
  </Accordion>

  <Accordion title="A specific call has no transcript in Yuzu">
    HubSpot only generates transcripts for calls placed through HubSpot's calling system on supported plans. External calls logged manually won't have transcripts. Check the call record in HubSpot — if no transcript shows there, none will reach Yuzu.
  </Accordion>

  <Accordion title="I disconnected and now Yuzu shows me as connected again">
    The Yuzu UI status reflects the local integration record. If you reconnect, Yuzu reuses the same `notetaker_integrations` row. To wipe the connection completely, disconnect in Yuzu and uninstall the app in HubSpot under **Settings → Integrations → Connected Apps**.
  </Accordion>
</AccordionGroup>
