Blog — FileFetch

Don't Forget the Files: HubSpot Migration's Blind Spot

Don't Forget the Files: HubSpot Migration's Blind Spot — a FileFetch guide from Market Disrupt

Standard HubSpot exports do not include your files. Contacts, companies, deals, tickets — the records come out clean. The signed contracts, receipts, and PDFs attached to them stay behind. If you're migrating off HubSpot, consolidating portals, or switching CRMs, archiving files is a separate step, and it belongs on the migration plan before cutover day.

Every migration checklist covers objects, properties, pipelines, and automations. Almost none of them mention attachments — which is exactly why this post exists. The files gap is the migration mistake teams discover latest, when it's most expensive to fix.

Why don't standard HubSpot exports include attachments?

Because exports are built for property data, and files aren't property data. A record export gives you a spreadsheet of field values. The files themselves live elsewhere — some in File-type properties, most as attachments connected to the notes and engagements associated with each record — and they sit behind authenticated URLs tied to your portal.

That architecture has two consequences for migrations. First, no CSV will ever contain your files. Second, even where a URL appears in exported data, it's a door that only opens while you still have the portal — not a copy of what's behind it. Once the subscription ends, the door closes.

When do teams usually discover the gap?

Too late — and the pattern is depressingly consistent. It usually goes something like this: the migration wraps, the new CRM looks great, the team celebrates. A few weeks later someone in legal asks for the signed contract on an account, someone clicks where the attachment used to be, and there's nothing there. Now the scramble starts: is the old portal still active? Who still has admin access? How many other files are missing? Nobody knows, because nobody counted.

Best case, the old portal is still running and you do the archive under pressure instead of on schedule. Worst case, the subscription lapsed, seats were cut to save money, and you're negotiating with your former vendor for access to your own documents. Every version of this story is avoidable with one planned step.

How do you archive files per object before cutover?

Object by object, filter set by filter set — treat it like a checklist, not a single heroic export. With FileFetch, our HubSpot Marketplace app, each pass is: pick the object, choose both file sources (File-type properties and attachments resolved through associated notes), filter, download one organized zip.

  1. List every object that carries files. Deals and tickets almost always do; contacts and companies often do; check your custom objects too — FileFetch reads your portal's live schema, so custom objects appear alongside the standard ones.
  2. Segment large objects into filter sets. HubSpot's search API caps each query at 10,000 records, so slice big objects by create-date range or pipeline — two or three passes instead of one.
  3. Pull both file sources every time. The contract might be in a File property; the countersigned version is probably on a note.
  4. Run the pulls before cutover week. Files change right up until the end — do a full archive early, then a final filtered pass for records modified since.

How do you verify you actually got everything?

Count, retry, and spot-check — verification is the difference between an archive and a hopeful folder. FileFetch shows a real-time progress bar with per-file success and failure counts as each pull runs, so you know immediately whether all files landed. Failures are visible, not silent; retry them or note them.

Then spot-check. Pick a handful of high-stakes records — biggest deals, oldest accounts — and confirm their files are in the zip. Because filenames are record-based, matching a file back to its source record takes seconds. Record the final counts per object in your migration doc. "Deals: 1,847 files, 0 failures" is the sentence that lets you decommission the old portal without a knot in your stomach.

What happens to the archive after the migration?

It becomes your system-of-record snapshot — the frozen, complete picture of every document as it existed at cutover. Store the zips with your migration documentation, apply your normal retention and access rules, and you've got a defensible answer to any future "where's the file from the old system?" question, whether it arrives in a month or in three years.

One honest caveat: FileFetch gets files out in bulk; it doesn't load them into your new CRM. If the destination system needs every attachment re-associated to its migrated record automatically, that's an API integration project for a developer — worth it at scale, overkill below it. Many teams simply keep the zip as the archive and re-attach the handful of documents that come up in daily work.

Planning a migration in either direction? File archiving is one line on a much longer checklist we run constantly as a HubSpot Platinum Solutions Partner. Talk to us before cutover day — it's cheaper than after.

Frequently Asked Questions

Does HubSpot export include attachments?

No. HubSpot's standard record exports contain property data — names, values, dates — but not the actual files. Attachments live on the notes and engagements associated with records, behind authenticated URLs tied to your portal. Archiving files before a migration requires a separate step, using a bulk download tool or a custom API script.

Can I access my HubSpot files after canceling my subscription?

You shouldn't count on it. File URLs are tied to your active portal, and once the subscription ends your access does too. Recovering documents after cancellation means going through the vendor, with no guarantees. Archive every file you may need — contracts, receipts, signed documents — while you still control the portal.

How do I migrate HubSpot attachments to a new CRM?

In two stages. First, bulk download all files per object before cutover — a tool like FileFetch pulls File-type properties and note attachments into organized zips with record-based filenames. Then either keep that archive as your system-of-record snapshot, or have a developer build an API pipeline that uploads and re-associates files in the new CRM.

Need your HubSpot files out, today?

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

Contact us
← All posts