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

# HubSpot

> Publish articles to your HubSpot CMS blog with a private app token.

The HubSpot connector publishes posts to a blog in HubSpot Content Hub through the CMS Blog
Posts API, with meta description, featured image and structured data filled in.

## Before you start

* A HubSpot account with **Content Hub** (any tier that includes a blog) and at least one blog.
* **Super Admin** permission in that account — HubSpot only lets Super Admins create private apps.

## Step 1 — Create a private app

1. In HubSpot, click the **settings** icon, then **Integrations → Private Apps**
   (labelled **Legacy Apps** in newer accounts — choose **Create legacy app → Private**).
2. On **Basic info**, name it **SeoSorted**.
3. On **Scopes**, search for and tick **`content`**.
4. Click **Create app**, confirm, then open the **Auth** tab and **Show token → Copy**.
   It starts with `pat-`.

## Step 2 — Connect

**Project Settings → Integrations → HubSpot → Connect** and paste the token.

We read your blogs with the token before saving. If you have more than one blog, we pick the one
whose address matches your project's website (or the first). To change it, open the card's menu →
**Configure** and choose another blog.

## What we write

| SeoSorted | HubSpot |
| - | - |
| Title | Post title (`name`) and page title |
| Slug | Post URL slug |
| Body | Post body |
| Meta description | Meta description and post summary |
| Meta title | HTML title |
| Featured image | Featured image + alt text |
| Article & FAQ schema | Post head HTML (`application/ld+json`) |
| — | Author: the blog's first author, or a new one named after your workspace |

## Republishing, unpublishing and deleting

* **Republish** updates the same post in place.
* **Unpublish** sets the post back to **Draft**.
* **Deleting** the article in SeoSorted deletes the HubSpot post.

## Troubleshooting

<AccordionGroup>
  <Accordion title="“That private app is missing the content scope”">
    Edit the private app → **Scopes**, tick `content`, save, and paste the (unchanged) token again.
  </Accordion>

  <Accordion title="“No blog found in this HubSpot account”">
    Create a blog under **Content → Blog**, publish one post so it exists, then connect again.
  </Accordion>

  <Accordion title="Styling looks different from my other posts">
    HubSpot applies your blog template's CSS to the body. If headings or tables look off, adjust
    the blog post template's styles in the HubSpot design manager.
  </Accordion>
</AccordionGroup>


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