Connect a CMS
CMS publishing sends a finished draft into your content management system. Editors click publish. Edisource resolves the stored credentials, maps article fields (and any metadata_ / taxonomy_ XML tags), and calls that CMS API.
This is outbound only. To let the Agent search your archive, configure Content fetching on the same page.

Open CMS Publishing
Section titled “Open CMS Publishing”- Sign in as an org admin.
- Go to Settings → CMS Publishing.
- Click Connect CMS, or Edit if a connection already exists.
Choose a platform
Section titled “Choose a platform”The form’s CMS Type list is:
| Type | Typical credentials | Notes |
|---|---|---|
| Ghost | Admin posts URL + Admin API key (id:secret) |
Posts support HTML or editor JSON, featured image, tags, SEO fields |
| WordPress | Site URL + application password (recommended) or JWT | Featured images upload to the Media Library. Default tags and categories live on the credential. AI metadata appears after save |
| Drupal | Site address + username/password or a Simple OAuth token | Posts through JSON:API. Use the site URL, not /jsonapi/node/article. Featured images become file entities |
| Parameter1 | Access token + namespace, channel, view, and topic IDs | Uses its own body tags (<title>, <teaser>, <caption>, <image_credit>), not metadata_ |
| Brightspot | Content API URL + API key | Posts support headline, body, featured image, author, and SEO fields |
Each platform page lists every field on that form and what a valid value looks like.
Site Name, Domain URL, and CMS Version are optional on Ghost, WordPress, Drupal, and Brightspot. They are labels for your team, not part of the API call.
What editors send
Section titled “What editors send”Publish can start from My Queue (structured article fields) or Content Studio (the live document). Either way, the CMS handler expects a content object that commonly includes:
title,status,slug,excerpt- Body as
html(and editor JSON where the CMS accepts it) feature_image,tags,authors,published_at- SEO / social:
meta_title,meta_description, Open Graph and Twitter fields
Exact validation depends on the CMS.
XML tags for CMS fields
Section titled “XML tags for CMS fields”For Ghost, WordPress, Drupal, and Brightspot, tell the template to emit metadata_ and taxonomy_ tags. Edisource reads those tags out of the HTML, fills the matching CMS fields, and removes the wrappers from the body.
Known names:
| Tag | Lands on |
|---|---|
<metadata_title> |
Title |
<metadata_slug> |
Slug |
<metadata_excerpt> or <metadata_dek> |
Excerpt |
<metadata_status> |
Status, such as draft |
<metadata_published_at> |
Publish time |
<metadata_feature_image> |
Featured image URL |
<metadata_meta_title> or <metadata_seo_title> |
SEO title |
<metadata_meta_description> or <metadata_seo_description> |
SEO description |
<metadata_focus_keyword> |
Focus keyphrase |
<metadata_canonical_url> |
Canonical URL |
<metadata_og_title>, <metadata_og_description>, <metadata_og_image> |
Open Graph |
<metadata_twitter_title>, <metadata_twitter_description>, <metadata_twitter_image> |
Twitter / X |
<metadata_authors> |
Authors (comma-separated) |
<metadata_post_type> |
Post type |
Unknown metadata_ names pass through as custom fields. On WordPress, the meta key must be registered with show_in_rest.
WordPress taxonomies use term IDs:
<taxonomy_category>12, 18</taxonomy_category><taxonomy_editorial_type>110</taxonomy_editorial_type>The part after taxonomy_ is the taxonomy slug on WordPress. On Drupal it is the field machine name, such as field_tags, and values are term names or term UUIDs.
How to write those tags in a template is covered in Structure output with XML tags. Parameter1 uses its own short tag list, not metadata_. See Connect Parameter1.
After you save
Section titled “After you save”- Ask an editor to run a template that emits the tags you expect.
- Publish once to draft (not live).
- Confirm title, body, image, SEO, and taxonomies on the CMS side.
- If a field is empty, the template did not emit the tag, or the tag name does not match the table above.