> ## Documentation Index
> Fetch the complete documentation index at: https://docs.consile.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect HubSpot CMS

> Log in with HubSpot and approve the Consile HubSpot CMS app. The access is renewed automatically and can be revoked. Read + guardrailed write.

*[Læs siden på dansk](https://docs.consile.ai/connect/forbind-hubspot.md)*

You connect HubSpot CMS by logging in with HubSpot and approving the Consile
HubSpot CMS app for your HubSpot portal. The result is an access token that
Consile stores encrypted per customer. Your AI never sees the token itself.

The connector has its own URL, `mcp.consile.ai/hubspot/mcp`, with only its own
tools. The price is 299 DKK/month excl. VAT for one user and one HubSpot portal.
VAT is calculated at payment. Each extra user and each extra HubSpot portal costs
149.50 DKK/month excl. VAT. See [Pricing](https://docs.consile.ai/en/portal/pricing.md). HubSpot CMS is
also included in [the Consile Studio membership](https://docs.consile.ai/en/portal/membership.md) and
[the free edition](https://docs.consile.ai/en/portal/free-edition.md). Colleagues get access when an
administrator assigns them HubSpot CMS under **Team** in the portal. Each user then
adds the connector in their own AI and logs in with their own Consile login. See
[Team](https://docs.consile.ai/en/portal/team.md).

> [!NOTE]
>
> **Multiple HubSpot portals.** You can connect several HubSpot portals under the
> same subscription. The Consile portal calls each connection an agreement, so
> each HubSpot portal is its own agreement on the **Connections** card. Each
> agreement is approved separately, and the access follows the one HubSpot portal
> you choose at login. The first one is included in the base price. An
> administrator clicks **Add agreement (149.50 kr/mo.)** on the **Connections**
> card on the HubSpot CMS page, and then you connect the new agreement with
> **Connect**. The second agreement gets the URL `mcp.consile.ai/hubspot-2/mcp`,
> which you add in your AI as a separate connector. Under
> [the Consile Studio membership](https://docs.consile.ai/en/portal/membership.md#one-more-agreement-in-a-system)
> there is no button. Write to
> [support@consile.dk](mailto:support@consile.dk) instead. See
> [HubSpot CMS](https://docs.consile.ai/en/connectors/hubspot.md) for what happens when an agreement is
> removed.

> [!NOTE]
>
> An administrator must have bought HubSpot CMS in the
> [portal](https://app.consile.ai), and you must have connected your AI
> ([Claude](https://docs.consile.ai/en/connect/connect-claude.md) or [ChatGPT](https://docs.consile.ai/en/connect/connect-chatgpt.md)).
> You must be able to log in with the HubSpot user that has access to the portal
> you want to connect. Anyone on the team can connect an agreement that is not
> connected yet. Only an administrator can reconnect it or disconnect it.

> [!NOTE]
>
> Unlike our pure data connectors, HubSpot CMS can also write: your AI can both
> read your content and, behind clear safety barriers, create and edit drafts of
> pages and blog posts as well as rows in HubDB. See
> [Actions & guardrails](https://docs.consile.ai/en/essentials/actions-and-guardrails.md) before you start
> using the write functions.

## Requirements for your HubSpot portal

The portal you connect must be on CMS Hub / Content Hub or Marketing Hub
Professional/Enterprise. The permissions the connector asks for (`content`,
`hubdb`, `business-intelligence`) can only be granted on those tiers. If HubSpot
does not grant all of them, the connection is not completed, so check your
subscription before you start.

## How to connect

**1. Open HubSpot CMS in the portal**

Open HubSpot CMS in the portal. Click **Connect now** at the top of the page,
or **Connect** next to the agreement on the **Connections** card. If you have
not yet accepted Consile's current terms, you do that first with **Accept and
continue**. The dialog shows the permissions the connector uses. Click
**Authorise access**. You are sent to HubSpot's own login and approval page.

**2. Log in with HubSpot and choose a portal**

Log in with the HubSpot user that manages the content. If you have access to
several portals (HubSpot accounts), choose the portal you want to connect. The
access follows the portal you approve.

**3. Approve the Consile HubSpot CMS app**

HubSpot shows what the Consile HubSpot CMS app is asking for access to.
Confirm to continue. You are then sent back to the portal automatically.

> [!TIP]
>
> Consile now has a token for your HubSpot portal. The agreement shows as
> **Connected** in the portal, and your AI can read your content and edit
> drafts under guardrails.

> [!WARNING]
>
> Always start the connection from the Consile portal (or from a link your AI
> gives you via `connect_account`). Consile cannot link an approval that is
> started somewhere else to your account, and the connection fails.

## What exactly am I approving?

In one approval step, Consile asks for the permissions the connector uses for CMS
content and traffic figures:

| Permission | What it is used for |
| - | - |
| `content` | Reading and editing pages (website and landing pages) and the blog (posts, tags, authors) |
| `hubdb` | Reading and editing HubDB tables and their rows |
| `business-intelligence` | Reading traffic and page view analytics (read-only) |
| `oauth` | HubSpot's basic OAuth permission, which HubSpot adds to all app approvals. On its own, it gives no access to your content |

`content` is a combined read and write permission: HubSpot has no pure read
variant for pages and the blog. What your AI can actually do is therefore limited
by the tools the connector exposes, and every write action is guardrailed (see
below).

> **Read + edit behind guardrails**
>
> The connector can read your CMS content and edit it as drafts. Publishing to
> the live website and discarding a HubDB draft require your explicit
> confirmation; otherwise you only get a preview.

> **Access per portal**
>
> The approval applies to the one HubSpot portal you choose at login.

> **Encrypted per customer**
>
> The token is stored encrypted with a key that applies only to your own
> account, and is never logged.

> **Your AI never sees it**
>
> Your AI is never given the token itself, only answers to your questions.

## What your AI can read

* **Pages:** website and landing pages, their drafts and earlier revisions.
* **Blog:** posts (live and draft), tags and authors.
* **HubDB:** tables, their column schema and rows in the published table, plus
  export to CSV.
* **Analytics:** read-only traffic and page view figures over a period,
  optionally broken down by source, geography or UTM campaign (requires Marketing
  Hub Professional/Enterprise).

Your AI calls the tools as `hubspot__<tool>` (for example `hubspot__list_pages`),
and on an extra agreement as `hubspot-2__<tool>` and so on.

## Write functions and guardrails

HubSpot CMS has 23 tools: 14 for reading and 9 for editing pages, blog posts and
HubDB. The safety is built into the connector:

* **Drafts require no confirmation.** Creating or editing a page, a blog post or
  a HubDB row happens in a draft that does not affect the live website and can be
  changed again. New content is always created as `DRAFT`. HubDB rows sit in the
  table's draft and are invisible on live pages until the table is published.
* **Publishing requires confirmation.** Publishing a page (`publish_page`), a
  blog post (`publish_blog_post`) or a HubDB table (`publish_hubdb_table`) to the
  public website requires an explicit `confirm: true`. The same applies to
  `reset_hubdb_draft`, which discards a table's unpublished draft. Without
  `confirm`, the tool only returns a preview of what it *would* do, and calls no
  HubSpot API.
* **Limited write surface.** For pages, the connector can only change the name,
  slug, SEO title and meta description, not the page content itself.
  `publish_page` only works on a page that is already published; you publish a
  brand-new page the first time in HubSpot. HubDB writing is limited to rows in
  existing tables. The connector does not delete or archive pages, posts or rows.

The barriers are built-in default settings in the connector, not an absolute
guarantee from the platform. Read the whole model in
[Actions & guardrails](https://docs.consile.ai/en/essentials/actions-and-guardrails.md).

## The token is renewed automatically

Consile renews the access to HubSpot on its own. You do not have to do anything
to keep the connection alive.

> [!WARNING]
>
> If you revoke the access in HubSpot, or uninstall the Consile HubSpot CMS app,
> the connection stops working, and the connector's tools answer with a message
> that HubSpot must be reconnected. Only an administrator can reconnect. If the
> agreement says **Access revoked**, click **Reconnect**. Otherwise: disconnect as
> described below, and then click **Connect** next to the agreement. You can also
> ask your AI for a new connection link (the `connect_account` tool) in the
> connector that belongs to the agreement (for example `hubspot-2`), and approve
> again at HubSpot.

## Revoke access

You can remove the access again at any time:

* **In the portal:** an administrator clicks the menu (the three dots) next to the
  agreement on the **Connections** card and confirms with **Disconnect**. The
  stored token is then deleted at Consile right away. The subscription continues.
  If you have several agreements, an administrator can also remove an agreement
  entirely with **Remove the agreement**, which also stops the payment for it.
* **At HubSpot:** uninstall the **Consile HubSpot CMS** app in your HubSpot portal
  under **Settings → Integrations → Connected Apps**. This revokes the access at
  HubSpot. Disconnecting in Consile does not uninstall the app at HubSpot, so do
  both if you want the access completely gone. If you also use HubSpot Marketing
  Email, that is a separate app (**Consile HubSpot Marketing Email**), which is
  not affected.

More about data processing in [Security & data](https://docs.consile.ai/en/essentials/security-and-data.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.