How to Export Your Data from HubSpot
Complete guide to exporting all your data from HubSpot: contacts, companies, deals, notes, emails, workflows, and everything else. Step-by-step for 2026.
How to Export Your Data from HubSpot
Whether you're switching CRMs, creating a backup, running analysis outside HubSpot, or just exercising your right to your own data — exporting everything from HubSpot is something every admin should know how to do.
The good news: HubSpot supports export for most of its data. The frustrating news: "most" is not "all," and the export formats require cleanup before they're useful in another system. This guide covers every export path, in order of importance.
Before You Start#
Check your permissions: You need Super Admin access or an account with export permissions enabled. Standard user roles often can't export all objects.
Plan your exports: Make a list of every type of data you want to export before starting. It's easy to miss objects that live in unexpected places (custom objects, associated companies on deal exports, etc.).
Export during off-hours: For large databases (100,000+ contacts), exports can take 30-60 minutes. Start them and let them run.
Exporting Contacts#
Contacts are the core of most HubSpot databases.
Method 1: Direct Export#
- Navigate to Contacts > Contacts
- Remove any active filters (you want ALL contacts)
- Click Actions > Export
- A dialog appears: select All properties (not just the default columns)
- Select CSV or Excel format
- Click Export
- HubSpot emails you a download link when it's ready
Critical: The default export only includes properties visible in your current view. To get ALL properties (including custom properties), you must select "Include all properties" in the export dialog. Missing this step is the most common export mistake.
Method 2: List Export#
If you want a filtered subset:
- Marketing > Lists
- Find or create the list you want to export
- Click Actions > Export
- Same process as above
What the Contact Export Includes#
The CSV includes:
- All contact properties (standard and custom)
- Contact owner
- Create date and last modified date
- Association: first associated company name and ID
What it does NOT include:
- Email conversation content
- Call recording content
- Note body text
- Complete activity history
- All associated companies (only the primary)
Exporting Companies#
- Navigate to Contacts > Companies
- Remove filters
- Click Actions > Export
- Select all properties
- Export as CSV
The company export includes all company properties and the company-to-contact association count, but not the actual contact list per company.
Exporting Deals#
- Navigate to Sales > Deals
- Remove filters (show all deals, all stages including closed)
- Click Actions > Export
- Select all properties
- Export as CSV
Important for deal associations: The standard deal export includes a "Associated Contact" column with the primary contact, but not all associated contacts or companies. To get complete association data, use the API (see below) or enable "Include associations" in the export dialog if it appears.
Exporting Tickets (Service Hub)#
- Navigate to Service > Tickets
- Click Actions > Export
- Select all properties
- Export as CSV
Exporting Custom Objects#
HubSpot custom objects (available on Enterprise plans) require individual exports:
- Navigate to the custom object's index page
- Click Actions > Export
- Select all properties
Each custom object type requires a separate export.
Exporting Activity Data (Notes, Emails, Calls, Meetings)#
This is where things get harder. Activity data in HubSpot is stored as engagements and requires more work to export.
Option 1: Export via Contact Record (Manual)#
For small databases: open individual contact records and copy notes/activity manually. Not practical for anything over 50 contacts.
Option 2: Engagements API (Recommended for Complete Export)#
HubSpot's Engagements API provides programmatic access to all activities.
Get your API key: Settings > Integrations > Private Apps. Create a private app with read access to CRM objects.
Fetch notes:
curl -X GET "https://api.hubapi.com/engagements/v1/engagements/paged?limit=250" \
-H "Authorization: Bearer YOUR_PRIVATE_APP_TOKEN"Fetch by type (CALL, EMAIL, MEETING, NOTE, TASK):
curl -X GET "https://api.hubapi.com/engagements/v1/engagements/paged?engagementType=NOTE&limit=250" \
-H "Authorization: Bearer YOUR_PRIVATE_APP_TOKEN"The API returns paginated results. Iterate through pages using the offset parameter until hasMore is false.
Python script for bulk notes export:
import requests
import csv
TOKEN = "YOUR_PRIVATE_APP_TOKEN"
BASE_URL = "https://api.hubapi.com/engagements/v1/engagements/paged"
notes = []
offset = 0
while True:
resp = requests.get(BASE_URL,
headers={"Authorization": f"Bearer {TOKEN}"},
params={"limit": 250, "offset": offset}
)
data = resp.json()
for item in data.get("results", []):
if item["engagement"]["type"] == "NOTE":
notes.append({
"id": item["engagement"]["id"],
"created_at": item["engagement"]["createdAt"],
"body": item["metadata"].get("body", ""),
"contact_ids": item["associations"]["contactIds"]
})
if not data.get("hasMore"):
break
offset = data["offset"]
with open("hubspot_notes.csv", "w", newline="") as f:
writer = csv.DictWriter(f, fieldnames=["id","created_at","body","contact_ids"])
writer.writeheader()
writer.writerows(notes)Option 3: DenchClaw Browser Agent#
The browser agent can log into your HubSpot account and systematically export activity data:
- Install DenchClaw:
npx denchclaw - Say: "Export all notes and activity data from HubSpot"
- The agent navigates HubSpot, extracts the engagement data, and saves it to your local workspace
Exporting Email Sequences#
Sequences (Sales Hub automated email cadences) can't be exported as portable files. You need to document them manually:
- Go to Automation > Sequences
- Open each sequence
- Document: name, steps, email content, timing, enrollment triggers
- Save as a document (Word, Notion, Google Doc)
This documentation becomes your blueprint for recreating sequences in the new system.
Exporting Workflows#
Workflows also can't be exported as portable configurations. Manual documentation:
- Go to Automation > Workflows
- Open each active workflow
- Document: enrollment triggers, conditions, actions, timing
- Screenshot complex branching logic
HubSpot does have a Clone function that copies a workflow within HubSpot, but there's no export to another CRM.
Exporting Email Templates#
- Go to Marketing > Email > Email Templates (or Sales > Templates for sales email templates)
- Open each template
- Copy the HTML source (view source if needed) or save the body text
- Paste into a document for preservation
There's no bulk template export. For large template libraries, the API provides GET /marketing/v3/emails/templates for marketing emails.
Exporting Forms and Submissions#
Forms:
- Marketing > Lead Capture > Forms
- Each form has an export for submissions: open the form > View Submissions > Export
Form definitions (the form fields and configuration) can be exported via the Forms API: GET /forms/v2/forms.
Submission data: Each form's submission export gives you a CSV of all submitted data with timestamps.
Exporting Lists#
- Marketing > Lists
- Open a list
- Actions > Export — exports the contacts in the list
The list definition itself (the criteria for dynamic lists) can't be exported as a portable file. Document dynamic list criteria manually.
Exporting Custom Properties (Field Definitions)#
To know what fields you've created (so you can recreate them elsewhere):
- Settings > Properties
- Filter by object type (Contact, Company, Deal)
- Export: there's an export button that gives you a CSV of all property names, types, and options
This is essential for recreating your schema in a new CRM.
Exporting Reports and Dashboards#
Reports and dashboards are HubSpot-specific configurations that can't be exported. Document them:
- Screenshot each dashboard
- Note the filters, date ranges, and chart types
- Recreate in the destination CRM's reporting tools
Exporting Marketing Emails#
If you sent campaigns through HubSpot Marketing Hub:
- Marketing > Email
- Select emails to export
- Actions > Export — gives you a CSV of email performance data (send date, opens, clicks, bounces)
The actual email HTML templates require manual export (copy HTML from each email's settings).
Using the HubSpot API for Complete Exports#
For a truly complete export, especially for large databases, the HubSpot REST API is the most reliable path.
Key endpoints:
GET /crm/v3/objects/contacts— contacts with paginationGET /crm/v3/objects/companies— companiesGET /crm/v3/objects/deals— dealsGET /crm/v3/objects/tickets— ticketsGET /crm/v3/associations/{fromObjectType}/{toObjectType}/batch/read— associations
Use the Search API for filtered exports:
curl -X POST "https://api.hubapi.com/crm/v3/objects/contacts/search" \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"filterGroups": [], "limit": 100, "after": 0, "properties": ["email","firstname","lastname","company"]}'The HubSpot API documentation at developers.hubspot.com is comprehensive.
Exporting via DenchClaw (Automated)#
The fastest end-to-end option for moving to DenchClaw:
- Install DenchClaw (
npx denchclaw) - Say: "Import everything from my HubSpot into DenchClaw"
- The browser agent logs into HubSpot using your existing session, exports contacts, companies, deals, and notes, and imports them into your local DuckDB database automatically
This handles the export, field mapping, and import in a single command.
Verification Checklist#
After exporting, verify:
- Contact count matches HubSpot contact count
- Company count matches
- Deal count matches (all stages, including closed)
- Custom properties are all included
- Notes export has meaningful content (not just IDs)
- Email activity has timestamps
After the Export#
Store your exports: Keep the raw CSV exports in a folder with a date label. You'll reference them during the migration and may need them for compliance purposes later.
Don't cancel HubSpot immediately: Keep access for 30 days after migration. You'll need to check specific records you missed, verify activity data, and confirm that your new system has everything.
Review data retention requirements: In regulated industries, customer communication records may need to be retained for specific periods. Ensure your exports cover the required history.
Frequently Asked Questions#
Can I export all of HubSpot's data?#
Most of it. The main exceptions: workflow configurations, sequence configurations, and some dashboard settings are HubSpot-specific and must be documented manually rather than exported as portable files. All actual data (contacts, deals, activities, form submissions) can be exported.
How long does a HubSpot export take?#
Small databases (under 10,000 contacts): 5-15 minutes. Large databases (100,000+ contacts): up to 1-2 hours. HubSpot sends an email with the download link when ready.
Is there a limit on what I can export from HubSpot?#
HubSpot exports are limited by API rate limits if using the API (depends on your subscription tier). The standard data export tool handles large databases but may split them into multiple files for very large exports.
Will HubSpot let me export if I'm on a free plan?#
Yes. Data export is available on all plans, including the free CRM.
How do I export HubSpot data to Excel instead of CSV?#
In the export dialog, select "Excel" as the format instead of CSV. The Excel file is easier to open with proper column formatting on Windows, but CSV is more portable for importing to other systems.
Ready to try DenchClaw? Install in one command: npx denchclaw. Full setup guide →