> ## 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.

# HubSpot CMS

> Pages, Blog, HubDB og trafik-analytics fra dit HubSpot CMS: plus guardrailet oprettelse og redigering af indhold direkte fra din AI.

HubSpot CMS-connectoren giver din AI adgang til indholdet i din HubSpot-portal:
site- og landingssider, blog (indlæg, tags, forfattere), HubDB-tabeller og rækker
samt read-only trafik-analytics. Den kan derudover **oprette og redigere kladder
for dig** bag tydelige sikkerhedsspærrer. Du godkender Consile-appen via
HubSpot-login, og din AI ser aldrig selve adgangstokenet.

<Info>
  **Read + guardrailet skrivning.** Læsning er ren GET. Kladder og sikre
  redigeringer kører frit, men alt der publicerer til dit live-site eller kasserer
  en HubDB-kladde kræver din eksplicitte bekræftelse. Se
  [Handlinger & guardrails](/essentials/handlinger-og-guardrails).
</Info>

<CardGroup cols={3}>
  <Card title="Adgang" icon="shield-halved">
    Read + guardrailet skrivning
  </Card>

  <Card title="Godkendelse" icon="hubspot">
    HubSpot-login (OAuth)
  </Card>

  <Card title="Drift" icon="location-dot">
    Hostet i EU · Frankfurt
  </Card>
</CardGroup>

* **Pris:** 299 kr/md ekskl. moms (373,75 kr inkl. moms), opsig når som helst.
* **Endpoint:** `https://mcp.consile.ai/hubspot/mcp` (din egen, navngivne connector i Claude).

<Note>
  **Flere portaler.** Du kan forbinde flere HubSpot-portaler som hver sin separate
  connector-instans, så din AI holder dem adskilt. Skriv til [support@consile.dk](mailto:support@consile.dk) for
  at få en ekstra instans sat op.
</Note>

## Krav til din HubSpot-portal

Den forbundne HubSpot-portal skal være på CMS/Content Hub eller Marketing Hub
Professional/Enterprise. De scopes connectoren bruger (`content`, `hubdb` og
`business-intelligence`) findes kun på de planer. En portal under det kan ikke give
de nødvendige rettigheder, og godkendelsen fejler ved samtykke. Trafik-analytics
kræver derudover Marketing Hub Professional/Enterprise.

## Forudsætninger

<Steps>
  <Step title="Connector aktiveret">
    Aktivér din HubSpot CMS-connector i [portalen](https://app.consile.ai). Se
    [Tilkøb en connector](/portal/tilkoeb-connector).
  </Step>

  <Step title="Claude forbundet">
    Se [Forbind Claude](/connect/forbind-claude).
  </Step>

  <Step title="HubSpot godkendt">
    Log ind med HubSpot og godkend Consile-appen til den portal, du vil forbinde.
    Adgangen fornyes automatisk: access tokens lever ca. 30 minutter og fornyes
    automatisk i baggrunden via et `refresh_token`, så du ikke skal re-godkende løbende.
  </Step>
</Steps>

## Hvad kan den? (tools)

Du behøver ikke kende tool-navnene. Du spørger i naturligt sprog, og din AI vælger
og kalder selv det rigtige værktøj. Transporten navngiver hvert værktøj som
`hubspot__<tool>` (fx `hubspot__list_pages`); herunder vises de bare navne for
læsbarhed.

Connectoren stiller i alt **23 værktøjer** til rådighed: **14 read-only** (ren
læsning) og **9 skrive-værktøjer**, hvoraf de 4 publicerende eller kasserende er
guardrailede med bekræftelse.

### Læsning (14 read-only)

**Pages**

| Tool                  | Hvad den gør                                                                       |
| --------------------- | ---------------------------------------------------------------------------------- |
| `list_pages`          | Site- eller landingssider med paging; sæt `archived:true` for arkiverede           |
| `get_page`            | Én side i den live/publicerede version, hentet på id                               |
| `get_page_draft`      | Sidens upublicerede kladde-buffer, så du kan se ventende ændringer før publicering |
| `list_page_revisions` | Tidligere publicerede revisioner af en side (id, tidspunkt, forfatter)             |

**Blog**

| Tool                | Hvad den gør                                                                       |
| ------------------- | ---------------------------------------------------------------------------------- |
| `list_blog_posts`   | Blogindlæg med paging; sæt `archived:true` for arkiverede                          |
| `get_blog_post`     | Ét indlæg på id (body, meta, tags, publiceringsstatus); `draft:true` læser kladden |
| `list_blog_tags`    | Blog-tags med paging                                                               |
| `list_blog_authors` | Blog-forfattere med paging                                                         |

**HubDB**

| Tool                 | Hvad den gør                                                                              |
| -------------------- | ----------------------------------------------------------------------------------------- |
| `list_hubdb_tables`  | Portalens HubDB-tabeller: id, navn, label, kolonne-metadata, rækketal, publiceringsstatus |
| `get_hubdb_table`    | Én tabels fulde definition inkl. kolonne-skema (typer, options, foreign-id)               |
| `list_hubdb_rows`    | Rækker i en publiceret HubDB-tabel med paging, celleværdier pr. kolonne                   |
| `get_hubdb_row`      | Én publiceret række på `rowId`                                                            |
| `export_hubdb_table` | Eksportér en tabels data som CSV eller Excel; returnerer filindholdet                     |

**Analytics**

| Tool                    | Hvad den gør                                                                                                                     |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `get_traffic_analytics` | Trafik og sidevisninger over et datointerval, evt. opdelt på indhold, kilde, geo eller UTM (kræver Marketing Hub Pro/Enterprise) |

### Skrivning (9 værktøjer, heraf 4 guardrailede)

Disse ni værktøjer er de eneste, der ændrer noget i din HubSpot-portal. Kladder og
sikre redigeringer kører frit. De fire der publicerer til live-sitet eller kasserer
en kladde kræver `confirm: true`. Uden bekræftelse får du kun en forhåndsvisning
(dry-run), og der sendes intet til HubSpot.

| Tool                     | Hvad den gør                                                                                                                | Kræver bekræftelse? |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------------------- |
| `create_page_draft`      | Opretter en ny site- eller landingsside som kladde (tvinges til DRAFT, går aldrig live ved oprettelse)                      | Nej                 |
| `update_page_draft`      | Redigerer en sides kladde-buffer (navn, slug, SEO-titel/-beskrivelse); live-siden røres ikke                                | Nej                 |
| `publish_page`           | Skubber en sides kladde-ændringer LIVE til det offentlige website (opdaterer en allerede publiceret side)                   | Ja                  |
| `create_blog_post_draft` | Opretter et nyt blogindlæg som kladde (tvinges til DRAFT)                                                                   | Nej                 |
| `update_blog_post_draft` | Redigerer et indlægs kladde-buffer (titel, slug, body, SEO); live-indlægget røres ikke                                      | Nej                 |
| `publish_blog_post`      | Skubber et indlægs kladde-ændringer LIVE til det offentlige site                                                            | Ja                  |
| `upsert_hubdb_row_draft` | Opretter (uden `rowId`) eller opdaterer (med `rowId`) en række i en tabels kladde; usynlig på live-sider indtil publicering | Nej                 |
| `publish_hubdb_table`    | Publicerer en HubDB-tabels kladde (skema + rækker) til live-sider; nødvendig for at HubDB-skrivninger får effekt            | Ja                  |
| `reset_hubdb_draft`      | Kasserer alle upublicerede kladde-ændringer på en HubDB-tabel og ruller tilbage til den publicerede version                 | Ja                  |

<Card title="Bygger du selv ovenpå? Se API-referencen" icon="code" href="/developers/tools/hubspot">
  Fuld reference med argumenter, paging, filtre, guardrail-felter og returværdier
  for hver tool.
</Card>

## Sådan virker guardrailen

Skrive-værktøjerne har sikre standardindstillinger bygget ind i selve connectoren.
Det er connector-lokal logik, ikke en ubrydelig platform-garanti:

1. **Nyt indhold oprettes som kladde.** En ny side eller et nyt blogindlæg tvinges
   til `DRAFT` og går aldrig live ved oprettelse. HubDB-rækker landes i tabellens
   kladde og er usynlige på live-sider, indtil tabellen publiceres.
2. **Redigering rammer kun kladden.** At opdatere en side, et indlæg eller en
   HubDB-række ændrer kladde-bufferen, ikke det publicerede indhold.
3. **Publicering og kassering kræver `confirm: true`.** At skubbe en kladde live
   eller kassere en HubDB-kladde kræver, at din AI sender en eksplicit bekræftelse.
   Uden den får du en struktureret forhåndsvisning af præcis hvad der ville ske, og
   **intet** kald sendes til HubSpot.

I praksis betyder det, at din AI altid kan arbejde på en kladde uden risiko. Den
anden, bekræftede handling er den, der faktisk gør ændringen synlig på dit website.

<Tip>
  Læs hele bekræftelses-modellen, der gælder på tværs af alle skrive-connectors,
  under [Handlinger & guardrails](/essentials/handlinger-og-guardrails).
</Tip>

## Prøv at spørge

<AccordionGroup>
  <Accordion title="Pages" icon="file-lines">
    > *"List mine landingssider og vis hvilke der har en upubliceret kladde."*

    > *"Hvad er der ændret i kladden på siden 12345 sammenlignet med den live version?"*

    > *"Opret en kladde til en ny side 'Forår 2026' med SEO-titel og slug."*
  </Accordion>

  <Accordion title="Blog" icon="newspaper">
    > *"Vis de seneste 20 blogindlæg med deres publiceringsstatus."*

    > *"Ret SEO-beskrivelsen på indlæg 67890 i kladden."* (kladde, ingen bekræftelse)

    > *"Publicér indlæg 67890."* (du får en forhåndsvisning og skal bekræfte)
  </Accordion>

  <Accordion title="HubDB" icon="table">
    > *"List rækkerne i HubDB-tabellen 'lokationer' og vis kolonnerne."*

    > *"Tilføj en række til tabellen 'lokationer' med de her værdier."* (lander i kladden)

    > *"Publicér HubDB-tabellen 'lokationer'."* (du bliver bedt om at bekræfte)
  </Accordion>

  <Accordion title="Analytics" icon="chart-column">
    > *"Vis trafikken de seneste 30 dage opdelt på kilde."*

    > *"Hvilke sider havde flest sidevisninger i sidste måned?"*
  </Accordion>
</AccordionGroup>

<Tip>
  Nævn gerne et datointerval (fx "sidste 30 dage" eller konkrete datoer) i
  spørgsmålet om analytics, så bliver svaret præcist med det samme. Inspicér en
  HubDB-tabels skema med `get_hubdb_table`, før du skriver rækker, så celleværdierne
  matcher kolonnetyperne.
</Tip>

## Begrænsninger

* **Skrivning er guardrailet, ikke fri.** Connectoren kan oprette og redigere
  indhold, men publicering og kassering sker kun bag bekræftelses-spærren ovenfor.
  Guardrailen er sikre standardindstillinger i connectoren, ikke en absolut garanti.
  Se [Handlinger & guardrails](/essentials/handlinger-og-guardrails).
* **Ingen hård sletning.** Sider, indlæg og HubDB-rækker kan ikke slettes permanent
  i denne version. Du kan oprette og redigere kladder, publicere og kassere en
  HubDB-kladde.
* **Plan-krav.** Portalen skal være på CMS/Content Hub eller Marketing Hub
  Professional/Enterprise; ellers fejler godkendelsen ved samtykke. Trafik-analytics
  kræver Marketing Hub Professional/Enterprise.
* **Tilbagekald af adgang.** Der er ingen upstream-revoke i portalen i v1. Afinstallér
  Consile-appen i HubSpot for at trække adgangen tilbage. Afbryder du i
  Consile-portalen, slettes det gemte token med det samme.

Virker noget ikke som forventet? Se [Fejlfinding](/troubleshooting).
