Skip to content

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.

CMS Publishing and Content Fetching empty states when no connection is saved

  1. Sign in as an org admin.
  2. Go to Settings → CMS Publishing.
  3. Click Connect CMS, or Edit if a connection already exists.

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.

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.

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.

  1. Ask an editor to run a template that emits the tags you expect.
  2. Publish once to draft (not live).
  3. Confirm title, body, image, SEO, and taxonomies on the CMS side.
  4. If a field is empty, the template did not emit the tag, or the tag name does not match the table above.