Blog — FileFetch

How to Bulk Download Files From HubSpot (3 Methods Compared)

How to Bulk Download Files From HubSpot (3 Methods Compared) — a FileFetch guide from Market Disrupt

There are three ways to bulk download files from HubSpot: click through records manually, write a script against HubSpot's APIs, or use a purpose-built app like FileFetch that filters, fetches, and zips everything in one pass. Each method is the right answer for somebody — the trick is knowing which somebody you are.

This usually starts with a sentence like "can you get all the files out of HubSpot?" — from legal, from finance, from a migration project lead. The records export fine. The files attached to them are a different story, and HubSpot gives you no export button for them. Here's how the three real options stack up.

Why doesn't HubSpot have a bulk file export button?

Because files in HubSpot aren't stored on records — they're scattered across two different homes, and neither has a "download all" option. Some files live in File-type properties (a field on the record that holds an uploaded document). Most live as attachments, which are actually connected to the notes and engagements associated with a record, not the record itself.

That second one is the killer. To get a deal's attachments, you have to walk a chain: deal, to associated notes, to the attachments on those notes, to the underlying files. HubSpot's standard exports hand you property values in a spreadsheet — the files stay behind. Whatever method you pick has to solve that chain.

What are your three options?

Method 1: Manual download

Open a record, open each note, click each attachment, save it, rename it so you can tell it apart from the other twelve files called contract.pdf. Repeat.

Honest fit: perfectly fine for ten records. You'll be done before a script finishes authenticating. At two hundred records with a few files each, you're looking at hundreds of open-click-save-rename cycles — soul-crushing, error-prone, and nearly impossible to prove complete. If anyone asks "did we get everything?", your answer is a shrug.

Method 2: An API script

A developer can build this: authenticate a private app, search records, resolve associations to notes, pull attachment IDs, request signed file URLs, download, handle pagination, respect rate limits, retry failures, and name everything sensibly.

Honest fit: the right answer if you have a developer, a recurring need, and custom requirements — like pushing files directly into another system, transforming them along the way, or running on a schedule. It's real engineering work with real maintenance, not a lunch-break script. For a one-off pull, it's usually overkill.

Method 3: FileFetch

Our HubSpot Marketplace app, built for exactly this job. You filter the records you want, click download, and get one organized zip. No code, no developer, no CSV surgery. It handles both file sources — File-type properties and attachments resolved through associated notes — so the chain-walking happens for you.

Honest fit: everyone between the ten-record shrug and the full engineering project. Which is most people who get handed this task.

How does the FileFetch flow actually work?

The whole flow is five steps, launched from a card right on your CRM records:

  1. Install and authorize. OAuth 2.0 with read-only scopes — FileFetch can't modify anything in your portal.
  2. Pick your object. Deals, contacts, tickets, companies, or any custom object — FileFetch reads your portal's live schema, so custom objects just show up.
  3. Choose the file source. File-type properties, record attachments via associated notes, or both.
  4. Filter. Date ranges, owner, pipeline stage, or any property on the object — combinable, so "deals closed in Q2, owned by the enterprise team" is one filter set.
  5. Download. A real-time progress bar shows per-file success and failure counts, and you end up with one zip of de-duplicated files named by record.

Large record sets are handled with automatic pagination and parallel downloads, up to HubSpot's 10,000-record search limit per filter set. Bigger than that? Split the pull into two filter sets — say, by quarter — and run both.

Which method should you actually choose?

Choose based on volume and repetition, not ambition:

  • A handful of records, one time: do it manually and move on with your life.
  • A recurring, automated pipeline with custom logic: hire or borrow a developer and script it properly.
  • Everything in between — audits, migrations, backups, "legal needs every contract on closed deals": FileFetch exists because this middle is where most teams live.

We built FileFetch at Market Disrupt because as a HubSpot Platinum Solutions Partner, we kept hitting this wall on client projects. Files download through HubSpot's own signed URLs, nothing is ever stored on our servers, and uninstalling deletes your credentials. If your situation is weirder than the three methods above — tell us about it. We've probably seen it.

Frequently Asked Questions

Can you export all files from HubSpot at once?

Not through HubSpot's built-in exports — standard exports include record and property data but not the actual files. To bulk download files you need to either save them manually from each record, build a script against HubSpot's APIs, or use a Marketplace app like FileFetch that filters records and downloads every associated file into one zip.

Where are attachments stored in HubSpot?

HubSpot attachments aren't stored on the record itself — they're connected to the notes and engagements associated with that record. That's why bulk downloading is hard: getting a deal's attachments means resolving the deal's associated notes first, then pulling the files from those notes. Some files also live in File-type properties directly on records.

Is there a limit to how many files you can bulk download from HubSpot?

The practical ceiling is HubSpot's search API limit of 10,000 records per filter set. Tools like FileFetch paginate and parallelize downloads automatically within that limit; for larger portals, you split the export into multiple filter sets — by date range, pipeline, or owner — and run each one separately.

Need your HubSpot files out, today?

FileFetch: filter, click, zip. Read-only and OAuth-secured.

Contact us
← All posts