To bulk download attachments in HubSpot, you have to solve a structural problem first: attachments aren't stored on records. They're connected to the notes and activities associated with records, and HubSpot has no export button that follows that chain. FileFetch, our Marketplace app, walks it for you: pick an object, choose Attachments associated to the record, filter, scan, download — one zip, every attachment, named by record.
Here's the exact flow, for a single record and for thousands at once, plus what lands in the zip and the limits to know before a big pull.
Where do HubSpot attachments actually live?
When someone drags a PDF onto a deal, HubSpot doesn't attach it to the deal. It creates an engagement — usually a note — associated with the deal, and attaches the file to that. The same goes for files logged against calls, meetings, and tasks. The record only reaches its attachments through a chain: record, to associated engagement, to attachment, to file.
That's why there's no attachments folder to open. Getting one deal's files manually means scrolling its timeline and opening activities one by one; getting five hundred deals' files means automating the chain-walk. FileFetch scans attachments across notes, calls, meetings, and tasks for every record that matches your filters. (Files stored directly on records in file-type properties are a separate source — covered in the file properties guide — and a complete export is simply one run of each.)

Step by step: bulk download attachments across records
For the "every attachment on every closed deal" class of request:
- Install FileFetch from the HubSpot App Marketplace — standard OAuth, read-only scopes, and a Free plan (100 files a month) to test with. Full install details are in the setup guide.
- Open FileFetch from the FileFetch tab on any record, or via Settings → Integrations → Connected apps → FileFetch, and choose Download from all records.
- Pick the object — contacts, companies, deals, tickets, or a custom object.
- Choose the source: "Attachments associated to the record." FileFetch will resolve each matching record's notes, calls, meetings, and tasks and collect their attachments.
- Filter the records like a HubSpot list — any property, any operator. "Deals closed in 2026, enterprise pipeline" is one filter set.
- Scan. You see the exact record and file count before anything downloads — adjust filters freely, nothing counts against your allowance until you commit.
- Download. One zip, files named by the record they belong to, with a log of everything fetched, skipped, or failed. Runs in the thousands split into zip parts automatically, each with its own save button.
Need those files out today? Get FileFetch →
Just need one record's attachments?
Skip the filters entirely. Once an admin adds the FileFetch card to your record layout (a one-time step under Settings → Objects → Contacts → Record customization, repeated per object), every record carries a FileFetch tab. Open the record, open the tab, click Open FileFetch, choose attachments as the source, scan, download. That record's files — and only that record's files — arrive as a zip in seconds, which beats scrolling a two-year timeline opening notes one at a time.
What you end up with
The zip is organized for the person who has to use it afterwards: each attachment named by its record, duplicates handled, and a per-file log that doubles as your proof of completeness. If finance asked for "every attachment on Q2 closed-won deals," the log is the line-by-line answer to "did we get them all?"
Every run is also written to a server-side audit trail in the app's Insights tab — files downloaded, by which user, from which object, when — so bulk download capability doesn't become an unmonitored back door. On the Pro plan, admins can additionally restrict which users can run FileFetch at all.
Limits, pricing, and the honest fine print
HubSpot's search API caps any filter set at 10,000 records — larger portals just split the pull by date range or pipeline and run it twice. Monthly allowances are 100 files on Free, 5,000 on Starter, 40,000 on Pro; if a run would exceed yours, FileFetch shows the usage and cost up front and only bills overage after you approve it in the app. Current pricing is always on the FileFetch page.
Security review answers, since IT will ask: OAuth 2.0 through HubSpot's own consent screen, read-only scopes, files flow from HubSpot's signed URLs directly to your browser without touching our servers, and a portal's data is purged within 24 hours of uninstall. We're Market Disrupt, a HubSpot Platinum Solutions Partner — we built this because clients kept needing it. Comparing other routes first? See the three methods compared, or ask us directly.
Frequently Asked Questions
How do I download all attachments from HubSpot at once?
Use a tool that resolves the record-to-engagement chain for you. FileFetch scans attachments on the notes, calls, meetings, and tasks associated with every record matching your filters, then downloads them into one zip named by record — with a scan step first so you see the exact file count before committing.
Why can't I export attachments with HubSpot's standard export?
Standard exports cover property data, and attachments aren't properties — they're files connected to the engagements associated with a record. No export template includes them, so getting them in bulk requires either API work or a Marketplace app that walks the associations for you.
Can I bulk download attachments from just one HubSpot record?
Yes. With the FileFetch card added to your record layout, any record gets a FileFetch tab: open it, choose attachments as the source, scan, and download that record's files as a zip. It's the same engine as the bulk flow, scoped to the record you're on.
