HomeDev GuideRecipesAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Available tools for CMS 13

Lists the tools available in Optimizely Opal for CMS 13 including any required or optional parameters.

The CMS Opal Tools package provides AI-powered tools for content management. Opal invokes all tools and requires Opti ID authentication.

Content type tools

Manage content type definitions in CMS. These tools require CMS administrator permissions.

  • paas_cms_list_content_types – Lists all content types in CMS, optionally filtered by base type (_page, _component, _media, _image, _video). Returns type name, key, base type, and property count.

    ParameterTypeRequiredDescription
    baseTypestringNoFilter by base type: _page, _component, _media, _image, _video
  • paas_cms_get_content_type_details – Retrieves detailed information about a specific content type, including all property definitions with types, validation rules, and group assignments.

    ParameterTypeRequiredDescription
    contentTypeKeystringYesThe key (name) of the content type
  • paas_cms_create_content_type – Creates a new content type with a key, display name, base type, and property definitions. Properties support types like string, richtext, number, boolean, contentReference, and contentArea.

    ParameterTypeRequiredDescription
    keystringYesUnique machine-readable key (for example, NewsArticle).
    displayNamestringYesHuman-readable name (for example, News Article).
    descriptionstringNoDescription of the content type's purpose.
    baseTypestringYesBase type: _page, _block, _component, _media, _image, or _video.
    propertiesstringNoJSON array of property definitions.
  • paas_cms_update_content_type – Modifies an existing content type's display name, description, or property definitions. Can add, update, or remove properties.

    ParameterTypeRequiredDescription
    contentTypeKeystringYesThe key of the content type to update.
    displayNamestringNoNew display name.
    descriptionstringNoNew description.
    propertiesstringNoJSON array of property definitions to add or update.
  • paas_cms_delete_content_type – Deletes a content type from CMS. The content type must not have any existing content instances.

    ParameterTypeRequiredDescription
    contentTypeKeystringYesThe key of the content type to delete.

Property group tools

Manage property groups (tabs) used to organize content type properties in the editing UI. These tools require CMS administrator permissions.

  • paas_cms_list_property_groups – Lists all property groups in the CMS with their names and sort order.

  • paas_cms_create_property_group – Creates a new property group with a unique key and optional sort order.

    ParameterTypeRequiredDescription
    keystringYesUnique machine-readable key (for example, SEO_Settings).
    sortOrderintegerNoDisplay sort order in the CMS UI (default: 100).

Content item tools

Create, read, update, and delete content items. All operations respect the authenticated user's CMS permissions.

  • paas_cms_get_content_data – Retrieves a content item's data including all non-metadata properties. Fetches a specific version or the latest published version.

  • ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    contentVersionintegerNoSpecific version number (omit for latest published).
  • paas_cms_update_content_item – Creates or updates a content item. Omit contentKey to create a new item and set its properties in a single call (requires contentType, displayName, and locale). Provide contentKey and contentVersion to update an existing item. Returns the contentKey and contentVersion for subsequent operations such as publishing.

    ParameterTypeRequiredDescription
    contentKeystringNoGUID of the content item to update. Omit to create a new item.
    contentVersionintegerNoVersion number to update. Required when updating an existing item. Use 0 for published content (a draft is created automatically). Omit when creating.
    propertiesobjectYesJSON object of property name and value pairs. Uses JSON Merge Patch semantics: only provided properties are updated.
    compositionobjectNoComposition layout for Experience content types. Contains a nodes array of section/row/column/component hierarchy. Uses REPLACE semantics: the entire composition is replaced. Read the existing layout first, then send the complete structure.
    contentTypestringNoContent type name. Required when creating (that is, contentKey is omitted).
    displayNamestringNoDisplay name for the content item. Required when creating.
    containerstringNoGUID of the parent container. Omit for default placement. Only used when creating.
    routeSegmentstringNoURL segment for page routing (for example, about-us). Only used when creating.
    localestringNoLocale code (for example, en or sv). Required when creating.
  • paas_cms_delete_content_item – Moves a content item to the waste basket. An editor can restore the item.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item to delete.
  • paas_cms_publish_content_item – Publishes a content item immediately or schedules it for a future date and time. Requires a content version number.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    contentVersionintegerYesVersion number to publish.
    scheduledPublishDatestringNoISO 8601 date and time for scheduled publishing.

Content variation tool

Create locale variations (translations) of existing content items.

  • paas_cms_create_content_variation – Creates a new locale variation of a page or experience content item. After creation, use paas_cms_update_content_item to set properties that differ from the default version.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    variationKeystringYesUnique key for the variation (for example, Holiday2024).
    localestringNoLocale code for the variation.
    displayNamestringNoDisplay name (defaults to variation key).

Preview tool

Generate preview URLs for content items.

  • paas_cms_get_content_preview_url – Generates a preview URL for a specific content version, letting Opal fetch and analyze the rendered HTML.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    contentVersionintegerYesVersion number to preview.

SEO tools

AI-powered Search Engine Optimization (SEO) analysis and editing capabilities.

  • paas_cms_seo_analysis – Analyzes content SEO performance and provides AI-powered recommendations. Extracts all content properties and metadata for comprehensive analysis including title tags, meta descriptions, heading structure, and keyword optimization.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    questionstringNoFocus area for the analysis.
    previewUrlstringNoPreview URL for rendered HTML analysis.
  • paas_cms_seo_edit – Applies SEO recommendations to CMS content. Provides an interactive form for editing SEO fields such as meta titles, descriptions, and social media tags. Use after running SEO analysis.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    recommendedValuesstringNoJSON object of recommended SEO values.
    actualPropertyNamesstringNoJSON object mapping SEO field names to CMS property names.

GEO tools

Analyze content for large language model (LLM) discoverability and apply JSON-LD schema markup for Generative Engine Optimization (GEO).

  • paas_cms_geo_analysis – Performs an AI-powered audit of content for LLM discoverability. Analyzes reachability, robots controls, structured data, content clarity, performance signals, and so on. Generates JSON-LD schema recommendations.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    previewUrlstringYesPreview URL for the rendered page.
    questionstringNoFocus area for the analysis.
  • paas_cms_geo_apply – Applies JSON-LD schema templates to the content's JsonLdTemplates property. Creates a new draft version with the schema markup.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    jsonLdTemplatesstringYesJSON-LD schema templates to apply.