> Lettrove docs 1.x · https://docs.lettrove.com/docs/app/audiences/hubspot

# HubSpot

Connect once by authorising the Lettrove app on HubSpot's own site. Your lists appear under Audiences
with their real fields, and you send from your own domain with the people's names in the email. No
API key to paste.

## Set up in three steps

1. **Connect.** In Lettrove go to **Settings → Integrations → HubSpot → Connect HubSpot**. You are
   sent to HubSpot, choose the account, and see exactly the permissions listed below. Approve, and
   you are back in Lettrove.

   You need to be a HubSpot super admin, or have "App Marketplace access" in that account, to
   install apps.

2. **Choose what to bring in.** Under **Audiences** the HubSpot source shows your lists. Pick one,
   choose which contact properties to sync (the field catalogue is read from your CRM), and Lettrove
   syncs it. Every list keeps its own dashboard: how many contacts, when it last synced, what needed
   attention. **Sync now** on that dashboard brings it up to date again whenever you like.

3. **Send.** Open an email, **Send → Send to a list**, pick the HubSpot list. Personalise with
   `{{contact.firstname}}` and any synced property; Lettrove checks every tag against the list before
   anything goes out. Delivery, bounces and unsubscribes show on the send's status page.

Unsubscribed contacts are never mailed, and each list carries the lawful basis you attest to.

## What the app can access, and why

These are the permissions HubSpot shows you when you connect, in HubSpot's own names, with the
single thing each is used for. The app asks for nothing else.

| Permission | What | Used for | Direction |
|---|---|---|---|
| `crm.objects.contacts.read` | Contacts: email, name, and the properties you choose | To bring a list of people into Lettrove so you can send to them and personalise with their fields | HubSpot → Lettrove |
| `crm.schemas.contacts.read` | Your contact property definitions (names, types, options) | To show the field catalogue you pick personalisation fields from: the actual columns of your CRM, not a fixed set | HubSpot → Lettrove |
| `crm.lists.read` | Your lists and who is in them | To send to a HubSpot list as an audience, deduplicated and consent-checked | HubSpot → Lettrove |
| `crm.objects.contacts.write` | Update a contact and log activity | Requested for writing send outcomes back to the contact's timeline. Lettrove does not write to HubSpot yet; until it does, nothing uses this permission | Lettrove → HubSpot |
| `oauth` | Keep the authorisation | So the connection stays alive without asking you to sign in again | — |

**What Lettrove stores**

- The contacts of the lists you chose to sync (email, name, and the properties you selected), in
  your workspace, isolated from every other workspace.
- The OAuth tokens, encrypted at rest (AES-256-GCM), never shown, never logged.
- A per-send ledger: who was mailed, when, and what the provider reported.

**What it never touches**

- Deals, companies, tickets and every other object.
- Marketing emails, workflows and sequences in HubSpot.
- Your HubSpot users, billing or account settings.
- Any property you did not include in the sync.

## Removing it

**Settings → Integrations → Remove** uninstalls the app from your HubSpot account through HubSpot's
uninstall API and deletes the tokens. You can also remove it from HubSpot under Settings →
Integrations → Connected apps. Synced contacts stay in your Lettrove workspace until you delete the
list.

## Support

Write to support@lettrove.com; the people who build Lettrove answer it. Include your workspace name
and, for sync questions, the list's name and the time of the last sync (both on the list's
dashboard).

HubSpot is a trademark of HubSpot, Inc.; Lettrove is not affiliated with HubSpot.
