If you have ever searched for an "Export Notes" button inside HubSpot, you already know it does not exist. HubSpot lets you export Contacts, Companies, Deals, and Tickets from the standard CRM interface, but notes are not part of that flow. For teams that need their notes outside of HubSpot for reporting, migration, backup, or collaboration, this creates a real problem.
The good news is that there are several ways to get your notes out. This guide walks through every method that works, from the HubSpot API to no-code workarounds, so you can pick the one that fits your team's resources and goals. If you are new to how notes work in HubSpot, start with our HubSpot Notes guide.
1.
2.
3.
4.
5.
6.
7.
Why HubSpot does not have a one-click notes export
The reason there is no export button for notes comes down to how HubSpot organizes its data. In HubSpot's data model, notes are classified as engagements, which are activities that live on the timeline of a record rather than standalone objects. When you run a standard CRM export, you are exporting object records like Contacts or Deals. Engagements, including notes, calls, emails, and meetings, are attached to those records but are not included in the export.
This is not a bug. It is a design decision. HubSpot's export tool is built around structured records with defined properties, and notes are freeform text entries that can be associated with multiple records at once. The result is that getting notes out requires a different approach than exporting a contact list.
Method 1: Export notes using the HubSpot API
The most complete method for exporting notes is the HubSpot CRM API. If you have a developer on your team or you are comfortable with basic API calls, this gives you full access to every note in your account.
The endpoint you need is GET /crm/v3/objects/notes. You will need a HubSpot private app token with the crm.objects.notes.read scope. The key properties to request are:
hs_note_bodyfor the actual note content (stored as HTML)hs_timestampfor when the note was createdhs_lastmodifieddatefor the last edit timestamphubspot_owner_idfor the user who created the note
A basic request looks like this:
GET https://api.hubapi.com/crm/v3/objects/notes?properties=hs_note_body,hs_timestamp,hubspot_owner_id&limit=100
Authorization: Bearer YOUR_TOKEN
The API returns results in pages of up to 100 notes. For larger datasets, use the after cursor from each response to paginate through all results. To connect notes back to their associated Contacts or Deals, include the associations parameter in your request specifying which object types you want.
Once you have the data, writing it to a CSV or importing it into another tool is straightforward. Keep in mind that hs_note_body contains HTML, so you may need to strip tags if you want plain text.
Method 2: Export notes using HubSpot workflows
If your team does not have developer resources, there is a workaround using HubSpot workflows. The idea is to copy note content into a custom contact or deal property, which you can then export through the standard CRM export.
Here is how it works. Create a single-line or multi-line text custom property on the Contact object, something like "Latest Note Export." Then build a workflow that triggers when a note is logged on a contact. Use the workflow action to copy the note body into that custom property. Once the property is populated, you can include it in any standard HubSpot export.
The limitation is significant: this approach only captures notes going forward, and it overwrites the property each time a new note is logged. You get the most recent note per contact, not the full history. For teams that just need to spot-check recent activity or build a lightweight report, this works. For a full historical export, you need the API.
Method 3: Use a third-party tool to export notes
If you already use an automation platform like Zapier or Make, you can set up a flow that pulls notes from HubSpot and sends them to a spreadsheet, database, or another application.
In Zapier, the trigger would be "New Engagement" in HubSpot, filtered to note types. The action would write the note body and metadata to a Google Sheet, Airtable, or wherever you need it. Make offers similar functionality through its HubSpot module.
For larger-scale exports, data pipeline tools like Airbyte or Fivetran can replicate HubSpot engagement data into a data warehouse, giving you full SQL access to query and export notes however you need.
The tradeoff with automation tools is that they are built for general-purpose workflows, not specifically for CRM note management. Setup takes time, edge cases accumulate, and maintenance is ongoing. For more on this, see our breakdown of why general automation tools fall short for sales notes and our look at Make alternatives for Notion and HubSpot.
Keep your notes in Notion and your CRM up to date
NoteLinker syncs your sales notes from Notion to HubSpot contact timelines. No exporting, no copy-pasting, no lost context.
Method 4: Move your note-taking to Notion and sync to HubSpot
If you are exporting notes from HubSpot because you need them in a more flexible environment, it is worth asking whether the notes should have started somewhere else.
Most sales teams that run into the export problem are trying to get notes into a tool where they can organize, search, share, and report on them more easily. That tool, for a growing number of teams, is Notion. The issue is that if reps write notes in HubSpot first and then try to get them out, they are working against HubSpot's data model instead of with it.
The alternative is to flip the workflow. Write your notes in Notion, where rich formatting, linked databases, and flexible exports are built in, and sync them to HubSpot so the CRM stays current. This way the notes live in both places from the start, and you never need to run an export.
NoteLinker is built for exactly this workflow. You connect your Notion workspace to HubSpot once, and from that point forward, syncing a note to the correct contact or deal timeline takes a single click from inside Notion. The note appears on the HubSpot timeline as a formatted activity, visible to the entire team. For a step-by-step walkthrough, see how to sync Notion notes to HubSpot automatically.
This does not help with notes that are already locked inside HubSpot. For those, you will still need one of the methods above. But for everything going forward, it removes the export problem entirely. Your reps work where they are most productive, the CRM gets the context it needs, and nobody has to build an API script or maintain a Zapier flow to keep things in sync. If you are already feeling the friction of copy-pasting notes between tools, this is the approach worth evaluating.
Which method should you use
The right method depends on what you are trying to accomplish.
One-time bulk export: Use the HubSpot API (Method 1). It gives you complete access to every note in your account with full metadata and associations. You need someone comfortable making API calls, but it is the most thorough approach.
Quick spot-check without a developer: Use the workflow workaround (Method 2). It only captures the most recent note per contact and only works going forward, but it requires zero code and uses tools you already have.
Already using an automation platform: Pipe notes through Zapier or Make (Method 3). If your team is already invested in one of these tools, adding a HubSpot note export flow is incremental rather than net new.
Notes should live in Notion going forward: Use NoteLinker (Method 4). If the reason you are exporting is that HubSpot is not where your team wants to organize and work with notes, switch the workflow so notes start in Notion and sync to HubSpot automatically.
Common mistakes when exporting HubSpot notes
A few pitfalls to watch for regardless of which method you choose.
Assuming notes come with a contact export. The most common mistake is running a standard CRM export and expecting note content to be included. It will not be. Notes are engagements, not contact properties, and they require a separate export path.
Forgetting note associations. A note in HubSpot can be associated with a Contact, a Deal, a Company, or multiple records at once. If you export notes without pulling the associations, you end up with a list of text entries that you cannot connect back to the right records. Always include association data in your API requests. If notes seem to be missing from specific records, check our guide on sales notes not showing up in HubSpot.
Not requesting the note body. The HubSpot API does not include hs_note_body in responses by default. If you make an API call without explicitly requesting this property, you will get note metadata but no actual content. Always specify it in your properties parameter.
Losing formatting in plain text exports. HubSpot stores note content as HTML. If you export to CSV and strip the HTML tags, you lose formatting like bullet points, bold text, and line breaks. Depending on your use case, you may want to preserve the HTML or convert it to Markdown rather than stripping it entirely.
Notion × HubSpot tips, every week
Keep your CRM in sync without the manual work.
No spam. Unsubscribe any time. By subscribing, you agree to receive marketing emails from NoteLinker.


Try NoteLinker Free