Publishing Integrations

Connect WordPress, Ghost, Notion, Medium, Shopify, Webflow, HubSpot, Payload CMS, GitHub Pages, or a custom webhook to publish AI-generated content directly from AEO Goal.

Last updated August 31, 2026

AEO Goal can publish AI-generated blog posts directly to your CMS with one click. Supported platforms: WordPress, GitHub Pages, Ghost, Notion, Medium, Shopify, Webflow, HubSpot, Payload CMS, and any custom webhook.

Connecting a publishing platform

  1. Go to Settings → Integrations → Publishing.
  2. Find your platform’s card and click Connect (WordPress.com and GitHub Pages - opens an OAuth popup) or Configure (every other platform - opens a form asking for a site URL and an API key or token).
  3. For a Configure form, generate the requested credential in your platform’s own dashboard first - the steps are below, and the form itself links to the right page via “Where do I find this?” under each field.
  4. Click Save (or finish the OAuth popup). AEO Goal runs a connection test immediately; a failed test shows the reason inline instead of silently saving a broken connection.
  5. Once connected, the platform appears as a publish target in the Content Studio.

WordPress

Requirements: WordPress.com, or self-hosted WordPress with the REST API enabled (on by default in modern WordPress).

WordPress offers two ways to connect - pick the one that matches your hosting:

WordPress.com (OAuth):

  1. Click Use OAuth on the WordPress card.
  2. Authorize AEO Goal to access your WordPress.com account.

Self-hosted WordPress (Application Password):

  1. Click Configure on the WordPress card.
  2. Enter your site URL and WordPress username.
  3. Generate an Application Password in your WordPress admin: Users → Profile → Application Passwords (requires WordPress 5.6+). This is a separate credential from your login password.
  4. Paste it into the Application Password field and click Save.

When you publish from AEO Goal, posts are created as drafts in WordPress by default. Toggle Publish immediately in the Content Studio to publish live.

GitHub Pages

Requirements: A GitHub repository with GitHub Pages enabled, using Jekyll, Markdown/MDX, or a supported static site generator.

  1. Click Connect on the GitHub Pages card.
  2. Authorize AEO Goal to access your GitHub account.
  3. Pick the repository and branch from your real repos (AEO Goal lists them for you - the branch defaults to the repo’s default branch).
  4. Set the posts directory (typically _posts/) and content format. Use Detect from repo to have AEO Goal inspect an existing post and suggest the front-matter mapping automatically.
  5. Optionally enable Publish via pull request instead of committing straight to the branch.
  6. Click Connect.

Posts are committed as Markdown/MDX files to your specified directory and deploy automatically via your existing GitHub Pages build.

Ghost

Requirements: A Ghost site (Ghost(Pro) or self-hosted) with Admin API access.

  1. Click Configure on the Ghost card.
  2. Enter your Ghost site URL.
  3. In Ghost Admin, go to Settings → Integrations → Add custom integration, name it (e.g. “AEO Goal”), and copy the Admin API Key it generates - it looks like id:secret.
  4. Paste the full key into the Admin API key field and click Save.

Notion

Requirements: A Notion workspace with a database to publish posts into.

  1. Click Configure on the Notion card.
  2. Create an internal integration at notion.so/my-integrations and copy its Internal Integration Secret.
  3. Open the target database in Notion, click the ••• menu → Connections, and add the integration you just created - without this step Notion returns “not found” even with a valid token.
  4. Copy the database ID: it’s the 32-character string in the database’s URL (notion.so/workspace/DATABASE_ID?v=...).
  5. Paste both values into the form and click Save.

Medium

Medium deprecated its Integration Token API for new publications in 2024. This option only works if your account was issued a token before then - most new accounts can’t generate one at all.

  1. Click Configure on the Medium card.
  2. If you already have a token, find it (or check whether Medium still shows one for your account) at Medium → Settings → Security and apps → Integration tokens.
  3. Paste it in and click Save.

If Medium doesn’t offer a token, publish via RSS or a direct import instead.

Shopify

Requirements: A Shopify store with an existing blog.

  1. Click Configure on the Shopify card.
  2. Enter your store’s myshopify.com domain.
  3. Find your blog ID: in Shopify admin, go to Online Store → Blog posts, open the blog you want to publish to, and read the numeric ID from the URL after /blogs/.
  4. Generate an access token: Settings → Apps and sales channels → Develop apps → Create an app. Grant it the write_blogs scope, install the app, then copy the Admin API access token.
  5. Paste the blog ID and access token in and click Save.

Webflow

Requirements: A Webflow site with a CMS collection for blog posts.

  1. Click Configure on the Webflow card.
  2. Find your Site ID: Webflow dashboard → Site settings → General.
  3. Find your blog collection’s Collection ID: open the collection → Collection settings.
  4. Generate an API token: Site settings → Apps & integrations → API access → Generate API token.
  5. Enter all three and click Save.
  6. Once connected, click Edit fields next to the connection in your connected destinations list to map AEO Goal’s content fields (title, body, slug, etc.) to your Webflow collection’s fields.

HubSpot

Requirements: A HubSpot account with a CMS blog and Marketing Hub access sufficient to create private apps.

  1. Click Configure on the HubSpot card.
  2. In HubSpot, go to Settings → Integrations → Private Apps → Create a private app, grant it the content scope, and copy the generated access token.
  3. Find your content group (blog) ID from your blog’s settings in HubSpot’s CMS.
  4. Paste both values in and click Save.

Payload CMS

Requirements: A publicly reachable Payload CMS instance with a collection for blog posts.

  1. Click Configure on the Payload CMS card.
  2. Enter your Payload server URL and the collection slug you publish into (e.g. posts).
  3. Generate an API key: in Payload admin, open your auth-enabled collection (default: users), create or edit a user, and enable API Key - Payload generates it for you.
  4. Choose the content field type: Lexical (Payload’s default rich-text editor) or HTML string if your content field is a plain text/textarea/code field.
  5. Optionally set a public URL template (e.g. https://yoursite.com/blog/{slug}) so published posts show a live link in AEO Goal.
  6. Click Save.

Custom webhook

Use this for any destination AEO Goal doesn’t have a built-in integration for - it receives an HTTP POST with the published post’s payload (title, body, slug, and metadata) and you wire it up on your side.

  1. Click Configure on the New webhook card.
  2. Enter a name and your endpoint’s URL.
  3. Optionally add a bearer token if your endpoint requires authentication.
  4. Click Save.

Managing connections

From Settings → Integrations → Publishing you can:

  • View all active connections
  • Test a connection (sends a test post as draft, or a test document for Payload)
  • View publish history and retry failed publishes
  • Disconnect a platform

Publishing from the Content Studio

After configuring a connection, the Publish button in the Content Studio shows a dropdown with your connected platforms. Select the platform and click Publish. AEO Goal tracks the publish status and logs the result in Publish Logs.

Frequently asked questions

Which publishing platforms does AEO Goal support?

AEO Goal can publish AI-generated blog posts directly to WordPress, GitHub Pages, Ghost, Notion, Medium, Shopify, Webflow, HubSpot, Payload CMS, or any custom webhook.

How do I connect a publishing platform?

Go to Settings then Integrations then Publishing, then click Connect or Configure next to your platform. GitHub Pages and WordPress.com use an OAuth popup; every other platform asks you to paste a site URL and an API key or token from that platform's own dashboard. Once connected, the platform appears as a publish target in the Content Studio.

Where do I find the API key or token a platform asks for?

Each Configure form links to the exact page in that platform's dashboard where the credential is generated - look for the "Where do I find this?" link under the field. The steps are also listed per platform below.

Are posts published live immediately?

For WordPress, posts are created as drafts by default, and you can toggle Publish immediately in the Content Studio to publish live. GitHub posts are committed as Markdown files that deploy via your GitHub Pages workflow. Other platforms follow their own default post status - check each platform's section below.

How do I publish content and see the result?

After configuring a connection, the Publish button in the Content Studio shows a dropdown of your connected platforms, and you select one and click Publish. AEO Goal tracks the publish status and logs the result in Publish Logs.