Back to The Times of Claw

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.

The Dench Team
The Dench Team
·9 min read
How to Export Your Data from HubSpot

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#

  1. Navigate to Contacts > Contacts
  2. Remove any active filters (you want ALL contacts)
  3. Click Actions > Export
  4. A dialog appears: select All properties (not just the default columns)
  5. Select CSV or Excel format
  6. Click Export
  7. 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:

  1. Marketing > Lists
  2. Find or create the list you want to export
  3. Click Actions > Export
  4. 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#

  1. Navigate to Contacts > Companies
  2. Remove filters
  3. Click Actions > Export
  4. Select all properties
  5. 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#

  1. Navigate to Sales > Deals
  2. Remove filters (show all deals, all stages including closed)
  3. Click Actions > Export
  4. Select all properties
  5. 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)#

  1. Navigate to Service > Tickets
  2. Click Actions > Export
  3. Select all properties
  4. Export as CSV

Exporting Custom Objects#

HubSpot custom objects (available on Enterprise plans) require individual exports:

  1. Navigate to the custom object's index page
  2. Click Actions > Export
  3. 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.

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:

  1. Install DenchClaw: npx denchclaw
  2. Say: "Export all notes and activity data from HubSpot"
  3. 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:

  1. Go to Automation > Sequences
  2. Open each sequence
  3. Document: name, steps, email content, timing, enrollment triggers
  4. 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:

  1. Go to Automation > Workflows
  2. Open each active workflow
  3. Document: enrollment triggers, conditions, actions, timing
  4. 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#

  1. Go to Marketing > Email > Email Templates (or Sales > Templates for sales email templates)
  2. Open each template
  3. Copy the HTML source (view source if needed) or save the body text
  4. 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:

  1. Marketing > Lead Capture > Forms
  2. 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#

  1. Marketing > Lists
  2. Open a list
  3. 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):

  1. Settings > Properties
  2. Filter by object type (Contact, Company, Deal)
  3. 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:

  1. Screenshot each dashboard
  2. Note the filters, date ranges, and chart types
  3. Recreate in the destination CRM's reporting tools

Exporting Marketing Emails#

If you sent campaigns through HubSpot Marketing Hub:

  1. Marketing > Email
  2. Select emails to export
  3. 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 pagination
  • GET /crm/v3/objects/companies — companies
  • GET /crm/v3/objects/deals — deals
  • GET /crm/v3/objects/tickets — tickets
  • GET /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:

  1. Install DenchClaw (npx denchclaw)
  2. Say: "Import everything from my HubSpot into DenchClaw"
  3. 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 →

The Dench Team

Written by

The Dench Team

The team behind Dench.com, the future of AI CRM software.

Continue reading

DENCH

© 2026 DenchHQ · San Francisco, CA