HUBSPOT INTEGRATION
Connect once by authorising the Lettrove app on HubSpot’s own site. Your lists appear under Audiences with their real fields, you send from your own domain with the people’s names in the email, and what happened is written back to the contact. No API key to paste.
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.
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.
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 — and on the contact in HubSpot.
Sync on your terms
Sync now from the source dashboard, on a schedule, or right before a send so the list is fresh.
Consent recorded
Each list carries the lawful basis you attest to; unsubscribed contacts are never mailed.
Disconnect any time
Settings → Integrations → Remove. The app is uninstalled from your HubSpot account and its tokens revoked.
These are the permissions HubSpot shows you when you connect — every one of them, 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 | To write back what happened — sent, delivered, bounced, unsubscribed — as a timeline event on the contact, so your CRM stays true | Lettrove → HubSpot |
| oauth | Keep the authorisation | So the connection stays alive without asking you to sign in again | — |
What Lettrove stores
What it never touches
Removing the connection in Lettrove 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.
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).