HubSpot
Connect your HubSpot account to send your MailInApp contacts, their engagement scores, and your deals to HubSpot automatically. Your sales team works in HubSpot as usual. MailInApp keeps it up to date with who's engaging with your emails and where each deal stands.
Sync is one way only. MailInApp sends contacts and deals to HubSpot and never reads them back. A change made in HubSpot, like a new phone number or a deal moved to another stage, stays in HubSpot and doesn't change anything in MailInApp.
Before you start
- You need to be the owner of your MailInApp account. Editors and viewers don't see the CRM sync settings.
- In HubSpot, you need to be a super admin, or have the HubSpot Marketplace access permission, to approve the connection.
- For deals, set up your pipeline in MailInApp first (Pipeline in the sidebar). A deal is only sent once its pipeline is matched to a HubSpot pipeline.
Connect HubSpot
- In MailInApp, go to Settings → Integrations and find CRM sync.
- Click Connect HubSpot. You may be asked to sign in to MailInApp again first, because connecting stores a credential.
- On HubSpot's screen, pick the HubSpot account to connect, review the permissions, and approve.
- You're sent back to Settings → Integrations with HubSpot connected.
MailInApp asks HubSpot for permission to:
| Permission | Why |
|---|---|
| Read and write contacts | Create and update the contacts you send. |
| Read and write deals | Create and update deals, and read your deal pipelines so you can match stages. |
| Write contact properties | Add one contact property, MailInApp engagement score, the first time it syncs. |
Nothing is sent until you choose what to sync.
Choose what to sync
Under What to sync, on the HubSpot row:
- Contacts lists: tick each MailInApp contacts list you want in HubSpot.
- Deal pipelines: for each MailInApp pipeline you want to sync, pick a HubSpot pipeline. MailInApp suggests a stage for each of yours (open stages in order, Won to HubSpot's closed-won stage, Lost to closed-lost). Change any you like. A stage set to Not sent keeps its deals out of HubSpot.
- Click Save, then Sync now to send everything right away instead of waiting for the next automatic sync.
Untick Sync is on at any time to pause without losing your choices.
What gets sent
Contacts
Each contact in a chosen list becomes one HubSpot contact, matched by email address. If the same person is in several of your lists, they're still one HubSpot contact.
| MailInApp column | HubSpot property |
|---|---|
| First name (or the first word of a full Name column) | First name |
| Last name (or the rest of a full Name column) | Last name |
| Company | Company name |
| Title, Job title, Position | Job title |
| Phone, Mobile | Phone number |
| Website, Company website | Website URL |
| City | City |
| Country | Country/Region |
| Engagement score | MailInApp engagement score (a number) |
Column names are matched loosely: "First Name", "first_name" and "firstname" all work. An empty column never blanks the value already in HubSpot. Contacts who signed up through a double opt-in form but haven't confirmed yet aren't sent.
The engagement score is MailInApp's recency-weighted measure of how much a contact interacts with your emails. Sort or filter HubSpot contacts on it, or use it in a HubSpot workflow to alert a sales rep when it climbs.
Deals
Each deal in a matched pipeline becomes a HubSpot deal, linked to its contact. If that contact isn't in one of your synced lists, it's sent anyway, so the deal always has someone attached.
| MailInApp | HubSpot |
|---|---|
| Title | Deal name |
| Value | Amount |
| Pipeline and stage | Pipeline and deal stage, as you matched them |
| Closed date (won or lost deals) | Close date |
HubSpot deals use your HubSpot account's own currency. MailInApp sends the amount without a currency, because HubSpot refuses currencies your account hasn't turned on.
How often it syncs
- Every few minutes, MailInApp sends whatever changed since the last sync: new or edited contacts, and new or moved deals. This includes changes from imports, signup forms, journeys, enrichment, bookings, and checkout.
- Once a day, it checks everything again, so engagement scores stay current as they rise and fade.
- Sync now runs a sync immediately.
A contact or deal that hasn't changed isn't sent again. The settings card shows the last sync: how many contacts and deals were sent, and anything HubSpot refused or that couldn't be placed.
What doesn't sync
- Nothing comes back from HubSpot. MailInApp only reads your HubSpot pipeline and stage names, so you can match them.
- Deletes. Deleting a contact or deal in MailInApp doesn't delete it in HubSpot. If you delete a synced deal in HubSpot, MailInApp doesn't recreate it.
- Deals in pipelines you didn't match, and deals in a stage set to Not sent.
Troubleshooting
| What you see | What it means |
|---|---|
| HubSpot refused N records | Usually an email address HubSpot doesn't accept. Each one is sent again only after you change it in MailInApp. |
| N deals are in a stage without a matching HubSpot stage | Pick a HubSpot stage for that stage under Deal pipelines, then Save. Those deals go out on the next sync. |
| HubSpot asked MailInApp to slow down or couldn't be reached | A temporary limit or outage. Sync continues on its own from where it stopped. |
| Access revoked | The connection was removed or revoked on the HubSpot side. Click Reconnect; sync picks up from where it stopped. |
| HubSpot didn't grant every permission | Connect again and approve all of the permissions listed above. |
Disconnect
Click Disconnect on the HubSpot row. MailInApp deletes its stored access to your HubSpot account and your sync choices. Everything already sent stays in HubSpot.
MailInApp keeps a note of which HubSpot record each of your contacts and deals became, so you can connect again later without creating duplicates:
- The same HubSpot account: choose what to sync again. Contacts and deals already in HubSpot are updated, not created a second time, and only what changed while you were disconnected is sent.
- A different HubSpot account: MailInApp forgets the first account's records and sends everything you choose to the new one.
Those notes hold only HubSpot's record IDs, never contact data. They're deleted when you connect a different HubSpot account or delete your MailInApp account.