All articles
HubSpotJul 2, 20264 min read

HubSpot exports your contacts but not your notes: here is everything it leaves behind

Run a contact export in HubSpot and you get a tidy CSV: names, emails, lifecycle stages. What you do not get is a single note, call log, email or meeting. Years of relationship history, the part of your CRM that took real work to build, stays behind.

The export that looks complete and is not

HubSpot's export flow is genuinely nice to use, which makes the gap easy to miss. You pick a view or a list, choose your columns, and a file lands in your inbox. It feels like you exported your contacts. What you actually exported is your contact properties. Everything your team typed and logged against those contacts, the notes from the discovery call, the objection from March, the promise about renewal pricing, lives in a different part of HubSpot called engagements. The standard export does not touch it.

Most people find this out at the worst moment: during a migration, an audit, or when a departing rep's accounts get handed over and the new owner opens a spreadsheet of names with no story attached.

Where the history actually lives

In HubSpot's data model, a contact is one object. Every note, call, email, meeting and task is a separate engagement object linked to it. That design makes sense (one call can involve three contacts and a deal), but it means "export contacts" and "export what we know about contacts" are two different jobs. Only the first one has a button.

HubSpot does offer a full portal export from settings, and it includes engagements. But it arrives as a huge multi-file dump built for backups, not for answering "give me these 400 contacts with their notes in one sheet." And copying from record timelines by hand stops being realistic after about five contacts.

When people need this

The missing button, built

Our HubSpot notes and activity exporter uses HubSpot's own API to walk your contacts and pull every linked engagement: notes, logged calls with outcomes, emails, meetings and tasks, each with its date, type and author. You can scope it to a list or a filter, so a handover export covers exactly one rep's accounts. The result is a clean CSV where each row is one engagement tied to its contact.

It connects with a private app token you create in your own portal, with read scopes only. The token is used in memory for the run and never stored on our servers, and the tool cannot write or delete anything. The preview is free, so you can check the shape of the output before running the full export.

The properties are the skeleton. The notes are the relationship. An export that drops the notes is exporting a skeleton.

What lands in the file, exactly

So you know before you run it: the export gives you one row per engagement. Each row has the contact's name, email and record link, the engagement type (note, call, email, meeting or task), its timestamp, its author, and the content itself: the note text, the call notes and outcome, the email subject and body, the meeting title. Sort by contact and then by date, and the file reads like a case history per person. That is exactly what handovers and audits want.

The full portal export, compared fairly

HubSpot's settings-level full export deserves a fair mention. It does include engagements, it is free, and for a total backup it is fine. Its limits are shape and scope. It comes as many files linked by internal IDs that you have to join yourself. It is all-or-nothing, with no "just this list, just this quarter." And on big portals it can take a long time to arrive. If your question is "archive everything," use it. If your question is "these 400 contacts, with notes, in one readable sheet, today," that is the gap this exporter fills.

Do this before you need it

The uncomfortable truth about engagement history: everyone exports it six months too late. After the rep left. After the migration deadline. After the auditor asked. A periodic full-history export into your own storage takes a few minutes, and it turns every future "we need the notes" emergency into an email attachment.

Skip the workaroundThe fix described above is live: try HubSpot notes and activity exporter with a free preview.
Open the tool →

Frequently asked questions

Does HubSpot's contact export include notes and call logs?

No. The standard contact export covers contact properties only. Notes, calls, emails, meetings and tasks are stored as separate engagement objects and are not included, so exported contacts arrive with no interaction history.

How do I export HubSpot notes to a CSV?

Use HubSpot's API to fetch engagements associated with each contact, or a tool that does it for you. A good export produces one row per note or activity with its contact, date, type and author, scoped to a list or filter if you only need part of the database.

Can I export activities for just one rep's contacts?

Yes, by scoping the export to a list or an owner filter. That is the standard pattern for rep handovers: the new owner receives every note, call and meeting for exactly the accounts they inherit.

Is exporting engagements through the HubSpot API safe?

Yes, when done with a read-only private app token created in your own portal. Read scopes cannot modify or delete anything, and a tool that uses the token in memory only leaves nothing stored after the run.

The Missing Buttons is independent and not affiliated with any CRM vendor. Tool behavior described here reflects your own account permissions: our tools read through your credentials and can only access data you can already see.

Keep reading