Supported CMS Targets
Which CMSes the publish webhook ships with out-of-the-box support for, what fields each expects, and how custom webhooks work.
Supported CMS Targets
The publish webhook ships with adapters for four common CMSes plus a generic custom-webhook option. WordPress uses the REST API (`POST /wp-json/wp/v2/posts`) with Application Password basic auth. Ghost uses the Admin API (`POST /ghost/api/admin/posts/`) with a JWT signed from your admin API key. Webflow uses the CMS Collections API (`POST /v2/collections/{cid}/items`) with a bearer token. Shopify uses the Admin API (`POST /admin/api/2024-10/articles.json`) with an admin access token. For any CMS not in that list, the custom-webhook adapter lets you point the publisher at your own HTTP endpoint with a JSON payload you define.
WordPress
For WordPress, you provide the site URL (e.g. myblog.com/wp-json/wp/v2/posts), a username, and an Application Password generated inside the WordPress user settings. Application Passwords are preferred over your real login password because they are per-application, revocable at any time, and scoped so that compromising one does not compromise the whole account. The adapter maps article content to the post body, title to post title, slug to post slug, meta description to excerpt, and hero image to the featured image via the media upload endpoint.
Ghost
For Ghost, you provide the admin API URL (typically yoursite.ghost.io/ghost/api/admin or a self-hosted equivalent) and an Admin API key issued from the Ghost integrations panel. The adapter signs a short-lived JWT from the key on every publish, which is the security model Ghost's admin API uses. Article content is converted to Lexical (Ghost's native editor format) with headings, paragraphs, and the hero image as a feature_image field. Ghost supports multiple authors — the adapter defaults to the author the Admin API key is associated with, which is typically the integration user.
Webflow
For Webflow, the setup is a little more involved because Webflow CMS content lives inside a specific Collection, which you need to create in your Webflow Designer first (or reuse an existing one — a "Blog Posts" collection is the common shape). You provide the collection ID, a Webflow API token with CMS write access, and optionally the slug pattern your site uses. The adapter creates a draft item in the collection with name=title, slug, body (rich text), meta description, and main image. You then publish the item from Webflow's UI — or set the adapter to auto-publish drafts if you trust the pipeline enough to skip that extra gate.
Webflow's CMS API creates items in draft state by default. If you want posts to go live immediately, configure `publish_on_create: true` in the adapter settings — but be aware this disables the Webflow UI gate, so your only publish gate becomes the "approved" email reply itself.
Shopify
For Shopify, you provide the store URL (yourstore.myshopify.com), an admin access token, and the blog ID to post into (Shopify supports multiple blogs per store — most have just one called "News"). The adapter maps title, body_html (converted from the structured sections), tags, and featured image. Shopify expects HTML rather than a structured-content format, so the adapter renders the article to clean HTML before posting. One quirk: Shopify articles are tied to a specific blog, not to the store globally, so if you have multiple blogs and want to target a specific one, make sure the blog_id you configure matches.
Custom Webhook
For any CMS not in the four built-in adapters, or for a self-hosted blog, or for a headless setup where you want to handle the publish yourself, the custom-webhook option lets you point the publisher at an arbitrary HTTPS endpoint. The payload is a JSON object with keys: title, slug, keyword, meta_description, body_sections (an array of {type, content} objects for heading/paragraph/list/quote/image), hero_image_url, hero_image_attribution, and any custom fields you add on the row. You handle the CMS-specific logic inside your own endpoint — the publisher's job ends once it receives a 2xx response.
Custom webhook payload shape
What your endpoint receives on publish.
When to Set Up Stage 3
Stage 3 is the last thing your AI employee configures, and only when you actually want publishing automation. On a fresh setup, the pipeline is deployed with Stages 1 and 2 active but Stage 3 in a "manual" mode — drafts get approved, the publisher logs the approval, but no webhook fires. That gives you time to set up the CMS side without blocking the rest of the pipeline. When you are ready, provide the CMS type, the API URL, and the credentials to your AI employee, and it switches Stage 3 into active mode. From that point, every "approved" reply publishes.