All articles
HubSpotJul 2, 20264 min read

Your HubSpot data has relationships you cannot see in any report

Ask HubSpot a simple question: which contacts are attached to our open deals, and at which companies? Every record page shows its own little association cards, so the data clearly exists. Try to get it as one table and you will find there is no report, no export, no button.

The invisible half of your CRM

Records are only half of a CRM's data. The other half is the wiring between them: this contact works at that company, these three people are on this deal, that ticket belongs to this customer. In HubSpot, these links are called associations. They quietly power everything from the sidebar cards on a record to how deals roll up to companies.

The catch is that associations barely show up in reporting. You can see them one record at a time, and some cross-object reports use them behind the scenes. But there is no clean way to say "give me the full contact-to-deal map as a spreadsheet." Export contacts, you get contacts. Export deals, you get deals. The wiring between them stays in HubSpot.

When the wiring is the answer

Why there is no native report for this

Partly it is a data-shape problem. An association export is a many-to-many join, and HubSpot's report builder is built for counting objects, not listing pairs. Partly it is priorities. The association APIs exist and are well documented, so HubSpot's answer is basically "developers can build that." Which is true, and useless if you work in RevOps with a Tuesday deadline and no developer.

The one-sheet version

Our HubSpot association exporter is that developer work, done once, with a button on it. Pick a starting object (contacts, companies or deals). Pick which linked objects you want next to it. The tool walks HubSpot's associations API and produces a flat CSV: one row per link, with the key fields of both records on the row. Contact name and email next to deal name, stage and amount. Company next to every contact in it.

From that one sheet, a pivot table answers the questions above in minutes. Count contacts per deal and filter to 1 for your single-threaded list. Filter blanks for orphans. Keep the whole file as the map your migration will need one day. Read-only token, in-memory credentials, free preview. Same as every button we ship.

Records are nouns. Associations are the sentences. Most exports hand you a dictionary and keep the book.

Worked example: the single-threaded deal audit

Because it is the most valuable use, here is the full recipe. Export deal-to-contact associations for open deals. In the sheet, pivot on deal name and count contact rows per deal. Filter the count to 1. That list, sorted by deal amount from biggest to smallest, is your risk register. Every deal on it depends on exactly one human relationship, and the top of the list is where one job change costs you the most money. Bring the list to your pipeline review and watch it become the agenda. Total time, from opening the tool to the finished list: under ten minutes.

Association labels matter too

HubSpot associations can carry labels like decision maker, billing contact, or champion. If your team uses them, they become some of the most useful columns in the export. "Which open deals have no contact labelled decision maker" is a question worth asking every month. If your team does not use labels yet, the export will show you that too, and it is a good reason to start. Unlabelled associations tell you who is connected. Labelled ones tell you who matters.

For migrations: export the map before you move

If a migration is anywhere on your horizon, run a full association export across all object pairs and file it away, even before you pick a destination. Import tools on every platform can rebuild associations from a mapping file, but only if that file exists. The old platform is the only place it can come from. Records without their associations are a phone book. The map is what makes them a CRM.

Skip the workaroundThe fix described above is live: try HubSpot association exporter with a free preview.
Open the tool →

Frequently asked questions

Can I export associations from HubSpot natively?

Not as a flat report. Associations appear on individual record pages and inside some cross-object reports, but HubSpot has no built-in export that lists record-to-record links as rows. The associations API exposes them, which is what association export tools use.

What does an association export CSV look like?

One row per link: for a contact-to-deal export, each row carries the contact's key fields next to the deal's name, stage and amount. A pivot table on that sheet answers questions like contacts per deal or deals per company instantly.

How do I find single-threaded deals in HubSpot?

Export deal-to-contact associations, count contacts per deal, and filter to deals with exactly one. Those deals depend on a single relationship and are the highest-risk items in your pipeline.

Do associations survive a CRM migration?

Only if you export and re-import them explicitly. Standard object exports move records but not links, which is why migrated CRMs often have contacts, companies and deals that no longer reference each other.

The Missing Buttons is independent and not affiliated with any CRM vendor. Tool behavior described here reflects your own account permissions: our tools read through your credentials and can only access data you can already see.

Keep reading