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

# HubSpot

> Connect HubSpot to Wave Runner to trigger workflows from CRM events and write call outcomes back to contact records.

The HubSpot integration links your HubSpot portal to Wave Runner through OAuth. Once connected, HubSpot contact, deal, and company events fire Wave Runner workflows automatically, and call summaries, transcripts, and outcomes write back to the corresponding contact record.

## Connecting HubSpot

<Steps>
  <Step title="Open the integrations page">
    In Wave Runner, click **Settings** in the navbar, then select the **Integrations** tab.
  </Step>

  <Step title="Click Connect on the HubSpot card">
    Find the HubSpot card in the **CRM** section and click **Connect**. Wave Runner redirects you to HubSpot's OAuth authorization screen.
  </Step>

  <Step title="Authorize Wave Runner in HubSpot">
    Log in to your HubSpot account if prompted, review the requested permissions, and click **Grant access**. Wave Runner requests read and write access to contacts, companies, deals, leads, line items, products, appointments, lists, tickets, conversations, and OAuth.
  </Step>

  <Step title="Confirm the connection">
    HubSpot redirects you back to Wave Runner. The HubSpot card status changes to **Connected**, showing your portal ID.
  </Step>
</Steps>

<Note>
  You must have **Super Admin** or **CRM Admin** permissions in HubSpot to authorize an OAuth app for your portal.
</Note>

## Trigger events

After connecting, select **HubSpot** as the trigger in any Wave Runner workflow. When a matching event fires in HubSpot, Wave Runner executes the workflow.

| Category       | Trigger                               |
| -------------- | ------------------------------------- |
| Contacts       | New Contact                           |
| Contacts       | Contact Recently Created or Updated   |
| Contacts       | New Contact in List                   |
| Contacts       | New Contact Property Change           |
| Companies      | New Company                           |
| Companies      | Company Recently Created or Updated   |
| Companies      | New Company Property Change           |
| Deals          | New Deal                              |
| Deals          | Updated Deal Stage                    |
| Deals          | New Deal Property Change              |
| Line items     | New Line Item                         |
| Line items     | Line Item Recently Created or Updated |
| Products       | New Product                           |
| Products       | Product Recently Created or Updated   |
| Tickets        | New Ticket                            |
| Tickets        | New Ticket Property Change            |
| Tasks          | New Task                              |
| Engagements    | New Engagement                        |
| Email          | New Email Event                       |
| Email          | New Email Subscriptions Timeline      |
| Forms          | New Form Submission                   |
| Blog           | New COS Blog Article                  |
| Custom objects | New Custom Object                     |
| Custom objects | New Custom Object Property Change     |

## CRM action nodes

Add a **HubSpot** action node inside any workflow to write data back to your CRM:

* **Create Contact** — creates a new contact with data from the workflow context
* **Update Contact** — updates properties on an existing contact record
* **Create Company** — creates a company in HubSpot
* **Create Deal** — opens a new deal and sets the initial stage
* **Create Associations** — links two HubSpot objects (for example, a contact to a deal)

## Call outcome sync

When a workflow starts from an **End of Call** trigger, the following call data is available to pass to HubSpot action nodes:

* **Summary** — AI-generated call summary
* **Transcript** — full call transcript
* **Outcome** — call result (e.g. booked, not interested, callback requested)
* **Sentiment** — detected caller sentiment
* **Duration** — call length in seconds

Use these in an **Update Contact** node to keep HubSpot records current after every call.

## Contact variables

When a workflow starts from a HubSpot contact event, Wave Runner makes the contact's properties available as variables in any text field.

Click **+ Insert Variable** inside any node's text field and select from the **HubSpot Contact** category.

| Variable           | Description             |
| ------------------ | ----------------------- |
| `{firstname}`      | Contact's first name    |
| `{lastname}`       | Contact's last name     |
| `{email}`          | Contact's email address |
| `{phone}`          | Contact's phone number  |
| `{company}`        | Associated company name |
| `{lifecyclestage}` | HubSpot lifecycle stage |
| `{jobtitle}`       | Job title               |
| `{city}`           | City                    |
| `{state}`          | State or region         |
| `{zip}`            | Postal code             |
| `{country}`        | Country                 |

<Tip>
  Combine HubSpot variables with call data variables in the same field. For example: "Hi `{firstname}`, here's a summary of our call: `{summary}`."
</Tip>

## Two-way contact sync

When Wave Runner receives a HubSpot contact event, it checks whether the contact already exists by matching phone number variants. If a match is found, Wave Runner updates the record. If not, Wave Runner creates the contact and adds it to a **CRM Contacts** list. HubSpot is the source of truth when the integration is active.

## Disconnecting HubSpot

<Steps>
  <Step title="Open the integrations page">
    Go to **Settings → Integrations**.
  </Step>

  <Step title="Click Configure on the HubSpot card">
    The card shows **Configure** when a connection is active.
  </Step>

  <Step title="Remove the connection">
    Click **Disconnect** or the trash icon next to the connection entry. Wave Runner immediately stops receiving webhook events from that HubSpot portal.
  </Step>
</Steps>

<Warning>
  Disconnecting HubSpot does not pause active workflows. Workflows using a HubSpot trigger stop firing but remain in draft status. Reconnect HubSpot and redeploy the workflow to restore them.
</Warning>
