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

# HubSpot

> Import existing answers from HubSpot and write the classification back to each contact.

> [!NOTE]
>
> HubSpot sync needs the Starter plan or higher. The 14-day signup trial includes it. Rumorly writes to one CRM at a time, so disconnect Attio first if it's connected.

## Connect

1. In Rumorly, go to **Integrations → HubSpot** and click **Connect HubSpot**.
2. HubSpot asks which account to connect and shows the access Rumorly needs: contacts and companies (read and write) and their properties. Approve it and you're sent back to Rumorly.
3. Pick the property where you already store the "how did you hear about us?" answer, on Contacts or Companies. Your own single-line text, multi-line text, dropdown and radio properties are listed, likely candidates first. You can skip this if you don't store the answer in HubSpot yet.

Rumorly then imports every record that has an answer and classifies it. New and changed answers are picked up every 5 minutes. Rumorly's access is refreshed automatically; you won't need to reconnect.

> **Connect with a service key instead**
>
> Use this if you'd rather not install an app, or HubSpot sign-in isn't available on your Rumorly server.
>
> 1. In HubSpot, go to **Development → Keys → Service keys** and click **Create service key**.
> 2. Add the scopes `crm.objects.contacts.read`, `crm.objects.contacts.write`, `crm.objects.companies.read`, `crm.objects.companies.write`, `crm.schemas.contacts.read`, `crm.schemas.contacts.write`, `crm.schemas.companies.read` and `crm.schemas.companies.write`.
> 3. In Rumorly, click **Use a service key instead**, paste the key and connect. The key is encrypted at rest.

## What Rumorly writes

Rumorly creates a **Rumorly** property group with three properties, on Contacts (and on Companies if that's where your answers are), and writes only to them:

| Property (label in HubSpot) | Internal name | Field type | Contains |
| - | - | - | - |
| Rumorly channel | `rumorly_channel` | Dropdown select | The channel, e.g. "AI assistant". Options mirror your channels. |
| Rumorly source | `rumorly_entity` | Single-line text | The named source, e.g. "ChatGPT", or empty. |
| Rumorly answer | `rumorly_raw` | Multi-line text | The answer exactly as given. |

Rumorly never edits a property it didn't create. When you correct a classification in Rumorly, the change is written back on the next sync. Answers that arrive another way (the snippet, the API, a form) are written to the contact with the same email, if there is one.

### See the values in HubSpot

**1. Add the columns**

In **Contacts**, click **Edit columns** and add **Rumorly channel**, **Rumorly source** and **Rumorly answer**.

**2. Optional: report by channel**

Any HubSpot report or list can filter or break down by **Rumorly channel**, like any other dropdown property.

On a single contact, the properties are in the **About this contact** card; search for "Rumorly" under **View all properties** if they're hidden.

## Disconnect

**Disconnect** stops syncing and deletes Rumorly's copy of the tokens. Values already written to the `rumorly_*` properties stay in HubSpot. To remove the app's access in HubSpot too, uninstall Rumorly under **Settings → Integrations → Connected apps** (or delete the service key).

When you [erase a person](/account/privacy.md), their `rumorly_*` values in HubSpot are blanked as well.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.