Docs / System guides / HubSpot

Read HubSpot into Maplith

HubSpot holds the company's contacts, companies, deals and sales activities, plus the products and line items on each deal.

CRM · Also known as HubSpot CRM, HubSpot Sales Hub, HubSpot Marketing Hub, HubSpot Service Hub · Checked 2026-10-20

Best path

Recommended: your agent fetches it. HubSpot has its own connectors in both Claude and ChatGPT, and a small company adds only hundreds of deals and contacts a month, so your agent can read what the map needs with access it already has. A full contact list in the tens of thousands is cheaper as an export file.

Try the paths in this order:

  1. Your agent fetches it, with the access you already gave it. Connectors a vendor or client page confirms: HubSpot connector in Claude; HubSpot app in ChatGPT. The agent uses the HubSpot connector to read the fields and recent records of contacts, companies, deals and line items, and how they are associated. It only reads; it should not use the connector's create or update tools.
  2. Maplith reads an MCP server you already run. HubSpot runs HubSpot remote MCP server. Its address is https://mcp.hubspot.com. Documentation: developers.hubspot.com. There is no separate read-only token. A HubSpot admin creates an MCP connector under Development, MCP Connectors, and each person then signs in to HubSpot and approves access. The server sees only what that HubSpot user may see, so connect with a user whose HubSpot permissions are limited. It has both read and write tools (many write tools ask for confirmation first). Products, line items, invoices and other revenue objects are marked beta, and activities are blocked when Sensitive Data is turned on. HubSpot's separate developer MCP server runs in the HubSpot CLI and is for building apps, not for reading CRM data. Maplith cannot read this server itself, because it offers tools or a personal sign-in to an agent. Connect it to your agent instead, as the first path.
  3. Export files, the fallback that always works. See the export steps below.

Datasets that make a good map

DatasetOne row isKey columnsJoins to
ContactsOne person the company sells to or talks to.record id, email (Maplith tries to mask it), associated company id, contact owner, lifecycle stage, create dateWebshop customers and helpdesk tickets by email; accounting customers through the associated company.
CompaniesOne customer or prospect organisation.record id, company domain name, company name, VAT or CVR number (only if the company added that property), company ownerAccounting customers by VAT or CVR number or by name; contacts and email by company domain.
DealsOne sales opportunity in a pipeline.record id, pipeline, deal stage, amount, close date, associated company id, associated contact id, deal ownerCompanies and contacts by associated record id; invoices in the accounting system or Stripe by a deal or order reference, if the company records one.
Line items and productsOne product or service line on a deal, linked to the product library.line item id, associated deal id, product id, SKU, quantity, unit priceDeals by deal id; webshop and accounting products by SKU.
ActivitiesOne logged call, email, meeting, note or task.activity id, activity type, activity date, associated contact id, associated company id, associated deal id, ownerContacts, companies and deals by associated record id; shows how fast leads and deals are followed up.
Contact-company associationsOne contact-to-company association, projected as fromObjectId and toObjectId from the association response.fromObjectId, toObjectIdContacts and companies by their object ids.

Columns are named, never their values. Maplith tries to mask personal data such as email addresses, but that is best effort: you decide what goes in.

Joins and identifiers the vendor documents

HubSpot’s documentation states these keys. Maplith checks them against the exports you share: a stated join is not a confirmed one.

FromToHow manySource
Contact-company associations, contact_idContacts, idmany to onedevelopers.hubspot.com
Contact-company associations, company_idCompanies, idmany to onedevelopers.hubspot.com

Structure files

HubSpot can describe its structure without any rows. Share structure only: no examples, rows or credentials.

  • HubSpot field definitions (holds structure only): Ask your agent for the property names, field types and association definitions for the shared objects. Remove record values, defaults and examples; keep only the structure projection. Source: developers.hubspot.com.

The access to give

Who usually has the rights: Usually the HubSpot Super Admin, often the owner or the sales lead. Turning on the connector in Claude or ChatGPT needs a Super Admin or a user with App Marketplace permissions.

Choose the narrowest access that covers the data:

  • crm.objects.contacts.read
  • crm.objects.companies.read
  • crm.objects.deals.read
  • crm.objects.line_items.read
  • crm.objects.owners.read
  • crm.objects.quotes.read
  • crm.objects.invoices.read
  • crm.schemas.contacts.read
  • crm.schemas.companies.read
  • crm.schemas.deals.read

Where to click:

  1. In HubSpot, go to Development
  2. In the left sidebar, click Legacy apps
  3. Click Create legacy app, then choose Private
  4. On the Basic Info tab, give the app a name
  5. Open the Scopes tab and click Add new scope
  6. Tick only the read scopes listed here, then click Update
  7. Click Create app, then Continue creating
  8. Keep the app's access token in the tool that will read HubSpot for you; never paste it into a chat, and Maplith never asks for it

A key or token made here stays in the tool that reads the system, never in a chat. Maplith asks for one only under Data sources › Systems in the app.

Export steps

Format: CSV Date range: All records for contacts and companies; deals from the last 12 months

  1. Go to CRM, then Contacts (or Companies, or Deals)
  2. Open the All contacts view (or All companies, All deals) to include every record
  3. Click Export at the top right of the table (for deals in board view: Board options, then Export view)
  4. Choose CSV as the file format; click Customize to pick all properties and to include associations
  5. Click Export and open the download link HubSpot sends by email
  6. Activities such as calls and notes are not in record exports; ask the agent or use activity reports for those

How much data

About 100–2,000 new contacts; 20–200 new deals a month (an estimate). Estimate for a small company, not a measured figure: a few sales people, with contacts growing faster than deals because of forms and email.

An agent that reads rows through a chat reads every one of them, about one token per four characters. Above a few thousand rows a dataset, or for a daily refresh, an MCP server or an export is the better path.

Always

  • Read-only, and never a credential sent to Maplith through a chat.
  • The same recent period, a few months, from every system.
  • You decide what goes in.

Sources

Written from public documentation, last checked 2026-10-20:

← All system guides · Markdown version